@lumston/ds-angular 0.0.7 → 0.0.8
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/fesm2022/lumston-ds-angular-src-data-display.mjs +215 -0
- package/fesm2022/lumston-ds-angular-src-data-display.mjs.map +1 -0
- package/fesm2022/lumston-ds-angular-src-dropdown.mjs +94 -0
- package/fesm2022/lumston-ds-angular-src-dropdown.mjs.map +1 -0
- package/fesm2022/lumston-ds-angular-src-feedback.mjs +400 -0
- package/fesm2022/lumston-ds-angular-src-feedback.mjs.map +1 -0
- package/fesm2022/lumston-ds-angular-src-icon.mjs +148 -0
- package/fesm2022/lumston-ds-angular-src-icon.mjs.map +1 -0
- package/fesm2022/lumston-ds-angular-src-inputs.mjs +1132 -0
- package/fesm2022/lumston-ds-angular-src-inputs.mjs.map +1 -0
- package/fesm2022/lumston-ds-angular-src-navigation.mjs +473 -0
- package/fesm2022/lumston-ds-angular-src-navigation.mjs.map +1 -0
- package/fesm2022/lumston-ds-angular-src-overlay.mjs +1038 -0
- package/fesm2022/lumston-ds-angular-src-overlay.mjs.map +1 -0
- package/fesm2022/lumston-ds-angular-src-typography.mjs +303 -0
- package/fesm2022/lumston-ds-angular-src-typography.mjs.map +1 -0
- package/fesm2022/lumston-ds-angular.mjs +90 -65
- package/fesm2022/lumston-ds-angular.mjs.map +1 -1
- package/package.json +58 -32
- package/styles/index.css +0 -24
- package/styles/ls-icons.css +482 -0
- package/types/lumston-ds-angular-src-data-display.d.ts +50 -0
- package/types/lumston-ds-angular-src-data-display.d.ts.map +1 -0
- package/types/lumston-ds-angular-src-dropdown.d.ts +28 -0
- package/types/lumston-ds-angular-src-dropdown.d.ts.map +1 -0
- package/types/lumston-ds-angular-src-feedback.d.ts +75 -0
- package/types/lumston-ds-angular-src-feedback.d.ts.map +1 -0
- package/types/lumston-ds-angular-src-icon.d.ts +27 -0
- package/types/lumston-ds-angular-src-icon.d.ts.map +1 -0
- package/types/lumston-ds-angular-src-inputs.d.ts +201 -0
- package/types/lumston-ds-angular-src-inputs.d.ts.map +1 -0
- package/types/lumston-ds-angular-src-navigation.d.ts +186 -0
- package/types/lumston-ds-angular-src-navigation.d.ts.map +1 -0
- package/types/lumston-ds-angular-src-overlay.d.ts +357 -0
- package/types/lumston-ds-angular-src-overlay.d.ts.map +1 -0
- package/types/lumston-ds-angular-src-typography.d.ts +51 -0
- package/types/lumston-ds-angular-src-typography.d.ts.map +1 -0
- package/types/lumston-ds-angular.d.ts.map +1 -1
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, output, computed, effect, ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
|
|
5
|
+
class ProgressBarComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.variant = input('indeterminate', ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
8
|
+
this.color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
9
|
+
this.value = input(0, ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
10
|
+
this.showLabel = input(false, ...(ngDevMode ? [{ debugName: "showLabel" }] : []));
|
|
11
|
+
this.labelPosition = input('inside', ...(ngDevMode ? [{ debugName: "labelPosition" }] : []));
|
|
12
|
+
this.size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
13
|
+
this.onFinished = output();
|
|
14
|
+
this._sizeClassMap = {
|
|
15
|
+
small: 'progress-bar-sm',
|
|
16
|
+
medium: 'progress-bar-md',
|
|
17
|
+
large: 'progress-bar-lg',
|
|
18
|
+
'extra-large': 'progress-bar-xl',
|
|
19
|
+
};
|
|
20
|
+
this.clampedValue = computed(() => Math.min(100, Math.max(0, this.value())), ...(ngDevMode ? [{ debugName: "clampedValue" }] : []));
|
|
21
|
+
this.trackClasses = computed(() => {
|
|
22
|
+
const classes = ['progress-bar-track'];
|
|
23
|
+
classes.push(this._sizeClassMap[this.size()]);
|
|
24
|
+
return classes.join(' ');
|
|
25
|
+
}, ...(ngDevMode ? [{ debugName: "trackClasses" }] : []));
|
|
26
|
+
this.indicatorClasses = computed(() => {
|
|
27
|
+
const classes = ['progress-bar-indicator'];
|
|
28
|
+
classes.push(`progress-bar-${this.color()}`);
|
|
29
|
+
const v = this.variant();
|
|
30
|
+
if (v === 'stripe') {
|
|
31
|
+
classes.push('progress-bar-stripe');
|
|
32
|
+
}
|
|
33
|
+
else if (v === 'animated') {
|
|
34
|
+
classes.push('progress-bar-animated');
|
|
35
|
+
}
|
|
36
|
+
else if (v === 'indeterminate') {
|
|
37
|
+
classes.push('progress-bar-indeterminate');
|
|
38
|
+
}
|
|
39
|
+
return classes.join(' ');
|
|
40
|
+
}, ...(ngDevMode ? [{ debugName: "indicatorClasses" }] : []));
|
|
41
|
+
this.indicatorWidth = computed(() => {
|
|
42
|
+
if (this.variant() === 'indeterminate') {
|
|
43
|
+
return '100%';
|
|
44
|
+
}
|
|
45
|
+
return `${this.clampedValue()}%`;
|
|
46
|
+
}, ...(ngDevMode ? [{ debugName: "indicatorWidth" }] : []));
|
|
47
|
+
this.labelText = computed(() => `${this.clampedValue()}%`, ...(ngDevMode ? [{ debugName: "labelText" }] : []));
|
|
48
|
+
this.labelClasses = computed(() => {
|
|
49
|
+
const classes = ['progress-bar-label'];
|
|
50
|
+
if (this.labelPosition() === 'inside') {
|
|
51
|
+
classes.push('progress-bar-label-inside');
|
|
52
|
+
if (this.clampedValue() < 15) {
|
|
53
|
+
classes.push('progress-bar-label-dark');
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
classes.push('progress-bar-label-light');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
classes.push('progress-bar-label-right');
|
|
61
|
+
}
|
|
62
|
+
return classes.join(' ');
|
|
63
|
+
}, ...(ngDevMode ? [{ debugName: "labelClasses" }] : []));
|
|
64
|
+
effect(() => {
|
|
65
|
+
if (this.variant() !== 'indeterminate' &&
|
|
66
|
+
this.value() >= 100) {
|
|
67
|
+
this.onFinished.emit();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: ProgressBarComponent, isStandalone: true, selector: "ls-progress-bar", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onFinished: "onFinished" }, ngImport: i0, template: `
|
|
73
|
+
<div class="progress-bar-wrapper">
|
|
74
|
+
<div
|
|
75
|
+
[class]="trackClasses()"
|
|
76
|
+
role="progressbar"
|
|
77
|
+
[attr.aria-valuenow]="variant() === 'indeterminate' ? null : clampedValue()"
|
|
78
|
+
aria-valuemin="0"
|
|
79
|
+
aria-valuemax="100"
|
|
80
|
+
[attr.aria-label]="labelText()">
|
|
81
|
+
|
|
82
|
+
<div
|
|
83
|
+
[class]="indicatorClasses()"
|
|
84
|
+
[style.width]="indicatorWidth()">
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
@if (showLabel() && labelPosition() === 'inside' && variant() !== 'indeterminate') {
|
|
88
|
+
<span
|
|
89
|
+
[class]="labelClasses()"
|
|
90
|
+
[style.left.%]="clampedValue()">
|
|
91
|
+
{{ labelText() }}
|
|
92
|
+
</span>
|
|
93
|
+
}
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
@if (showLabel() && labelPosition() === 'right' && variant() !== 'indeterminate') {
|
|
97
|
+
<span [class]="labelClasses()">
|
|
98
|
+
{{ labelText() }}
|
|
99
|
+
</span>
|
|
100
|
+
}
|
|
101
|
+
</div>
|
|
102
|
+
`, isInline: true, styles: [":host{display:contents}.progress-bar-wrapper{display:flex;align-items:center;width:100%;gap:8px}.progress-bar-track{position:relative;width:100%;background-color:#e5e7eb;border-radius:var(--ls-border-radius-full);overflow:hidden}.progress-bar-sm{height:4px}.progress-bar-md{height:8px}.progress-bar-lg{height:16px}.progress-bar-xl{height:24px}.progress-bar-indicator{height:100%;border-radius:var(--ls-border-radius-full);transition:width var(--ls-transition-duration) ease;position:relative}.progress-bar-stripe{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem;animation:ls-progress-bar-stripes 1s linear infinite}.progress-bar-indeterminate{animation:ls-progress-bar-indeterminate 1.5s cubic-bezier(.65,.815,.735,.395) infinite;width:35%!important;position:absolute}@keyframes ls-progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes ls-progress-bar-indeterminate{0%{transform:translate(-100%)}to{transform:translate(300%)}}.progress-bar-label{font-size:.625rem;font-weight:600;white-space:nowrap;line-height:1}.progress-bar-label-inside{position:absolute;top:50%;transform:translate(-100%,-50%);margin-left:-4px;z-index:2;transition:left var(--ls-transition-duration) ease;pointer-events:none}.progress-bar-label-dark.progress-bar-label-inside{transform:translate(4px,-50%)}.progress-bar-label-right{flex-shrink:0;font-size:.75rem;color:#1f2937}.progress-bar-label-dark{color:#1f2937}.progress-bar-label-light{color:#fff}.progress-bar-primary{background-color:var(--ls-color-primary)}.progress-bar-secondary{background-color:var(--ls-color-secondary)}.progress-bar-error{background-color:var(--ls-color-danger)}.progress-bar-info{background-color:var(--ls-color-info)}.progress-bar-success{background-color:var(--ls-color-success)}.progress-bar-warning{background-color:var(--ls-color-warning)}.progress-bar-inherit{background-color:currentColor}body.dark .progress-bar-track{background-color:#374151}body.dark .progress-bar-label-right{color:#e5e7eb}body.dark .progress-bar-label-dark{color:#f3f4f6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
103
|
+
}
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
105
|
+
type: Component,
|
|
106
|
+
args: [{ selector: 'ls-progress-bar', standalone: true, template: `
|
|
107
|
+
<div class="progress-bar-wrapper">
|
|
108
|
+
<div
|
|
109
|
+
[class]="trackClasses()"
|
|
110
|
+
role="progressbar"
|
|
111
|
+
[attr.aria-valuenow]="variant() === 'indeterminate' ? null : clampedValue()"
|
|
112
|
+
aria-valuemin="0"
|
|
113
|
+
aria-valuemax="100"
|
|
114
|
+
[attr.aria-label]="labelText()">
|
|
115
|
+
|
|
116
|
+
<div
|
|
117
|
+
[class]="indicatorClasses()"
|
|
118
|
+
[style.width]="indicatorWidth()">
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
@if (showLabel() && labelPosition() === 'inside' && variant() !== 'indeterminate') {
|
|
122
|
+
<span
|
|
123
|
+
[class]="labelClasses()"
|
|
124
|
+
[style.left.%]="clampedValue()">
|
|
125
|
+
{{ labelText() }}
|
|
126
|
+
</span>
|
|
127
|
+
}
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
@if (showLabel() && labelPosition() === 'right' && variant() !== 'indeterminate') {
|
|
131
|
+
<span [class]="labelClasses()">
|
|
132
|
+
{{ labelText() }}
|
|
133
|
+
</span>
|
|
134
|
+
}
|
|
135
|
+
</div>
|
|
136
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}.progress-bar-wrapper{display:flex;align-items:center;width:100%;gap:8px}.progress-bar-track{position:relative;width:100%;background-color:#e5e7eb;border-radius:var(--ls-border-radius-full);overflow:hidden}.progress-bar-sm{height:4px}.progress-bar-md{height:8px}.progress-bar-lg{height:16px}.progress-bar-xl{height:24px}.progress-bar-indicator{height:100%;border-radius:var(--ls-border-radius-full);transition:width var(--ls-transition-duration) ease;position:relative}.progress-bar-stripe{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem;animation:ls-progress-bar-stripes 1s linear infinite}.progress-bar-indeterminate{animation:ls-progress-bar-indeterminate 1.5s cubic-bezier(.65,.815,.735,.395) infinite;width:35%!important;position:absolute}@keyframes ls-progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes ls-progress-bar-indeterminate{0%{transform:translate(-100%)}to{transform:translate(300%)}}.progress-bar-label{font-size:.625rem;font-weight:600;white-space:nowrap;line-height:1}.progress-bar-label-inside{position:absolute;top:50%;transform:translate(-100%,-50%);margin-left:-4px;z-index:2;transition:left var(--ls-transition-duration) ease;pointer-events:none}.progress-bar-label-dark.progress-bar-label-inside{transform:translate(4px,-50%)}.progress-bar-label-right{flex-shrink:0;font-size:.75rem;color:#1f2937}.progress-bar-label-dark{color:#1f2937}.progress-bar-label-light{color:#fff}.progress-bar-primary{background-color:var(--ls-color-primary)}.progress-bar-secondary{background-color:var(--ls-color-secondary)}.progress-bar-error{background-color:var(--ls-color-danger)}.progress-bar-info{background-color:var(--ls-color-info)}.progress-bar-success{background-color:var(--ls-color-success)}.progress-bar-warning{background-color:var(--ls-color-warning)}.progress-bar-inherit{background-color:currentColor}body.dark .progress-bar-track{background-color:#374151}body.dark .progress-bar-label-right{color:#e5e7eb}body.dark .progress-bar-label-dark{color:#f3f4f6}\n"] }]
|
|
137
|
+
}], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], showLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLabel", required: false }] }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], onFinished: [{ type: i0.Output, args: ["onFinished"] }] } });
|
|
138
|
+
|
|
139
|
+
const RADIUS = 20;
|
|
140
|
+
const CIRCUMFERENCE = 2 * Math.PI * RADIUS;
|
|
141
|
+
class LoaderComponent {
|
|
142
|
+
constructor() {
|
|
143
|
+
this.variant = input('indeterminate', ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
144
|
+
this.color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
145
|
+
this.value = input(0, ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
146
|
+
this.size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
147
|
+
this.onFinished = output();
|
|
148
|
+
this.circumference = CIRCUMFERENCE;
|
|
149
|
+
this._diameterMap = {
|
|
150
|
+
small: 16,
|
|
151
|
+
medium: 32,
|
|
152
|
+
large: 48,
|
|
153
|
+
};
|
|
154
|
+
this._sizeClassMap = {
|
|
155
|
+
small: 'loader-sm',
|
|
156
|
+
medium: 'loader-md',
|
|
157
|
+
large: 'loader-lg',
|
|
158
|
+
};
|
|
159
|
+
this.svgDiameter = computed(() => this._diameterMap[this.size()], ...(ngDevMode ? [{ debugName: "svgDiameter" }] : []));
|
|
160
|
+
this.svgClasses = computed(() => {
|
|
161
|
+
const classes = ['loader-svg'];
|
|
162
|
+
classes.push(this._sizeClassMap[this.size()]);
|
|
163
|
+
if (this.variant() === 'indeterminate') {
|
|
164
|
+
classes.push('loader-indeterminate');
|
|
165
|
+
}
|
|
166
|
+
return classes.join(' ');
|
|
167
|
+
}, ...(ngDevMode ? [{ debugName: "svgClasses" }] : []));
|
|
168
|
+
this.indicatorClasses = computed(() => {
|
|
169
|
+
const classes = ['loader-indicator'];
|
|
170
|
+
classes.push(`loader-${this.variant()}`);
|
|
171
|
+
classes.push(`loader-${this.color()}`);
|
|
172
|
+
return classes.join(' ');
|
|
173
|
+
}, ...(ngDevMode ? [{ debugName: "indicatorClasses" }] : []));
|
|
174
|
+
this.bufferClasses = computed(() => `loader-buffer loader-${this.color()}`, ...(ngDevMode ? [{ debugName: "bufferClasses" }] : []));
|
|
175
|
+
this.indicatorDashOffset = computed(() => {
|
|
176
|
+
const v = this.variant();
|
|
177
|
+
if (v === 'determinate' || v === 'buffer') {
|
|
178
|
+
const clamped = Math.min(100, Math.max(0, this.value()));
|
|
179
|
+
return CIRCUMFERENCE - (CIRCUMFERENCE * clamped) / 100;
|
|
180
|
+
}
|
|
181
|
+
return 0;
|
|
182
|
+
}, ...(ngDevMode ? [{ debugName: "indicatorDashOffset" }] : []));
|
|
183
|
+
this.bufferDashOffset = computed(() => {
|
|
184
|
+
if (this.variant() === 'buffer') {
|
|
185
|
+
const clamped = Math.min(100, Math.max(0, this.value()) + 20);
|
|
186
|
+
return CIRCUMFERENCE - (CIRCUMFERENCE * clamped) / 100;
|
|
187
|
+
}
|
|
188
|
+
return CIRCUMFERENCE;
|
|
189
|
+
}, ...(ngDevMode ? [{ debugName: "bufferDashOffset" }] : []));
|
|
190
|
+
effect(() => {
|
|
191
|
+
if (this.variant() === 'determinate' &&
|
|
192
|
+
this.value() >= 100) {
|
|
193
|
+
this.onFinished.emit();
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
198
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: LoaderComponent, isStandalone: true, selector: "ls-loader", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onFinished: "onFinished" }, ngImport: i0, template: `
|
|
199
|
+
<svg
|
|
200
|
+
[class]="svgClasses()"
|
|
201
|
+
[attr.width]="svgDiameter()"
|
|
202
|
+
[attr.height]="svgDiameter()"
|
|
203
|
+
viewBox="0 0 50 50"
|
|
204
|
+
role="progressbar"
|
|
205
|
+
[attr.aria-valuenow]="
|
|
206
|
+
variant() === 'determinate' ? value() : null
|
|
207
|
+
"
|
|
208
|
+
[attr.aria-valuemin]="
|
|
209
|
+
variant() === 'determinate' ? 0 : null
|
|
210
|
+
"
|
|
211
|
+
[attr.aria-valuemax]="
|
|
212
|
+
variant() === 'determinate' ? 100 : null
|
|
213
|
+
">
|
|
214
|
+
<circle
|
|
215
|
+
class="loader-track"
|
|
216
|
+
cx="25"
|
|
217
|
+
cy="25"
|
|
218
|
+
r="20"
|
|
219
|
+
fill="none"
|
|
220
|
+
stroke-width="5" />
|
|
221
|
+
@if (variant() === 'buffer') {
|
|
222
|
+
<circle
|
|
223
|
+
[class]="bufferClasses()"
|
|
224
|
+
cx="25"
|
|
225
|
+
cy="25"
|
|
226
|
+
r="20"
|
|
227
|
+
fill="none"
|
|
228
|
+
stroke-width="5"
|
|
229
|
+
[attr.stroke-dasharray]="circumference"
|
|
230
|
+
[attr.stroke-dashoffset]="bufferDashOffset()" />
|
|
231
|
+
}
|
|
232
|
+
<circle
|
|
233
|
+
[class]="indicatorClasses()"
|
|
234
|
+
cx="25"
|
|
235
|
+
cy="25"
|
|
236
|
+
r="20"
|
|
237
|
+
fill="none"
|
|
238
|
+
stroke-width="5"
|
|
239
|
+
[attr.stroke-dasharray]="circumference"
|
|
240
|
+
[attr.stroke-dashoffset]="indicatorDashOffset()" />
|
|
241
|
+
</svg>
|
|
242
|
+
`, isInline: true, styles: [":host{display:contents}.loader-svg{display:inline-block;vertical-align:middle;transform-origin:center}.loader-sm{width:16px;height:16px}.loader-md{width:32px;height:32px}.loader-lg{width:48px;height:48px}.loader-track{stroke:#e0e0e0}.loader-indicator{stroke-linecap:round;transform-origin:center;transform:rotate(-90deg);transition:stroke-dashoffset var(--ls-transition-duration) ease}.loader-determinate{transition:stroke-dashoffset var(--ls-transition-duration) ease}.loader-svg.loader-indeterminate{animation:ls-loader-rotate 1.4s linear infinite}.loader-indicator.loader-indeterminate{animation:ls-loader-dash 1.4s ease-in-out infinite;stroke-linecap:round}.loader-buffer{stroke-linecap:round;transform-origin:center;transform:rotate(-90deg);opacity:.3;transition:stroke-dashoffset var(--ls-transition-duration) ease}@keyframes ls-loader-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ls-loader-dash{0%{stroke-dasharray:1,125.66;stroke-dashoffset:0}50%{stroke-dasharray:89,125.66;stroke-dashoffset:-35}to{stroke-dasharray:89,125.66;stroke-dashoffset:-124}}.loader-primary{stroke:var(--ls-color-primary)}.loader-secondary{stroke:var(--ls-color-secondary)}.loader-error{stroke:var(--ls-color-danger)}.loader-info{stroke:var(--ls-color-info)}.loader-success{stroke:var(--ls-color-success)}.loader-warning{stroke:var(--ls-color-warning)}.loader-inherit{stroke:currentColor}body.dark .loader-track{stroke:#374151}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
243
|
+
}
|
|
244
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: LoaderComponent, decorators: [{
|
|
245
|
+
type: Component,
|
|
246
|
+
args: [{ selector: 'ls-loader', standalone: true, template: `
|
|
247
|
+
<svg
|
|
248
|
+
[class]="svgClasses()"
|
|
249
|
+
[attr.width]="svgDiameter()"
|
|
250
|
+
[attr.height]="svgDiameter()"
|
|
251
|
+
viewBox="0 0 50 50"
|
|
252
|
+
role="progressbar"
|
|
253
|
+
[attr.aria-valuenow]="
|
|
254
|
+
variant() === 'determinate' ? value() : null
|
|
255
|
+
"
|
|
256
|
+
[attr.aria-valuemin]="
|
|
257
|
+
variant() === 'determinate' ? 0 : null
|
|
258
|
+
"
|
|
259
|
+
[attr.aria-valuemax]="
|
|
260
|
+
variant() === 'determinate' ? 100 : null
|
|
261
|
+
">
|
|
262
|
+
<circle
|
|
263
|
+
class="loader-track"
|
|
264
|
+
cx="25"
|
|
265
|
+
cy="25"
|
|
266
|
+
r="20"
|
|
267
|
+
fill="none"
|
|
268
|
+
stroke-width="5" />
|
|
269
|
+
@if (variant() === 'buffer') {
|
|
270
|
+
<circle
|
|
271
|
+
[class]="bufferClasses()"
|
|
272
|
+
cx="25"
|
|
273
|
+
cy="25"
|
|
274
|
+
r="20"
|
|
275
|
+
fill="none"
|
|
276
|
+
stroke-width="5"
|
|
277
|
+
[attr.stroke-dasharray]="circumference"
|
|
278
|
+
[attr.stroke-dashoffset]="bufferDashOffset()" />
|
|
279
|
+
}
|
|
280
|
+
<circle
|
|
281
|
+
[class]="indicatorClasses()"
|
|
282
|
+
cx="25"
|
|
283
|
+
cy="25"
|
|
284
|
+
r="20"
|
|
285
|
+
fill="none"
|
|
286
|
+
stroke-width="5"
|
|
287
|
+
[attr.stroke-dasharray]="circumference"
|
|
288
|
+
[attr.stroke-dashoffset]="indicatorDashOffset()" />
|
|
289
|
+
</svg>
|
|
290
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}.loader-svg{display:inline-block;vertical-align:middle;transform-origin:center}.loader-sm{width:16px;height:16px}.loader-md{width:32px;height:32px}.loader-lg{width:48px;height:48px}.loader-track{stroke:#e0e0e0}.loader-indicator{stroke-linecap:round;transform-origin:center;transform:rotate(-90deg);transition:stroke-dashoffset var(--ls-transition-duration) ease}.loader-determinate{transition:stroke-dashoffset var(--ls-transition-duration) ease}.loader-svg.loader-indeterminate{animation:ls-loader-rotate 1.4s linear infinite}.loader-indicator.loader-indeterminate{animation:ls-loader-dash 1.4s ease-in-out infinite;stroke-linecap:round}.loader-buffer{stroke-linecap:round;transform-origin:center;transform:rotate(-90deg);opacity:.3;transition:stroke-dashoffset var(--ls-transition-duration) ease}@keyframes ls-loader-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ls-loader-dash{0%{stroke-dasharray:1,125.66;stroke-dashoffset:0}50%{stroke-dasharray:89,125.66;stroke-dashoffset:-35}to{stroke-dasharray:89,125.66;stroke-dashoffset:-124}}.loader-primary{stroke:var(--ls-color-primary)}.loader-secondary{stroke:var(--ls-color-secondary)}.loader-error{stroke:var(--ls-color-danger)}.loader-info{stroke:var(--ls-color-info)}.loader-success{stroke:var(--ls-color-success)}.loader-warning{stroke:var(--ls-color-warning)}.loader-inherit{stroke:currentColor}body.dark .loader-track{stroke:#374151}\n"] }]
|
|
291
|
+
}], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], onFinished: [{ type: i0.Output, args: ["onFinished"] }] } });
|
|
292
|
+
|
|
293
|
+
const SEVERITY_ICON_MAP = {
|
|
294
|
+
success: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>`,
|
|
295
|
+
error: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>`,
|
|
296
|
+
warning: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>`,
|
|
297
|
+
info: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>`,
|
|
298
|
+
primary: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>`,
|
|
299
|
+
secondary: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>`,
|
|
300
|
+
};
|
|
301
|
+
const CLOSE_ICON = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>`;
|
|
302
|
+
class AlertComponent {
|
|
303
|
+
constructor() {
|
|
304
|
+
this._sanitizer = inject(DomSanitizer);
|
|
305
|
+
this.severity = input('info', ...(ngDevMode ? [{ debugName: "severity" }] : []));
|
|
306
|
+
this.variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
307
|
+
this.closable = input(false, ...(ngDevMode ? [{ debugName: "closable" }] : []));
|
|
308
|
+
this.icon = input(true, ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
309
|
+
this.iconMapping = input(...(ngDevMode ? [undefined, { debugName: "iconMapping" }] : []));
|
|
310
|
+
this.color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : []));
|
|
311
|
+
this.alertTitle = input(...(ngDevMode ? [undefined, { debugName: "alertTitle" }] : []));
|
|
312
|
+
this.message = input(...(ngDevMode ? [undefined, { debugName: "message" }] : []));
|
|
313
|
+
this.onClose = output();
|
|
314
|
+
this.alertClasses = computed(() => {
|
|
315
|
+
const classes = ['alert', `alert-${this.variant()}-${this.severity()}`];
|
|
316
|
+
if (this.closable()) {
|
|
317
|
+
classes.push('alert-closable');
|
|
318
|
+
}
|
|
319
|
+
return classes.join(' ');
|
|
320
|
+
}, ...(ngDevMode ? [{ debugName: "alertClasses" }] : []));
|
|
321
|
+
this.ariaLive = computed(() => {
|
|
322
|
+
const s = this.severity();
|
|
323
|
+
return s === 'error' || s === 'warning' ? 'assertive' : 'polite';
|
|
324
|
+
}, ...(ngDevMode ? [{ debugName: "ariaLive" }] : []));
|
|
325
|
+
this.sanitizedIcon = computed(() => {
|
|
326
|
+
const svg = this.iconMapping() || SEVERITY_ICON_MAP[this.severity()];
|
|
327
|
+
return this._sanitizer.bypassSecurityTrustHtml(svg);
|
|
328
|
+
}, ...(ngDevMode ? [{ debugName: "sanitizedIcon" }] : []));
|
|
329
|
+
this.sanitizedCloseIcon = this._sanitizer.bypassSecurityTrustHtml(CLOSE_ICON);
|
|
330
|
+
this.colorStyle = computed(() => {
|
|
331
|
+
const c = this.color();
|
|
332
|
+
if (!c)
|
|
333
|
+
return '';
|
|
334
|
+
return `--alert-custom-color: ${c};`;
|
|
335
|
+
}, ...(ngDevMode ? [{ debugName: "colorStyle" }] : []));
|
|
336
|
+
}
|
|
337
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
338
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", type: AlertComponent, isStandalone: true, selector: "ls-alert", inputs: { severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconMapping: { classPropertyName: "iconMapping", publicName: "iconMapping", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, alertTitle: { classPropertyName: "alertTitle", publicName: "alertTitle", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, ngImport: i0, template: `
|
|
339
|
+
<div
|
|
340
|
+
[class]="alertClasses()"
|
|
341
|
+
[style]="colorStyle()"
|
|
342
|
+
role="alert"
|
|
343
|
+
[attr.aria-live]="ariaLive()">
|
|
344
|
+
@if (icon()) {
|
|
345
|
+
<span class="alert-icon" [innerHTML]="sanitizedIcon()"></span>
|
|
346
|
+
}
|
|
347
|
+
<div class="alert-content">
|
|
348
|
+
@if (alertTitle()) {
|
|
349
|
+
<div class="alert-title">{{ alertTitle() }}</div>
|
|
350
|
+
}
|
|
351
|
+
@if (message()) {
|
|
352
|
+
<div class="alert-message">{{ message() }}</div>
|
|
353
|
+
}
|
|
354
|
+
</div>
|
|
355
|
+
@if (closable()) {
|
|
356
|
+
<button
|
|
357
|
+
class="alert-close"
|
|
358
|
+
(click)="onClose.emit()"
|
|
359
|
+
[innerHTML]="sanitizedCloseIcon"
|
|
360
|
+
aria-label="Close"></button>
|
|
361
|
+
}
|
|
362
|
+
</div>
|
|
363
|
+
`, isInline: true, styles: [":host{display:contents}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:var(--ls-border-radius-md, 6px);font-family:var(--ls-font-family, \"Nunito\", sans-serif);font-size:14px;line-height:1.5;position:relative;width:100%;box-sizing:border-box}.alert-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.alert-icon svg{width:100%;height:100%}.alert-content{flex:1;min-width:0}.alert-title{font-weight:600;margin-bottom:4px}.alert-message{padding-top:2px;font-weight:400}.alert-close{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:inherit;opacity:.7;transition:opacity var(--ls-transition-duration, .3s);display:flex;align-items:center;justify-content:center}.alert-close:hover{opacity:1}.alert-default-success{background-color:var(--ls-color-success-light);border-left:4px solid var(--ls-color-success);color:var(--ls-color-success)}.alert-default-error{background-color:var(--ls-color-danger-light);border-left:4px solid var(--ls-color-danger);color:var(--ls-color-danger)}.alert-default-warning{background-color:var(--ls-color-warning-light);border-left:4px solid var(--ls-color-warning);color:var(--ls-color-warning)}.alert-default-info{background-color:var(--ls-color-info-light);border-left:4px solid var(--ls-color-info);color:var(--ls-color-info)}.alert-default-primary{background-color:var(--ls-color-primary-light);border-left:4px solid var(--ls-color-primary);color:var(--ls-color-primary)}.alert-default-secondary{background-color:var(--ls-color-secondary-light);border-left:4px solid var(--ls-color-secondary);color:var(--ls-color-secondary)}.alert-filled-success{background-color:var(--ls-color-success);color:#fff}.alert-filled-error{background-color:var(--ls-color-danger);color:#fff}.alert-filled-warning{background-color:var(--ls-color-warning);color:#fff}.alert-filled-info{background-color:var(--ls-color-info);color:#fff}.alert-filled-primary{background-color:var(--ls-color-primary);color:#fff}.alert-filled-secondary{background-color:var(--ls-color-secondary);color:#fff}.alert-outlined-success{background-color:transparent;border:1px solid var(--ls-color-success);color:var(--ls-color-success)}.alert-outlined-error{background-color:transparent;border:1px solid var(--ls-color-danger);color:var(--ls-color-danger)}.alert-outlined-warning{background-color:transparent;border:1px solid var(--ls-color-warning);color:var(--ls-color-warning)}.alert-outlined-info{background-color:transparent;border:1px solid var(--ls-color-info);color:var(--ls-color-info)}.alert-outlined-primary{background-color:transparent;border:1px solid var(--ls-color-primary);color:var(--ls-color-primary)}.alert-outlined-secondary{background-color:transparent;border:1px solid var(--ls-color-secondary);color:var(--ls-color-secondary)}.alert[style*=--alert-custom-color]{border-color:var(--alert-custom-color)}.alert-default-success[style*=--alert-custom-color],.alert-default-error[style*=--alert-custom-color],.alert-default-warning[style*=--alert-custom-color],.alert-default-info[style*=--alert-custom-color],.alert-default-primary[style*=--alert-custom-color],.alert-default-secondary[style*=--alert-custom-color]{border-left-color:var(--alert-custom-color);color:var(--alert-custom-color)}.alert-filled-success[style*=--alert-custom-color],.alert-filled-error[style*=--alert-custom-color],.alert-filled-warning[style*=--alert-custom-color],.alert-filled-info[style*=--alert-custom-color],.alert-filled-primary[style*=--alert-custom-color],.alert-filled-secondary[style*=--alert-custom-color]{background-color:var(--alert-custom-color)}.alert-outlined-success[style*=--alert-custom-color],.alert-outlined-error[style*=--alert-custom-color],.alert-outlined-warning[style*=--alert-custom-color],.alert-outlined-info[style*=--alert-custom-color],.alert-outlined-primary[style*=--alert-custom-color],.alert-outlined-secondary[style*=--alert-custom-color]{border-color:var(--alert-custom-color);color:var(--alert-custom-color)}body.dark .alert-default-success{background-color:var(--ls-color-success-dark-light);border-left-color:var(--ls-color-success);color:var(--ls-color-success)}body.dark .alert-default-error{background-color:var(--ls-color-danger-dark-light);border-left-color:var(--ls-color-danger);color:var(--ls-color-danger)}body.dark .alert-default-warning{background-color:var(--ls-color-warning-dark-light);border-left-color:var(--ls-color-warning);color:var(--ls-color-warning)}body.dark .alert-default-info{background-color:var(--ls-color-info-dark-light);border-left-color:var(--ls-color-info);color:var(--ls-color-info)}body.dark .alert-default-primary{background-color:var(--ls-color-primary-dark-light);border-left-color:var(--ls-color-primary);color:var(--ls-color-primary)}body.dark .alert-default-secondary{background-color:var(--ls-color-secondary-dark-light);border-left-color:var(--ls-color-secondary);color:var(--ls-color-secondary)}body.dark .alert-outlined-success{border-color:var(--ls-color-success);color:var(--ls-color-success)}body.dark .alert-outlined-error{border-color:var(--ls-color-danger);color:var(--ls-color-danger)}body.dark .alert-outlined-warning{border-color:var(--ls-color-warning);color:var(--ls-color-warning)}body.dark .alert-outlined-info{border-color:var(--ls-color-info);color:var(--ls-color-info)}body.dark .alert-outlined-primary{border-color:var(--ls-color-primary);color:var(--ls-color-primary)}body.dark .alert-outlined-secondary{border-color:var(--ls-color-secondary);color:var(--ls-color-secondary)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
364
|
+
}
|
|
365
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AlertComponent, decorators: [{
|
|
366
|
+
type: Component,
|
|
367
|
+
args: [{ selector: 'ls-alert', standalone: true, template: `
|
|
368
|
+
<div
|
|
369
|
+
[class]="alertClasses()"
|
|
370
|
+
[style]="colorStyle()"
|
|
371
|
+
role="alert"
|
|
372
|
+
[attr.aria-live]="ariaLive()">
|
|
373
|
+
@if (icon()) {
|
|
374
|
+
<span class="alert-icon" [innerHTML]="sanitizedIcon()"></span>
|
|
375
|
+
}
|
|
376
|
+
<div class="alert-content">
|
|
377
|
+
@if (alertTitle()) {
|
|
378
|
+
<div class="alert-title">{{ alertTitle() }}</div>
|
|
379
|
+
}
|
|
380
|
+
@if (message()) {
|
|
381
|
+
<div class="alert-message">{{ message() }}</div>
|
|
382
|
+
}
|
|
383
|
+
</div>
|
|
384
|
+
@if (closable()) {
|
|
385
|
+
<button
|
|
386
|
+
class="alert-close"
|
|
387
|
+
(click)="onClose.emit()"
|
|
388
|
+
[innerHTML]="sanitizedCloseIcon"
|
|
389
|
+
aria-label="Close"></button>
|
|
390
|
+
}
|
|
391
|
+
</div>
|
|
392
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:contents}.alert{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:var(--ls-border-radius-md, 6px);font-family:var(--ls-font-family, \"Nunito\", sans-serif);font-size:14px;line-height:1.5;position:relative;width:100%;box-sizing:border-box}.alert-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.alert-icon svg{width:100%;height:100%}.alert-content{flex:1;min-width:0}.alert-title{font-weight:600;margin-bottom:4px}.alert-message{padding-top:2px;font-weight:400}.alert-close{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:inherit;opacity:.7;transition:opacity var(--ls-transition-duration, .3s);display:flex;align-items:center;justify-content:center}.alert-close:hover{opacity:1}.alert-default-success{background-color:var(--ls-color-success-light);border-left:4px solid var(--ls-color-success);color:var(--ls-color-success)}.alert-default-error{background-color:var(--ls-color-danger-light);border-left:4px solid var(--ls-color-danger);color:var(--ls-color-danger)}.alert-default-warning{background-color:var(--ls-color-warning-light);border-left:4px solid var(--ls-color-warning);color:var(--ls-color-warning)}.alert-default-info{background-color:var(--ls-color-info-light);border-left:4px solid var(--ls-color-info);color:var(--ls-color-info)}.alert-default-primary{background-color:var(--ls-color-primary-light);border-left:4px solid var(--ls-color-primary);color:var(--ls-color-primary)}.alert-default-secondary{background-color:var(--ls-color-secondary-light);border-left:4px solid var(--ls-color-secondary);color:var(--ls-color-secondary)}.alert-filled-success{background-color:var(--ls-color-success);color:#fff}.alert-filled-error{background-color:var(--ls-color-danger);color:#fff}.alert-filled-warning{background-color:var(--ls-color-warning);color:#fff}.alert-filled-info{background-color:var(--ls-color-info);color:#fff}.alert-filled-primary{background-color:var(--ls-color-primary);color:#fff}.alert-filled-secondary{background-color:var(--ls-color-secondary);color:#fff}.alert-outlined-success{background-color:transparent;border:1px solid var(--ls-color-success);color:var(--ls-color-success)}.alert-outlined-error{background-color:transparent;border:1px solid var(--ls-color-danger);color:var(--ls-color-danger)}.alert-outlined-warning{background-color:transparent;border:1px solid var(--ls-color-warning);color:var(--ls-color-warning)}.alert-outlined-info{background-color:transparent;border:1px solid var(--ls-color-info);color:var(--ls-color-info)}.alert-outlined-primary{background-color:transparent;border:1px solid var(--ls-color-primary);color:var(--ls-color-primary)}.alert-outlined-secondary{background-color:transparent;border:1px solid var(--ls-color-secondary);color:var(--ls-color-secondary)}.alert[style*=--alert-custom-color]{border-color:var(--alert-custom-color)}.alert-default-success[style*=--alert-custom-color],.alert-default-error[style*=--alert-custom-color],.alert-default-warning[style*=--alert-custom-color],.alert-default-info[style*=--alert-custom-color],.alert-default-primary[style*=--alert-custom-color],.alert-default-secondary[style*=--alert-custom-color]{border-left-color:var(--alert-custom-color);color:var(--alert-custom-color)}.alert-filled-success[style*=--alert-custom-color],.alert-filled-error[style*=--alert-custom-color],.alert-filled-warning[style*=--alert-custom-color],.alert-filled-info[style*=--alert-custom-color],.alert-filled-primary[style*=--alert-custom-color],.alert-filled-secondary[style*=--alert-custom-color]{background-color:var(--alert-custom-color)}.alert-outlined-success[style*=--alert-custom-color],.alert-outlined-error[style*=--alert-custom-color],.alert-outlined-warning[style*=--alert-custom-color],.alert-outlined-info[style*=--alert-custom-color],.alert-outlined-primary[style*=--alert-custom-color],.alert-outlined-secondary[style*=--alert-custom-color]{border-color:var(--alert-custom-color);color:var(--alert-custom-color)}body.dark .alert-default-success{background-color:var(--ls-color-success-dark-light);border-left-color:var(--ls-color-success);color:var(--ls-color-success)}body.dark .alert-default-error{background-color:var(--ls-color-danger-dark-light);border-left-color:var(--ls-color-danger);color:var(--ls-color-danger)}body.dark .alert-default-warning{background-color:var(--ls-color-warning-dark-light);border-left-color:var(--ls-color-warning);color:var(--ls-color-warning)}body.dark .alert-default-info{background-color:var(--ls-color-info-dark-light);border-left-color:var(--ls-color-info);color:var(--ls-color-info)}body.dark .alert-default-primary{background-color:var(--ls-color-primary-dark-light);border-left-color:var(--ls-color-primary);color:var(--ls-color-primary)}body.dark .alert-default-secondary{background-color:var(--ls-color-secondary-dark-light);border-left-color:var(--ls-color-secondary);color:var(--ls-color-secondary)}body.dark .alert-outlined-success{border-color:var(--ls-color-success);color:var(--ls-color-success)}body.dark .alert-outlined-error{border-color:var(--ls-color-danger);color:var(--ls-color-danger)}body.dark .alert-outlined-warning{border-color:var(--ls-color-warning);color:var(--ls-color-warning)}body.dark .alert-outlined-info{border-color:var(--ls-color-info);color:var(--ls-color-info)}body.dark .alert-outlined-primary{border-color:var(--ls-color-primary);color:var(--ls-color-primary)}body.dark .alert-outlined-secondary{border-color:var(--ls-color-secondary);color:var(--ls-color-secondary)}\n"] }]
|
|
393
|
+
}], propDecorators: { severity: [{ type: i0.Input, args: [{ isSignal: true, alias: "severity", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], closable: [{ type: i0.Input, args: [{ isSignal: true, alias: "closable", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconMapping: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconMapping", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], alertTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "alertTitle", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], onClose: [{ type: i0.Output, args: ["onClose"] }] } });
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Generated bundle index. Do not edit.
|
|
397
|
+
*/
|
|
398
|
+
|
|
399
|
+
export { AlertComponent, LoaderComponent, ProgressBarComponent };
|
|
400
|
+
//# sourceMappingURL=lumston-ds-angular-src-feedback.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lumston-ds-angular-src-feedback.mjs","sources":["../../../../libs/ds-angular/src/feedback/progress-bar/progress-bar.component.ts","../../../../libs/ds-angular/src/feedback/loader/loader.component.ts","../../../../libs/ds-angular/src/feedback/alert/alert.component.ts","../../../../libs/ds-angular/src/feedback/lumston-ds-angular-src-feedback.ts"],"sourcesContent":["import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n input,\r\n output,\r\n} from '@angular/core';\r\n\r\nexport type ProgressBarVariant =\r\n | 'determinate'\r\n | 'stripe'\r\n | 'animated'\r\n | 'indeterminate';\r\nexport type ProgressBarColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type ProgressBarSize =\r\n | 'small'\r\n | 'medium'\r\n | 'large'\r\n | 'extra-large';\r\nexport type ProgressBarLabelPosition = 'inside' | 'right';\r\n\r\n@Component({\r\n selector: 'ls-progress-bar',\r\n standalone: true,\r\n template: `\r\n <div class=\"progress-bar-wrapper\">\r\n <div\r\n [class]=\"trackClasses()\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"variant() === 'indeterminate' ? null : clampedValue()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [attr.aria-label]=\"labelText()\">\r\n\r\n <div\r\n [class]=\"indicatorClasses()\"\r\n [style.width]=\"indicatorWidth()\">\r\n </div>\r\n\r\n @if (showLabel() && labelPosition() === 'inside' && variant() !== 'indeterminate') {\r\n <span\r\n [class]=\"labelClasses()\"\r\n [style.left.%]=\"clampedValue()\">\r\n {{ labelText() }}\r\n </span>\r\n }\r\n </div>\r\n\r\n @if (showLabel() && labelPosition() === 'right' && variant() !== 'indeterminate') {\r\n <span [class]=\"labelClasses()\">\r\n {{ labelText() }}\r\n </span>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./progress-bar.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProgressBarComponent {\r\n readonly variant =\r\n input<ProgressBarVariant>('indeterminate');\r\n readonly color =\r\n input<ProgressBarColor>('primary');\r\n readonly value = input<number>(0);\r\n readonly showLabel = input<boolean>(false);\r\n readonly labelPosition =\r\n input<ProgressBarLabelPosition>('inside');\r\n readonly size = input<ProgressBarSize>('medium');\r\n\r\n readonly onFinished = output<void>();\r\n\r\n private readonly _sizeClassMap: Record<\r\n ProgressBarSize,\r\n string\r\n > = {\r\n small: 'progress-bar-sm',\r\n medium: 'progress-bar-md',\r\n large: 'progress-bar-lg',\r\n 'extra-large': 'progress-bar-xl',\r\n };\r\n\r\n readonly clampedValue = computed(() =>\r\n Math.min(100, Math.max(0, this.value()))\r\n );\r\n\r\n readonly trackClasses = computed(() => {\r\n const classes = ['progress-bar-track'];\r\n classes.push(this._sizeClassMap[this.size()]);\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorClasses = computed(() => {\r\n const classes = ['progress-bar-indicator'];\r\n classes.push(`progress-bar-${this.color()}`);\r\n const v = this.variant();\r\n if (v === 'stripe') {\r\n classes.push('progress-bar-stripe');\r\n } else if (v === 'animated') {\r\n classes.push('progress-bar-animated');\r\n } else if (v === 'indeterminate') {\r\n classes.push('progress-bar-indeterminate');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorWidth = computed(() => {\r\n if (this.variant() === 'indeterminate') {\r\n return '100%';\r\n }\r\n return `${this.clampedValue()}%`;\r\n });\r\n\r\n readonly labelText = computed(\r\n () => `${this.clampedValue()}%`\r\n );\r\n\r\n readonly labelClasses = computed(() => {\r\n const classes = ['progress-bar-label'];\r\n if (this.labelPosition() === 'inside') {\r\n classes.push('progress-bar-label-inside');\r\n if (this.clampedValue() < 15) {\r\n classes.push('progress-bar-label-dark');\r\n } else {\r\n classes.push('progress-bar-label-light');\r\n }\r\n } else {\r\n classes.push('progress-bar-label-right');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (\r\n this.variant() !== 'indeterminate' &&\r\n this.value() >= 100\r\n ) {\r\n this.onFinished.emit();\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n input,\r\n output,\r\n} from '@angular/core';\r\n\r\nexport type LoaderVariant =\r\n | 'determinate'\r\n | 'indeterminate'\r\n | 'buffer';\r\nexport type LoaderColor =\r\n | 'inherit'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning';\r\nexport type LoaderSize = 'small' | 'medium' | 'large';\r\n\r\nconst RADIUS = 20;\r\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS;\r\n\r\n@Component({\r\n selector: 'ls-loader',\r\n standalone: true,\r\n template: `\r\n <svg\r\n [class]=\"svgClasses()\"\r\n [attr.width]=\"svgDiameter()\"\r\n [attr.height]=\"svgDiameter()\"\r\n viewBox=\"0 0 50 50\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"\r\n variant() === 'determinate' ? value() : null\r\n \"\r\n [attr.aria-valuemin]=\"\r\n variant() === 'determinate' ? 0 : null\r\n \"\r\n [attr.aria-valuemax]=\"\r\n variant() === 'determinate' ? 100 : null\r\n \">\r\n <circle\r\n class=\"loader-track\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\" />\r\n @if (variant() === 'buffer') {\r\n <circle\r\n [class]=\"bufferClasses()\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\"\r\n [attr.stroke-dasharray]=\"circumference\"\r\n [attr.stroke-dashoffset]=\"bufferDashOffset()\" />\r\n }\r\n <circle\r\n [class]=\"indicatorClasses()\"\r\n cx=\"25\"\r\n cy=\"25\"\r\n r=\"20\"\r\n fill=\"none\"\r\n stroke-width=\"5\"\r\n [attr.stroke-dasharray]=\"circumference\"\r\n [attr.stroke-dashoffset]=\"indicatorDashOffset()\" />\r\n </svg>\r\n `,\r\n styleUrls: ['./loader.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoaderComponent {\r\n readonly variant = input<LoaderVariant>('indeterminate');\r\n readonly color = input<LoaderColor>('primary');\r\n readonly value = input<number>(0);\r\n readonly size = input<LoaderSize>('medium');\r\n\r\n readonly onFinished = output<void>();\r\n\r\n readonly circumference = CIRCUMFERENCE;\r\n\r\n private readonly _diameterMap: Record<LoaderSize, number> =\r\n {\r\n small: 16,\r\n medium: 32,\r\n large: 48,\r\n };\r\n\r\n private readonly _sizeClassMap: Record<\r\n LoaderSize,\r\n string\r\n > = {\r\n small: 'loader-sm',\r\n medium: 'loader-md',\r\n large: 'loader-lg',\r\n };\r\n\r\n readonly svgDiameter = computed(\r\n () => this._diameterMap[this.size()]\r\n );\r\n\r\n readonly svgClasses = computed(() => {\r\n const classes = ['loader-svg'];\r\n classes.push(this._sizeClassMap[this.size()]);\r\n if (this.variant() === 'indeterminate') {\r\n classes.push('loader-indeterminate');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly indicatorClasses = computed(() => {\r\n const classes = ['loader-indicator'];\r\n classes.push(`loader-${this.variant()}`);\r\n classes.push(`loader-${this.color()}`);\r\n return classes.join(' ');\r\n });\r\n\r\n readonly bufferClasses = computed(\r\n () => `loader-buffer loader-${this.color()}`\r\n );\r\n\r\n readonly indicatorDashOffset = computed(() => {\r\n const v = this.variant();\r\n if (v === 'determinate' || v === 'buffer') {\r\n const clamped = Math.min(\r\n 100,\r\n Math.max(0, this.value())\r\n );\r\n return CIRCUMFERENCE - (CIRCUMFERENCE * clamped) / 100;\r\n }\r\n return 0;\r\n });\r\n\r\n readonly bufferDashOffset = computed(() => {\r\n if (this.variant() === 'buffer') {\r\n const clamped = Math.min(\r\n 100,\r\n Math.max(0, this.value()) + 20\r\n );\r\n return CIRCUMFERENCE - (CIRCUMFERENCE * clamped) / 100;\r\n }\r\n return CIRCUMFERENCE;\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n if (\r\n this.variant() === 'determinate' &&\r\n this.value() >= 100\r\n ) {\r\n this.onFinished.emit();\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n inject,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nexport type AlertSeverity =\r\n | 'error'\r\n | 'warning'\r\n | 'info'\r\n | 'success'\r\n | 'primary'\r\n | 'secondary';\r\n\r\nexport type AlertVariant = 'default' | 'filled' | 'outlined';\r\n\r\nconst SEVERITY_ICON_MAP: Record<AlertSeverity, string> = {\r\n success: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"/></svg>`,\r\n error: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/></svg>`,\r\n warning: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"/></svg>`,\r\n info: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n primary: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n secondary: `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"/></svg>`,\r\n};\r\n\r\nconst CLOSE_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"18\" height=\"18\"><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>`;\r\n\r\n@Component({\r\n selector: 'ls-alert',\r\n standalone: true,\r\n template: `\r\n <div\r\n [class]=\"alertClasses()\"\r\n [style]=\"colorStyle()\"\r\n role=\"alert\"\r\n [attr.aria-live]=\"ariaLive()\">\r\n @if (icon()) {\r\n <span class=\"alert-icon\" [innerHTML]=\"sanitizedIcon()\"></span>\r\n }\r\n <div class=\"alert-content\">\r\n @if (alertTitle()) {\r\n <div class=\"alert-title\">{{ alertTitle() }}</div>\r\n }\r\n @if (message()) {\r\n <div class=\"alert-message\">{{ message() }}</div>\r\n }\r\n </div>\r\n @if (closable()) {\r\n <button\r\n class=\"alert-close\"\r\n (click)=\"onClose.emit()\"\r\n [innerHTML]=\"sanitizedCloseIcon\"\r\n aria-label=\"Close\"></button>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./alert.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AlertComponent {\r\n private readonly _sanitizer = inject(DomSanitizer);\r\n\r\n readonly severity = input<AlertSeverity>('info');\r\n readonly variant = input<AlertVariant>('default');\r\n readonly closable = input<boolean>(false);\r\n readonly icon = input<boolean>(true);\r\n readonly iconMapping = input<string>();\r\n readonly color = input<string>();\r\n readonly alertTitle = input<string>();\r\n readonly message = input<string>();\r\n\r\n readonly onClose = output<void>();\r\n\r\n readonly alertClasses = computed(() => {\r\n const classes = ['alert', `alert-${this.variant()}-${this.severity()}`];\r\n if (this.closable()) {\r\n classes.push('alert-closable');\r\n }\r\n return classes.join(' ');\r\n });\r\n\r\n readonly ariaLive = computed(() => {\r\n const s = this.severity();\r\n return s === 'error' || s === 'warning' ? 'assertive' : 'polite';\r\n });\r\n\r\n readonly sanitizedIcon = computed(() => {\r\n const svg = this.iconMapping() || SEVERITY_ICON_MAP[this.severity()];\r\n return this._sanitizer.bypassSecurityTrustHtml(svg);\r\n });\r\n\r\n readonly sanitizedCloseIcon =\r\n this._sanitizer.bypassSecurityTrustHtml(CLOSE_ICON);\r\n\r\n readonly colorStyle = computed(() => {\r\n const c = this.color();\r\n if (!c) return '';\r\n return `--alert-custom-color: ${c};`;\r\n });\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|