@ngstarter-ui/components 21.0.21 → 21.0.23
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 +18 -9
- 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-progress-bar.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-progress-bar.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-snack-bar.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-snack-bar.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 +33 -10
- package/fesm2022/ngstarter-ui-components-stepper.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-table.mjs +10 -2
- package/fesm2022/ngstarter-ui-components-table.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-table.d.ts +1 -1
- package/types/ngstarter-ui-components-timepicker.d.ts +8 -6
|
@@ -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 } 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,25 @@ 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 } },
|
|
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 } }, host: { classAttribute: "ngs-stepper" }, providers: [
|
|
69
|
+
{
|
|
70
|
+
provide: CdkStepper,
|
|
71
|
+
useExisting: Stepper
|
|
72
|
+
}
|
|
73
|
+
], 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: [":host{--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}:host .ngs-stepper{display:flex;flex-direction:column}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}:host .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}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}:host .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)}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}:host .ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}:host .ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}:host .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}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}:host .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}:host .ngs-stepper-header:not(.ngs-stepper-header-active):hover .ngs-stepper-icon{background:var(--ngs-color-surface-container-highest)}:host .ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}:host .ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}:host .ngs-stepper-header.ngs-stepper-label-bottom:before,:host .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)}:host .ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}:host .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}:host .ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg);color:var(--ngs-stepper-icon-active-color)}:host .ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}:host .ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg);color:var(--ngs-stepper-icon-completed-color)}:host .ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}:host .ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}:host .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"] }] });
|
|
60
74
|
}
|
|
61
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Stepper, decorators: [{
|
|
62
76
|
type: Component,
|
|
63
|
-
args: [{ selector: 'ngs-stepper', exportAs: 'ngsStepper', standalone: true, imports: [
|
|
77
|
+
args: [{ selector: 'ngs-stepper', exportAs: 'ngsStepper', standalone: true, imports: [
|
|
78
|
+
CommonModule
|
|
79
|
+
], providers: [
|
|
80
|
+
{
|
|
81
|
+
provide: CdkStepper,
|
|
82
|
+
useExisting: Stepper
|
|
83
|
+
}
|
|
84
|
+
], host: {
|
|
85
|
+
'class': 'ngs-stepper',
|
|
86
|
+
}, 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: [":host{--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}:host .ngs-stepper{display:flex;flex-direction:column}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-header{padding:16px 0}:host .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}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content-wrapper.ngs-stepper-last-step .ngs-stepper-vertical-line{display:none}:host .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)}:host .ngs-stepper.ngs-stepper-vertical .ngs-stepper-content{padding:8px 0 24px}:host .ngs-stepper.ngs-stepper-header-bottom{flex-direction:column-reverse}:host .ngs-stepper.ngs-stepper-header-bottom .ngs-stepper-header-container{border-bottom:none;border-top:1px solid var(--ngs-stepper-line-color)}:host .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}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container{align-items:flex-start;padding:0}:host .ngs-stepper-header-container.ngs-stepper-label-bottom-container .ngs-stepper-header{flex:1;padding-left:8px;padding-right:8px}:host .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}:host .ngs-stepper-header:not(.ngs-stepper-header-active):hover .ngs-stepper-icon{background:var(--ngs-color-surface-container-highest)}:host .ngs-stepper-header.ngs-stepper-label-bottom{flex-direction:column;justify-content:center;width:auto;min-width:100px;gap:12px}:host .ngs-stepper-header.ngs-stepper-label-bottom .ngs-stepper-label{text-align:center;white-space:normal}:host .ngs-stepper-header.ngs-stepper-label-bottom:before,:host .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)}:host .ngs-stepper-header.ngs-stepper-label-bottom:before{left:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:after{right:0}:host .ngs-stepper-header.ngs-stepper-label-bottom:first-child:before,:host .ngs-stepper-header.ngs-stepper-label-bottom:last-of-type:after{display:none}:host .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}:host .ngs-stepper-header-active .ngs-stepper-icon{background:var(--ngs-stepper-icon-active-bg);color:var(--ngs-stepper-icon-active-color)}:host .ngs-stepper-header-active .ngs-stepper-label{color:var(--ngs-stepper-label-active-color);font-weight:500}:host .ngs-stepper-header-completed .ngs-stepper-icon{background:var(--ngs-stepper-icon-completed-bg);color:var(--ngs-stepper-icon-completed-color)}:host .ngs-stepper-label{color:var(--ngs-stepper-label-color);font-size:14px;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-stepper-line{flex:1;height:1px;background:var(--ngs-stepper-line-color);margin:0 16px;min-width:24px}:host .ngs-stepper-content-container{padding:var(--ngs-stepper-content-padding)}:host .ngs-stepper-content{outline:none}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
64
87
|
}], 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
88
|
|
|
66
89
|
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, contentChildren } from '@angular/core';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport { Step } from '../step/step';\nimport { StepLabel } from '../step-label';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngs-stepper',\n exportAs: 'ngsStepper',\n standalone: true,\n imports: [\n CommonModule\n ],\n templateUrl: './stepper.html',\n styleUrl: './stepper.scss',\n providers: [\n {\n provide: CdkStepper,\n useExisting: Stepper\n }\n ],\n host: {\n 'class': 'ngs-stepper',\n }\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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"}
|
|
@@ -323,11 +323,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
323
323
|
*/
|
|
324
324
|
class TextColumn extends CdkTextColumn {
|
|
325
325
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: TextColumn, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
326
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: TextColumn, isStandalone: true, selector: "ngs-text-column", usesInheritance: true, ngImport: i0, template: "<ng-container ngsColumnDef>\n <th ngs-header-cell *ngsHeaderCellDef> {{headerText}} </th>\n <td ngs-cell *ngsCellDef=\"let data\"> {{dataAccessor(data, name)}} </td>\n</ng-container>\n", styles: ["/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: ColumnDef, selector: "[ngsColumnDef]", inputs: ["ngsColumnDef"] }, { kind: "directive", type: HeaderCellDef, selector: "[ngsHeaderCellDef]" }, { kind: "directive", type: HeaderCell, selector: "ngs-header-cell, [ngs-header-cell], th[ngs-header-cell]" }, { kind: "directive", type: CellDef, selector: "[ngsCellDef]" }, { kind: "directive", type: Cell, selector: "ngs-cell, [ngs-cell], td[ngs-cell]" }], changeDetection: i0.ChangeDetectionStrategy.
|
|
326
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: TextColumn, isStandalone: true, selector: "ngs-text-column", host: { classAttribute: "ngs-text-column" }, exportAs: ["ngsTextColumn"], usesInheritance: true, ngImport: i0, template: "<ng-container ngsColumnDef>\n <th ngs-header-cell *ngsHeaderCellDef> {{headerText}} </th>\n <td ngs-cell *ngsCellDef=\"let data\"> {{dataAccessor(data, name)}} </td>\n</ng-container>\n", styles: ["/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: ColumnDef, selector: "[ngsColumnDef]", inputs: ["ngsColumnDef"] }, { kind: "directive", type: HeaderCellDef, selector: "[ngsHeaderCellDef]" }, { kind: "directive", type: HeaderCell, selector: "ngs-header-cell, [ngs-header-cell], th[ngs-header-cell]" }, { kind: "directive", type: CellDef, selector: "[ngsCellDef]" }, { kind: "directive", type: Cell, selector: "ngs-cell, [ngs-cell], td[ngs-cell]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
327
327
|
}
|
|
328
328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: TextColumn, decorators: [{
|
|
329
329
|
type: Component,
|
|
330
|
-
args: [{ selector: 'ngs-text-column',
|
|
330
|
+
args: [{ selector: 'ngs-text-column', exportAs: 'ngsTextColumn', imports: [
|
|
331
|
+
ColumnDef,
|
|
332
|
+
HeaderCellDef,
|
|
333
|
+
HeaderCell,
|
|
334
|
+
CellDef,
|
|
335
|
+
Cell
|
|
336
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
337
|
+
'class': 'ngs-text-column',
|
|
338
|
+
}, template: "<ng-container ngsColumnDef>\n <th ngs-header-cell *ngsHeaderCellDef> {{headerText}} </th>\n <td ngs-cell *ngsCellDef=\"let data\"> {{dataAccessor(data, name)}} </td>\n</ng-container>\n", styles: ["/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
331
339
|
}] });
|
|
332
340
|
|
|
333
341
|
class TableDataSource extends DataSource {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-table.mjs","sources":["../../../projects/components/table/src/table/table.ts","../../../projects/components/table/src/table/table.html","../../../projects/components/table/src/cell/cell.ts","../../../projects/components/table/src/cell-def.ts","../../../projects/components/table/src/column-def.ts","../../../projects/components/table/src/footer-cell/footer-cell.ts","../../../projects/components/table/src/footer-cell-def.ts","../../../projects/components/table/src/footer-row/footer-row.ts","../../../projects/components/table/src/footer-row/footer-row.html","../../../projects/components/table/src/footer-row-def.ts","../../../projects/components/table/src/header-cell/header-cell.ts","../../../projects/components/table/src/header-cell-def.ts","../../../projects/components/table/src/header-row/header-row.ts","../../../projects/components/table/src/header-row/header-row.html","../../../projects/components/table/src/header-row-def.ts","../../../projects/components/table/src/no-data-row.ts","../../../projects/components/table/src/row/row.ts","../../../projects/components/table/src/row/row.html","../../../projects/components/table/src/row-def.ts","../../../projects/components/table/src/text-column/text-column.ts","../../../projects/components/table/src/text-column/text-column.html","../../../projects/components/table/src/table-data-source.ts","../../../projects/components/table/src/native-table/native-table.ts","../../../projects/components/table/src/native-table/native-table.html","../../../projects/components/table/ngstarter-ui-components-table.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n ContentChildren,\n QueryList,\n signal,\n DestroyRef,\n inject\n} from '@angular/core';\nimport {\n CdkColumnDef,\n CdkHeaderRowDef,\n CdkTable,\n CDK_TABLE,\n DataRowOutlet,\n HeaderRowOutlet,\n FooterRowOutlet,\n NoDataRowOutlet,\n STICKY_POSITIONING_LISTENER,\n CdkTableModule,\n} from '@angular/cdk/table';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ngs-table, table[ngs-table]',\n exportAs: 'ngsTable',\n imports: [\n CdkTableModule,\n HeaderRowOutlet,\n FooterRowOutlet,\n DataRowOutlet,\n NoDataRowOutlet,\n ],\n templateUrl: './table.html',\n styleUrl: './table.scss',\n providers: [\n { provide: CdkTable, useExisting: forwardRef(() => Table) },\n { provide: CDK_TABLE, useExisting: forwardRef(() => Table) },\n { provide: STICKY_POSITIONING_LISTENER, useValue: null },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-table not-prose',\n '[class.ngs-table-fixed-layout]': 'fixedLayout',\n '[class.ngs-table-sticky]': 'hasStickyColumns()',\n 'role': 'grid'\n },\n})\nexport class Table<T> extends CdkTable<T> {\n hideHeader = input(false, { transform: booleanAttribute });\n hideBody = input(false, { transform: booleanAttribute });\n hideFooter = input(false, { transform: booleanAttribute });\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * Whether the table has any sticky header rows.\n * This is used to apply the 'ngs-table-sticky-header' class.\n */\n private readonly _hasStickyHeader = signal<boolean>(false);\n\n readonly hasStickyHeader = computed(() => this._hasStickyHeader());\n\n // We define our own queries to track changes, avoiding conflict with CdkTable's internal properties.\n // Angular will populate these just fine alongside the parent's queries.\n @ContentChildren(CdkHeaderRowDef, { descendants: true })\n headerRowDefsQuery!: QueryList<CdkHeaderRowDef>;\n\n @ContentChildren(CdkColumnDef, { descendants: true })\n columnDefsQuery!: QueryList<CdkColumnDef>;\n\n /**\n * Whether the table has any sticky columns.\n */\n private readonly _hasStickyColumns = signal<boolean>(false);\n\n readonly hasStickyColumns = computed(() => this._hasStickyColumns());\n\n private _updateStickyStates(): void {\n if (this.headerRowDefsQuery) {\n const headerRowDefs = this.headerRowDefsQuery.toArray();\n const hasStickyHeaderRows = headerRowDefs.some((def: any) => def.sticky);\n this._hasStickyHeader.set(hasStickyHeaderRows);\n }\n if (this.columnDefsQuery) {\n const colDefs = this.columnDefsQuery.toArray();\n const hasStickyColumns = colDefs.some((def: any) => def.sticky || def.stickyEnd);\n\n this._hasStickyColumns.set(hasStickyColumns);\n\n // Directly set the property on the base class.\n // This triggers the base class setter logic which handles style updates.\n this.fixedLayout = hasStickyColumns;\n }\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n override ngAfterContentInit(): void {\n super.ngAfterContentInit();\n\n this.headerRowDefsQuery.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this._updateStickyStates();\n });\n\n this.columnDefsQuery.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this._updateStickyStates();\n });\n\n this._updateStickyStates();\n }\n\n protected override stickyCssClass = 'ngs-table-sticky';\n}\n","<thead [class.ngs-table-sticky-header]=\"hasStickyHeader()\" [class.hidden]=\"hideHeader()\">\n <ng-container headerRowOutlet />\n</thead>\n<tbody [class.hidden]=\"hideBody()\">\n <ng-container rowOutlet />\n <ng-container noDataRowOutlet />\n</tbody>\n<tfoot [class.hidden]=\"hideFooter()\">\n <ng-container footerRowOutlet />\n</tfoot>\n","import { Directive, ElementRef } from '@angular/core';\nimport { CdkCell } from '@angular/cdk/table';\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n selector: 'ngs-cell, [ngs-cell], td[ngs-cell]',\n host: {\n 'class': 'ngs-cell',\n 'role': 'gridcell',\n },\n standalone: true,\n})\nexport class Cell extends CdkCell {\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkCellDef } from '@angular/cdk/table';\n\n/** Cell definition for the ngs-table. */\n@Directive({\n selector: '[ngsCellDef]',\n standalone: true,\n providers: [{provide: CdkCellDef, useExisting: forwardRef(() => CellDef)}],\n})\nexport class CellDef extends CdkCellDef {}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkColumnDef } from '@angular/cdk/table';\n\n/**\n * Column definition for the ngs-table.\n * Defines a set of cells available for a table column.\n */\n@Directive({\n selector: '[ngsColumnDef]',\n standalone: true,\n providers: [{provide: CdkColumnDef, useExisting: forwardRef(() => ColumnDef)}],\n inputs: ['name: ngsColumnDef'],\n})\nexport class ColumnDef extends CdkColumnDef {}\n","import { Directive, ElementRef } from '@angular/core';\nimport { CdkFooterCell } from '@angular/cdk/table';\n\n/** Footer cell template container that adds the right classes and role. */\n@Directive({\n selector: 'ngs-footer-cell, [ngs-footer-cell], td[ngs-footer-cell]',\n host: {\n 'class': 'ngs-footer-cell',\n 'role': 'gridcell',\n },\n standalone: true,\n})\nexport class FooterCell extends CdkFooterCell {\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkFooterCellDef } from '@angular/cdk/table';\n\n/** Footer cell definition for the ngs-table. */\n@Directive({\n selector: '[ngsFooterCellDef]',\n standalone: true,\n providers: [{provide: CdkFooterCellDef, useExisting: forwardRef(() => FooterCellDef)}],\n})\nexport class FooterCellDef extends CdkFooterCellDef {}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport {\n CdkCellOutlet,\n CdkFooterRow\n} from '@angular/cdk/table';\n\n/** Footer template container that adds the right classes and role. */\n@Component({\n selector: 'ngs-footer-row, [ngs-footer-row], tr[ngs-footer-row]',\n templateUrl: './footer-row.html',\n styleUrl: './footer-row.scss',\n host: {\n 'class': 'ngs-footer-row',\n 'role': 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [CdkCellOutlet],\n providers: [{provide: CdkFooterRow, useExisting: forwardRef(() => FooterRow)}],\n})\nexport class FooterRow extends CdkFooterRow {\n}\n","<ng-container cdkCellOutlet />\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkFooterRowDef } from '@angular/cdk/table';\n\n/** Footer row definition for the ngs-table. */\n@Directive({\n selector: '[ngsFooterRowDef]',\n standalone: true,\n providers: [{provide: CdkFooterRowDef, useExisting: forwardRef(() => FooterRowDef)}],\n inputs: ['columns: ngsFooterRowDef', 'sticky: ngsFooterRowDefSticky'],\n})\nexport class FooterRowDef extends CdkFooterRowDef {}\n","import { Directive, ElementRef } from '@angular/core';\nimport { CdkHeaderCell } from '@angular/cdk/table';\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n selector: 'ngs-header-cell, [ngs-header-cell], th[ngs-header-cell]',\n host: {\n 'class': 'ngs-header-cell',\n 'role': 'columnheader',\n },\n standalone: true,\n})\nexport class HeaderCell extends CdkHeaderCell {\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkHeaderCellDef } from '@angular/cdk/table';\n\n/** Header cell definition for the ngs-table. */\n@Directive({\n selector: '[ngsHeaderCellDef]',\n standalone: true,\n providers: [{provide: CdkHeaderCellDef, useExisting: forwardRef(() => HeaderCellDef)}],\n})\nexport class HeaderCellDef extends CdkHeaderCellDef {}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport {\n CdkCellOutlet,\n CdkHeaderRow\n} from '@angular/cdk/table';\n\n/** Header template container that adds the right classes and role. */\n@Component({\n selector: 'ngs-header-row, [ngs-header-row], tr[ngs-header-row]',\n templateUrl: './header-row.html',\n styleUrl: './header-row.scss',\n host: {\n 'class': 'ngs-header-row',\n 'role': 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [CdkCellOutlet],\n providers: [{provide: CdkHeaderRow, useExisting: forwardRef(() => HeaderRow)}],\n})\nexport class HeaderRow extends CdkHeaderRow {\n}\n","<ng-container cdkCellOutlet />\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkHeaderRowDef } from '@angular/cdk/table';\n\n/** Header row definition for the ngs-table. */\n@Directive({\n selector: '[ngsHeaderRowDef]',\n standalone: true,\n providers: [{provide: CdkHeaderRowDef, useExisting: forwardRef(() => HeaderRowDef)}],\n inputs: ['columns: ngsHeaderRowDef', 'sticky: ngsHeaderRowDefSticky'],\n})\nexport class HeaderRowDef extends CdkHeaderRowDef {}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkNoDataRow } from '@angular/cdk/table';\n\n/** Row that can be used to display a message when no data is shown in the table. */\n@Directive({\n selector: 'ng-template[ngsNoDataRow]',\n standalone: true,\n providers: [{provide: CdkNoDataRow, useExisting: forwardRef(() => NoDataRow)}],\n})\nexport class NoDataRow extends CdkNoDataRow {\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport {\n CdkCellOutlet,\n CdkRow\n} from '@angular/cdk/table';\n\n/** Data row template container that adds the right classes and role. */\n@Component({\n selector: 'ngs-row, [ngs-row], tr[ngs-row]',\n templateUrl: './row.html',\n styleUrl: './row.scss',\n host: {\n 'class': 'ngs-row',\n 'role': 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [CdkCellOutlet],\n providers: [{provide: CdkRow, useExisting: forwardRef(() => Row)}],\n})\nexport class Row extends CdkRow {}\n","<ng-container cdkCellOutlet />\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkRowDef } from '@angular/cdk/table';\n\n/** Data row definition for the ngs-table. */\n@Directive({\n selector: '[ngsRowDef]',\n standalone: true,\n providers: [{provide: CdkRowDef, useExisting: forwardRef(() => RowDef)}],\n inputs: ['columns: ngsRowDefColumns', 'when: ngsRowDefWhen'],\n})\nexport class RowDef<T> extends CdkRowDef<T> {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { CdkTextColumn } from '@angular/cdk/table';\nimport { ColumnDef } from '../column-def';\nimport { CellDef } from '../cell-def';\nimport { HeaderCellDef } from '../header-cell-def';\nimport { HeaderCell } from '../header-cell/header-cell';\nimport { Cell } from '../cell/cell';\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`<table>`).\n *\n * By default, the name of this column will be the same as the data property that it should show.\n * The header can be overridden by setting the `headerText` input.\n *\n * Example usage:\n * <table ngs-table [dataSource]=\"dataSource\">\n * <ngs-text-column name=\"userName\"></ngs-text-column>\n * <tr ngs-header-row *ngsHeaderRowDef=\"['userName']\"></tr>\n * <tr ngs-row *ngsRowDef=\"['userName']\"></tr>\n * </table>\n */\n@Component({\n selector: 'ngs-text-column',\n templateUrl: './text-column.html',\n styleUrl: './text-column.scss',\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [ColumnDef, HeaderCellDef, HeaderCell, CellDef, Cell],\n})\nexport class TextColumn<T> extends CdkTextColumn<T> {}\n","<ng-container ngsColumnDef>\n <th ngs-header-cell *ngsHeaderCellDef> {{headerText}} </th>\n <td ngs-cell *ngsCellDef=\"let data\"> {{dataAccessor(data, name)}} </td>\n</ng-container>\n","import { DataSource as _DataSource } from '@angular/cdk/collections';\nimport {\n BehaviorSubject,\n combineLatest,\n isObservable,\n merge,\n Observable,\n of,\n Subject,\n Subscription\n} from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { SortDirective, Sort } from '@ngstarter-ui/components/sort';\nimport { Paginator } from '@ngstarter-ui/components/paginator';\n\nexport class TableDataSource<T> extends _DataSource<T> {\n /** Stream that emits when a new data array is set on the data source. */\n private readonly _data: BehaviorSubject<T[]>;\n\n /** Stream emitting render data to the table (depends on ordered data changes). */\n private readonly _renderData: BehaviorSubject<T[]>;\n\n /** Stream that emits when a new filter string is set on the data source. */\n private readonly _filter = new BehaviorSubject<string>('');\n\n /** Used to react to internal changes of the paginator that the table needs to be notified about. */\n private readonly _internalPageChanges = new Subject<void>();\n\n /**\n * Subscription to the changes that should trigger an update to the table's rendered data, such\n * as filtering, sorting, pagination, or base data changes.\n */\n _renderChangesSubscription = Subscription.EMPTY;\n\n /**\n * Cache for quick filter strings. Maps each data object to its concatenated string representation\n * used for filtering.\n */\n private _quickFilterCache = new WeakMap<T & object, string>();\n\n /**\n * The filtered set of data that has been matched by the filter string, or all the data if there\n * is no filter. Useful for knowing the set of data the table represents.\n * For example, a 'scrolled' paginator can use this to know the total number of items when\n * pagination has been applied.\n */\n filteredData: T[];\n\n /**\n * The sorted set of data that has been ordered by the sort state, or all the filtered data if there\n * is no sort. Useful for knowing the set of data the table represents.\n */\n sortedData: T[];\n\n /** Array of data that should be rendered by the table, where each object represents one row. */\n get data() {\n return this._data.value;\n }\n set data(data: T[]) {\n this._data.next(data);\n if (!this._renderChangesSubscription) {\n this._filterData(data);\n }\n }\n\n /**\n * Filter term that should be used to filter out objects from the data array. To `TableDataSource`'s\n * default implementation, this string checks for stringification matches anywhere in the object.\n */\n get filter(): string {\n return this._filter.value;\n }\n set filter(filter: string) {\n this._filter.next(filter);\n if (!this._renderChangesSubscription) {\n this._filterData(this.data);\n }\n }\n\n /**\n * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n * emitted by the MatSort will trigger an update to the table's rendered data.\n */\n get sort(): SortDirective | null {\n return this._sort;\n }\n set sort(sort: SortDirective | null) {\n this._sort = sort;\n this._updateChangeSubscription();\n }\n private _sort: SortDirective | null = null;\n\n /**\n * Instance of the Paginator component used by the table to control what page of the data is\n * displayed. Page changes emitted by the Paginator will trigger an update to the\n * table's rendered data.\n */\n get paginator(): Paginator | null {\n return this._paginator;\n }\n set paginator(paginator: Paginator | null) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n }\n private _paginator: Paginator | null = null;\n\n /**\n * Data accessor function that is used for accessing data properties for sorting through\n * the default sortData function.\n * This default function assumes that the data objects are flat and can be accessed directly by\n * the column name.\n */\n sortingDataAccessor: (data: T, sortHeaderId: string) => string | number = (\n data: T,\n sortHeaderId: string,\n ): string | number => {\n const value = (data as unknown as Record<string, any>)[sortHeaderId];\n return typeof value === 'number' || typeof value === 'string' ? value : '' + value;\n };\n\n /**\n * Gets a sorted copy of the data array based on the state of the MatSort. Called\n * after changes are made to the filtered data or when sort changes are emitted from MatSort.\n * By default, the function retrieves the active sort and its direction and compares data\n * objects by retrieving data using the sortingDataAccessor. May be overridden for a\n * custom implementation of data ordering.\n * @param data The array of data that should be sorted.\n * @param sort The connected MatSort that holds the current sort state.\n */\n sortData: (data: T[], sort: SortDirective) => T[] = (data: T[], sort: SortDirective): T[] => {\n const active = typeof sort.active === 'function' ? sort.active() : sort.active;\n const direction = typeof sort.direction === 'function' ? sort.direction() : sort.direction;\n if (!active || direction === '') {\n return data;\n }\n\n return data.slice().sort((a, b) => {\n const valueA = this.sortingDataAccessor(a, active);\n const valueB = this.sortingDataAccessor(b, active);\n\n // If both valueA and valueB are numbers, use the numeric comparison.\n // If either valueA or valueB is not a number, use the string comparison.\n const comparatorResult =\n typeof valueA === 'number' && typeof valueB === 'number'\n ? valueA - valueB\n : (valueA + '').localeCompare(valueB + '');\n\n return comparatorResult * (direction === 'asc' ? 1 : -1);\n });\n };\n\n /**\n * Checks if a data object matches the data source's filter string. By default, each data object\n * is converted to a string of its properties and returns true if the filter has at least one\n * occurrence in that string. By default, the filter string has its whitespace trimmed and the match\n * is case-insensitive. May be overridden for a custom implementation of filter matching.\n * @param data Data object used to check against the filter.\n * @param filter Filter string that has been set on the data source.\n * @returns Whether the filter matches the data.\n */\n filterPredicate: (data: T, filter: string) => boolean = (data: T, filter: string): boolean => {\n // Transform the filter by converting it to lowercase and splitting into words.\n const transformedFilter = filter.trim().toLowerCase();\n if (!transformedFilter) {\n return true;\n }\n const filterWords = transformedFilter.split(/\\s+/);\n\n // Get the string representation of the data.\n const dataStr = this._getQuickFilterString(data);\n\n // Check if all filter words are present in the data string (any order).\n return filterWords.every(word => dataStr.indexOf(word) !== -1);\n };\n\n /**\n * Gets a string representation of the data object used for quick filtering.\n * Caches the result to improve performance.\n * @param data\n * @private\n */\n private _getQuickFilterString(data: T): string {\n if (typeof data !== 'object' || data === null) {\n return String(data).toLowerCase();\n }\n\n let cached = this._quickFilterCache.get(data as T & object);\n if (cached !== undefined) {\n return cached;\n }\n\n const dataStr = Object.keys(data as unknown as Record<string, any>)\n .reduce((currentTerm: string, key: string) => {\n const val = (data as unknown as Record<string, any>)[key];\n return currentTerm + (val === null || val === undefined ? '' : val) + ' ';\n }, '')\n .toLowerCase();\n\n this._quickFilterCache.set(data as T & object, dataStr);\n return dataStr;\n }\n\n constructor(initialData: T[] = []) {\n super();\n this._data = new BehaviorSubject<T[]>(initialData);\n this._renderData = new BehaviorSubject<T[]>(initialData);\n this.filteredData = initialData;\n this.sortedData = initialData;\n this._updateChangeSubscription();\n }\n\n /**\n * Subscribe to changes that should trigger an update to the table's rendered data.\n */\n _updateChangeSubscription() {\n const sortChange: Observable<Sort | null | void> = this._sort\n ? (merge(\n this._observeOutput<Sort>(this._sort.sortChange),\n this._sort.initialized || of(undefined),\n of(undefined)\n ) as Observable<Sort | void>)\n : of(null);\n const pageChange: Observable<any> = this._paginator\n ? (merge(\n this._observeOutput<any>(this._paginator.page as any),\n this._internalPageChanges,\n this._paginator.initialized || of(undefined),\n of(undefined)\n ) as Observable<any>)\n : of(null);\n const dataStream = this._data;\n\n // Watch for base data or filter changes to provide a filtered set of data.\n const filteredData = combineLatest([dataStream, this._filter]).pipe(\n map(([data]) => this._filterData(data)),\n );\n\n // Watch for filtered data or sort changes to provide an ordered set of data.\n const orderedData = combineLatest([filteredData, sortChange]).pipe(\n map(([data]) => this._orderData(data)),\n );\n\n // Watch for ordered data or page changes to provide a paged set of data.\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(\n map(([data]) => this._pageData(data)),\n );\n\n // Watched for paged data changes and emit the result to the table to render.\n this._renderChangesSubscription.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe((data) =>\n this._renderData.next(data),\n );\n }\n\n private _observeOutput<R>(output: any): Observable<R> {\n if (isObservable(output)) {\n return output as Observable<R>;\n }\n\n if (typeof output === 'object' && output !== null && ('subscribe' in output || 'emit' in output)) {\n return new Observable<R>((subscriber) => {\n try {\n const obs = outputToObservable(output);\n const sub = obs.subscribe({\n next: (value: any) => subscriber.next(value as R),\n error: (err) => {\n if (err && err.message && err.message.includes('NG0911')) {\n subscriber.complete();\n } else {\n subscriber.error(err);\n }\n },\n complete: () => subscriber.complete(),\n });\n return () => sub.unsubscribe();\n } catch (e: any) {\n if (e && e.message && e.message.includes('NG0911')) {\n subscriber.complete();\n return;\n }\n throw e;\n }\n });\n }\n\n return of() as Observable<R>;\n }\n\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterPredicate function. If no filter is set, returns the entire data\n * array without changes.\n */\n _filterData(data: T[]) {\n this.filteredData = !this.filter\n ? data\n : data.filter((obj) => this.filterPredicate(obj, this.filter));\n\n if (this.paginator) {\n this._updatePaginator(this.filteredData.length);\n }\n\n return this.filteredData;\n }\n\n /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array entirely.\n */\n _orderData(data: T[]): T[] {\n // If there is no active sort or direction, then the data should not be ordered.\n if (!this.sort) {\n this.sortedData = data;\n return data;\n }\n\n this.sortedData = this.sortData(data.slice(), this.sort);\n return this.sortedData;\n }\n\n /**\n * Returns a paged splice of the provided data array based on the provided Paginator's page\n * index and length. If there is no paginator provided, returns the data array as is.\n */\n _pageData(data: T[]): T[] {\n if (!this.paginator) {\n return data;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + (this.paginator.pageSize as any));\n }\n\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the amount of pages in the new data set.\n */\n _updatePaginator(filteredDataLength: number) {\n if (!this.paginator) {\n return;\n }\n\n this.paginator.length = filteredDataLength;\n\n // If the page index is now larger than the number of pages, move the page index to the last\n // page.\n if (this.paginator.pageIndex > 0) {\n const lastPageIndex = Math.max(0, Math.ceil(this.paginator.length / this.paginator.pageSize) - 1);\n const newPageIndex = Math.min(this.paginator.pageIndex, lastPageIndex);\n\n if (newPageIndex !== this.paginator.pageIndex) {\n this.paginator.pageIndex = newPageIndex;\n\n // Since the paginator has changed, notify the data source that the rendered data\n // should be updated.\n this._internalPageChanges.next();\n }\n }\n }\n\n /**\n * Used by the CdkTable. Called when it connects to the data source.\n * @docs-private\n */\n connect() {\n if (!this._renderChangesSubscription || this._renderChangesSubscription.closed) {\n this._updateChangeSubscription();\n }\n\n return this._renderData;\n }\n\n /**\n * Used by the CdkTable. Called when it disconnects from the data source.\n * @docs-private\n */\n disconnect() {\n this._renderChangesSubscription.unsubscribe();\n this._renderChangesSubscription = Subscription.EMPTY;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'table[ngs-native-table]',\n exportAs: 'ngsNativeTable',\n imports: [],\n templateUrl: './native-table.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './native-table.scss',\n host: {\n 'class': 'ngs-native-table not-prose',\n }\n})\nexport class NativeTable {\n\n}\n","<ng-content/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_DataSource"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-table.mjs","sources":["../../../projects/components/table/src/table/table.ts","../../../projects/components/table/src/table/table.html","../../../projects/components/table/src/cell/cell.ts","../../../projects/components/table/src/cell-def.ts","../../../projects/components/table/src/column-def.ts","../../../projects/components/table/src/footer-cell/footer-cell.ts","../../../projects/components/table/src/footer-cell-def.ts","../../../projects/components/table/src/footer-row/footer-row.ts","../../../projects/components/table/src/footer-row/footer-row.html","../../../projects/components/table/src/footer-row-def.ts","../../../projects/components/table/src/header-cell/header-cell.ts","../../../projects/components/table/src/header-cell-def.ts","../../../projects/components/table/src/header-row/header-row.ts","../../../projects/components/table/src/header-row/header-row.html","../../../projects/components/table/src/header-row-def.ts","../../../projects/components/table/src/no-data-row.ts","../../../projects/components/table/src/row/row.ts","../../../projects/components/table/src/row/row.html","../../../projects/components/table/src/row-def.ts","../../../projects/components/table/src/text-column/text-column.ts","../../../projects/components/table/src/text-column/text-column.html","../../../projects/components/table/src/table-data-source.ts","../../../projects/components/table/src/native-table/native-table.ts","../../../projects/components/table/src/native-table/native-table.html","../../../projects/components/table/ngstarter-ui-components-table.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n ContentChildren,\n QueryList,\n signal,\n DestroyRef,\n inject\n} from '@angular/core';\nimport {\n CdkColumnDef,\n CdkHeaderRowDef,\n CdkTable,\n CDK_TABLE,\n DataRowOutlet,\n HeaderRowOutlet,\n FooterRowOutlet,\n NoDataRowOutlet,\n STICKY_POSITIONING_LISTENER,\n CdkTableModule,\n} from '@angular/cdk/table';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ngs-table, table[ngs-table]',\n exportAs: 'ngsTable',\n imports: [\n CdkTableModule,\n HeaderRowOutlet,\n FooterRowOutlet,\n DataRowOutlet,\n NoDataRowOutlet,\n ],\n templateUrl: './table.html',\n styleUrl: './table.scss',\n providers: [\n { provide: CdkTable, useExisting: forwardRef(() => Table) },\n { provide: CDK_TABLE, useExisting: forwardRef(() => Table) },\n { provide: STICKY_POSITIONING_LISTENER, useValue: null },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-table not-prose',\n '[class.ngs-table-fixed-layout]': 'fixedLayout',\n '[class.ngs-table-sticky]': 'hasStickyColumns()',\n 'role': 'grid'\n },\n})\nexport class Table<T> extends CdkTable<T> {\n hideHeader = input(false, { transform: booleanAttribute });\n hideBody = input(false, { transform: booleanAttribute });\n hideFooter = input(false, { transform: booleanAttribute });\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * Whether the table has any sticky header rows.\n * This is used to apply the 'ngs-table-sticky-header' class.\n */\n private readonly _hasStickyHeader = signal<boolean>(false);\n\n readonly hasStickyHeader = computed(() => this._hasStickyHeader());\n\n // We define our own queries to track changes, avoiding conflict with CdkTable's internal properties.\n // Angular will populate these just fine alongside the parent's queries.\n @ContentChildren(CdkHeaderRowDef, { descendants: true })\n headerRowDefsQuery!: QueryList<CdkHeaderRowDef>;\n\n @ContentChildren(CdkColumnDef, { descendants: true })\n columnDefsQuery!: QueryList<CdkColumnDef>;\n\n /**\n * Whether the table has any sticky columns.\n */\n private readonly _hasStickyColumns = signal<boolean>(false);\n\n readonly hasStickyColumns = computed(() => this._hasStickyColumns());\n\n private _updateStickyStates(): void {\n if (this.headerRowDefsQuery) {\n const headerRowDefs = this.headerRowDefsQuery.toArray();\n const hasStickyHeaderRows = headerRowDefs.some((def: any) => def.sticky);\n this._hasStickyHeader.set(hasStickyHeaderRows);\n }\n if (this.columnDefsQuery) {\n const colDefs = this.columnDefsQuery.toArray();\n const hasStickyColumns = colDefs.some((def: any) => def.sticky || def.stickyEnd);\n\n this._hasStickyColumns.set(hasStickyColumns);\n\n // Directly set the property on the base class.\n // This triggers the base class setter logic which handles style updates.\n this.fixedLayout = hasStickyColumns;\n }\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n override ngAfterContentInit(): void {\n super.ngAfterContentInit();\n\n this.headerRowDefsQuery.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this._updateStickyStates();\n });\n\n this.columnDefsQuery.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this._updateStickyStates();\n });\n\n this._updateStickyStates();\n }\n\n protected override stickyCssClass = 'ngs-table-sticky';\n}\n","<thead [class.ngs-table-sticky-header]=\"hasStickyHeader()\" [class.hidden]=\"hideHeader()\">\n <ng-container headerRowOutlet />\n</thead>\n<tbody [class.hidden]=\"hideBody()\">\n <ng-container rowOutlet />\n <ng-container noDataRowOutlet />\n</tbody>\n<tfoot [class.hidden]=\"hideFooter()\">\n <ng-container footerRowOutlet />\n</tfoot>\n","import { Directive, ElementRef } from '@angular/core';\nimport { CdkCell } from '@angular/cdk/table';\n\n/** Cell template container that adds the right classes and role. */\n@Directive({\n selector: 'ngs-cell, [ngs-cell], td[ngs-cell]',\n host: {\n 'class': 'ngs-cell',\n 'role': 'gridcell',\n },\n standalone: true,\n})\nexport class Cell extends CdkCell {\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkCellDef } from '@angular/cdk/table';\n\n/** Cell definition for the ngs-table. */\n@Directive({\n selector: '[ngsCellDef]',\n standalone: true,\n providers: [{provide: CdkCellDef, useExisting: forwardRef(() => CellDef)}],\n})\nexport class CellDef extends CdkCellDef {}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkColumnDef } from '@angular/cdk/table';\n\n/**\n * Column definition for the ngs-table.\n * Defines a set of cells available for a table column.\n */\n@Directive({\n selector: '[ngsColumnDef]',\n standalone: true,\n providers: [{provide: CdkColumnDef, useExisting: forwardRef(() => ColumnDef)}],\n inputs: ['name: ngsColumnDef'],\n})\nexport class ColumnDef extends CdkColumnDef {}\n","import { Directive, ElementRef } from '@angular/core';\nimport { CdkFooterCell } from '@angular/cdk/table';\n\n/** Footer cell template container that adds the right classes and role. */\n@Directive({\n selector: 'ngs-footer-cell, [ngs-footer-cell], td[ngs-footer-cell]',\n host: {\n 'class': 'ngs-footer-cell',\n 'role': 'gridcell',\n },\n standalone: true,\n})\nexport class FooterCell extends CdkFooterCell {\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkFooterCellDef } from '@angular/cdk/table';\n\n/** Footer cell definition for the ngs-table. */\n@Directive({\n selector: '[ngsFooterCellDef]',\n standalone: true,\n providers: [{provide: CdkFooterCellDef, useExisting: forwardRef(() => FooterCellDef)}],\n})\nexport class FooterCellDef extends CdkFooterCellDef {}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport {\n CdkCellOutlet,\n CdkFooterRow\n} from '@angular/cdk/table';\n\n/** Footer template container that adds the right classes and role. */\n@Component({\n selector: 'ngs-footer-row, [ngs-footer-row], tr[ngs-footer-row]',\n templateUrl: './footer-row.html',\n styleUrl: './footer-row.scss',\n host: {\n 'class': 'ngs-footer-row',\n 'role': 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [CdkCellOutlet],\n providers: [{provide: CdkFooterRow, useExisting: forwardRef(() => FooterRow)}],\n})\nexport class FooterRow extends CdkFooterRow {\n}\n","<ng-container cdkCellOutlet />\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkFooterRowDef } from '@angular/cdk/table';\n\n/** Footer row definition for the ngs-table. */\n@Directive({\n selector: '[ngsFooterRowDef]',\n standalone: true,\n providers: [{provide: CdkFooterRowDef, useExisting: forwardRef(() => FooterRowDef)}],\n inputs: ['columns: ngsFooterRowDef', 'sticky: ngsFooterRowDefSticky'],\n})\nexport class FooterRowDef extends CdkFooterRowDef {}\n","import { Directive, ElementRef } from '@angular/core';\nimport { CdkHeaderCell } from '@angular/cdk/table';\n\n/** Header cell template container that adds the right classes and role. */\n@Directive({\n selector: 'ngs-header-cell, [ngs-header-cell], th[ngs-header-cell]',\n host: {\n 'class': 'ngs-header-cell',\n 'role': 'columnheader',\n },\n standalone: true,\n})\nexport class HeaderCell extends CdkHeaderCell {\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkHeaderCellDef } from '@angular/cdk/table';\n\n/** Header cell definition for the ngs-table. */\n@Directive({\n selector: '[ngsHeaderCellDef]',\n standalone: true,\n providers: [{provide: CdkHeaderCellDef, useExisting: forwardRef(() => HeaderCellDef)}],\n})\nexport class HeaderCellDef extends CdkHeaderCellDef {}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport {\n CdkCellOutlet,\n CdkHeaderRow\n} from '@angular/cdk/table';\n\n/** Header template container that adds the right classes and role. */\n@Component({\n selector: 'ngs-header-row, [ngs-header-row], tr[ngs-header-row]',\n templateUrl: './header-row.html',\n styleUrl: './header-row.scss',\n host: {\n 'class': 'ngs-header-row',\n 'role': 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [CdkCellOutlet],\n providers: [{provide: CdkHeaderRow, useExisting: forwardRef(() => HeaderRow)}],\n})\nexport class HeaderRow extends CdkHeaderRow {\n}\n","<ng-container cdkCellOutlet />\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkHeaderRowDef } from '@angular/cdk/table';\n\n/** Header row definition for the ngs-table. */\n@Directive({\n selector: '[ngsHeaderRowDef]',\n standalone: true,\n providers: [{provide: CdkHeaderRowDef, useExisting: forwardRef(() => HeaderRowDef)}],\n inputs: ['columns: ngsHeaderRowDef', 'sticky: ngsHeaderRowDefSticky'],\n})\nexport class HeaderRowDef extends CdkHeaderRowDef {}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkNoDataRow } from '@angular/cdk/table';\n\n/** Row that can be used to display a message when no data is shown in the table. */\n@Directive({\n selector: 'ng-template[ngsNoDataRow]',\n standalone: true,\n providers: [{provide: CdkNoDataRow, useExisting: forwardRef(() => NoDataRow)}],\n})\nexport class NoDataRow extends CdkNoDataRow {\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport {\n CdkCellOutlet,\n CdkRow\n} from '@angular/cdk/table';\n\n/** Data row template container that adds the right classes and role. */\n@Component({\n selector: 'ngs-row, [ngs-row], tr[ngs-row]',\n templateUrl: './row.html',\n styleUrl: './row.scss',\n host: {\n 'class': 'ngs-row',\n 'role': 'row',\n },\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: true,\n imports: [CdkCellOutlet],\n providers: [{provide: CdkRow, useExisting: forwardRef(() => Row)}],\n})\nexport class Row extends CdkRow {}\n","<ng-container cdkCellOutlet />\n","import { Directive, forwardRef } from '@angular/core';\nimport { CdkRowDef } from '@angular/cdk/table';\n\n/** Data row definition for the ngs-table. */\n@Directive({\n selector: '[ngsRowDef]',\n standalone: true,\n providers: [{provide: CdkRowDef, useExisting: forwardRef(() => RowDef)}],\n inputs: ['columns: ngsRowDefColumns', 'when: ngsRowDefWhen'],\n})\nexport class RowDef<T> extends CdkRowDef<T> {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CdkTextColumn } from '@angular/cdk/table';\nimport { ColumnDef } from '../column-def';\nimport { CellDef } from '../cell-def';\nimport { HeaderCellDef } from '../header-cell-def';\nimport { HeaderCell } from '../header-cell/header-cell';\nimport { Cell } from '../cell/cell';\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`<table>`).\n *\n * By default, the name of this column will be the same as the data property that it should show.\n * The header can be overridden by setting the `headerText` input.\n *\n * Example usage:\n * <table ngs-table [dataSource]=\"dataSource\">\n * <ngs-text-column name=\"userName\"></ngs-text-column>\n * <tr ngs-header-row *ngsHeaderRowDef=\"['userName']\"></tr>\n * <tr ngs-row *ngsRowDef=\"['userName']\"></tr>\n * </table>\n */\n@Component({\n selector: 'ngs-text-column',\n exportAs: 'ngsTextColumn',\n imports: [\n ColumnDef,\n HeaderCellDef,\n HeaderCell,\n CellDef,\n Cell\n ],\n templateUrl: './text-column.html',\n styleUrl: './text-column.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-text-column',\n }\n})\nexport class TextColumn<T> extends CdkTextColumn<T> {}\n","<ng-container ngsColumnDef>\n <th ngs-header-cell *ngsHeaderCellDef> {{headerText}} </th>\n <td ngs-cell *ngsCellDef=\"let data\"> {{dataAccessor(data, name)}} </td>\n</ng-container>\n","import { DataSource as _DataSource } from '@angular/cdk/collections';\nimport {\n BehaviorSubject,\n combineLatest,\n isObservable,\n merge,\n Observable,\n of,\n Subject,\n Subscription\n} from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { SortDirective, Sort } from '@ngstarter-ui/components/sort';\nimport { Paginator } from '@ngstarter-ui/components/paginator';\n\nexport class TableDataSource<T> extends _DataSource<T> {\n /** Stream that emits when a new data array is set on the data source. */\n private readonly _data: BehaviorSubject<T[]>;\n\n /** Stream emitting render data to the table (depends on ordered data changes). */\n private readonly _renderData: BehaviorSubject<T[]>;\n\n /** Stream that emits when a new filter string is set on the data source. */\n private readonly _filter = new BehaviorSubject<string>('');\n\n /** Used to react to internal changes of the paginator that the table needs to be notified about. */\n private readonly _internalPageChanges = new Subject<void>();\n\n /**\n * Subscription to the changes that should trigger an update to the table's rendered data, such\n * as filtering, sorting, pagination, or base data changes.\n */\n _renderChangesSubscription = Subscription.EMPTY;\n\n /**\n * Cache for quick filter strings. Maps each data object to its concatenated string representation\n * used for filtering.\n */\n private _quickFilterCache = new WeakMap<T & object, string>();\n\n /**\n * The filtered set of data that has been matched by the filter string, or all the data if there\n * is no filter. Useful for knowing the set of data the table represents.\n * For example, a 'scrolled' paginator can use this to know the total number of items when\n * pagination has been applied.\n */\n filteredData: T[];\n\n /**\n * The sorted set of data that has been ordered by the sort state, or all the filtered data if there\n * is no sort. Useful for knowing the set of data the table represents.\n */\n sortedData: T[];\n\n /** Array of data that should be rendered by the table, where each object represents one row. */\n get data() {\n return this._data.value;\n }\n set data(data: T[]) {\n this._data.next(data);\n if (!this._renderChangesSubscription) {\n this._filterData(data);\n }\n }\n\n /**\n * Filter term that should be used to filter out objects from the data array. To `TableDataSource`'s\n * default implementation, this string checks for stringification matches anywhere in the object.\n */\n get filter(): string {\n return this._filter.value;\n }\n set filter(filter: string) {\n this._filter.next(filter);\n if (!this._renderChangesSubscription) {\n this._filterData(this.data);\n }\n }\n\n /**\n * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n * emitted by the MatSort will trigger an update to the table's rendered data.\n */\n get sort(): SortDirective | null {\n return this._sort;\n }\n set sort(sort: SortDirective | null) {\n this._sort = sort;\n this._updateChangeSubscription();\n }\n private _sort: SortDirective | null = null;\n\n /**\n * Instance of the Paginator component used by the table to control what page of the data is\n * displayed. Page changes emitted by the Paginator will trigger an update to the\n * table's rendered data.\n */\n get paginator(): Paginator | null {\n return this._paginator;\n }\n set paginator(paginator: Paginator | null) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n }\n private _paginator: Paginator | null = null;\n\n /**\n * Data accessor function that is used for accessing data properties for sorting through\n * the default sortData function.\n * This default function assumes that the data objects are flat and can be accessed directly by\n * the column name.\n */\n sortingDataAccessor: (data: T, sortHeaderId: string) => string | number = (\n data: T,\n sortHeaderId: string,\n ): string | number => {\n const value = (data as unknown as Record<string, any>)[sortHeaderId];\n return typeof value === 'number' || typeof value === 'string' ? value : '' + value;\n };\n\n /**\n * Gets a sorted copy of the data array based on the state of the MatSort. Called\n * after changes are made to the filtered data or when sort changes are emitted from MatSort.\n * By default, the function retrieves the active sort and its direction and compares data\n * objects by retrieving data using the sortingDataAccessor. May be overridden for a\n * custom implementation of data ordering.\n * @param data The array of data that should be sorted.\n * @param sort The connected MatSort that holds the current sort state.\n */\n sortData: (data: T[], sort: SortDirective) => T[] = (data: T[], sort: SortDirective): T[] => {\n const active = typeof sort.active === 'function' ? sort.active() : sort.active;\n const direction = typeof sort.direction === 'function' ? sort.direction() : sort.direction;\n if (!active || direction === '') {\n return data;\n }\n\n return data.slice().sort((a, b) => {\n const valueA = this.sortingDataAccessor(a, active);\n const valueB = this.sortingDataAccessor(b, active);\n\n // If both valueA and valueB are numbers, use the numeric comparison.\n // If either valueA or valueB is not a number, use the string comparison.\n const comparatorResult =\n typeof valueA === 'number' && typeof valueB === 'number'\n ? valueA - valueB\n : (valueA + '').localeCompare(valueB + '');\n\n return comparatorResult * (direction === 'asc' ? 1 : -1);\n });\n };\n\n /**\n * Checks if a data object matches the data source's filter string. By default, each data object\n * is converted to a string of its properties and returns true if the filter has at least one\n * occurrence in that string. By default, the filter string has its whitespace trimmed and the match\n * is case-insensitive. May be overridden for a custom implementation of filter matching.\n * @param data Data object used to check against the filter.\n * @param filter Filter string that has been set on the data source.\n * @returns Whether the filter matches the data.\n */\n filterPredicate: (data: T, filter: string) => boolean = (data: T, filter: string): boolean => {\n // Transform the filter by converting it to lowercase and splitting into words.\n const transformedFilter = filter.trim().toLowerCase();\n if (!transformedFilter) {\n return true;\n }\n const filterWords = transformedFilter.split(/\\s+/);\n\n // Get the string representation of the data.\n const dataStr = this._getQuickFilterString(data);\n\n // Check if all filter words are present in the data string (any order).\n return filterWords.every(word => dataStr.indexOf(word) !== -1);\n };\n\n /**\n * Gets a string representation of the data object used for quick filtering.\n * Caches the result to improve performance.\n * @param data\n * @private\n */\n private _getQuickFilterString(data: T): string {\n if (typeof data !== 'object' || data === null) {\n return String(data).toLowerCase();\n }\n\n let cached = this._quickFilterCache.get(data as T & object);\n if (cached !== undefined) {\n return cached;\n }\n\n const dataStr = Object.keys(data as unknown as Record<string, any>)\n .reduce((currentTerm: string, key: string) => {\n const val = (data as unknown as Record<string, any>)[key];\n return currentTerm + (val === null || val === undefined ? '' : val) + ' ';\n }, '')\n .toLowerCase();\n\n this._quickFilterCache.set(data as T & object, dataStr);\n return dataStr;\n }\n\n constructor(initialData: T[] = []) {\n super();\n this._data = new BehaviorSubject<T[]>(initialData);\n this._renderData = new BehaviorSubject<T[]>(initialData);\n this.filteredData = initialData;\n this.sortedData = initialData;\n this._updateChangeSubscription();\n }\n\n /**\n * Subscribe to changes that should trigger an update to the table's rendered data.\n */\n _updateChangeSubscription() {\n const sortChange: Observable<Sort | null | void> = this._sort\n ? (merge(\n this._observeOutput<Sort>(this._sort.sortChange),\n this._sort.initialized || of(undefined),\n of(undefined)\n ) as Observable<Sort | void>)\n : of(null);\n const pageChange: Observable<any> = this._paginator\n ? (merge(\n this._observeOutput<any>(this._paginator.page as any),\n this._internalPageChanges,\n this._paginator.initialized || of(undefined),\n of(undefined)\n ) as Observable<any>)\n : of(null);\n const dataStream = this._data;\n\n // Watch for base data or filter changes to provide a filtered set of data.\n const filteredData = combineLatest([dataStream, this._filter]).pipe(\n map(([data]) => this._filterData(data)),\n );\n\n // Watch for filtered data or sort changes to provide an ordered set of data.\n const orderedData = combineLatest([filteredData, sortChange]).pipe(\n map(([data]) => this._orderData(data)),\n );\n\n // Watch for ordered data or page changes to provide a paged set of data.\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(\n map(([data]) => this._pageData(data)),\n );\n\n // Watched for paged data changes and emit the result to the table to render.\n this._renderChangesSubscription.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe((data) =>\n this._renderData.next(data),\n );\n }\n\n private _observeOutput<R>(output: any): Observable<R> {\n if (isObservable(output)) {\n return output as Observable<R>;\n }\n\n if (typeof output === 'object' && output !== null && ('subscribe' in output || 'emit' in output)) {\n return new Observable<R>((subscriber) => {\n try {\n const obs = outputToObservable(output);\n const sub = obs.subscribe({\n next: (value: any) => subscriber.next(value as R),\n error: (err) => {\n if (err && err.message && err.message.includes('NG0911')) {\n subscriber.complete();\n } else {\n subscriber.error(err);\n }\n },\n complete: () => subscriber.complete(),\n });\n return () => sub.unsubscribe();\n } catch (e: any) {\n if (e && e.message && e.message.includes('NG0911')) {\n subscriber.complete();\n return;\n }\n throw e;\n }\n });\n }\n\n return of() as Observable<R>;\n }\n\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterPredicate function. If no filter is set, returns the entire data\n * array without changes.\n */\n _filterData(data: T[]) {\n this.filteredData = !this.filter\n ? data\n : data.filter((obj) => this.filterPredicate(obj, this.filter));\n\n if (this.paginator) {\n this._updatePaginator(this.filteredData.length);\n }\n\n return this.filteredData;\n }\n\n /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array entirely.\n */\n _orderData(data: T[]): T[] {\n // If there is no active sort or direction, then the data should not be ordered.\n if (!this.sort) {\n this.sortedData = data;\n return data;\n }\n\n this.sortedData = this.sortData(data.slice(), this.sort);\n return this.sortedData;\n }\n\n /**\n * Returns a paged splice of the provided data array based on the provided Paginator's page\n * index and length. If there is no paginator provided, returns the data array as is.\n */\n _pageData(data: T[]): T[] {\n if (!this.paginator) {\n return data;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + (this.paginator.pageSize as any));\n }\n\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the amount of pages in the new data set.\n */\n _updatePaginator(filteredDataLength: number) {\n if (!this.paginator) {\n return;\n }\n\n this.paginator.length = filteredDataLength;\n\n // If the page index is now larger than the number of pages, move the page index to the last\n // page.\n if (this.paginator.pageIndex > 0) {\n const lastPageIndex = Math.max(0, Math.ceil(this.paginator.length / this.paginator.pageSize) - 1);\n const newPageIndex = Math.min(this.paginator.pageIndex, lastPageIndex);\n\n if (newPageIndex !== this.paginator.pageIndex) {\n this.paginator.pageIndex = newPageIndex;\n\n // Since the paginator has changed, notify the data source that the rendered data\n // should be updated.\n this._internalPageChanges.next();\n }\n }\n }\n\n /**\n * Used by the CdkTable. Called when it connects to the data source.\n * @docs-private\n */\n connect() {\n if (!this._renderChangesSubscription || this._renderChangesSubscription.closed) {\n this._updateChangeSubscription();\n }\n\n return this._renderData;\n }\n\n /**\n * Used by the CdkTable. Called when it disconnects from the data source.\n * @docs-private\n */\n disconnect() {\n this._renderChangesSubscription.unsubscribe();\n this._renderChangesSubscription = Subscription.EMPTY;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'table[ngs-native-table]',\n exportAs: 'ngsNativeTable',\n imports: [],\n templateUrl: './native-table.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './native-table.scss',\n host: {\n 'class': 'ngs-native-table not-prose',\n }\n})\nexport class NativeTable {\n\n}\n","<ng-content/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_DataSource"],"mappings":"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"}
|