@lieselthuriot/widget-renderer 0.0.0-stage → 0.2.0
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/LICENSE +21 -0
- package/README.md +299 -3
- package/fesm2022/lieselthuriot-widget-renderer-chart-accessibility-BzH2alxy.mjs +185 -0
- package/fesm2022/lieselthuriot-widget-renderer-chart-accessibility-BzH2alxy.mjs.map +1 -0
- package/fesm2022/lieselthuriot-widget-renderer-chart-element-renderer-wVHdIYuJ.mjs +993 -0
- package/fesm2022/lieselthuriot-widget-renderer-chart-element-renderer-wVHdIYuJ.mjs.map +1 -0
- package/fesm2022/lieselthuriot-widget-renderer.mjs +1697 -0
- package/fesm2022/lieselthuriot-widget-renderer.mjs.map +1 -0
- package/package.json +53 -3
- package/types/lieselthuriot-widget-renderer.d.ts +397 -0
- package/types/lieselthuriot-widget-renderer.d.ts.map +1 -0
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { OnDestroy } from "@angular/core";
|
|
3
|
+
export type GridUnit = 'pixel' | 'auto' | 'star';
|
|
4
|
+
export type WidgetElementType = 'text' | 'image' | 'button' | 'divider' | 'pie' | 'donut' | 'funnel' | 'gauge' | 'bar' | 'line' | 'progress';
|
|
5
|
+
export type ButtonMethod = 'get' | 'post';
|
|
6
|
+
export type WidgetSize = 'mini' | 'compact' | 'tall' | 'square' | 'wide' | 'mega' | 'banner' | 'hero';
|
|
7
|
+
export type ElementAnchor = 'top left' | 'top center' | 'top right' | 'center left' | 'center' | 'center right' | 'bottom left' | 'bottom center' | 'bottom right';
|
|
8
|
+
export type GridTrack = {
|
|
9
|
+
size: number;
|
|
10
|
+
unit: 'pixel' | 'star';
|
|
11
|
+
} | {
|
|
12
|
+
size?: never;
|
|
13
|
+
unit: 'auto';
|
|
14
|
+
};
|
|
15
|
+
export interface BackgroundConfig {
|
|
16
|
+
image?: string;
|
|
17
|
+
sensitive: boolean;
|
|
18
|
+
repeat: boolean;
|
|
19
|
+
color?: string;
|
|
20
|
+
size: 'cover' | 'contain' | 'auto';
|
|
21
|
+
anchor: ElementAnchor;
|
|
22
|
+
overlayColor?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface RefreshConfig {
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
label: string;
|
|
27
|
+
}
|
|
28
|
+
export interface TextStyle {
|
|
29
|
+
color: string;
|
|
30
|
+
font: TextFontStyle;
|
|
31
|
+
align: 'left' | 'center' | 'right';
|
|
32
|
+
wrap: boolean;
|
|
33
|
+
background?: string;
|
|
34
|
+
radius?: number;
|
|
35
|
+
padding?: TextPadding | null;
|
|
36
|
+
}
|
|
37
|
+
export interface TextPadding {
|
|
38
|
+
vertical: number;
|
|
39
|
+
horizontal: number;
|
|
40
|
+
}
|
|
41
|
+
export interface ElementGrid {
|
|
42
|
+
row: number;
|
|
43
|
+
column: number;
|
|
44
|
+
rowSpan: number;
|
|
45
|
+
columnSpan: number;
|
|
46
|
+
anchor?: ElementAnchor;
|
|
47
|
+
}
|
|
48
|
+
export interface TextFontStyle {
|
|
49
|
+
size: number;
|
|
50
|
+
bold?: boolean;
|
|
51
|
+
italic?: boolean;
|
|
52
|
+
underline?: boolean;
|
|
53
|
+
strikethrough?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface ChartFontStyle {
|
|
56
|
+
size: number;
|
|
57
|
+
}
|
|
58
|
+
export interface WidgetElementBase {
|
|
59
|
+
type: WidgetElementType;
|
|
60
|
+
grid: ElementGrid;
|
|
61
|
+
sensitive: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface TextElement extends WidgetElementBase {
|
|
64
|
+
type: 'text';
|
|
65
|
+
text: string;
|
|
66
|
+
style: TextStyle;
|
|
67
|
+
}
|
|
68
|
+
export interface ImageElement extends WidgetElementBase {
|
|
69
|
+
type: 'image';
|
|
70
|
+
source: string;
|
|
71
|
+
alt: string;
|
|
72
|
+
fit: 'cover' | 'contain' | 'fill';
|
|
73
|
+
overlayColor?: string;
|
|
74
|
+
radius: number;
|
|
75
|
+
}
|
|
76
|
+
export interface ButtonElement extends WidgetElementBase {
|
|
77
|
+
type: 'button';
|
|
78
|
+
label: string;
|
|
79
|
+
method: ButtonMethod;
|
|
80
|
+
url: string;
|
|
81
|
+
body?: string | null;
|
|
82
|
+
requestRefresh: boolean;
|
|
83
|
+
showOnlyOnHover: boolean;
|
|
84
|
+
style: 'solid' | 'outline';
|
|
85
|
+
}
|
|
86
|
+
export interface DividerElement extends WidgetElementBase {
|
|
87
|
+
type: 'divider';
|
|
88
|
+
orientation: 'horizontal' | 'vertical';
|
|
89
|
+
style: {
|
|
90
|
+
color: string;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export interface ChartDataPoint {
|
|
94
|
+
label: string;
|
|
95
|
+
value: number;
|
|
96
|
+
color?: string | null;
|
|
97
|
+
}
|
|
98
|
+
export interface ChartElementBase extends WidgetElementBase {
|
|
99
|
+
type: 'pie' | 'donut' | 'funnel' | 'gauge' | 'bar' | 'line' | 'progress';
|
|
100
|
+
title?: string;
|
|
101
|
+
showLegend: boolean;
|
|
102
|
+
}
|
|
103
|
+
export interface DataVisualStyle {
|
|
104
|
+
color: {
|
|
105
|
+
legend: string;
|
|
106
|
+
};
|
|
107
|
+
font: ChartFontStyle;
|
|
108
|
+
}
|
|
109
|
+
export interface ChartStyle extends DataVisualStyle {
|
|
110
|
+
color: DataVisualStyle['color'] & {
|
|
111
|
+
title: string;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
export interface AxisChartStyle extends ChartStyle {
|
|
115
|
+
color: ChartStyle['color'] & {
|
|
116
|
+
line?: string;
|
|
117
|
+
};
|
|
118
|
+
axis: {
|
|
119
|
+
label: string;
|
|
120
|
+
line: string;
|
|
121
|
+
grid: string;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
export interface FillTrackStyle extends DataVisualStyle {
|
|
125
|
+
color: DataVisualStyle['color'] & {
|
|
126
|
+
fill: string;
|
|
127
|
+
track: string;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
export interface ProgressSegment {
|
|
131
|
+
kind: 'segment';
|
|
132
|
+
label: string;
|
|
133
|
+
value: number;
|
|
134
|
+
color: string;
|
|
135
|
+
active: boolean;
|
|
136
|
+
}
|
|
137
|
+
export interface ProgressGap {
|
|
138
|
+
kind: 'gap';
|
|
139
|
+
value: number;
|
|
140
|
+
}
|
|
141
|
+
export type ProgressItem = ProgressSegment | ProgressGap;
|
|
142
|
+
export interface ProgressData {
|
|
143
|
+
min: number;
|
|
144
|
+
max: number;
|
|
145
|
+
items: ProgressItem[];
|
|
146
|
+
}
|
|
147
|
+
export interface ProgressRadius {
|
|
148
|
+
segment: number;
|
|
149
|
+
track: number;
|
|
150
|
+
}
|
|
151
|
+
export interface GaugeData {
|
|
152
|
+
value: number;
|
|
153
|
+
min: number;
|
|
154
|
+
max: number;
|
|
155
|
+
}
|
|
156
|
+
export interface ValueChartStyle extends FillTrackStyle {
|
|
157
|
+
color: FillTrackStyle['color'] & {
|
|
158
|
+
title: string;
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
export interface ProgressStyle extends DataVisualStyle {
|
|
162
|
+
color: DataVisualStyle['color'] & {
|
|
163
|
+
title: string;
|
|
164
|
+
track: string;
|
|
165
|
+
};
|
|
166
|
+
radius?: ProgressRadius | null;
|
|
167
|
+
}
|
|
168
|
+
export interface PieElement extends ChartElementBase {
|
|
169
|
+
type: 'pie' | 'donut';
|
|
170
|
+
data: ChartDataPoint[];
|
|
171
|
+
style: ChartStyle;
|
|
172
|
+
}
|
|
173
|
+
export interface FunnelElement extends ChartElementBase {
|
|
174
|
+
type: 'funnel';
|
|
175
|
+
data: ChartDataPoint[];
|
|
176
|
+
style: ChartStyle;
|
|
177
|
+
}
|
|
178
|
+
export interface GaugeElement extends ChartElementBase {
|
|
179
|
+
type: 'gauge';
|
|
180
|
+
data: GaugeData;
|
|
181
|
+
style: ValueChartStyle;
|
|
182
|
+
}
|
|
183
|
+
export interface SeriesElement extends ChartElementBase {
|
|
184
|
+
type: 'bar' | 'line';
|
|
185
|
+
data: ChartDataPoint[];
|
|
186
|
+
style: AxisChartStyle;
|
|
187
|
+
}
|
|
188
|
+
export interface ProgressElement extends ChartElementBase {
|
|
189
|
+
type: 'progress';
|
|
190
|
+
data: ProgressData;
|
|
191
|
+
style: ProgressStyle;
|
|
192
|
+
}
|
|
193
|
+
export type ChartElement = PieElement | FunnelElement | GaugeElement | SeriesElement;
|
|
194
|
+
export type WidgetElement = TextElement | ImageElement | ButtonElement | DividerElement | ChartElement | ProgressElement;
|
|
195
|
+
export type ButtonElementContract = Omit<ButtonElement, 'requestRefresh' | 'showOnlyOnHover'> & {
|
|
196
|
+
requestRefresh?: boolean;
|
|
197
|
+
showOnlyOnHover?: boolean;
|
|
198
|
+
};
|
|
199
|
+
export type WidgetElementContract = TextElement | ImageElement | ButtonElementContract | Omit<DividerElement, 'sensitive'> | ChartElement | ProgressElement;
|
|
200
|
+
export interface Widget {
|
|
201
|
+
version: 2;
|
|
202
|
+
id: string;
|
|
203
|
+
size: WidgetSize;
|
|
204
|
+
rows: GridTrack[];
|
|
205
|
+
columns: GridTrack[];
|
|
206
|
+
background: BackgroundConfig;
|
|
207
|
+
refresh: RefreshConfig;
|
|
208
|
+
elements: WidgetElement[];
|
|
209
|
+
}
|
|
210
|
+
export type WidgetContract = Omit<Widget, 'refresh' | 'elements'> & {
|
|
211
|
+
refresh?: RefreshConfig | null;
|
|
212
|
+
elements: WidgetElementContract[];
|
|
213
|
+
};
|
|
214
|
+
export type WidgetInput = WidgetContract;
|
|
215
|
+
export declare function normalizeWidgetInput(widget: WidgetInput): WidgetInput;
|
|
216
|
+
export type WidgetValidationRuleMode = 'block' | 'report';
|
|
217
|
+
export interface WidgetValidationIssue {
|
|
218
|
+
path: string;
|
|
219
|
+
message: string;
|
|
220
|
+
severity?: WidgetValidationRuleMode;
|
|
221
|
+
}
|
|
222
|
+
export interface WidgetValidationRule {
|
|
223
|
+
validate(widget: WidgetInput): readonly WidgetValidationIssue[];
|
|
224
|
+
mode?: WidgetValidationRuleMode;
|
|
225
|
+
}
|
|
226
|
+
export type WidgetValidationRuleInput = WidgetValidationRule | ((widget: WidgetInput) => readonly WidgetValidationIssue[]);
|
|
227
|
+
export interface WidgetParseOptions {
|
|
228
|
+
rules?: readonly WidgetValidationRuleInput[];
|
|
229
|
+
}
|
|
230
|
+
export interface WidgetParseSuccess {
|
|
231
|
+
success: true;
|
|
232
|
+
data: WidgetInput;
|
|
233
|
+
issues: WidgetValidationIssue[];
|
|
234
|
+
}
|
|
235
|
+
export interface WidgetParseFailure {
|
|
236
|
+
success: false;
|
|
237
|
+
issues: WidgetValidationIssue[];
|
|
238
|
+
}
|
|
239
|
+
export type WidgetParseResult = WidgetParseSuccess | WidgetParseFailure;
|
|
240
|
+
export declare class WidgetValidationError extends Error {
|
|
241
|
+
readonly issues: WidgetValidationIssue[];
|
|
242
|
+
constructor(issues: WidgetValidationIssue[]);
|
|
243
|
+
}
|
|
244
|
+
export declare function safeParseWidgetInput(value: unknown, options?: WidgetParseOptions): WidgetParseResult;
|
|
245
|
+
export declare function parseWidgetInput(value: unknown, options?: WidgetParseOptions): WidgetInput;
|
|
246
|
+
export declare function isWidgetContract(value: unknown): value is WidgetContract;
|
|
247
|
+
export declare function isWidget(value: unknown): value is Widget;
|
|
248
|
+
/**
|
|
249
|
+
* Version prefix of the fingerprint algorithm. Change it whenever the set of
|
|
250
|
+
* fingerprinted properties or the canonical encoding changes.
|
|
251
|
+
*/
|
|
252
|
+
export declare const WIDGET_FINGERPRINT_VERSION = 1;
|
|
253
|
+
/**
|
|
254
|
+
* Computes a stable fingerprint of a widget's look, for example to gate
|
|
255
|
+
* user-built widgets behind an approval step. Content that may vary per
|
|
256
|
+
* visitor (text, labels, alt text, titles, chart data, button URLs and bodies,
|
|
257
|
+
* the widget id, and the refresh label) is ignored; only whether text, labels,
|
|
258
|
+
* alt text, and titles are empty is included. Returns `null` for invalid input.
|
|
259
|
+
*/
|
|
260
|
+
export declare function computeWidgetFingerprint(input: unknown): string | null;
|
|
261
|
+
export declare const WIDGET_HEIGHT = 245;
|
|
262
|
+
export declare const WIDGET_PADDING = 18;
|
|
263
|
+
export declare const WIDGET_GAP = 8;
|
|
264
|
+
export declare const WIDGET_CELL_WIDTH = 133;
|
|
265
|
+
export declare const WIDGET_CELL_HEIGHT = 123;
|
|
266
|
+
export declare function widgetFootprint(size: WidgetSize | unknown): {
|
|
267
|
+
columns: number;
|
|
268
|
+
rows: number;
|
|
269
|
+
};
|
|
270
|
+
export declare function gridSpanSize(span: number, cellSize: number): number;
|
|
271
|
+
export declare function widgetWidth(size: WidgetSize | unknown): number;
|
|
272
|
+
export declare function widgetHeight(size: WidgetSize | unknown): number;
|
|
273
|
+
export declare function gridTemplate(tracks: GridTrack[]): string;
|
|
274
|
+
export declare function elementGridStyle(element: WidgetElement): Record<string, string>;
|
|
275
|
+
export interface WidgetRendererChartLocale {
|
|
276
|
+
progressAriaLabel: (title: string | undefined, value: string, range: string) => string;
|
|
277
|
+
gaugeAriaLabel: (title: string | undefined, value: string, max: string) => string;
|
|
278
|
+
chartAriaLabel: (title: string | undefined, chartType: string, pointCount: number) => string;
|
|
279
|
+
progressSummary: (title: string | undefined, value: string, min: string, max: string, breakdown: string) => string;
|
|
280
|
+
gaugeSummary: (title: string | undefined, value: string, max: string, percentage: string) => string;
|
|
281
|
+
dataSummary: (title: string | undefined, points: string) => string;
|
|
282
|
+
noDataSummary: (title: string | undefined) => string;
|
|
283
|
+
noSegmentsSummary: string;
|
|
284
|
+
morePoints: (count: number) => string;
|
|
285
|
+
progressSegmentLabel: (label: string, value: string) => string;
|
|
286
|
+
dataPointLabel: (label: string, value: string) => string;
|
|
287
|
+
gaugeValueLabel: string;
|
|
288
|
+
progressBreakdown: (label: string, start: string, end: string) => string;
|
|
289
|
+
}
|
|
290
|
+
export interface WidgetRendererAriaLocale {
|
|
291
|
+
toolbarActions: string;
|
|
292
|
+
loading: string;
|
|
293
|
+
showSensitiveData: string;
|
|
294
|
+
hideSensitiveData: string;
|
|
295
|
+
imageUnavailable: string;
|
|
296
|
+
chart: WidgetRendererChartLocale;
|
|
297
|
+
}
|
|
298
|
+
export interface WidgetRendererLocale {
|
|
299
|
+
aria: WidgetRendererAriaLocale;
|
|
300
|
+
}
|
|
301
|
+
export interface WidgetRendererLocaleOverrides {
|
|
302
|
+
aria?: Partial<Omit<WidgetRendererAriaLocale, 'chart'>> & {
|
|
303
|
+
chart?: Partial<WidgetRendererChartLocale>;
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
export declare const defaultWidgetRendererLocale: WidgetRendererLocale;
|
|
307
|
+
export declare const germanWidgetRendererLocale: WidgetRendererLocale;
|
|
308
|
+
export declare const frenchWidgetRendererLocale: WidgetRendererLocale;
|
|
309
|
+
export declare const dutchWidgetRendererLocale: WidgetRendererLocale;
|
|
310
|
+
interface ChartTooltipState {
|
|
311
|
+
x: number;
|
|
312
|
+
y: number;
|
|
313
|
+
label: string;
|
|
314
|
+
value: number;
|
|
315
|
+
color?: string;
|
|
316
|
+
}
|
|
317
|
+
declare class WidgetTooltip {
|
|
318
|
+
readonly state: import("@angular/core").WritableSignal<ChartTooltipState | null>;
|
|
319
|
+
private readonly overlay;
|
|
320
|
+
private readonly currentOwner;
|
|
321
|
+
readonly owner: import("@angular/core").Signal<object | null>;
|
|
322
|
+
setOverlay(overlay: HTMLElement): void;
|
|
323
|
+
overlayElement(): HTMLElement | null;
|
|
324
|
+
show(owner: object, state: ChartTooltipState): void;
|
|
325
|
+
hide(owner: object): void;
|
|
326
|
+
clear(): void;
|
|
327
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WidgetTooltip, never>;
|
|
328
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
329
|
+
}
|
|
330
|
+
export type WidgetLoading = boolean | Widget['size'];
|
|
331
|
+
export declare class WidgetRenderer implements OnDestroy {
|
|
332
|
+
readonly widget: import("@angular/core").InputSignal<import("@lieselthuriot/widget-renderer").WidgetContract | null>;
|
|
333
|
+
readonly loading: import("@angular/core").InputSignal<WidgetLoading>;
|
|
334
|
+
readonly darkMode: import("@angular/core").InputSignal<boolean>;
|
|
335
|
+
readonly locale: import("@angular/core").InputSignal<WidgetRendererLocaleOverrides>;
|
|
336
|
+
readonly validationRules: import("@angular/core").InputSignal<readonly WidgetValidationRuleInput[]>;
|
|
337
|
+
readonly refreshRequested: import("@angular/core").OutputEmitterRef<void>;
|
|
338
|
+
readonly actionRequested: import("@angular/core").OutputEmitterRef<{
|
|
339
|
+
element: ButtonElement;
|
|
340
|
+
event: Event;
|
|
341
|
+
}>;
|
|
342
|
+
readonly sensitiveVisible: import("@angular/core").WritableSignal<boolean>;
|
|
343
|
+
protected readonly tooltip: WidgetTooltip;
|
|
344
|
+
private readonly tooltipLayer;
|
|
345
|
+
private readonly parsedWidget;
|
|
346
|
+
protected readonly isLoading: import("@angular/core").Signal<boolean>;
|
|
347
|
+
protected readonly resolvedLocale: import("@angular/core").Signal<WidgetRendererLocale>;
|
|
348
|
+
protected readonly loadingSize: import("@angular/core").Signal<import("@lieselthuriot/widget-renderer").WidgetSize>;
|
|
349
|
+
readonly validationIssues: import("@angular/core").Signal<import("@lieselthuriot/widget-renderer").WidgetValidationIssue[]>;
|
|
350
|
+
protected readonly blockingIssues: import("@angular/core").Signal<import("@lieselthuriot/widget-renderer").WidgetValidationIssue[]>;
|
|
351
|
+
protected readonly renderWidget: import("@angular/core").Signal<Widget>;
|
|
352
|
+
readonly hasSensitiveElements: import("@angular/core").Signal<boolean>;
|
|
353
|
+
readonly backgroundSensitive: import("@angular/core").Signal<boolean>;
|
|
354
|
+
readonly gridRows: import("@angular/core").Signal<string>;
|
|
355
|
+
readonly gridColumns: import("@angular/core").Signal<string>;
|
|
356
|
+
readonly widgetWidth: import("@angular/core").Signal<number>;
|
|
357
|
+
readonly widgetHeight: import("@angular/core").Signal<number>;
|
|
358
|
+
readonly backgroundImage: import("@angular/core").Signal<string>;
|
|
359
|
+
constructor();
|
|
360
|
+
ngOnDestroy(): void;
|
|
361
|
+
protected toggleSensitive(): void;
|
|
362
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WidgetRenderer, never>;
|
|
363
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WidgetRenderer, "widget-renderer", never, {
|
|
364
|
+
"widget": {
|
|
365
|
+
"alias": "widget";
|
|
366
|
+
"required": false;
|
|
367
|
+
"isSignal": true;
|
|
368
|
+
};
|
|
369
|
+
"loading": {
|
|
370
|
+
"alias": "loading";
|
|
371
|
+
"required": false;
|
|
372
|
+
"isSignal": true;
|
|
373
|
+
};
|
|
374
|
+
"darkMode": {
|
|
375
|
+
"alias": "darkMode";
|
|
376
|
+
"required": false;
|
|
377
|
+
"isSignal": true;
|
|
378
|
+
};
|
|
379
|
+
"locale": {
|
|
380
|
+
"alias": "locale";
|
|
381
|
+
"required": false;
|
|
382
|
+
"isSignal": true;
|
|
383
|
+
};
|
|
384
|
+
"validationRules": {
|
|
385
|
+
"alias": "validationRules";
|
|
386
|
+
"required": false;
|
|
387
|
+
"isSignal": true;
|
|
388
|
+
};
|
|
389
|
+
}, {
|
|
390
|
+
"refreshRequested": "refreshRequested";
|
|
391
|
+
"actionRequested": "actionRequested";
|
|
392
|
+
}, never, never, true, never>;
|
|
393
|
+
}
|
|
394
|
+
export declare function chartAriaLabel(element: ChartElement | ProgressElement, locale?: WidgetRendererChartLocale): string;
|
|
395
|
+
export declare function chartAccessibilitySummary(element: ChartElement | ProgressElement, locale?: WidgetRendererChartLocale): string;
|
|
396
|
+
export {};
|
|
397
|
+
//# sourceMappingURL=lieselthuriot-widget-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lieselthuriot-widget-renderer.d.ts","names":[],"sources":["../../../projects/widget-renderer/src/lib/widget.model.ts","../../../projects/widget-renderer/src/lib/widget-hydration.ts","../../../projects/widget-renderer/src/lib/widget-validation.ts","../../../projects/widget-renderer/src/lib/widget-fingerprint.ts","../../../projects/widget-renderer/src/lib/widget-layout.ts","../../../projects/widget-renderer/src/lib/widget-locale.ts","../../../projects/widget-renderer/src/lib/widget-tooltip.ts","../../../projects/widget-renderer/src/lib/widget-renderer.ts","../../../projects/widget-renderer/src/lib/chart-accessibility.ts"],"mappings":"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"}
|