@ngstarter-ui/components 21.0.22 → 21.0.24
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 +2 -4
- package/fesm2022/ngstarter-ui-components-chips.mjs +3 -3
- package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-datepicker.mjs +8 -8
- package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-digit-roller.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-digit-roller.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-drawer.mjs +15 -7
- package/fesm2022/ngstarter-ui-components-drawer.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-snack-bar.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-snack-bar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-stepper.mjs +17 -3
- 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/package.json +1 -1
- package/types/ngstarter-ui-components-chips.d.ts +1 -1
- package/types/ngstarter-ui-components-table.d.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, NgZone, Renderer2, input, numberAttribute, output, computed,
|
|
2
|
+
import { inject, ElementRef, NgZone, Renderer2, input, numberAttribute, output, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class ProgressBar {
|
|
5
5
|
_elementRef = inject(ElementRef);
|
|
@@ -42,11 +42,11 @@ class ProgressBar {
|
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: ProgressBar, isStandalone: true, selector: "ngs-progress-bar", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, bufferValue: { classPropertyName: "bufferValue", publicName: "bufferValue", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { animationEnd: "animationEnd" }, host: { attributes: { "role": "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "tabindex": "-1" }, properties: { "attr.aria-valuenow": "isIndeterminate() ? null : value()", "attr.mode": "mode()", "class.ngs-progress-bar-indeterminate": "isIndeterminate()", "style.--ngs-progress-bar-value": "value()", "style.--ngs-progress-bar-buffer-value": "bufferValue()" }, classAttribute: "ngs-progress-bar" }, exportAs: ["ngsProgressBar"], ngImport: i0, template: "@if (mode() === 'buffer') {\n <div class=\"ngs-progress-bar-track\"></div>\n <div class=\"ngs-progress-bar-buffer-bar\" [style.transform]=\"bufferBarTransform()\"></div>\n} @else {\n <div class=\"ngs-progress-bar-track\"></div>\n}\n\n<div class=\"ngs-progress-bar-primary-bar\" [style.transform]=\"primaryBarTransform()\">\n <span class=\"ngs-progress-bar-inner\"></span>\n</div>\n\n@if (isIndeterminate()) {\n <div class=\"ngs-progress-bar-secondary-bar\">\n <span class=\"ngs-progress-bar-inner\"></span>\n </div>\n}\n", styles: ["
|
|
45
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: ProgressBar, isStandalone: true, selector: "ngs-progress-bar", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, bufferValue: { classPropertyName: "bufferValue", publicName: "bufferValue", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { animationEnd: "animationEnd" }, host: { attributes: { "role": "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "tabindex": "-1" }, properties: { "attr.aria-valuenow": "isIndeterminate() ? null : value()", "attr.mode": "mode()", "class.ngs-progress-bar-indeterminate": "isIndeterminate()", "style.--ngs-progress-bar-value": "value()", "style.--ngs-progress-bar-buffer-value": "bufferValue()" }, classAttribute: "ngs-progress-bar" }, exportAs: ["ngsProgressBar"], ngImport: i0, template: "@if (mode() === 'buffer') {\n <div class=\"ngs-progress-bar-track\"></div>\n <div class=\"ngs-progress-bar-buffer-bar\" [style.transform]=\"bufferBarTransform()\"></div>\n} @else {\n <div class=\"ngs-progress-bar-track\"></div>\n}\n\n<div class=\"ngs-progress-bar-primary-bar\" [style.transform]=\"primaryBarTransform()\">\n <span class=\"ngs-progress-bar-inner\"></span>\n</div>\n\n@if (isIndeterminate()) {\n <div class=\"ngs-progress-bar-secondary-bar\">\n <span class=\"ngs-progress-bar-inner\"></span>\n </div>\n}\n", styles: [":host{--ngs-progress-bar-height: 4px;--ngs-progress-bar-track-color: var(--ngs-color-surface-container-highest);--ngs-progress-bar-indicator-color: var(--ngs-color-primary);--ngs-progress-bar-animation-multiplier: 1;display:block;position:relative;height:var(--ngs-progress-bar-height);overflow:hidden;width:100%;transform:translateZ(0);transition:opacity .25s linear}:host[mode=query]{transform:rotate(180deg)}:host[mode=buffer] .ngs-progress-bar-track{background-image:radial-gradient(circle,var(--ngs-progress-bar-track-color) calc(var(--ngs-progress-bar-height) / 2),transparent 0);background-repeat:repeat-x;background-size:calc(var(--ngs-progress-bar-height) / 2 * 5) var(--ngs-progress-bar-height);background-position:left;flex:auto;transform:rotate(180deg);animation:ngs-linear-progress-buffering calc(.25s * var(--ngs-progress-bar-animation-multiplier)) infinite linear;background-color:transparent}:host .ngs-progress-bar-track,:host .ngs-progress-bar-buffer-bar,:host .ngs-progress-bar-primary-bar,:host .ngs-progress-bar-secondary-bar{position:absolute;inset:0}:host .ngs-progress-bar-track{background:var(--ngs-progress-bar-track-color)}:host .ngs-progress-bar-buffer-bar{background:var(--ngs-progress-bar-track-color);opacity:.25;transform-origin:top left;transition:transform .25s linear}:host .ngs-progress-bar-primary-bar,:host .ngs-progress-bar-secondary-bar{transform-origin:top left;transition:transform .25s linear}:host .ngs-progress-bar-inner{display:inline-block;position:absolute;width:100%;height:100%;background:var(--ngs-progress-bar-indicator-color)}:host.ngs-progress-bar-indeterminate .ngs-progress-bar-primary-bar,:host[mode=query] .ngs-progress-bar-primary-bar{left:0;animation:ngs-progress-bar-primary-indeterminate-translate 2s infinite linear}:host.ngs-progress-bar-indeterminate .ngs-progress-bar-primary-bar .ngs-progress-bar-inner,:host[mode=query] .ngs-progress-bar-primary-bar .ngs-progress-bar-inner{animation:ngs-progress-bar-primary-indeterminate-scale 2s infinite linear}:host.ngs-progress-bar-indeterminate .ngs-progress-bar-secondary-bar,:host[mode=query] .ngs-progress-bar-secondary-bar{left:0;display:block;animation:ngs-progress-bar-secondary-indeterminate-translate 2s infinite linear}:host.ngs-progress-bar-indeterminate .ngs-progress-bar-secondary-bar .ngs-progress-bar-inner,:host[mode=query] .ngs-progress-bar-secondary-bar .ngs-progress-bar-inner{animation:ngs-progress-bar-secondary-indeterminate-scale 2s infinite linear}:host .ngs-progress-bar-primary-bar,:host .ngs-progress-bar-secondary-bar,:host .ngs-progress-bar-buffer-bar{display:block}@keyframes ngs-progress-bar-primary-indeterminate-translate{0%{transform:translate(-145.166611%)}20%{animation-timing-function:cubic-bezier(.5,0,.701732,.495819);transform:translate(-145.166611%)}59.15%{animation-timing-function:cubic-bezier(.302435,.381352,.55,.956352);transform:translate(-61.495191%)}to{transform:translate(55.444446%)}}@keyframes ngs-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(.08)}36.65%{animation-timing-function:cubic-bezier(.334731,.12482,.785844,1);transform:scaleX(.08)}69.15%{animation-timing-function:cubic-bezier(.06,.11,.6,1);transform:scaleX(.661479)}to{transform:scaleX(.08)}}@keyframes ngs-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(.15,0,.515058,.409685);transform:translate(-54.888891%)}25%{animation-timing-function:cubic-bezier(.31033,.284058,.8,.733712);transform:translate(-17.236978%)}48.35%{animation-timing-function:cubic-bezier(.4,.627035,.6,.902026);transform:translate(29.497274%)}to{transform:translate(105.388891%)}}@keyframes ngs-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(.15,0,.515058,.409685);transform:scaleX(.08)}19.15%{animation-timing-function:cubic-bezier(.31033,.284058,.8,.733712);transform:scaleX(.457104)}44.15%{animation-timing-function:cubic-bezier(.4,.627035,.6,.902026);transform:scaleX(.72796)}to{transform:scaleX(.08)}}@keyframes ngs-linear-progress-buffering{to{background-position:calc(var(--ngs-progress-bar-height) / 2 * -5) 0}}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
46
46
|
}
|
|
47
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ProgressBar, decorators: [{
|
|
48
48
|
type: Component,
|
|
49
|
-
args: [{ selector: 'ngs-progress-bar', exportAs: 'ngsProgressBar', host: {
|
|
49
|
+
args: [{ selector: 'ngs-progress-bar', exportAs: 'ngsProgressBar', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
50
50
|
'role': 'progressbar',
|
|
51
51
|
'aria-valuemin': '0',
|
|
52
52
|
'aria-valuemax': '100',
|
|
@@ -57,7 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
57
57
|
'[class.ngs-progress-bar-indeterminate]': 'isIndeterminate()',
|
|
58
58
|
'[style.--ngs-progress-bar-value]': 'value()',
|
|
59
59
|
'[style.--ngs-progress-bar-buffer-value]': 'bufferValue()',
|
|
60
|
-
},
|
|
60
|
+
}, template: "@if (mode() === 'buffer') {\n <div class=\"ngs-progress-bar-track\"></div>\n <div class=\"ngs-progress-bar-buffer-bar\" [style.transform]=\"bufferBarTransform()\"></div>\n} @else {\n <div class=\"ngs-progress-bar-track\"></div>\n}\n\n<div class=\"ngs-progress-bar-primary-bar\" [style.transform]=\"primaryBarTransform()\">\n <span class=\"ngs-progress-bar-inner\"></span>\n</div>\n\n@if (isIndeterminate()) {\n <div class=\"ngs-progress-bar-secondary-bar\">\n <span class=\"ngs-progress-bar-inner\"></span>\n </div>\n}\n", styles: [":host{--ngs-progress-bar-height: 4px;--ngs-progress-bar-track-color: var(--ngs-color-surface-container-highest);--ngs-progress-bar-indicator-color: var(--ngs-color-primary);--ngs-progress-bar-animation-multiplier: 1;display:block;position:relative;height:var(--ngs-progress-bar-height);overflow:hidden;width:100%;transform:translateZ(0);transition:opacity .25s linear}:host[mode=query]{transform:rotate(180deg)}:host[mode=buffer] .ngs-progress-bar-track{background-image:radial-gradient(circle,var(--ngs-progress-bar-track-color) calc(var(--ngs-progress-bar-height) / 2),transparent 0);background-repeat:repeat-x;background-size:calc(var(--ngs-progress-bar-height) / 2 * 5) var(--ngs-progress-bar-height);background-position:left;flex:auto;transform:rotate(180deg);animation:ngs-linear-progress-buffering calc(.25s * var(--ngs-progress-bar-animation-multiplier)) infinite linear;background-color:transparent}:host .ngs-progress-bar-track,:host .ngs-progress-bar-buffer-bar,:host .ngs-progress-bar-primary-bar,:host .ngs-progress-bar-secondary-bar{position:absolute;inset:0}:host .ngs-progress-bar-track{background:var(--ngs-progress-bar-track-color)}:host .ngs-progress-bar-buffer-bar{background:var(--ngs-progress-bar-track-color);opacity:.25;transform-origin:top left;transition:transform .25s linear}:host .ngs-progress-bar-primary-bar,:host .ngs-progress-bar-secondary-bar{transform-origin:top left;transition:transform .25s linear}:host .ngs-progress-bar-inner{display:inline-block;position:absolute;width:100%;height:100%;background:var(--ngs-progress-bar-indicator-color)}:host.ngs-progress-bar-indeterminate .ngs-progress-bar-primary-bar,:host[mode=query] .ngs-progress-bar-primary-bar{left:0;animation:ngs-progress-bar-primary-indeterminate-translate 2s infinite linear}:host.ngs-progress-bar-indeterminate .ngs-progress-bar-primary-bar .ngs-progress-bar-inner,:host[mode=query] .ngs-progress-bar-primary-bar .ngs-progress-bar-inner{animation:ngs-progress-bar-primary-indeterminate-scale 2s infinite linear}:host.ngs-progress-bar-indeterminate .ngs-progress-bar-secondary-bar,:host[mode=query] .ngs-progress-bar-secondary-bar{left:0;display:block;animation:ngs-progress-bar-secondary-indeterminate-translate 2s infinite linear}:host.ngs-progress-bar-indeterminate .ngs-progress-bar-secondary-bar .ngs-progress-bar-inner,:host[mode=query] .ngs-progress-bar-secondary-bar .ngs-progress-bar-inner{animation:ngs-progress-bar-secondary-indeterminate-scale 2s infinite linear}:host .ngs-progress-bar-primary-bar,:host .ngs-progress-bar-secondary-bar,:host .ngs-progress-bar-buffer-bar{display:block}@keyframes ngs-progress-bar-primary-indeterminate-translate{0%{transform:translate(-145.166611%)}20%{animation-timing-function:cubic-bezier(.5,0,.701732,.495819);transform:translate(-145.166611%)}59.15%{animation-timing-function:cubic-bezier(.302435,.381352,.55,.956352);transform:translate(-61.495191%)}to{transform:translate(55.444446%)}}@keyframes ngs-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(.08)}36.65%{animation-timing-function:cubic-bezier(.334731,.12482,.785844,1);transform:scaleX(.08)}69.15%{animation-timing-function:cubic-bezier(.06,.11,.6,1);transform:scaleX(.661479)}to{transform:scaleX(.08)}}@keyframes ngs-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(.15,0,.515058,.409685);transform:translate(-54.888891%)}25%{animation-timing-function:cubic-bezier(.31033,.284058,.8,.733712);transform:translate(-17.236978%)}48.35%{animation-timing-function:cubic-bezier(.4,.627035,.6,.902026);transform:translate(29.497274%)}to{transform:translate(105.388891%)}}@keyframes ngs-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(.15,0,.515058,.409685);transform:scaleX(.08)}19.15%{animation-timing-function:cubic-bezier(.31033,.284058,.8,.733712);transform:scaleX(.457104)}44.15%{animation-timing-function:cubic-bezier(.4,.627035,.6,.902026);transform:scaleX(.72796)}to{transform:scaleX(.08)}}@keyframes ngs-linear-progress-buffering{to{background-position:calc(var(--ngs-progress-bar-height) / 2 * -5) 0}}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
61
61
|
}], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], bufferValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "bufferValue", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], animationEnd: [{ type: i0.Output, args: ["animationEnd"] }] } });
|
|
62
62
|
|
|
63
63
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-progress-bar.mjs","sources":["../../../projects/components/progress-bar/src/progress-bar/progress-bar.ts","../../../projects/components/progress-bar/src/progress-bar/progress-bar.html","../../../projects/components/progress-bar/ngstarter-ui-components-progress-bar.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-progress-bar.mjs","sources":["../../../projects/components/progress-bar/src/progress-bar/progress-bar.ts","../../../projects/components/progress-bar/src/progress-bar/progress-bar.html","../../../projects/components/progress-bar/ngstarter-ui-components-progress-bar.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n computed,\n AfterViewInit,\n OnDestroy,\n inject,\n ElementRef,\n NgZone,\n Renderer2,\n numberAttribute,\n output\n} from '@angular/core';\n\nexport type ProgressBarMode = 'determinate' | 'indeterminate' | 'buffer' | 'query';\n\n@Component({\n selector: 'ngs-progress-bar',\n exportAs: 'ngsProgressBar',\n templateUrl: './progress-bar.html',\n styleUrl: './progress-bar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n 'tabindex': '-1',\n '[attr.aria-valuenow]': 'isIndeterminate() ? null : value()',\n '[attr.mode]': 'mode()',\n 'class': 'ngs-progress-bar',\n '[class.ngs-progress-bar-indeterminate]': 'isIndeterminate()',\n '[style.--ngs-progress-bar-value]': 'value()',\n '[style.--ngs-progress-bar-buffer-value]': 'bufferValue()',\n },\n})\nexport class ProgressBar implements AfterViewInit, OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n private readonly _ngZone = inject(NgZone);\n private readonly _renderer = inject(Renderer2);\n\n readonly color = input<string>('primary');\n readonly value = input(0, { transform: numberAttribute });\n readonly bufferValue = input(0, { transform: numberAttribute });\n readonly mode = input<ProgressBarMode>('determinate');\n\n readonly animationEnd = output<{\n value: number;\n }>();\n\n private _cleanupTransitionEnd?: () => void;\n\n readonly isIndeterminate = computed(() => {\n return this.mode() === 'indeterminate' || this.mode() === 'query';\n });\n\n readonly primaryBarTransform = computed(() => {\n return `scaleX(${this.isIndeterminate() ? 1 : this.value() / 100})`;\n });\n\n readonly bufferBarTransform = computed(() => {\n return `scaleX(${this.mode() === 'buffer' ? this.bufferValue() / 100 : 1})`;\n });\n\n /** @deprecated use bufferBarTransform instead */\n readonly bufferBarFlexBasis = computed(() => {\n return this.bufferBarTransform();\n });\n\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(() => {\n this._cleanupTransitionEnd = this._renderer.listen(\n this._elementRef.nativeElement,\n 'transitionend',\n this._transitionendHandler\n );\n });\n }\n\n ngOnDestroy() {\n this._cleanupTransitionEnd?.();\n }\n\n private _transitionendHandler = (event: TransitionEvent) => {\n if (\n !event.target ||\n !(event.target as HTMLElement).classList.contains('ngs-progress-bar-primary-bar')\n ) {\n return;\n }\n\n if (this.mode() === 'determinate' || this.mode() === 'buffer') {\n this._ngZone.run(() => this.animationEnd.emit({ value: this.value() }));\n }\n };\n}\n","@if (mode() === 'buffer') {\n <div class=\"ngs-progress-bar-track\"></div>\n <div class=\"ngs-progress-bar-buffer-bar\" [style.transform]=\"bufferBarTransform()\"></div>\n} @else {\n <div class=\"ngs-progress-bar-track\"></div>\n}\n\n<div class=\"ngs-progress-bar-primary-bar\" [style.transform]=\"primaryBarTransform()\">\n <span class=\"ngs-progress-bar-inner\"></span>\n</div>\n\n@if (isIndeterminate()) {\n <div class=\"ngs-progress-bar-secondary-bar\">\n <span class=\"ngs-progress-bar-inner\"></span>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, viewChild, inject, ChangeDetectorRef, PLATFORM_ID, signal, EventEmitter,
|
|
2
|
+
import { InjectionToken, viewChild, inject, ChangeDetectorRef, PLATFORM_ID, signal, EventEmitter, ChangeDetectionStrategy, Component, Injector, TemplateRef, Injectable } from '@angular/core';
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { isPlatformBrowser } from '@angular/common';
|
|
5
5
|
import { BasePortalOutlet, CdkPortalOutlet, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
|
|
@@ -173,13 +173,13 @@ class SnackBarContainer extends BasePortalOutlet {
|
|
|
173
173
|
this._onEnter.complete();
|
|
174
174
|
}
|
|
175
175
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SnackBarContainer, deps: [{ token: SnackBarConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
176
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: SnackBarContainer, isStandalone: true, selector: "ngs-snack-bar-container", host: { classAttribute: "snack-bar-container-host" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, isSignal: true }], exportAs: ["ngsSnackBarContainer"], usesInheritance: true, ngImport: i0, template: "<div\n class=\"snack-bar-container\"\n [class.visible]=\"animationState() === 'visible'\"\n [class.hidden-top]=\"animationState() === 'hidden-top'\"\n [class.hidden-bottom]=\"animationState() === 'hidden-bottom'\"\n [class.leaving]=\"leaving()\"\n (transitionend)=\"onTransitionEnd($event)\"\n>\n <ng-template cdkPortalOutlet/>\n</div>\n", styles: [".snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:calc(var(--spacing, .25rem) * 5);max-width:33vw;min-width:344px;min-height:54px;transform-origin:center;padding:0;opacity:0;transition-property:transform,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.snack-bar-container.leaving{transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,1,1)}.snack-bar-container.hidden-top{opacity:0;transform:translateY(-100%)}.snack-bar-container.hidden-bottom{opacity:0;transform:translateY(100%)}.snack-bar-container.visible{opacity:1;transform:translateY(0)}@media(max-width:599px){
|
|
176
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: SnackBarContainer, isStandalone: true, selector: "ngs-snack-bar-container", host: { classAttribute: "snack-bar-container-host" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, isSignal: true }], exportAs: ["ngsSnackBarContainer"], usesInheritance: true, ngImport: i0, template: "<div\n class=\"snack-bar-container\"\n [class.visible]=\"animationState() === 'visible'\"\n [class.hidden-top]=\"animationState() === 'hidden-top'\"\n [class.hidden-bottom]=\"animationState() === 'hidden-bottom'\"\n [class.leaving]=\"leaving()\"\n (transitionend)=\"onTransitionEnd($event)\"\n>\n <ng-template cdkPortalOutlet/>\n</div>\n", styles: [":host .snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:calc(var(--spacing, .25rem) * 5);max-width:33vw;min-width:344px;min-height:54px;transform-origin:center;padding:0;opacity:0;transition-property:transform,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}:host .snack-bar-container.leaving{transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,1,1)}:host .snack-bar-container.hidden-top{opacity:0;transform:translateY(-100%)}:host .snack-bar-container.hidden-bottom{opacity:0;transform:translateY(100%)}:host .snack-bar-container.visible{opacity:1;transform:translateY(0)}@media(max-width:599px){:host .snack-bar-container{min-width:100%;margin:0;border-radius:0}}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
177
177
|
}
|
|
178
178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SnackBarContainer, decorators: [{
|
|
179
179
|
type: Component,
|
|
180
|
-
args: [{ selector: 'ngs-snack-bar-container', exportAs: 'ngsSnackBarContainer', standalone: true, imports: [CdkPortalOutlet], changeDetection: ChangeDetectionStrategy.OnPush,
|
|
180
|
+
args: [{ selector: 'ngs-snack-bar-container', exportAs: 'ngsSnackBarContainer', standalone: true, imports: [CdkPortalOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
181
181
|
'class': 'snack-bar-container-host'
|
|
182
|
-
}, template: "<div\n class=\"snack-bar-container\"\n [class.visible]=\"animationState() === 'visible'\"\n [class.hidden-top]=\"animationState() === 'hidden-top'\"\n [class.hidden-bottom]=\"animationState() === 'hidden-bottom'\"\n [class.leaving]=\"leaving()\"\n (transitionend)=\"onTransitionEnd($event)\"\n>\n <ng-template cdkPortalOutlet/>\n</div>\n", styles: [".snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:calc(var(--spacing, .25rem) * 5);max-width:33vw;min-width:344px;min-height:54px;transform-origin:center;padding:0;opacity:0;transition-property:transform,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.snack-bar-container.leaving{transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,1,1)}.snack-bar-container.hidden-top{opacity:0;transform:translateY(-100%)}.snack-bar-container.hidden-bottom{opacity:0;transform:translateY(100%)}.snack-bar-container.visible{opacity:1;transform:translateY(0)}@media(max-width:599px){
|
|
182
|
+
}, template: "<div\n class=\"snack-bar-container\"\n [class.visible]=\"animationState() === 'visible'\"\n [class.hidden-top]=\"animationState() === 'hidden-top'\"\n [class.hidden-bottom]=\"animationState() === 'hidden-bottom'\"\n [class.leaving]=\"leaving()\"\n (transitionend)=\"onTransitionEnd($event)\"\n>\n <ng-template cdkPortalOutlet/>\n</div>\n", styles: [":host .snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:calc(var(--spacing, .25rem) * 5);max-width:33vw;min-width:344px;min-height:54px;transform-origin:center;padding:0;opacity:0;transition-property:transform,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}:host .snack-bar-container.leaving{transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,1,1)}:host .snack-bar-container.hidden-top{opacity:0;transform:translateY(-100%)}:host .snack-bar-container.hidden-bottom{opacity:0;transform:translateY(100%)}:host .snack-bar-container.visible{opacity:1;transform:translateY(0)}@media(max-width:599px){:host .snack-bar-container{min-width:100%;margin:0;border-radius:0}}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
183
183
|
}], ctorParameters: () => [{ type: SnackBarConfig }], propDecorators: { _portalOutlet: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkPortalOutlet), { isSignal: true }] }] } });
|
|
184
184
|
|
|
185
185
|
class SimpleSnackBar {
|
|
@@ -190,13 +190,13 @@ class SimpleSnackBar {
|
|
|
190
190
|
this.snackBarRef.dismiss();
|
|
191
191
|
}
|
|
192
192
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SimpleSnackBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
193
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: SimpleSnackBar, isStandalone: true, selector: "ngs-simple-snack-bar", exportAs: ["ngsSimpleSnackBar"], ngImport: i0, template: "<span class=\"simple-snack-bar-message\">{{ data.message }}</span>\n@if (data.action) {\n <div class=\"simple-snack-bar-action\">\n <button ngsButton=\"filled\" (click)=\"action()\">{{ data.action }}</button>\n </div>\n}\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;font-size:var(--ngs-font-size-sm);color:var(--ngs-color-neutral-100);border-radius
|
|
193
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: SimpleSnackBar, isStandalone: true, selector: "ngs-simple-snack-bar", exportAs: ["ngsSimpleSnackBar"], ngImport: i0, template: "<span class=\"simple-snack-bar-message\">{{ data.message }}</span>\n@if (data.action) {\n <div class=\"simple-snack-bar-action\">\n <button ngsButton=\"filled\" (click)=\"action()\">{{ data.action }}</button>\n </div>\n}\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;font-size:var(--ngs-font-size-sm);color:var(--ngs-color-neutral-100);border-radius:.75rem;padding:0 calc(var(--spacing, .25rem) * 3);background:var(--ngs-color-neutral-950)}:host .simple-snack-bar-message{padding:14px 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:1 1 auto}:host .simple-snack-bar-action{flex:0 0 auto;margin-left:8px}:host:has(.simple-snack-bar-action){padding-inline-end:calc(var(--spacing, .25rem) * 1)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: Button, selector: " button[ngsButton], button[ngsIconButton], a[ngsButton], a[ngsIconButton] ", inputs: ["ngsButton", "ngsIconButton", "loading", "disabled", "disabledInteractive", "disableRipple", "reverse", "fullWidth", "hideTextOnMobile"], exportAs: ["ngsButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
194
194
|
}
|
|
195
195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: SimpleSnackBar, decorators: [{
|
|
196
196
|
type: Component,
|
|
197
197
|
args: [{ selector: 'ngs-simple-snack-bar', exportAs: 'ngsSimpleSnackBar', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
198
198
|
Button
|
|
199
|
-
], template: "<span class=\"simple-snack-bar-message\">{{ data.message }}</span>\n@if (data.action) {\n <div class=\"simple-snack-bar-action\">\n <button ngsButton=\"filled\" (click)=\"action()\">{{ data.action }}</button>\n </div>\n}\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;font-size:var(--ngs-font-size-sm);color:var(--ngs-color-neutral-100);border-radius
|
|
199
|
+
], template: "<span class=\"simple-snack-bar-message\">{{ data.message }}</span>\n@if (data.action) {\n <div class=\"simple-snack-bar-action\">\n <button ngsButton=\"filled\" (click)=\"action()\">{{ data.action }}</button>\n </div>\n}\n", styles: [":host{display:flex;justify-content:space-between;align-items:center;font-size:var(--ngs-font-size-sm);color:var(--ngs-color-neutral-100);border-radius:.75rem;padding:0 calc(var(--spacing, .25rem) * 3);background:var(--ngs-color-neutral-950)}:host .simple-snack-bar-message{padding:14px 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:1 1 auto}:host .simple-snack-bar-action{flex:0 0 auto;margin-left:8px}:host:has(.simple-snack-bar-action){padding-inline-end:calc(var(--spacing, .25rem) * 1)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
200
200
|
}] });
|
|
201
201
|
|
|
202
202
|
class SnackBar {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-snack-bar.mjs","sources":["../../../projects/components/snack-bar/src/snack-bar/snack-bar-config.ts","../../../projects/components/snack-bar/src/snack-bar/snack-bar-ref.ts","../../../projects/components/snack-bar/src/snack-bar/snack-bar-container/snack-bar-container.ts","../../../projects/components/snack-bar/src/snack-bar/snack-bar-container/snack-bar-container.html","../../../projects/components/snack-bar/src/snack-bar/simple-snack-bar/simple-snack-bar.ts","../../../projects/components/snack-bar/src/snack-bar/simple-snack-bar/simple-snack-bar.html","../../../projects/components/snack-bar/src/snack-bar/snack-bar.service.ts","../../../projects/components/snack-bar/ngstarter-ui-components-snack-bar.ts"],"sourcesContent":["import { InjectionToken, ViewContainerRef, Injectable } from '@angular/core';\nimport { AriaLivePoliteness } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport const SNACK_BAR_DATA = new InjectionToken<any>('SnackBarData');\n\n/** Injection token that can be used to specify default snack bar. */\nexport const SNACK_BAR_CONFIG = new InjectionToken<SnackBarConfig>('SnackBarConfig');\n\n/** Function to provide the snack bar configuration. */\nexport function provideSnackBarConfig(config: SnackBarConfig) {\n return {\n provide: SNACK_BAR_CONFIG,\n useValue: config,\n };\n}\n\nexport type SnackBarHorizontalPosition = 'start' | 'center' | 'end' | 'left' | 'right';\nexport type SnackBarVerticalPosition = 'top' | 'bottom';\n\nexport class SnackBarConfig<D = any> {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n politeness?: AriaLivePoliteness = 'assertive';\n\n /** Message to be announced by the LiveAnnouncer. */\n announcementMessage?: string = '';\n\n /** The view container that should be used for the snack bar's origin. */\n viewContainerRef?: ViewContainerRef;\n\n /** The duration in milliseconds to wait before automatically closing the snack bar. */\n duration?: number = 0;\n\n /** Extra CSS classes to be added to the snack bar container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the snack bar. */\n direction?: Direction;\n\n /** The horizontal position to place the snack bar. */\n horizontalPosition?: SnackBarHorizontalPosition = 'center';\n\n /** The vertical position to place the snack bar. */\n verticalPosition?: SnackBarVerticalPosition = 'bottom';\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Injectable } from '@angular/core';\n\nexport class SnackBarRef<T> {\n /** The instance of the component making up the content of the snack bar. */\n instance!: T;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<void>();\n\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n constructor(public containerInstance: any, private _overlayRef: OverlayRef) {\n containerInstance._onExit.subscribe(() => {\n this._overlayRef.dispose();\n this._afterDismissed.next();\n this._afterDismissed.complete();\n });\n\n containerInstance._onEnter.subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n }\n\n /** Dismisses the snack bar. */\n dismiss(): void {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n }\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed(): Observable<void> {\n return this._afterDismissed.asObservable();\n }\n\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened(): Observable<void> {\n return this._afterOpened.asObservable();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n OnDestroy,\n signal,\n PLATFORM_ID,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { SnackBarConfig } from '../snack-bar-config';\n\n@Component({\n selector: 'ngs-snack-bar-container',\n exportAs: 'ngsSnackBarContainer',\n templateUrl: './snack-bar-container.html',\n styleUrl: './snack-bar-container.scss',\n standalone: true,\n imports: [CdkPortalOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'snack-bar-container-host'\n }\n})\nexport class SnackBarContainer extends BasePortalOutlet implements OnDestroy {\n readonly _portalOutlet = viewChild.required(CdkPortalOutlet);\n private _cdr = inject(ChangeDetectorRef);\n private _platformId = inject(PLATFORM_ID);\n\n /** State of the snack bar animation. */\n readonly animationState = signal<'void' | 'visible' | 'hidden-top' | 'hidden-bottom'>('void');\n readonly leaving = signal(false);\n\n /** Event emitted when the snack bar exit animation is finished. */\n readonly _onExit = new EventEmitter<void>();\n\n /** Event emitted when the snack bar enter animation is finished. */\n readonly _onEnter = new EventEmitter<void>();\n\n constructor(public snackBarConfig: SnackBarConfig) {\n super();\n if (this.snackBarConfig.verticalPosition === 'top') {\n this.animationState.set('hidden-top');\n } else {\n this.animationState.set('hidden-bottom');\n }\n }\n\n /** Attach a component portal as content to this snack bar container. */\n override attachComponentPortal<T>(portal: ComponentPortal<T>): any {\n this._assertNotAttached();\n return this._portalOutlet().attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this snack bar container. */\n override attachTemplatePortal<C>(portal: TemplatePortal<C>): any {\n this._assertNotAttached();\n return this._portalOutlet().attachTemplatePortal(portal);\n }\n\n /** Begin animation of snack bar entrance into view. */\n enter(): void {\n // Ensure we are not in leaving state\n this.leaving.set(false);\n\n if (!isPlatformBrowser(this._platformId)) {\n this.animationState.set('visible');\n this._cdr.markForCheck();\n return;\n }\n\n // Use requestAnimationFrame to ensure the initial state (hidden-top/bottom)\n // is applied to the DOM before we change it to 'visible'.\n // We use two nested requestAnimationFrames to ensure at least one paint cycle has occurred.\n // The first rAF captures the current state, the second one allows for the state to be applied\n // and then triggers the transition.\n requestAnimationFrame(() => {\n // Force a reflow to ensure the initial styles are applied.\n // This is sometimes necessary in addition to rAF in some browsers/environments.\n if (typeof document !== 'undefined' && document.body) {\n void document.body.offsetHeight;\n }\n requestAnimationFrame(() => {\n this.animationState.set('visible');\n this._cdr.markForCheck();\n });\n });\n }\n\n /** Begin animation of snack bar exit from view. */\n exit(): void {\n const initialState = this.animationState();\n const targetState = this.snackBarConfig.verticalPosition === 'top' ? 'hidden-top' : 'hidden-bottom';\n\n if (initialState === targetState) {\n this._onExit.emit();\n return;\n }\n\n // Mark as leaving to use faster transition timing\n this.leaving.set(true);\n this.animationState.set(targetState);\n this._cdr.markForCheck();\n }\n\n /** Handle end of transition. */\n onTransitionEnd(event: TransitionEvent) {\n if (event.propertyName !== 'transform' && event.propertyName !== 'opacity') {\n return;\n }\n const state = this.animationState();\n if (state === 'visible' && event.propertyName === 'transform') {\n this._onEnter.emit();\n } else if ((state === 'hidden-top' || state === 'hidden-bottom')) {\n if (event.propertyName === 'opacity' || event.propertyName === 'transform') {\n this._onExit.emit();\n }\n }\n }\n\n /** Asserts that no content is already attached to the container. */\n private _assertNotAttached() {\n if (this._portalOutlet().hasAttached()) {\n throw Error('Attempting to attach snack bar content after content has already been attached.');\n }\n }\n\n ngOnDestroy() {\n this._onExit.complete();\n this._onEnter.complete();\n }\n}\n","<div\n class=\"snack-bar-container\"\n [class.visible]=\"animationState() === 'visible'\"\n [class.hidden-top]=\"animationState() === 'hidden-top'\"\n [class.hidden-bottom]=\"animationState() === 'hidden-bottom'\"\n [class.leaving]=\"leaving()\"\n (transitionend)=\"onTransitionEnd($event)\"\n>\n <ng-template cdkPortalOutlet/>\n</div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { SNACK_BAR_DATA } from '../snack-bar-config';\nimport { SnackBarRef } from '../snack-bar-ref';\nimport { Button } from '@ngstarter-ui/components/button';\n\n@Component({\n selector: 'ngs-simple-snack-bar',\n exportAs: 'ngsSimpleSnackBar',\n templateUrl: './simple-snack-bar.html',\n styleUrl: './simple-snack-bar.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n Button\n ]\n})\nexport class SimpleSnackBar {\n readonly snackBarRef = inject(SnackBarRef);\n readonly data = inject(SNACK_BAR_DATA);\n\n /** Performs the action on the snack bar. */\n action(): void {\n this.snackBarRef.dismiss();\n }\n}\n","<span class=\"simple-snack-bar-message\">{{ data.message }}</span>\n@if (data.action) {\n <div class=\"simple-snack-bar-action\">\n <button ngsButton=\"filled\" (click)=\"action()\">{{ data.action }}</button>\n </div>\n}\n","import {\n Injectable,\n Injector,\n ComponentRef,\n TemplateRef,\n Type,\n inject,\n} from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { SnackBarConfig, SNACK_BAR_DATA, SNACK_BAR_CONFIG } from './snack-bar-config';\nimport { SnackBarRef } from './snack-bar-ref';\nimport { SnackBarContainer } from './snack-bar-container/snack-bar-container';\nimport { SimpleSnackBar } from './simple-snack-bar/simple-snack-bar';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SnackBar {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _parentSnackBar = inject(SnackBar, { optional: true, skipSelf: true });\n private _defaultConfig = inject(SNACK_BAR_CONFIG, { optional: true }) ?? new SnackBarConfig();\n\n /** Reference to the currently-opened snack bar. */\n private _openedSnackBarRef: SnackBarRef<any> | null = null;\n\n /**\n * Opens a snack bar with a message and an optional action.\n */\n open(message: string, action?: string, config?: SnackBarConfig): SnackBarRef<SimpleSnackBar> {\n const _config = { ...this._defaultConfig, ...config };\n _config.data = { message, action };\n\n return this.openFromComponent(SimpleSnackBar, _config);\n }\n\n /**\n * Opens a snack bar with a custom component.\n */\n openFromComponent<T>(component: Type<T>, config?: SnackBarConfig): SnackBarRef<T> {\n return this._attach(component, config) as SnackBarRef<T>;\n }\n\n /**\n * Opens a snack bar with a custom template.\n */\n openFromTemplate(template: TemplateRef<any>, config?: SnackBarConfig): SnackBarRef<any> {\n return this._attach(template, config);\n }\n\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss(): void {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n\n /**\n * Attaches the snack bar container and the appropriate content.\n */\n private _attach<T>(content: Type<T> | TemplateRef<T>, config?: SnackBarConfig): SnackBarRef<T | any> {\n const _config = { ...this._defaultConfig, ...config };\n const overlayRef = this._createOverlay(_config);\n const container = this._attachContainer(overlayRef, _config);\n const snackBarRef = new SnackBarRef<T | any>(container, overlayRef);\n\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null!, {\n $implicit: _config.data,\n snackBarRef,\n } as any);\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this._createInjector(_config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal(portal);\n snackBarRef.instance = contentRef.instance;\n }\n\n // If there is another snack bar already opened, dismiss it before showing the new one.\n if (this._openedSnackBarRef) {\n const oldSnackBarRef = this._openedSnackBarRef;\n oldSnackBarRef.afterDismissed().subscribe(() => {\n container.enter();\n });\n oldSnackBarRef.dismiss();\n } else {\n container.enter();\n }\n\n this._openedSnackBarRef = snackBarRef;\n snackBarRef.afterDismissed().subscribe(() => {\n if (this._openedSnackBarRef === snackBarRef) {\n this._openedSnackBarRef = null;\n }\n });\n\n if (_config.duration && _config.duration > 0) {\n setTimeout(() => snackBarRef.dismiss(), _config.duration);\n }\n\n return snackBarRef;\n }\n\n /**\n * Creates a new overlay and configures it for the snack bar.\n */\n private _createOverlay(config: SnackBarConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n direction: config.direction,\n hasBackdrop: false,\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n positionStrategy: this._overlay.position()\n .global()\n .centerHorizontally()\n .bottom('0'),\n });\n\n // Custom positioning based on config\n const positionStrategy = this._overlay.position().global();\n\n if (config.horizontalPosition === 'start' || config.horizontalPosition === 'left') {\n positionStrategy.left('0');\n } else if (config.horizontalPosition === 'end' || config.horizontalPosition === 'right') {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n\n overlayConfig.positionStrategy = positionStrategy;\n\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Attaches the snack bar container to the overlay.\n */\n private _attachContainer(overlayRef: OverlayRef, config: SnackBarConfig): SnackBarContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{ provide: SnackBarConfig, useValue: config }],\n });\n\n const containerPortal = new ComponentPortal(SnackBarContainer, config.viewContainerRef, injector);\n const containerRef: ComponentRef<SnackBarContainer> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n /**\n * Creates an injector to be used inside of a snack bar component.\n */\n private _createInjector<T>(config: SnackBarConfig, snackBarRef: SnackBarRef<T>): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [\n { provide: SnackBarRef, useValue: snackBarRef },\n { provide: SNACK_BAR_DATA, useValue: config.data },\n ],\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SnackBarConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-snack-bar.mjs","sources":["../../../projects/components/snack-bar/src/snack-bar/snack-bar-config.ts","../../../projects/components/snack-bar/src/snack-bar/snack-bar-ref.ts","../../../projects/components/snack-bar/src/snack-bar/snack-bar-container/snack-bar-container.ts","../../../projects/components/snack-bar/src/snack-bar/snack-bar-container/snack-bar-container.html","../../../projects/components/snack-bar/src/snack-bar/simple-snack-bar/simple-snack-bar.ts","../../../projects/components/snack-bar/src/snack-bar/simple-snack-bar/simple-snack-bar.html","../../../projects/components/snack-bar/src/snack-bar/snack-bar.service.ts","../../../projects/components/snack-bar/ngstarter-ui-components-snack-bar.ts"],"sourcesContent":["import { InjectionToken, ViewContainerRef, Injectable } from '@angular/core';\nimport { AriaLivePoliteness } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport const SNACK_BAR_DATA = new InjectionToken<any>('SnackBarData');\n\n/** Injection token that can be used to specify default snack bar. */\nexport const SNACK_BAR_CONFIG = new InjectionToken<SnackBarConfig>('SnackBarConfig');\n\n/** Function to provide the snack bar configuration. */\nexport function provideSnackBarConfig(config: SnackBarConfig) {\n return {\n provide: SNACK_BAR_CONFIG,\n useValue: config,\n };\n}\n\nexport type SnackBarHorizontalPosition = 'start' | 'center' | 'end' | 'left' | 'right';\nexport type SnackBarVerticalPosition = 'top' | 'bottom';\n\nexport class SnackBarConfig<D = any> {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n politeness?: AriaLivePoliteness = 'assertive';\n\n /** Message to be announced by the LiveAnnouncer. */\n announcementMessage?: string = '';\n\n /** The view container that should be used for the snack bar's origin. */\n viewContainerRef?: ViewContainerRef;\n\n /** The duration in milliseconds to wait before automatically closing the snack bar. */\n duration?: number = 0;\n\n /** Extra CSS classes to be added to the snack bar container. */\n panelClass?: string | string[];\n\n /** Text layout direction for the snack bar. */\n direction?: Direction;\n\n /** The horizontal position to place the snack bar. */\n horizontalPosition?: SnackBarHorizontalPosition = 'center';\n\n /** The vertical position to place the snack bar. */\n verticalPosition?: SnackBarVerticalPosition = 'bottom';\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n}\n","import { Observable, Subject } from 'rxjs';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Injectable } from '@angular/core';\n\nexport class SnackBarRef<T> {\n /** The instance of the component making up the content of the snack bar. */\n instance!: T;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<void>();\n\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n constructor(public containerInstance: any, private _overlayRef: OverlayRef) {\n containerInstance._onExit.subscribe(() => {\n this._overlayRef.dispose();\n this._afterDismissed.next();\n this._afterDismissed.complete();\n });\n\n containerInstance._onEnter.subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n }\n\n /** Dismisses the snack bar. */\n dismiss(): void {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n }\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed(): Observable<void> {\n return this._afterDismissed.asObservable();\n }\n\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened(): Observable<void> {\n return this._afterOpened.asObservable();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n OnDestroy,\n signal,\n PLATFORM_ID,\n viewChild\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { SnackBarConfig } from '../snack-bar-config';\n\n@Component({\n selector: 'ngs-snack-bar-container',\n exportAs: 'ngsSnackBarContainer',\n templateUrl: './snack-bar-container.html',\n styleUrl: './snack-bar-container.scss',\n standalone: true,\n imports: [CdkPortalOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'snack-bar-container-host'\n }\n})\nexport class SnackBarContainer extends BasePortalOutlet implements OnDestroy {\n readonly _portalOutlet = viewChild.required(CdkPortalOutlet);\n private _cdr = inject(ChangeDetectorRef);\n private _platformId = inject(PLATFORM_ID);\n\n /** State of the snack bar animation. */\n readonly animationState = signal<'void' | 'visible' | 'hidden-top' | 'hidden-bottom'>('void');\n readonly leaving = signal(false);\n\n /** Event emitted when the snack bar exit animation is finished. */\n readonly _onExit = new EventEmitter<void>();\n\n /** Event emitted when the snack bar enter animation is finished. */\n readonly _onEnter = new EventEmitter<void>();\n\n constructor(public snackBarConfig: SnackBarConfig) {\n super();\n if (this.snackBarConfig.verticalPosition === 'top') {\n this.animationState.set('hidden-top');\n } else {\n this.animationState.set('hidden-bottom');\n }\n }\n\n /** Attach a component portal as content to this snack bar container. */\n override attachComponentPortal<T>(portal: ComponentPortal<T>): any {\n this._assertNotAttached();\n return this._portalOutlet().attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this snack bar container. */\n override attachTemplatePortal<C>(portal: TemplatePortal<C>): any {\n this._assertNotAttached();\n return this._portalOutlet().attachTemplatePortal(portal);\n }\n\n /** Begin animation of snack bar entrance into view. */\n enter(): void {\n // Ensure we are not in leaving state\n this.leaving.set(false);\n\n if (!isPlatformBrowser(this._platformId)) {\n this.animationState.set('visible');\n this._cdr.markForCheck();\n return;\n }\n\n // Use requestAnimationFrame to ensure the initial state (hidden-top/bottom)\n // is applied to the DOM before we change it to 'visible'.\n // We use two nested requestAnimationFrames to ensure at least one paint cycle has occurred.\n // The first rAF captures the current state, the second one allows for the state to be applied\n // and then triggers the transition.\n requestAnimationFrame(() => {\n // Force a reflow to ensure the initial styles are applied.\n // This is sometimes necessary in addition to rAF in some browsers/environments.\n if (typeof document !== 'undefined' && document.body) {\n void document.body.offsetHeight;\n }\n requestAnimationFrame(() => {\n this.animationState.set('visible');\n this._cdr.markForCheck();\n });\n });\n }\n\n /** Begin animation of snack bar exit from view. */\n exit(): void {\n const initialState = this.animationState();\n const targetState = this.snackBarConfig.verticalPosition === 'top' ? 'hidden-top' : 'hidden-bottom';\n\n if (initialState === targetState) {\n this._onExit.emit();\n return;\n }\n\n // Mark as leaving to use faster transition timing\n this.leaving.set(true);\n this.animationState.set(targetState);\n this._cdr.markForCheck();\n }\n\n /** Handle end of transition. */\n onTransitionEnd(event: TransitionEvent) {\n if (event.propertyName !== 'transform' && event.propertyName !== 'opacity') {\n return;\n }\n const state = this.animationState();\n if (state === 'visible' && event.propertyName === 'transform') {\n this._onEnter.emit();\n } else if ((state === 'hidden-top' || state === 'hidden-bottom')) {\n if (event.propertyName === 'opacity' || event.propertyName === 'transform') {\n this._onExit.emit();\n }\n }\n }\n\n /** Asserts that no content is already attached to the container. */\n private _assertNotAttached() {\n if (this._portalOutlet().hasAttached()) {\n throw Error('Attempting to attach snack bar content after content has already been attached.');\n }\n }\n\n ngOnDestroy() {\n this._onExit.complete();\n this._onEnter.complete();\n }\n}\n","<div\n class=\"snack-bar-container\"\n [class.visible]=\"animationState() === 'visible'\"\n [class.hidden-top]=\"animationState() === 'hidden-top'\"\n [class.hidden-bottom]=\"animationState() === 'hidden-bottom'\"\n [class.leaving]=\"leaving()\"\n (transitionend)=\"onTransitionEnd($event)\"\n>\n <ng-template cdkPortalOutlet/>\n</div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { SNACK_BAR_DATA } from '../snack-bar-config';\nimport { SnackBarRef } from '../snack-bar-ref';\nimport { Button } from '@ngstarter-ui/components/button';\n\n@Component({\n selector: 'ngs-simple-snack-bar',\n exportAs: 'ngsSimpleSnackBar',\n templateUrl: './simple-snack-bar.html',\n styleUrl: './simple-snack-bar.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n Button\n ]\n})\nexport class SimpleSnackBar {\n readonly snackBarRef = inject(SnackBarRef);\n readonly data = inject(SNACK_BAR_DATA);\n\n /** Performs the action on the snack bar. */\n action(): void {\n this.snackBarRef.dismiss();\n }\n}\n","<span class=\"simple-snack-bar-message\">{{ data.message }}</span>\n@if (data.action) {\n <div class=\"simple-snack-bar-action\">\n <button ngsButton=\"filled\" (click)=\"action()\">{{ data.action }}</button>\n </div>\n}\n","import {\n Injectable,\n Injector,\n ComponentRef,\n TemplateRef,\n Type,\n inject,\n} from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport { SnackBarConfig, SNACK_BAR_DATA, SNACK_BAR_CONFIG } from './snack-bar-config';\nimport { SnackBarRef } from './snack-bar-ref';\nimport { SnackBarContainer } from './snack-bar-container/snack-bar-container';\nimport { SimpleSnackBar } from './simple-snack-bar/simple-snack-bar';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SnackBar {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _parentSnackBar = inject(SnackBar, { optional: true, skipSelf: true });\n private _defaultConfig = inject(SNACK_BAR_CONFIG, { optional: true }) ?? new SnackBarConfig();\n\n /** Reference to the currently-opened snack bar. */\n private _openedSnackBarRef: SnackBarRef<any> | null = null;\n\n /**\n * Opens a snack bar with a message and an optional action.\n */\n open(message: string, action?: string, config?: SnackBarConfig): SnackBarRef<SimpleSnackBar> {\n const _config = { ...this._defaultConfig, ...config };\n _config.data = { message, action };\n\n return this.openFromComponent(SimpleSnackBar, _config);\n }\n\n /**\n * Opens a snack bar with a custom component.\n */\n openFromComponent<T>(component: Type<T>, config?: SnackBarConfig): SnackBarRef<T> {\n return this._attach(component, config) as SnackBarRef<T>;\n }\n\n /**\n * Opens a snack bar with a custom template.\n */\n openFromTemplate(template: TemplateRef<any>, config?: SnackBarConfig): SnackBarRef<any> {\n return this._attach(template, config);\n }\n\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss(): void {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n\n /**\n * Attaches the snack bar container and the appropriate content.\n */\n private _attach<T>(content: Type<T> | TemplateRef<T>, config?: SnackBarConfig): SnackBarRef<T | any> {\n const _config = { ...this._defaultConfig, ...config };\n const overlayRef = this._createOverlay(_config);\n const container = this._attachContainer(overlayRef, _config);\n const snackBarRef = new SnackBarRef<T | any>(container, overlayRef);\n\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null!, {\n $implicit: _config.data,\n snackBarRef,\n } as any);\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this._createInjector(_config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal(portal);\n snackBarRef.instance = contentRef.instance;\n }\n\n // If there is another snack bar already opened, dismiss it before showing the new one.\n if (this._openedSnackBarRef) {\n const oldSnackBarRef = this._openedSnackBarRef;\n oldSnackBarRef.afterDismissed().subscribe(() => {\n container.enter();\n });\n oldSnackBarRef.dismiss();\n } else {\n container.enter();\n }\n\n this._openedSnackBarRef = snackBarRef;\n snackBarRef.afterDismissed().subscribe(() => {\n if (this._openedSnackBarRef === snackBarRef) {\n this._openedSnackBarRef = null;\n }\n });\n\n if (_config.duration && _config.duration > 0) {\n setTimeout(() => snackBarRef.dismiss(), _config.duration);\n }\n\n return snackBarRef;\n }\n\n /**\n * Creates a new overlay and configures it for the snack bar.\n */\n private _createOverlay(config: SnackBarConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n direction: config.direction,\n hasBackdrop: false,\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n positionStrategy: this._overlay.position()\n .global()\n .centerHorizontally()\n .bottom('0'),\n });\n\n // Custom positioning based on config\n const positionStrategy = this._overlay.position().global();\n\n if (config.horizontalPosition === 'start' || config.horizontalPosition === 'left') {\n positionStrategy.left('0');\n } else if (config.horizontalPosition === 'end' || config.horizontalPosition === 'right') {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n\n overlayConfig.positionStrategy = positionStrategy;\n\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Attaches the snack bar container to the overlay.\n */\n private _attachContainer(overlayRef: OverlayRef, config: SnackBarConfig): SnackBarContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{ provide: SnackBarConfig, useValue: config }],\n });\n\n const containerPortal = new ComponentPortal(SnackBarContainer, config.viewContainerRef, injector);\n const containerRef: ComponentRef<SnackBarContainer> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n /**\n * Creates an injector to be used inside of a snack bar component.\n */\n private _createInjector<T>(config: SnackBarConfig, snackBarRef: SnackBarRef<T>): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [\n { provide: SnackBarRef, useValue: snackBarRef },\n { provide: SNACK_BAR_DATA, useValue: config.data },\n ],\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SnackBarConfig"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, contentChild, forwardRef, Inject, Component, input, contentChildren
|
|
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';
|
|
@@ -65,11 +65,25 @@ class Stepper extends CdkStepper {
|
|
|
65
65
|
super.ngAfterContentInit();
|
|
66
66
|
}
|
|
67
67
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Stepper, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
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 } },
|
|
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"] }] });
|
|
69
74
|
}
|
|
70
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: Stepper, decorators: [{
|
|
71
76
|
type: Component,
|
|
72
|
-
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"] }]
|
|
73
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 }] }] } });
|
|
74
88
|
|
|
75
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, forwardRef, Inject } from '@angular/core';\nimport { CdkStep } from '@angular/cdk/stepper';\nimport { StepLabel } from '../step-label';\nimport { Stepper } from '../stepper/stepper';\n\n@Component({\n selector: 'ngs-step',\n exportAs: 'ngsStep',\n templateUrl: './step.html',\n styleUrl: './step.scss',\n providers: [\n {\n provide: CdkStep,\n useExisting: Step\n }\n ],\n host: {\n 'class': 'ngs-step'\n }\n})\nexport class Step extends CdkStep {\n readonly ngsStepLabel = contentChild(StepLabel);\n\n constructor(@Inject(forwardRef(() => Stepper)) stepper: Stepper) {\n super(stepper);\n }\n}\n","<ng-template>\n <ng-content />\n</ng-template>\n","import { Component, input, ViewEncapsulation, contentChildren } from '@angular/core';\nimport { CdkStepper, StepperOrientation } from '@angular/cdk/stepper';\nimport { Step } from '../step/step';\nimport { StepLabel } from '../step-label';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngs-stepper',\n exportAs: 'ngsStepper',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './stepper.html',\n styleUrl: './stepper.scss',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkStepper, useExisting: Stepper }],\n})\nexport class Stepper extends CdkStepper {\n headerPosition = input<'top' | 'bottom'>('top');\n labelPosition = input<'top' | 'bottom'>('top');\n\n private _stepperOrientation: StepperOrientation = 'horizontal';\n\n override get orientation(): StepperOrientation {\n return this._stepperOrientation;\n }\n override set orientation(value: StepperOrientation) {\n this._stepperOrientation = value;\n }\n\n // Use a separate signal for template iteration to avoid overriding CdkStepper's QueryList `_steps`.\n readonly stepItems = contentChildren(Step, { descendants: true });\n readonly _stepLabels = contentChildren(StepLabel, { descendants: true });\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n}\n","<div class=\"ngs-stepper\"\n [class.ngs-stepper-vertical]=\"orientation === 'vertical'\"\n [class.ngs-stepper-horizontal]=\"orientation === 'horizontal'\"\n [class.ngs-stepper-header-bottom]=\"headerPosition() === 'bottom'\">\n @if (orientation === 'horizontal') {\n <div class=\"ngs-stepper-header-container\" [class.ngs-stepper-label-bottom-container]=\"labelPosition() === 'bottom'\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n [class.ngs-stepper-label-bottom]=\"labelPosition() === 'bottom'\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n @if (i < stepItems().length - 1 && labelPosition() !== 'bottom') {\n <div class=\"ngs-stepper-line\"></div>\n }\n }\n </div>\n\n <div class=\"ngs-stepper-content-container\">\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n }\n </div>\n } @else {\n @for (step of stepItems(); track step; let i = $index) {\n <div class=\"ngs-stepper-header\"\n [class.ngs-stepper-header-active]=\"selectedIndex === i\"\n [class.ngs-stepper-header-completed]=\"step.completed\"\n (click)=\"step.select()\"\n role=\"tab\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-controls]=\"_getStepContentId(i)\">\n <div class=\"ngs-stepper-icon\">\n @if (step.completed) {\n <svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\">\n <path fill=\"currentColor\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"/>\n </svg>\n } @else {\n {{ i + 1 }}\n }\n </div>\n <div class=\"ngs-stepper-label\">\n @if (step.ngsStepLabel(); as stepLabel) {\n <ng-container [ngTemplateOutlet]=\"stepLabel.template\" />\n } @else {\n {{ step.label }}\n }\n </div>\n </div>\n <div class=\"ngs-stepper-content-wrapper\" [class.ngs-stepper-last-step]=\"i === stepItems().length - 1\">\n <div class=\"ngs-stepper-vertical-line\"></div>\n <div class=\"ngs-stepper-content\"\n [id]=\"_getStepContentId(i)\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [hidden]=\"selectedIndex !== i\">\n <ng-container [ngTemplateOutlet]=\"step.content\" />\n </div>\n </div>\n }\n }\n</div>\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperNext } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperNext]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperNext extends CdkStepperNext {\n override type: string = 'submit';\n}\n","import { Directive, input } from '@angular/core';\nimport { CdkStepperPrevious } from '@angular/cdk/stepper';\n\n@Directive({\n selector: 'button[ngsStepperPrevious]',\n host: {\n '[type]': 'type',\n },\n standalone: true\n})\nexport class StepperPrevious extends CdkStepperPrevious {\n override type: string = 'button';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
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 {
|