@testgorilla/tgo-ui 6.0.3 → 6.1.1
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/components/audio-waveform/audio-waveform.component.d.ts +32 -0
- package/components/audio-waveform/audio-waveform.model.d.ts +8 -0
- package/components/audio-waveform/audio-waveform.module.d.ts +7 -0
- package/components/audio-waveform/audio-waveform.service.d.ts +21 -0
- package/components/audio-waveform/index.d.ts +5 -0
- package/components/audio-waveform/public-api.d.ts +4 -0
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +193 -0
- package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -0
- package/fesm2022/testgorilla-tgo-ui.mjs +1 -0
- package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
- package/package.json +33 -39
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AudioWaveformComponent implements OnDestroy {
|
|
4
|
+
private readonly waveformService;
|
|
5
|
+
readonly barCount: number;
|
|
6
|
+
readonly width: import("@angular/core").InputSignal<number>;
|
|
7
|
+
readonly height: import("@angular/core").InputSignal<number>;
|
|
8
|
+
readonly gap: import("@angular/core").InputSignal<number>;
|
|
9
|
+
readonly minScale: import("@angular/core").InputSignal<number>;
|
|
10
|
+
readonly smoothing: import("@angular/core").InputSignal<number>;
|
|
11
|
+
/**
|
|
12
|
+
* When provided, the component operates in controlled mode —
|
|
13
|
+
* it renders externally-supplied bar values instead of managing the mic itself.
|
|
14
|
+
*/
|
|
15
|
+
readonly bars: import("@angular/core").InputSignal<number[] | null>;
|
|
16
|
+
/** Mirror of `bars` for controlled mode; required when `bars` is set. */
|
|
17
|
+
readonly active: import("@angular/core").InputSignal<boolean | null>;
|
|
18
|
+
readonly controlled: import("@angular/core").Signal<boolean>;
|
|
19
|
+
readonly effectiveBars: import("@angular/core").Signal<number[]>;
|
|
20
|
+
readonly effectiveActive: import("@angular/core").Signal<boolean>;
|
|
21
|
+
readonly barWidth: import("@angular/core").Signal<number>;
|
|
22
|
+
constructor();
|
|
23
|
+
barHeight(value: number): number;
|
|
24
|
+
barRadius(): number;
|
|
25
|
+
barValue(index: number): number;
|
|
26
|
+
barColor(index: number): string;
|
|
27
|
+
/** Returns the x-offset for a bar so the shared CSS gradient aligns correctly. */
|
|
28
|
+
barOffset(index: number): number;
|
|
29
|
+
ngOnDestroy(): void;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AudioWaveformComponent, never>;
|
|
31
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AudioWaveformComponent, "ui-audio-waveform", never, { "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "minScale": { "alias": "minScale"; "required": false; "isSignal": true; }; "smoothing": { "alias": "smoothing"; "required": false; "isSignal": true; }; "bars": { "alias": "bars"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface AudioWaveformConfig {
|
|
2
|
+
barCount: number;
|
|
3
|
+
smoothing: number;
|
|
4
|
+
fftSize: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const DEFAULT_AUDIO_WAVEFORM_CONFIG: AudioWaveformConfig;
|
|
7
|
+
/** Per-bar colors for the 5-bar waveform (left to right) */
|
|
8
|
+
export declare const AUDIO_WAVEFORM_BAR_COLORS: string[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./audio-waveform.component";
|
|
3
|
+
export declare class AudioWaveformModule {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AudioWaveformModule, never>;
|
|
5
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AudioWaveformModule, never, [typeof i1.AudioWaveformComponent], [typeof i1.AudioWaveformComponent]>;
|
|
6
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AudioWaveformModule>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AudioWaveformService implements OnDestroy {
|
|
4
|
+
private ctx;
|
|
5
|
+
private analyser;
|
|
6
|
+
private source;
|
|
7
|
+
private stream;
|
|
8
|
+
private raf;
|
|
9
|
+
readonly bars: import("@angular/core").WritableSignal<number[]>;
|
|
10
|
+
readonly active: import("@angular/core").WritableSignal<boolean>;
|
|
11
|
+
start(barCount?: number, smoothing?: number): Promise<void>;
|
|
12
|
+
stop(): void;
|
|
13
|
+
ngOnDestroy(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a symmetric bar distribution where middle bars are highest.
|
|
16
|
+
* Uses a bell-curve-like pattern centered at the middle bar.
|
|
17
|
+
*/
|
|
18
|
+
private createSymmetricBars;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AudioWaveformService, never>;
|
|
20
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AudioWaveformService>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { signal, Injectable, inject, input, computed, effect, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
const DEFAULT_AUDIO_WAVEFORM_CONFIG = {
|
|
5
|
+
barCount: 5,
|
|
6
|
+
smoothing: 0.55,
|
|
7
|
+
fftSize: 256,
|
|
8
|
+
};
|
|
9
|
+
/** Per-bar colors for the 5-bar waveform (left to right) */
|
|
10
|
+
const AUDIO_WAVEFORM_BAR_COLORS = ['#C065D0', '#A86FDA', '#9078E3', '#7882EC', '#6889F3'];
|
|
11
|
+
|
|
12
|
+
class AudioWaveformService {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.ctx = null;
|
|
15
|
+
this.analyser = null;
|
|
16
|
+
this.source = null;
|
|
17
|
+
this.stream = null;
|
|
18
|
+
this.raf = null;
|
|
19
|
+
this.bars = signal([]);
|
|
20
|
+
this.active = signal(false);
|
|
21
|
+
}
|
|
22
|
+
async start(barCount = DEFAULT_AUDIO_WAVEFORM_CONFIG.barCount, smoothing = DEFAULT_AUDIO_WAVEFORM_CONFIG.smoothing) {
|
|
23
|
+
if (this.active())
|
|
24
|
+
return;
|
|
25
|
+
try {
|
|
26
|
+
this.stream = await navigator.mediaDevices.getUserMedia({ audio: true });
|
|
27
|
+
this.ctx = new AudioContext();
|
|
28
|
+
this.analyser = this.ctx.createAnalyser();
|
|
29
|
+
this.analyser.fftSize = DEFAULT_AUDIO_WAVEFORM_CONFIG.fftSize;
|
|
30
|
+
this.analyser.smoothingTimeConstant = smoothing;
|
|
31
|
+
this.source = this.ctx.createMediaStreamSource(this.stream);
|
|
32
|
+
this.source.connect(this.analyser);
|
|
33
|
+
this.active.set(true);
|
|
34
|
+
const data = new Uint8Array(this.analyser.frequencyBinCount);
|
|
35
|
+
// Focus on the lower ~60% of bins where speech energy concentrates
|
|
36
|
+
const speechBinCount = Math.max(1, Math.floor(data.length * 0.6));
|
|
37
|
+
const analyserRef = this.analyser;
|
|
38
|
+
const tick = () => {
|
|
39
|
+
analyserRef.getByteFrequencyData(data);
|
|
40
|
+
// RMS (root mean square) of speech-range bins — represents perceived loudness,
|
|
41
|
+
// unlike peak which saturates on any single spike
|
|
42
|
+
let sumSq = 0;
|
|
43
|
+
for (let i = 0; i < speechBinCount; i++) {
|
|
44
|
+
const v = data[i] / 255;
|
|
45
|
+
sumSq += v * v;
|
|
46
|
+
}
|
|
47
|
+
const rms = Math.sqrt(sumSq / speechBinCount);
|
|
48
|
+
// Power curve keeps quiet→loud variation visible. Gain multiplier ensures
|
|
49
|
+
// loud speech reaches full bar height. Clamped to [0, 1].
|
|
50
|
+
const amplitude = Math.min(1, Math.pow(rms, 0.55) * 1.5);
|
|
51
|
+
const values = this.createSymmetricBars(barCount, amplitude);
|
|
52
|
+
this.bars.set(values);
|
|
53
|
+
this.raf = requestAnimationFrame(tick);
|
|
54
|
+
};
|
|
55
|
+
tick();
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
console.error('[AudioWaveform] Mic access denied:', e);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
stop() {
|
|
62
|
+
if (this.raf !== null)
|
|
63
|
+
cancelAnimationFrame(this.raf);
|
|
64
|
+
this.source?.disconnect();
|
|
65
|
+
this.analyser?.disconnect();
|
|
66
|
+
this.stream?.getTracks().forEach(t => t.stop());
|
|
67
|
+
if (this.ctx && this.ctx.state !== 'closed') {
|
|
68
|
+
void this.ctx.close();
|
|
69
|
+
}
|
|
70
|
+
this.ctx = null;
|
|
71
|
+
this.analyser = null;
|
|
72
|
+
this.source = null;
|
|
73
|
+
this.stream = null;
|
|
74
|
+
this.raf = null;
|
|
75
|
+
this.active.set(false);
|
|
76
|
+
this.bars.set([]);
|
|
77
|
+
}
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
this.stop();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Creates a symmetric bar distribution where middle bars are highest.
|
|
83
|
+
* Uses a bell-curve-like pattern centered at the middle bar.
|
|
84
|
+
*/
|
|
85
|
+
createSymmetricBars(barCount, amplitude) {
|
|
86
|
+
const center = (barCount - 1) / 2;
|
|
87
|
+
const maxDistance = center;
|
|
88
|
+
return Array.from({ length: barCount }, (_, i) => {
|
|
89
|
+
const distance = Math.abs(i - center);
|
|
90
|
+
// Weight decreases as distance from center increases
|
|
91
|
+
// Using a quadratic falloff for smoother appearance
|
|
92
|
+
const weight = 1 - (distance / maxDistance) * 0.65;
|
|
93
|
+
return amplitude * weight;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
97
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformService, providedIn: 'root' }); }
|
|
98
|
+
}
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformService, decorators: [{
|
|
100
|
+
type: Injectable,
|
|
101
|
+
args: [{ providedIn: 'root' }]
|
|
102
|
+
}] });
|
|
103
|
+
|
|
104
|
+
class AudioWaveformComponent {
|
|
105
|
+
constructor() {
|
|
106
|
+
this.waveformService = inject(AudioWaveformService);
|
|
107
|
+
this.barCount = DEFAULT_AUDIO_WAVEFORM_CONFIG.barCount;
|
|
108
|
+
this.width = input(40);
|
|
109
|
+
this.height = input(22);
|
|
110
|
+
this.gap = input(3);
|
|
111
|
+
this.minScale = input(0.08);
|
|
112
|
+
this.smoothing = input(DEFAULT_AUDIO_WAVEFORM_CONFIG.smoothing);
|
|
113
|
+
/**
|
|
114
|
+
* When provided, the component operates in controlled mode —
|
|
115
|
+
* it renders externally-supplied bar values instead of managing the mic itself.
|
|
116
|
+
*/
|
|
117
|
+
this.bars = input(null);
|
|
118
|
+
/** Mirror of `bars` for controlled mode; required when `bars` is set. */
|
|
119
|
+
this.active = input(null);
|
|
120
|
+
this.controlled = computed(() => this.active() !== null);
|
|
121
|
+
this.effectiveBars = computed(() => {
|
|
122
|
+
if (this.controlled()) {
|
|
123
|
+
return this.bars() ?? [];
|
|
124
|
+
}
|
|
125
|
+
return this.waveformService.bars();
|
|
126
|
+
});
|
|
127
|
+
this.effectiveActive = computed(() => {
|
|
128
|
+
if (this.controlled()) {
|
|
129
|
+
return this.active() ?? false;
|
|
130
|
+
}
|
|
131
|
+
return this.waveformService.active();
|
|
132
|
+
});
|
|
133
|
+
this.barWidth = computed(() => {
|
|
134
|
+
const count = this.barCount;
|
|
135
|
+
return (this.width() - this.gap() * (count - 1)) / count;
|
|
136
|
+
});
|
|
137
|
+
effect(() => {
|
|
138
|
+
if (!this.controlled()) {
|
|
139
|
+
void this.waveformService.start(this.barCount, this.smoothing());
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
barHeight(value) {
|
|
144
|
+
const h = this.height();
|
|
145
|
+
const min = this.minScale();
|
|
146
|
+
return h * (min + value * (1 - min));
|
|
147
|
+
}
|
|
148
|
+
barRadius() {
|
|
149
|
+
return this.barWidth() / 2;
|
|
150
|
+
}
|
|
151
|
+
barValue(index) {
|
|
152
|
+
const bars = this.effectiveBars();
|
|
153
|
+
return bars[index] ?? 0;
|
|
154
|
+
}
|
|
155
|
+
barColor(index) {
|
|
156
|
+
return AUDIO_WAVEFORM_BAR_COLORS[index] ?? AUDIO_WAVEFORM_BAR_COLORS[0];
|
|
157
|
+
}
|
|
158
|
+
/** Returns the x-offset for a bar so the shared CSS gradient aligns correctly. */
|
|
159
|
+
barOffset(index) {
|
|
160
|
+
return (this.barWidth() + this.gap()) * index;
|
|
161
|
+
}
|
|
162
|
+
ngOnDestroy() {
|
|
163
|
+
if (!this.controlled()) {
|
|
164
|
+
this.waveformService.stop();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: AudioWaveformComponent, isStandalone: true, selector: "ui-audio-waveform", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, minScale: { classPropertyName: "minScale", publicName: "minScale", isSignal: true, isRequired: false, transformFunction: null }, smoothing: { classPropertyName: "smoothing", publicName: "smoothing", isSignal: true, isRequired: false, transformFunction: null }, bars: { classPropertyName: "bars", publicName: "bars", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"waveform\"\n [style.width.px]=\"width()\"\n [style.height.px]=\"height()\"\n [style.gap.px]=\"gap()\"\n role=\"img\"\n [attr.aria-label]=\"effectiveActive() ? 'Audio waveform active' : 'Audio waveform inactive'\"\n>\n @for (item of effectiveBars(); track $index) {\n <div\n class=\"waveform-bar\"\n [style.width.px]=\"barWidth()\"\n [style.height.px]=\"barHeight(barValue($index))\"\n [style.border-radius.px]=\"barRadius()\"\n [style.background-color]=\"barColor($index)\"\n ></div>\n }\n</div>\n", styles: [".waveform{display:inline-flex;align-items:center}.waveform-bar{flex-shrink:0;transition:height 80ms ease-out}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
169
|
+
}
|
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformComponent, decorators: [{
|
|
171
|
+
type: Component,
|
|
172
|
+
args: [{ selector: 'ui-audio-waveform', changeDetection: ChangeDetectionStrategy.OnPush, imports: [], template: "<div\n class=\"waveform\"\n [style.width.px]=\"width()\"\n [style.height.px]=\"height()\"\n [style.gap.px]=\"gap()\"\n role=\"img\"\n [attr.aria-label]=\"effectiveActive() ? 'Audio waveform active' : 'Audio waveform inactive'\"\n>\n @for (item of effectiveBars(); track $index) {\n <div\n class=\"waveform-bar\"\n [style.width.px]=\"barWidth()\"\n [style.height.px]=\"barHeight(barValue($index))\"\n [style.border-radius.px]=\"barRadius()\"\n [style.background-color]=\"barColor($index)\"\n ></div>\n }\n</div>\n", styles: [".waveform{display:inline-flex;align-items:center}.waveform-bar{flex-shrink:0;transition:height 80ms ease-out}\n"] }]
|
|
173
|
+
}], ctorParameters: () => [] });
|
|
174
|
+
|
|
175
|
+
class AudioWaveformModule {
|
|
176
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
177
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformModule, imports: [AudioWaveformComponent], exports: [AudioWaveformComponent] }); }
|
|
178
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformModule }); }
|
|
179
|
+
}
|
|
180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: AudioWaveformModule, decorators: [{
|
|
181
|
+
type: NgModule,
|
|
182
|
+
args: [{
|
|
183
|
+
imports: [AudioWaveformComponent],
|
|
184
|
+
exports: [AudioWaveformComponent],
|
|
185
|
+
}]
|
|
186
|
+
}] });
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Generated bundle index. Do not edit.
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
export { AUDIO_WAVEFORM_BAR_COLORS, AudioWaveformComponent, AudioWaveformModule, AudioWaveformService, DEFAULT_AUDIO_WAVEFORM_CONFIG };
|
|
193
|
+
//# sourceMappingURL=testgorilla-tgo-ui-components-audio-waveform.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui-components-audio-waveform.mjs","sources":["../../../components/audio-waveform/audio-waveform.model.ts","../../../components/audio-waveform/audio-waveform.service.ts","../../../components/audio-waveform/audio-waveform.component.ts","../../../components/audio-waveform/audio-waveform.component.html","../../../components/audio-waveform/audio-waveform.module.ts","../../../components/audio-waveform/testgorilla-tgo-ui-components-audio-waveform.ts"],"sourcesContent":["export interface AudioWaveformConfig {\n barCount: number;\n smoothing: number;\n fftSize: number;\n}\n\nexport const DEFAULT_AUDIO_WAVEFORM_CONFIG: AudioWaveformConfig = {\n barCount: 5,\n smoothing: 0.55,\n fftSize: 256,\n};\n\n/** Per-bar colors for the 5-bar waveform (left to right) */\nexport const AUDIO_WAVEFORM_BAR_COLORS: string[] = ['#C065D0', '#A86FDA', '#9078E3', '#7882EC', '#6889F3'];\n","import { Injectable, OnDestroy, signal } from '@angular/core';\nimport { DEFAULT_AUDIO_WAVEFORM_CONFIG } from './audio-waveform.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AudioWaveformService implements OnDestroy {\n private ctx: AudioContext | null = null;\n private analyser: AnalyserNode | null = null;\n private source: MediaStreamAudioSourceNode | null = null;\n private stream: MediaStream | null = null;\n private raf: number | null = null;\n\n readonly bars = signal<number[]>([]);\n readonly active = signal<boolean>(false);\n\n async start(\n barCount = DEFAULT_AUDIO_WAVEFORM_CONFIG.barCount,\n smoothing = DEFAULT_AUDIO_WAVEFORM_CONFIG.smoothing\n ): Promise<void> {\n if (this.active()) return;\n\n try {\n this.stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n this.ctx = new AudioContext();\n this.analyser = this.ctx.createAnalyser();\n this.analyser.fftSize = DEFAULT_AUDIO_WAVEFORM_CONFIG.fftSize;\n this.analyser.smoothingTimeConstant = smoothing;\n this.source = this.ctx.createMediaStreamSource(this.stream);\n this.source.connect(this.analyser);\n this.active.set(true);\n\n const data = new Uint8Array(this.analyser.frequencyBinCount);\n // Focus on the lower ~60% of bins where speech energy concentrates\n const speechBinCount = Math.max(1, Math.floor(data.length * 0.6));\n\n const analyserRef = this.analyser;\n const tick = (): void => {\n analyserRef.getByteFrequencyData(data);\n\n // RMS (root mean square) of speech-range bins — represents perceived loudness,\n // unlike peak which saturates on any single spike\n let sumSq = 0;\n for (let i = 0; i < speechBinCount; i++) {\n const v = data[i] / 255;\n sumSq += v * v;\n }\n const rms = Math.sqrt(sumSq / speechBinCount);\n\n // Power curve keeps quiet→loud variation visible. Gain multiplier ensures\n // loud speech reaches full bar height. Clamped to [0, 1].\n const amplitude = Math.min(1, Math.pow(rms, 0.55) * 1.5);\n\n const values = this.createSymmetricBars(barCount, amplitude);\n this.bars.set(values);\n this.raf = requestAnimationFrame(tick);\n };\n tick();\n } catch (e) {\n console.error('[AudioWaveform] Mic access denied:', e);\n }\n }\n\n stop(): void {\n if (this.raf !== null) cancelAnimationFrame(this.raf);\n this.source?.disconnect();\n this.analyser?.disconnect();\n this.stream?.getTracks().forEach(t => t.stop());\n if (this.ctx && this.ctx.state !== 'closed') {\n void this.ctx.close();\n }\n this.ctx = null;\n this.analyser = null;\n this.source = null;\n this.stream = null;\n this.raf = null;\n this.active.set(false);\n this.bars.set([]);\n }\n\n ngOnDestroy(): void {\n this.stop();\n }\n\n /**\n * Creates a symmetric bar distribution where middle bars are highest.\n * Uses a bell-curve-like pattern centered at the middle bar.\n */\n private createSymmetricBars(barCount: number, amplitude: number): number[] {\n const center = (barCount - 1) / 2;\n const maxDistance = center;\n\n return Array.from({ length: barCount }, (_, i) => {\n const distance = Math.abs(i - center);\n // Weight decreases as distance from center increases\n // Using a quadratic falloff for smoother appearance\n const weight = 1 - (distance / maxDistance) * 0.65;\n return amplitude * weight;\n });\n }\n}\n","import { Component, ChangeDetectionStrategy, OnDestroy, computed, effect, inject, input } from '@angular/core';\nimport { AudioWaveformService } from './audio-waveform.service';\nimport { DEFAULT_AUDIO_WAVEFORM_CONFIG, AUDIO_WAVEFORM_BAR_COLORS } from './audio-waveform.model';\n\n@Component({\n selector: 'ui-audio-waveform',\n templateUrl: './audio-waveform.component.html',\n styleUrls: ['./audio-waveform.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n})\nexport class AudioWaveformComponent implements OnDestroy {\n private readonly waveformService = inject(AudioWaveformService);\n\n readonly barCount = DEFAULT_AUDIO_WAVEFORM_CONFIG.barCount;\n readonly width = input<number>(40);\n readonly height = input<number>(22);\n readonly gap = input<number>(3);\n readonly minScale = input<number>(0.08);\n readonly smoothing = input<number>(DEFAULT_AUDIO_WAVEFORM_CONFIG.smoothing);\n\n /**\n * When provided, the component operates in controlled mode —\n * it renders externally-supplied bar values instead of managing the mic itself.\n */\n readonly bars = input<number[] | null>(null);\n\n /** Mirror of `bars` for controlled mode; required when `bars` is set. */\n readonly active = input<boolean | null>(null);\n\n readonly controlled = computed(() => this.active() !== null);\n\n readonly effectiveBars = computed(() => {\n if (this.controlled()) {\n return this.bars() ?? [];\n }\n return this.waveformService.bars();\n });\n\n readonly effectiveActive = computed(() => {\n if (this.controlled()) {\n return this.active() ?? false;\n }\n return this.waveformService.active();\n });\n\n readonly barWidth = computed(() => {\n const count = this.barCount;\n return (this.width() - this.gap() * (count - 1)) / count;\n });\n\n\n constructor() {\n effect(() => {\n if (!this.controlled()) {\n void this.waveformService.start(this.barCount, this.smoothing());\n }\n });\n }\n\n barHeight(value: number): number {\n const h = this.height();\n const min = this.minScale();\n return h * (min + value * (1 - min));\n }\n\n barRadius(): number {\n return this.barWidth() / 2;\n }\n\n barValue(index: number): number {\n const bars = this.effectiveBars();\n return bars[index] ?? 0;\n }\n\n barColor(index: number): string {\n return AUDIO_WAVEFORM_BAR_COLORS[index] ?? AUDIO_WAVEFORM_BAR_COLORS[0];\n }\n\n /** Returns the x-offset for a bar so the shared CSS gradient aligns correctly. */\n barOffset(index: number): number {\n return (this.barWidth() + this.gap()) * index;\n }\n\n ngOnDestroy(): void {\n if (!this.controlled()) {\n this.waveformService.stop();\n }\n }\n}\n","<div\n class=\"waveform\"\n [style.width.px]=\"width()\"\n [style.height.px]=\"height()\"\n [style.gap.px]=\"gap()\"\n role=\"img\"\n [attr.aria-label]=\"effectiveActive() ? 'Audio waveform active' : 'Audio waveform inactive'\"\n>\n @for (item of effectiveBars(); track $index) {\n <div\n class=\"waveform-bar\"\n [style.width.px]=\"barWidth()\"\n [style.height.px]=\"barHeight(barValue($index))\"\n [style.border-radius.px]=\"barRadius()\"\n [style.background-color]=\"barColor($index)\"\n ></div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { AudioWaveformComponent } from './audio-waveform.component';\n\n@NgModule({\n imports: [AudioWaveformComponent],\n exports: [AudioWaveformComponent],\n})\nexport class AudioWaveformModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAMa,MAAA,6BAA6B,GAAwB;AAChE,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,OAAO,EAAE,GAAG;;AAGd;AACO,MAAM,yBAAyB,GAAa,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS;;MCT5F,oBAAoB,CAAA;AADjC,IAAA,WAAA,GAAA;QAEU,IAAG,CAAA,GAAA,GAAwB,IAAI;QAC/B,IAAQ,CAAA,QAAA,GAAwB,IAAI;QACpC,IAAM,CAAA,MAAA,GAAsC,IAAI;QAChD,IAAM,CAAA,MAAA,GAAuB,IAAI;QACjC,IAAG,CAAA,GAAA,GAAkB,IAAI;AAExB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAW,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAU,KAAK,CAAC;AAsFzC;AApFC,IAAA,MAAM,KAAK,CACT,QAAQ,GAAG,6BAA6B,CAAC,QAAQ,EACjD,SAAS,GAAG,6BAA6B,CAAC,SAAS,EAAA;QAEnD,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE;AAEnB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxE,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,EAAE;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;YACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,6BAA6B,CAAC,OAAO;AAC7D,YAAA,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,SAAS;AAC/C,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAErB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;;AAE5D,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AAEjE,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ;YACjC,MAAM,IAAI,GAAG,MAAW;AACtB,gBAAA,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC;;;gBAItC,IAAI,KAAK,GAAG,CAAC;AACb,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;oBACvC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG;AACvB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC;;gBAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;;;AAI7C,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;gBAExD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC5D,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACrB,gBAAA,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC;AACxC,aAAC;AACD,YAAA,IAAI,EAAE;;QACN,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC;;;IAI1D,IAAI,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI;AAAE,YAAA,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC;AACrD,QAAA,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;AACzB,QAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC3B,QAAA,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/C,QAAA,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC3C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;;AAEvB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;;IAGnB,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,EAAE;;AAGb;;;AAGG;IACK,mBAAmB,CAAC,QAAgB,EAAE,SAAiB,EAAA;QAC7D,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM;AAE1B,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;;;YAGrC,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,WAAW,IAAI,IAAI;YAClD,OAAO,SAAS,GAAG,MAAM;AAC3B,SAAC,CAAC;;+GA5FO,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA,CAAA;;4FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCQrB,sBAAsB,CAAA;AAyCjC,IAAA,WAAA,GAAA;AAxCiB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAEtD,QAAA,IAAA,CAAA,QAAQ,GAAG,6BAA6B,CAAC,QAAQ;AACjD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAS,EAAE,CAAC;AAC1B,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAS,CAAC,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,IAAI,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,6BAA6B,CAAC,SAAS,CAAC;AAE3E;;;AAGG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkB,IAAI,CAAC;;AAGnC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAiB,IAAI,CAAC;AAEpC,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC;AAEnD,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,gBAAA,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;;AAE1B,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AACpC,SAAC,CAAC;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACrB,gBAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK;;AAE/B,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AACtC,SAAC,CAAC;AAEO,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ;AAC3B,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK;AAC1D,SAAC,CAAC;QAIA,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACtB,gBAAA,KAAK,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;;AAEpE,SAAC,CAAC;;AAGJ,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC3B,QAAA,OAAO,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;;IAGtC,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;;AAG5B,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE;AACjC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;;AAGzB,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC;;;AAIzE,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK;;IAG/C,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;;;+GA3EpB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,m7BCXnC,yiBAkBA,EAAA,MAAA,EAAA,CAAA,iHAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDPa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGZ,eAAA,EAAA,uBAAuB,CAAC,MAAM,WACtC,EAAE,EAAA,QAAA,EAAA,yiBAAA,EAAA,MAAA,EAAA,CAAA,iHAAA,CAAA,EAAA;;;MEFA,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAHpB,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACtB,sBAAsB,CAAA,EAAA,CAAA,CAAA;gHAErB,mBAAmB,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,sBAAsB,CAAC;oBACjC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;ACND;;AAEG;;;;"}
|
|
@@ -148,6 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
148
148
|
* - @testgorilla/tgo-ui/components/gaussian-chart
|
|
149
149
|
* - @testgorilla/tgo-ui/components/spider-chart
|
|
150
150
|
* - @testgorilla/tgo-ui/components/universal-skills
|
|
151
|
+
* - @testgorilla/tgo-ui/components/audio-waveform
|
|
151
152
|
*/
|
|
152
153
|
// Core utilities (re-exported for backward compatibility)
|
|
153
154
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testgorilla-tgo-ui.mjs","sources":["../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.ts","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.html","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.module.ts","../../../projects/tgo-canopy-ui/public-api.ts","../../../projects/tgo-canopy-ui/testgorilla-tgo-ui.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\n\n@Component({\n selector: 'ui-paginator',\n templateUrl: './deprecated-paginator.component.html',\n styleUrls: ['./deprecated-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class DeprecatedPaginatorComponent implements OnInit {\n // TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/16865\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/17004\n\n /**\n * Paginator size options\n *\n * @type {number[]}\n * @memberof PaginatorComponent\n */\n readonly pageSizeOptions = [10, 25, 50];\n\n /**\n * Data length\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() length = 0;\n\n /**\n * Default page size\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() defaultPageSize = 25;\n\n /**\n * @ignore\n */\n @Output() paginatorChangedEvent: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\n\n /**\n * @ignore\n */\n ngOnInit(): void {}\n\n constructor() {}\n\n paginatorChanged(paginator: PageEvent) {\n this.paginatorChangedEvent.emit(paginator);\n }\n}\n","<mat-paginator [length]=\"length\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"paginatorChanged($event)\">\n</mat-paginator>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { DeprecatedPaginatorComponent } from './deprecated-paginator.component';\n\n@NgModule({\n declarations: [DeprecatedPaginatorComponent],\n imports: [CommonModule, MatPaginatorModule],\n exports: [DeprecatedPaginatorComponent],\n providers: [],\n})\nexport class DeprecatedPaginatorComponentModule {}\n","/* eslint-disable */\n/**\n * @testgorilla/tgo-ui Public API\n *\n * IMPORTANT: For optimal tree-shaking, import directly from entry points:\n *\n * @example\n * import { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\n * import { IconComponent } from '@testgorilla/tgo-ui/components/icon';\n * import { DialogService } from '@testgorilla/tgo-ui/components/dialog';\n *\n * Available entry points:\n * - @testgorilla/tgo-ui/components/core (shared utilities, pipes, directives)\n * - @testgorilla/tgo-ui/components/icon\n * - @testgorilla/tgo-ui/components/badge\n * - @testgorilla/tgo-ui/components/button\n * - @testgorilla/tgo-ui/components/card\n * - @testgorilla/tgo-ui/components/checkbox\n * - @testgorilla/tgo-ui/components/dropdown\n * - @testgorilla/tgo-ui/components/field\n * - @testgorilla/tgo-ui/components/inline-field\n * - @testgorilla/tgo-ui/components/toggle\n * - @testgorilla/tgo-ui/components/radio-button\n * - @testgorilla/tgo-ui/components/slider\n * - @testgorilla/tgo-ui/components/rating\n * - @testgorilla/tgo-ui/components/scale\n * - @testgorilla/tgo-ui/components/autocomplete\n * - @testgorilla/tgo-ui/components/divider\n * - @testgorilla/tgo-ui/components/skeleton\n * - @testgorilla/tgo-ui/components/elevation-shadow\n * - @testgorilla/tgo-ui/components/tooltip\n * - @testgorilla/tgo-ui/components/spinner\n * - @testgorilla/tgo-ui/components/progress-bar\n * - @testgorilla/tgo-ui/components/radial-progress\n * - @testgorilla/tgo-ui/components/tag\n * - @testgorilla/tgo-ui/components/avatar\n * - @testgorilla/tgo-ui/components/logo\n * - @testgorilla/tgo-ui/components/empty-state\n * - @testgorilla/tgo-ui/components/filter-button\n * - @testgorilla/tgo-ui/components/segmented-button\n * - @testgorilla/tgo-ui/components/segmented-bar\n * - @testgorilla/tgo-ui/components/paginator\n * - @testgorilla/tgo-ui/components/validation-error\n * - @testgorilla/tgo-ui/components/accordion\n * - @testgorilla/tgo-ui/components/alert-banner\n * - @testgorilla/tgo-ui/components/breadcrumb\n * - @testgorilla/tgo-ui/components/navbar\n * - @testgorilla/tgo-ui/components/page-header\n * - @testgorilla/tgo-ui/components/tabs\n * - @testgorilla/tgo-ui/components/stepper\n * - @testgorilla/tgo-ui/components/dialog\n * - @testgorilla/tgo-ui/components/snackbar\n * - @testgorilla/tgo-ui/components/side-panel\n * - @testgorilla/tgo-ui/components/side-sheet\n * - @testgorilla/tgo-ui/components/table\n * - @testgorilla/tgo-ui/components/datepicker\n * - @testgorilla/tgo-ui/components/ai-audio-circle\n * - @testgorilla/tgo-ui/components/ai-caveat\n * - @testgorilla/tgo-ui/components/ai-feedback\n * - @testgorilla/tgo-ui/components/checklist\n * - @testgorilla/tgo-ui/components/file-upload\n * - @testgorilla/tgo-ui/components/multi-input\n * - @testgorilla/tgo-ui/components/overflow-menu\n * - @testgorilla/tgo-ui/components/password-criteria\n * - @testgorilla/tgo-ui/components/password-strength\n * - @testgorilla/tgo-ui/components/phone-input\n * - @testgorilla/tgo-ui/components/prompt\n * - @testgorilla/tgo-ui/components/scale-table\n * - @testgorilla/tgo-ui/components/icon-label\n * - @testgorilla/tgo-ui/components/media-card\n * - @testgorilla/tgo-ui/components/media-dialog\n * - @testgorilla/tgo-ui/components/selectable-card\n * - @testgorilla/tgo-ui/components/donut-chart\n * - @testgorilla/tgo-ui/components/gaussian-chart\n * - @testgorilla/tgo-ui/components/spider-chart\n * - @testgorilla/tgo-ui/components/universal-skills\n */\n\n// Core utilities (re-exported for backward compatibility)\nexport * from '@testgorilla/tgo-ui/components/core';\n\n// Legacy: Deprecated Paginator (not an entry point)\nexport * from './components/deprecated-paginator/deprecated-paginator.component';\nexport * from './components/deprecated-paginator/deprecated-paginator.component.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;MAUa,4BAA4B,CAAA;AAkCvC;;AAEG;AACH,IAAA,QAAQ;AAER,IAAA,WAAA,GAAA;;;;AAlCA;;;;;AAKG;QACM,IAAe,CAAA,eAAA,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAEvC;;;;;AAKG;QACM,IAAM,CAAA,MAAA,GAAG,CAAC;AAEnB;;;;;AAKG;QACM,IAAe,CAAA,eAAA,GAAG,EAAE;AAE7B;;AAEG;AACO,QAAA,IAAA,CAAA,qBAAqB,GAA4B,IAAI,YAAY,EAAa;;AASxF,IAAA,gBAAgB,CAAC,SAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC;;+GA1CjC,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,wMCVzC,6MAIgB,EAAA,MAAA,EAAA,CAAA,2yFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDMH,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAGP,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,KAAK,EAAA,QAAA,EAAA,6MAAA,EAAA,MAAA,EAAA,CAAA,2yFAAA,CAAA,EAAA;wDAqBV,MAAM,EAAA,CAAA;sBAAd;gBAQQ,eAAe,EAAA,CAAA;sBAAvB;gBAKS,qBAAqB,EAAA,CAAA;sBAA9B;;;ME/BU,kCAAkC,CAAA;+GAAlC,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kCAAkC,iBAL9B,4BAA4B,CAAA,EAAA,OAAA,EAAA,CACjC,YAAY,EAAE,kBAAkB,aAChC,4BAA4B,CAAA,EAAA,CAAA,CAAA;gHAG3B,kCAAkC,EAAA,OAAA,EAAA,CAJnC,YAAY,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;;4FAI/B,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAN9C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;AAC5C,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;oBAC3C,OAAO,EAAE,CAAC,4BAA4B,CAAC;AACvC,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACVD;AACA
|
|
1
|
+
{"version":3,"file":"testgorilla-tgo-ui.mjs","sources":["../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.ts","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.html","../../../projects/tgo-canopy-ui/components/deprecated-paginator/deprecated-paginator.component.module.ts","../../../projects/tgo-canopy-ui/public-api.ts","../../../projects/tgo-canopy-ui/testgorilla-tgo-ui.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\n\n@Component({\n selector: 'ui-paginator',\n templateUrl: './deprecated-paginator.component.html',\n styleUrls: ['./deprecated-paginator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class DeprecatedPaginatorComponent implements OnInit {\n // TODO: Some properties and methods are ignored on purpose because of a current issue with compodoc and angular 13\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/16865\n // https://github.com/StoryFnbookjs/StoryFnbook/issues/17004\n\n /**\n * Paginator size options\n *\n * @type {number[]}\n * @memberof PaginatorComponent\n */\n readonly pageSizeOptions = [10, 25, 50];\n\n /**\n * Data length\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() length = 0;\n\n /**\n * Default page size\n *\n * @type {number}\n * @memberof PaginatorComponent\n */\n @Input() defaultPageSize = 25;\n\n /**\n * @ignore\n */\n @Output() paginatorChangedEvent: EventEmitter<PageEvent> = new EventEmitter<PageEvent>();\n\n /**\n * @ignore\n */\n ngOnInit(): void {}\n\n constructor() {}\n\n paginatorChanged(paginator: PageEvent) {\n this.paginatorChangedEvent.emit(paginator);\n }\n}\n","<mat-paginator [length]=\"length\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"paginatorChanged($event)\">\n</mat-paginator>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { DeprecatedPaginatorComponent } from './deprecated-paginator.component';\n\n@NgModule({\n declarations: [DeprecatedPaginatorComponent],\n imports: [CommonModule, MatPaginatorModule],\n exports: [DeprecatedPaginatorComponent],\n providers: [],\n})\nexport class DeprecatedPaginatorComponentModule {}\n","/* eslint-disable */\n/**\n * @testgorilla/tgo-ui Public API\n *\n * IMPORTANT: For optimal tree-shaking, import directly from entry points:\n *\n * @example\n * import { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\n * import { IconComponent } from '@testgorilla/tgo-ui/components/icon';\n * import { DialogService } from '@testgorilla/tgo-ui/components/dialog';\n *\n * Available entry points:\n * - @testgorilla/tgo-ui/components/core (shared utilities, pipes, directives)\n * - @testgorilla/tgo-ui/components/icon\n * - @testgorilla/tgo-ui/components/badge\n * - @testgorilla/tgo-ui/components/button\n * - @testgorilla/tgo-ui/components/card\n * - @testgorilla/tgo-ui/components/checkbox\n * - @testgorilla/tgo-ui/components/dropdown\n * - @testgorilla/tgo-ui/components/field\n * - @testgorilla/tgo-ui/components/inline-field\n * - @testgorilla/tgo-ui/components/toggle\n * - @testgorilla/tgo-ui/components/radio-button\n * - @testgorilla/tgo-ui/components/slider\n * - @testgorilla/tgo-ui/components/rating\n * - @testgorilla/tgo-ui/components/scale\n * - @testgorilla/tgo-ui/components/autocomplete\n * - @testgorilla/tgo-ui/components/divider\n * - @testgorilla/tgo-ui/components/skeleton\n * - @testgorilla/tgo-ui/components/elevation-shadow\n * - @testgorilla/tgo-ui/components/tooltip\n * - @testgorilla/tgo-ui/components/spinner\n * - @testgorilla/tgo-ui/components/progress-bar\n * - @testgorilla/tgo-ui/components/radial-progress\n * - @testgorilla/tgo-ui/components/tag\n * - @testgorilla/tgo-ui/components/avatar\n * - @testgorilla/tgo-ui/components/logo\n * - @testgorilla/tgo-ui/components/empty-state\n * - @testgorilla/tgo-ui/components/filter-button\n * - @testgorilla/tgo-ui/components/segmented-button\n * - @testgorilla/tgo-ui/components/segmented-bar\n * - @testgorilla/tgo-ui/components/paginator\n * - @testgorilla/tgo-ui/components/validation-error\n * - @testgorilla/tgo-ui/components/accordion\n * - @testgorilla/tgo-ui/components/alert-banner\n * - @testgorilla/tgo-ui/components/breadcrumb\n * - @testgorilla/tgo-ui/components/navbar\n * - @testgorilla/tgo-ui/components/page-header\n * - @testgorilla/tgo-ui/components/tabs\n * - @testgorilla/tgo-ui/components/stepper\n * - @testgorilla/tgo-ui/components/dialog\n * - @testgorilla/tgo-ui/components/snackbar\n * - @testgorilla/tgo-ui/components/side-panel\n * - @testgorilla/tgo-ui/components/side-sheet\n * - @testgorilla/tgo-ui/components/table\n * - @testgorilla/tgo-ui/components/datepicker\n * - @testgorilla/tgo-ui/components/ai-audio-circle\n * - @testgorilla/tgo-ui/components/ai-caveat\n * - @testgorilla/tgo-ui/components/ai-feedback\n * - @testgorilla/tgo-ui/components/checklist\n * - @testgorilla/tgo-ui/components/file-upload\n * - @testgorilla/tgo-ui/components/multi-input\n * - @testgorilla/tgo-ui/components/overflow-menu\n * - @testgorilla/tgo-ui/components/password-criteria\n * - @testgorilla/tgo-ui/components/password-strength\n * - @testgorilla/tgo-ui/components/phone-input\n * - @testgorilla/tgo-ui/components/prompt\n * - @testgorilla/tgo-ui/components/scale-table\n * - @testgorilla/tgo-ui/components/icon-label\n * - @testgorilla/tgo-ui/components/media-card\n * - @testgorilla/tgo-ui/components/media-dialog\n * - @testgorilla/tgo-ui/components/selectable-card\n * - @testgorilla/tgo-ui/components/donut-chart\n * - @testgorilla/tgo-ui/components/gaussian-chart\n * - @testgorilla/tgo-ui/components/spider-chart\n * - @testgorilla/tgo-ui/components/universal-skills\n * - @testgorilla/tgo-ui/components/audio-waveform\n */\n\n// Core utilities (re-exported for backward compatibility)\nexport * from '@testgorilla/tgo-ui/components/core';\n\n// Legacy: Deprecated Paginator (not an entry point)\nexport * from './components/deprecated-paginator/deprecated-paginator.component';\nexport * from './components/deprecated-paginator/deprecated-paginator.component.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testgorilla/tgo-ui",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"license": "proprietary-license",
|
|
5
5
|
"lint-staged": {
|
|
6
6
|
"{projects,components}/**/*.ts": [
|
|
@@ -48,17 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"overrides": {
|
|
50
50
|
"tar": "^7.5.8",
|
|
51
|
-
"ajv": "^8.18.0"
|
|
52
|
-
"minimatch": "^10.2.1",
|
|
53
|
-
"test-exclude": {
|
|
54
|
-
"minimatch": "^3.1.2"
|
|
55
|
-
},
|
|
56
|
-
"eslint-plugin-import": {
|
|
57
|
-
"minimatch": "^3.1.2"
|
|
58
|
-
},
|
|
59
|
-
"glob@7.2.3": {
|
|
60
|
-
"minimatch": "^3.1.2"
|
|
61
|
-
}
|
|
51
|
+
"ajv": "^8.18.0"
|
|
62
52
|
},
|
|
63
53
|
"module": "fesm2022/testgorilla-tgo-ui.mjs",
|
|
64
54
|
"typings": "index.d.ts",
|
|
@@ -74,6 +64,10 @@
|
|
|
74
64
|
"types": "./components/accordion/index.d.ts",
|
|
75
65
|
"default": "./fesm2022/testgorilla-tgo-ui-components-accordion.mjs"
|
|
76
66
|
},
|
|
67
|
+
"./components/ai-caveat": {
|
|
68
|
+
"types": "./components/ai-caveat/index.d.ts",
|
|
69
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs"
|
|
70
|
+
},
|
|
77
71
|
"./components/ai-audio-circle": {
|
|
78
72
|
"types": "./components/ai-audio-circle/index.d.ts",
|
|
79
73
|
"default": "./fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs"
|
|
@@ -82,34 +76,34 @@
|
|
|
82
76
|
"types": "./components/ai-feedback/index.d.ts",
|
|
83
77
|
"default": "./fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs"
|
|
84
78
|
},
|
|
85
|
-
"./components/
|
|
86
|
-
"types": "./components/
|
|
87
|
-
"default": "./fesm2022/testgorilla-tgo-ui-components-
|
|
79
|
+
"./components/audio-waveform": {
|
|
80
|
+
"types": "./components/audio-waveform/index.d.ts",
|
|
81
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs"
|
|
88
82
|
},
|
|
89
83
|
"./components/alert-banner": {
|
|
90
84
|
"types": "./components/alert-banner/index.d.ts",
|
|
91
85
|
"default": "./fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs"
|
|
92
86
|
},
|
|
93
|
-
"./components/
|
|
94
|
-
"types": "./components/
|
|
95
|
-
"default": "./fesm2022/testgorilla-tgo-ui-components-
|
|
87
|
+
"./components/badge": {
|
|
88
|
+
"types": "./components/badge/index.d.ts",
|
|
89
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-badge.mjs"
|
|
96
90
|
},
|
|
97
91
|
"./components/avatar": {
|
|
98
92
|
"types": "./components/avatar/index.d.ts",
|
|
99
93
|
"default": "./fesm2022/testgorilla-tgo-ui-components-avatar.mjs"
|
|
100
94
|
},
|
|
101
|
-
"./components/
|
|
102
|
-
"types": "./components/
|
|
103
|
-
"default": "./fesm2022/testgorilla-tgo-ui-components-
|
|
104
|
-
},
|
|
105
|
-
"./components/breadcrumb": {
|
|
106
|
-
"types": "./components/breadcrumb/index.d.ts",
|
|
107
|
-
"default": "./fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs"
|
|
95
|
+
"./components/autocomplete": {
|
|
96
|
+
"types": "./components/autocomplete/index.d.ts",
|
|
97
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs"
|
|
108
98
|
},
|
|
109
99
|
"./components/button": {
|
|
110
100
|
"types": "./components/button/index.d.ts",
|
|
111
101
|
"default": "./fesm2022/testgorilla-tgo-ui-components-button.mjs"
|
|
112
102
|
},
|
|
103
|
+
"./components/breadcrumb": {
|
|
104
|
+
"types": "./components/breadcrumb/index.d.ts",
|
|
105
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs"
|
|
106
|
+
},
|
|
113
107
|
"./components/card": {
|
|
114
108
|
"types": "./components/card/index.d.ts",
|
|
115
109
|
"default": "./fesm2022/testgorilla-tgo-ui-components-card.mjs"
|
|
@@ -122,21 +116,21 @@
|
|
|
122
116
|
"types": "./components/checklist/index.d.ts",
|
|
123
117
|
"default": "./fesm2022/testgorilla-tgo-ui-components-checklist.mjs"
|
|
124
118
|
},
|
|
119
|
+
"./components/divider": {
|
|
120
|
+
"types": "./components/divider/index.d.ts",
|
|
121
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-divider.mjs"
|
|
122
|
+
},
|
|
125
123
|
"./components/datepicker": {
|
|
126
124
|
"types": "./components/datepicker/index.d.ts",
|
|
127
125
|
"default": "./fesm2022/testgorilla-tgo-ui-components-datepicker.mjs"
|
|
128
126
|
},
|
|
129
|
-
"./components/core": {
|
|
130
|
-
"types": "./components/core/index.d.ts",
|
|
131
|
-
"default": "./fesm2022/testgorilla-tgo-ui-components-core.mjs"
|
|
132
|
-
},
|
|
133
127
|
"./components/dialog": {
|
|
134
128
|
"types": "./components/dialog/index.d.ts",
|
|
135
129
|
"default": "./fesm2022/testgorilla-tgo-ui-components-dialog.mjs"
|
|
136
130
|
},
|
|
137
|
-
"./components/
|
|
138
|
-
"types": "./components/
|
|
139
|
-
"default": "./fesm2022/testgorilla-tgo-ui-components-
|
|
131
|
+
"./components/core": {
|
|
132
|
+
"types": "./components/core/index.d.ts",
|
|
133
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-core.mjs"
|
|
140
134
|
},
|
|
141
135
|
"./components/donut-chart": {
|
|
142
136
|
"types": "./components/donut-chart/index.d.ts",
|
|
@@ -146,6 +140,10 @@
|
|
|
146
140
|
"types": "./components/dropdown/index.d.ts",
|
|
147
141
|
"default": "./fesm2022/testgorilla-tgo-ui-components-dropdown.mjs"
|
|
148
142
|
},
|
|
143
|
+
"./components/field": {
|
|
144
|
+
"types": "./components/field/index.d.ts",
|
|
145
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-field.mjs"
|
|
146
|
+
},
|
|
149
147
|
"./components/elevation-shadow": {
|
|
150
148
|
"types": "./components/elevation-shadow/index.d.ts",
|
|
151
149
|
"default": "./fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs"
|
|
@@ -154,18 +152,14 @@
|
|
|
154
152
|
"types": "./components/empty-state/index.d.ts",
|
|
155
153
|
"default": "./fesm2022/testgorilla-tgo-ui-components-empty-state.mjs"
|
|
156
154
|
},
|
|
157
|
-
"./components/
|
|
158
|
-
"types": "./components/
|
|
159
|
-
"default": "./fesm2022/testgorilla-tgo-ui-components-
|
|
155
|
+
"./components/filter-button": {
|
|
156
|
+
"types": "./components/filter-button/index.d.ts",
|
|
157
|
+
"default": "./fesm2022/testgorilla-tgo-ui-components-filter-button.mjs"
|
|
160
158
|
},
|
|
161
159
|
"./components/file-upload": {
|
|
162
160
|
"types": "./components/file-upload/index.d.ts",
|
|
163
161
|
"default": "./fesm2022/testgorilla-tgo-ui-components-file-upload.mjs"
|
|
164
162
|
},
|
|
165
|
-
"./components/filter-button": {
|
|
166
|
-
"types": "./components/filter-button/index.d.ts",
|
|
167
|
-
"default": "./fesm2022/testgorilla-tgo-ui-components-filter-button.mjs"
|
|
168
|
-
},
|
|
169
163
|
"./components/gaussian-chart": {
|
|
170
164
|
"types": "./components/gaussian-chart/index.d.ts",
|
|
171
165
|
"default": "./fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs"
|
package/public-api.d.ts
CHANGED
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
* - @testgorilla/tgo-ui/components/gaussian-chart
|
|
74
74
|
* - @testgorilla/tgo-ui/components/spider-chart
|
|
75
75
|
* - @testgorilla/tgo-ui/components/universal-skills
|
|
76
|
+
* - @testgorilla/tgo-ui/components/audio-waveform
|
|
76
77
|
*/
|
|
77
78
|
export * from '@testgorilla/tgo-ui/components/core';
|
|
78
79
|
export * from './components/deprecated-paginator/deprecated-paginator.component';
|