@c80/ui 3.0.0 → 3.1.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/esm2022/index.js +2 -0
- package/esm2022/index.js.map +1 -1
- package/esm2022/lib/bar-chart/bar-chart.component.js +101 -0
- package/esm2022/lib/bar-chart/bar-chart.component.js.map +1 -0
- package/esm2022/lib/bar-chart/bar-chart.types.js +1 -0
- package/esm2022/lib/bar-chart/bar-chart.types.js.map +1 -0
- package/esm2022/lib/bar-chart/index.js +2 -0
- package/esm2022/lib/bar-chart/index.js.map +1 -0
- package/esm2022/lib/icon/icon.definitions.js +27 -0
- package/esm2022/lib/icon/icon.definitions.js.map +1 -1
- package/esm2022/lib/stat-card/stat-card.component.js +16 -3
- package/esm2022/lib/stat-card/stat-card.component.js.map +1 -1
- package/esm2022/lib/stat-card/stat-card.types.js.map +1 -1
- package/esm2022/lib/status-badge/index.js +2 -0
- package/esm2022/lib/status-badge/index.js.map +1 -0
- package/esm2022/lib/status-badge/status-badge.component.js +16 -0
- package/esm2022/lib/status-badge/status-badge.component.js.map +1 -0
- package/esm2022/lib/status-badge/status-badge.types.js +1 -0
- package/esm2022/lib/status-badge/status-badge.types.js.map +1 -0
- package/index.d.ts +2 -0
- package/lib/bar-chart/bar-chart.component.d.ts +40 -0
- package/lib/bar-chart/bar-chart.types.d.ts +4 -0
- package/lib/bar-chart/index.d.ts +2 -0
- package/lib/stat-card/stat-card.component.d.ts +10 -0
- package/lib/stat-card/stat-card.types.d.ts +6 -1
- package/lib/status-badge/index.d.ts +2 -0
- package/lib/status-badge/status-badge.component.d.ts +11 -0
- package/lib/status-badge/status-badge.types.d.ts +1 -0
- package/package.json +1 -1
package/esm2022/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './lib/action-list';
|
|
2
|
+
export * from './lib/bar-chart';
|
|
2
3
|
export * from './lib/card-level';
|
|
3
4
|
export * from './lib/header';
|
|
4
5
|
export * from './lib/icon';
|
|
@@ -16,6 +17,7 @@ export * from './lib/select';
|
|
|
16
17
|
export * from './lib/snackbar';
|
|
17
18
|
export * from './lib/spinner';
|
|
18
19
|
export * from './lib/stat-card';
|
|
20
|
+
export * from './lib/status-badge';
|
|
19
21
|
export * from './lib/tab';
|
|
20
22
|
export * from './lib/table';
|
|
21
23
|
export * from './lib/error-notification';
|
package/esm2022/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/ui/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC","sourcesContent":["export * from './lib/action-list';\nexport * from './lib/card-level';\nexport * from './lib/header';\nexport * from './lib/icon';\nexport * from './lib/info-list';\nexport * from './lib/info-message';\nexport * from './lib/input-field';\nexport * from './lib/input-search';\nexport * from './lib/legal-disclaimer';\nexport * from './lib/modal';\nexport * from './lib/navigation-card';\nexport * from './lib/profile-stats';\nexport * from './lib/rating-display';\nexport * from './lib/rating-stars';\nexport * from './lib/select';\nexport * from './lib/snackbar';\nexport * from './lib/spinner';\nexport * from './lib/stat-card';\nexport * from './lib/tab';\nexport * from './lib/table';\nexport * from './lib/error-notification';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/ui/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC","sourcesContent":["export * from './lib/action-list';\nexport * from './lib/bar-chart';\nexport * from './lib/card-level';\nexport * from './lib/header';\nexport * from './lib/icon';\nexport * from './lib/info-list';\nexport * from './lib/info-message';\nexport * from './lib/input-field';\nexport * from './lib/input-search';\nexport * from './lib/legal-disclaimer';\nexport * from './lib/modal';\nexport * from './lib/navigation-card';\nexport * from './lib/profile-stats';\nexport * from './lib/rating-display';\nexport * from './lib/rating-stars';\nexport * from './lib/select';\nexport * from './lib/snackbar';\nexport * from './lib/spinner';\nexport * from './lib/stat-card';\nexport * from './lib/status-badge';\nexport * from './lib/tab';\nexport * from './lib/table';\nexport * from './lib/error-notification';\n"]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
// Geometria del viewBox (el SVG escala a lo ancho del contenedor)
|
|
4
|
+
const VIEW_WIDTH = 600;
|
|
5
|
+
const VIEW_HEIGHT = 260;
|
|
6
|
+
const PADDING_TOP = 12;
|
|
7
|
+
const PADDING_RIGHT = 8;
|
|
8
|
+
const PADDING_BOTTOM = 32;
|
|
9
|
+
const PADDING_LEFT = 46;
|
|
10
|
+
const PLOT_WIDTH = VIEW_WIDTH - PADDING_LEFT - PADDING_RIGHT;
|
|
11
|
+
const PLOT_HEIGHT = VIEW_HEIGHT - PADDING_TOP - PADDING_BOTTOM;
|
|
12
|
+
const BASELINE_Y = VIEW_HEIGHT - PADDING_BOTTOM;
|
|
13
|
+
const LABEL_Y = VIEW_HEIGHT - 12;
|
|
14
|
+
const TICK_INTERVALS = 4;
|
|
15
|
+
const BAR_MAX_WIDTH = 64;
|
|
16
|
+
const BAR_BAND_RATIO = 0.65;
|
|
17
|
+
const LABEL_CHAR_WIDTH = 6.5; // ancho aproximado por caracter a font-size 11
|
|
18
|
+
const LABEL_MIN_BAND = 26; // banda minima para mostrar todas las labels; debajo se saltean
|
|
19
|
+
const COMPACT_FORMAT = new Intl.NumberFormat('es-AR', { maximumFractionDigits: 1 });
|
|
20
|
+
const formatCompact = (value) => {
|
|
21
|
+
const abs = Math.abs(value);
|
|
22
|
+
if (abs >= 1_000_000)
|
|
23
|
+
return `${COMPACT_FORMAT.format(value / 1_000_000)} M`;
|
|
24
|
+
if (abs >= 1_000)
|
|
25
|
+
return `${COMPACT_FORMAT.format(value / 1_000)} k`;
|
|
26
|
+
return COMPACT_FORMAT.format(value);
|
|
27
|
+
};
|
|
28
|
+
/** Redondea hacia arriba a un tope "lindo" (1/2/2.5/5 x 10^n) para el eje Y. */
|
|
29
|
+
const niceCeil = (value) => {
|
|
30
|
+
if (value <= 0)
|
|
31
|
+
return 1;
|
|
32
|
+
const pow = Math.pow(10, Math.floor(Math.log10(value)));
|
|
33
|
+
const fraction = value / pow;
|
|
34
|
+
const nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 2.5 ? 2.5 : fraction <= 5 ? 5 : 10;
|
|
35
|
+
return nice * pow;
|
|
36
|
+
};
|
|
37
|
+
const truncate = (label, maxChars) => label.length <= maxChars ? label : `${label.slice(0, Math.max(1, maxChars - 1))}…`;
|
|
38
|
+
/**
|
|
39
|
+
* Grafico de barras verticales en SVG puro, sin dependencias externas.
|
|
40
|
+
* Pensado para dashboards simples (ej. ventas por dia/producto); no pretende
|
|
41
|
+
* reemplazar una libreria de charts. Solo valores >= 0 (los negativos se muestran en 0).
|
|
42
|
+
*/
|
|
43
|
+
export class BarChartComponent {
|
|
44
|
+
series = input([], ...(ngDevMode ? [{ debugName: "series" }] : /* istanbul ignore next */ []));
|
|
45
|
+
/** Color de relleno de las barras (cualquier color CSS, admite var()). */
|
|
46
|
+
color = input('var(--color-bg-interactive, var(--color-primary, #3b82f6))', ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
47
|
+
/** Tooltip nativo (title SVG) con label y valor por barra. */
|
|
48
|
+
tooltip = input(true, ...(ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []));
|
|
49
|
+
/** Formateo de valores para ticks y tooltip (default: notacion compacta es-AR). */
|
|
50
|
+
valueFormatter = input(formatCompact, ...(ngDevMode ? [{ debugName: "valueFormatter" }] : /* istanbul ignore next */ []));
|
|
51
|
+
viewBox = `0 0 ${VIEW_WIDTH} ${VIEW_HEIGHT}`;
|
|
52
|
+
plotLeft = PADDING_LEFT;
|
|
53
|
+
plotRight = VIEW_WIDTH - PADDING_RIGHT;
|
|
54
|
+
labelY = LABEL_Y;
|
|
55
|
+
maxValue = computed(() => {
|
|
56
|
+
const points = this.series();
|
|
57
|
+
if (points.length === 0)
|
|
58
|
+
return 1;
|
|
59
|
+
return niceCeil(Math.max(...points.map((point) => point.value)));
|
|
60
|
+
}, ...(ngDevMode ? [{ debugName: "maxValue" }] : /* istanbul ignore next */ []));
|
|
61
|
+
ticks = computed(() => {
|
|
62
|
+
const max = this.maxValue();
|
|
63
|
+
const format = this.valueFormatter();
|
|
64
|
+
return Array.from({ length: TICK_INTERVALS + 1 }, (_, i) => {
|
|
65
|
+
const value = (max / TICK_INTERVALS) * i;
|
|
66
|
+
return { y: BASELINE_Y - (value / max) * PLOT_HEIGHT, text: format(value) };
|
|
67
|
+
});
|
|
68
|
+
}, ...(ngDevMode ? [{ debugName: "ticks" }] : /* istanbul ignore next */ []));
|
|
69
|
+
bars = computed(() => {
|
|
70
|
+
const points = this.series();
|
|
71
|
+
if (points.length === 0)
|
|
72
|
+
return [];
|
|
73
|
+
const max = this.maxValue();
|
|
74
|
+
const format = this.valueFormatter();
|
|
75
|
+
const band = PLOT_WIDTH / points.length;
|
|
76
|
+
const width = Math.min(band * BAR_BAND_RATIO, BAR_MAX_WIDTH);
|
|
77
|
+
const labelStep = band >= LABEL_MIN_BAND ? 1 : Math.ceil(LABEL_MIN_BAND / band);
|
|
78
|
+
const maxChars = Math.max(3, Math.floor((band * labelStep) / LABEL_CHAR_WIDTH));
|
|
79
|
+
return points.map((point, i) => {
|
|
80
|
+
const height = (Math.max(0, point.value) / max) * PLOT_HEIGHT;
|
|
81
|
+
const centerX = PADDING_LEFT + band * i + band / 2;
|
|
82
|
+
return {
|
|
83
|
+
x: centerX - width / 2,
|
|
84
|
+
y: BASELINE_Y - height,
|
|
85
|
+
width,
|
|
86
|
+
height,
|
|
87
|
+
centerX,
|
|
88
|
+
labelText: truncate(point.label, maxChars),
|
|
89
|
+
showLabel: i % labelStep === 0,
|
|
90
|
+
title: `${point.label}: ${format(point.value)}`
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
}, ...(ngDevMode ? [{ debugName: "bars" }] : /* istanbul ignore next */ []));
|
|
94
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: BarChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: BarChartComponent, isStandalone: true, selector: "c80-bar-chart", inputs: { series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, valueFormatter: { classPropertyName: "valueFormatter", publicName: "valueFormatter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (bars().length === 0) {\n<div class=\"bar-chart-empty\">Sin datos</div>\n} @else {\n<svg class=\"bar-chart\" [attr.viewBox]=\"viewBox\" preserveAspectRatio=\"xMidYMid meet\" role=\"img\">\n @for (tick of ticks(); track $index) {\n <line class=\"grid-line\" [attr.x1]=\"plotLeft\" [attr.x2]=\"plotRight\" [attr.y1]=\"tick.y\" [attr.y2]=\"tick.y\" />\n <text class=\"tick-label\" [attr.x]=\"plotLeft - 6\" [attr.y]=\"tick.y + 3\" text-anchor=\"end\">{{ tick.text }}</text>\n }\n @for (bar of bars(); track $index) {\n <g class=\"bar-group\">\n <rect class=\"bar\" [attr.x]=\"bar.x\" [attr.y]=\"bar.y\" [attr.width]=\"bar.width\" [attr.height]=\"bar.height\" rx=\"2\" [style.fill]=\"color()\" />\n @if (bar.showLabel) {\n <text class=\"axis-label\" [attr.x]=\"bar.centerX\" [attr.y]=\"labelY\" text-anchor=\"middle\">{{ bar.labelText }}</text>\n }\n @if (tooltip()) {\n <title>{{ bar.title }}</title>\n }\n </g>\n }\n</svg>\n}\n", styles: [":host{display:block;width:100%}.bar-chart{display:block;width:100%;height:auto}.bar-chart .grid-line{stroke:var(--color-border-light, #e5e7eb);stroke-width:1}.bar-chart .tick-label,.bar-chart .axis-label{fill:var(--color-text-tertiary, #9ca3af);font-size:11px;-webkit-user-select:none;user-select:none}.bar-chart .bar-group .bar{transition:opacity .15s}.bar-chart .bar-group:hover .bar{opacity:.8}.bar-chart-empty{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--color-text-tertiary, #9ca3af);font-size:.8125rem;-webkit-user-select:none;user-select:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
96
|
+
}
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: BarChartComponent, decorators: [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ selector: 'c80-bar-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (bars().length === 0) {\n<div class=\"bar-chart-empty\">Sin datos</div>\n} @else {\n<svg class=\"bar-chart\" [attr.viewBox]=\"viewBox\" preserveAspectRatio=\"xMidYMid meet\" role=\"img\">\n @for (tick of ticks(); track $index) {\n <line class=\"grid-line\" [attr.x1]=\"plotLeft\" [attr.x2]=\"plotRight\" [attr.y1]=\"tick.y\" [attr.y2]=\"tick.y\" />\n <text class=\"tick-label\" [attr.x]=\"plotLeft - 6\" [attr.y]=\"tick.y + 3\" text-anchor=\"end\">{{ tick.text }}</text>\n }\n @for (bar of bars(); track $index) {\n <g class=\"bar-group\">\n <rect class=\"bar\" [attr.x]=\"bar.x\" [attr.y]=\"bar.y\" [attr.width]=\"bar.width\" [attr.height]=\"bar.height\" rx=\"2\" [style.fill]=\"color()\" />\n @if (bar.showLabel) {\n <text class=\"axis-label\" [attr.x]=\"bar.centerX\" [attr.y]=\"labelY\" text-anchor=\"middle\">{{ bar.labelText }}</text>\n }\n @if (tooltip()) {\n <title>{{ bar.title }}</title>\n }\n </g>\n }\n</svg>\n}\n", styles: [":host{display:block;width:100%}.bar-chart{display:block;width:100%;height:auto}.bar-chart .grid-line{stroke:var(--color-border-light, #e5e7eb);stroke-width:1}.bar-chart .tick-label,.bar-chart .axis-label{fill:var(--color-text-tertiary, #9ca3af);font-size:11px;-webkit-user-select:none;user-select:none}.bar-chart .bar-group .bar{transition:opacity .15s}.bar-chart .bar-group:hover .bar{opacity:.8}.bar-chart-empty{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--color-text-tertiary, #9ca3af);font-size:.8125rem;-webkit-user-select:none;user-select:none}\n"] }]
|
|
100
|
+
}], propDecorators: { series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], valueFormatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormatter", required: false }] }] } });
|
|
101
|
+
//# sourceMappingURL=bar-chart.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-chart.component.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/bar-chart/bar-chart.component.ts","../../../../../libs/ui/src/lib/bar-chart/bar-chart.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport type { BarChartPoint } from './bar-chart.types';\n\n// Geometria del viewBox (el SVG escala a lo ancho del contenedor)\nconst VIEW_WIDTH = 600;\nconst VIEW_HEIGHT = 260;\nconst PADDING_TOP = 12;\nconst PADDING_RIGHT = 8;\nconst PADDING_BOTTOM = 32;\nconst PADDING_LEFT = 46;\nconst PLOT_WIDTH = VIEW_WIDTH - PADDING_LEFT - PADDING_RIGHT;\nconst PLOT_HEIGHT = VIEW_HEIGHT - PADDING_TOP - PADDING_BOTTOM;\nconst BASELINE_Y = VIEW_HEIGHT - PADDING_BOTTOM;\nconst LABEL_Y = VIEW_HEIGHT - 12;\n\nconst TICK_INTERVALS = 4;\nconst BAR_MAX_WIDTH = 64;\nconst BAR_BAND_RATIO = 0.65;\nconst LABEL_CHAR_WIDTH = 6.5; // ancho aproximado por caracter a font-size 11\nconst LABEL_MIN_BAND = 26; // banda minima para mostrar todas las labels; debajo se saltean\n\nconst COMPACT_FORMAT = new Intl.NumberFormat('es-AR', { maximumFractionDigits: 1 });\n\nconst formatCompact = (value: number): string => {\n const abs = Math.abs(value);\n if (abs >= 1_000_000) return `${COMPACT_FORMAT.format(value / 1_000_000)} M`;\n if (abs >= 1_000) return `${COMPACT_FORMAT.format(value / 1_000)} k`;\n return COMPACT_FORMAT.format(value);\n};\n\n/** Redondea hacia arriba a un tope \"lindo\" (1/2/2.5/5 x 10^n) para el eje Y. */\nconst niceCeil = (value: number): number => {\n if (value <= 0) return 1;\n const pow = Math.pow(10, Math.floor(Math.log10(value)));\n const fraction = value / pow;\n const nice = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 2.5 ? 2.5 : fraction <= 5 ? 5 : 10;\n return nice * pow;\n};\n\nconst truncate = (label: string, maxChars: number): string =>\n label.length <= maxChars ? label : `${label.slice(0, Math.max(1, maxChars - 1))}…`;\n\ninterface BarView {\n x: number;\n y: number;\n width: number;\n height: number;\n centerX: number;\n labelText: string;\n showLabel: boolean;\n title: string;\n}\n\ninterface TickView {\n y: number;\n text: string;\n}\n\n/**\n * Grafico de barras verticales en SVG puro, sin dependencias externas.\n * Pensado para dashboards simples (ej. ventas por dia/producto); no pretende\n * reemplazar una libreria de charts. Solo valores >= 0 (los negativos se muestran en 0).\n */\n@Component({\n selector: 'c80-bar-chart',\n templateUrl: './bar-chart.component.html',\n styleUrl: './bar-chart.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BarChartComponent {\n readonly series = input<BarChartPoint[]>([]);\n /** Color de relleno de las barras (cualquier color CSS, admite var()). */\n readonly color = input('var(--color-bg-interactive, var(--color-primary, #3b82f6))');\n /** Tooltip nativo (title SVG) con label y valor por barra. */\n readonly tooltip = input(true);\n /** Formateo de valores para ticks y tooltip (default: notacion compacta es-AR). */\n readonly valueFormatter = input<(value: number) => string>(formatCompact);\n\n protected readonly viewBox = `0 0 ${VIEW_WIDTH} ${VIEW_HEIGHT}`;\n protected readonly plotLeft = PADDING_LEFT;\n protected readonly plotRight = VIEW_WIDTH - PADDING_RIGHT;\n protected readonly labelY = LABEL_Y;\n\n private readonly maxValue = computed(() => {\n const points = this.series();\n if (points.length === 0) return 1;\n return niceCeil(Math.max(...points.map((point) => point.value)));\n });\n\n protected readonly ticks = computed<TickView[]>(() => {\n const max = this.maxValue();\n const format = this.valueFormatter();\n return Array.from({ length: TICK_INTERVALS + 1 }, (_, i) => {\n const value = (max / TICK_INTERVALS) * i;\n return { y: BASELINE_Y - (value / max) * PLOT_HEIGHT, text: format(value) };\n });\n });\n\n protected readonly bars = computed<BarView[]>(() => {\n const points = this.series();\n if (points.length === 0) return [];\n const max = this.maxValue();\n const format = this.valueFormatter();\n const band = PLOT_WIDTH / points.length;\n const width = Math.min(band * BAR_BAND_RATIO, BAR_MAX_WIDTH);\n const labelStep = band >= LABEL_MIN_BAND ? 1 : Math.ceil(LABEL_MIN_BAND / band);\n const maxChars = Math.max(3, Math.floor((band * labelStep) / LABEL_CHAR_WIDTH));\n return points.map((point, i) => {\n const height = (Math.max(0, point.value) / max) * PLOT_HEIGHT;\n const centerX = PADDING_LEFT + band * i + band / 2;\n return {\n x: centerX - width / 2,\n y: BASELINE_Y - height,\n width,\n height,\n centerX,\n labelText: truncate(point.label, maxChars),\n showLabel: i % labelStep === 0,\n title: `${point.label}: ${format(point.value)}`\n };\n });\n });\n}\n","@if (bars().length === 0) {\n<div class=\"bar-chart-empty\">Sin datos</div>\n} @else {\n<svg class=\"bar-chart\" [attr.viewBox]=\"viewBox\" preserveAspectRatio=\"xMidYMid meet\" role=\"img\">\n @for (tick of ticks(); track $index) {\n <line class=\"grid-line\" [attr.x1]=\"plotLeft\" [attr.x2]=\"plotRight\" [attr.y1]=\"tick.y\" [attr.y2]=\"tick.y\" />\n <text class=\"tick-label\" [attr.x]=\"plotLeft - 6\" [attr.y]=\"tick.y + 3\" text-anchor=\"end\">{{ tick.text }}</text>\n }\n @for (bar of bars(); track $index) {\n <g class=\"bar-group\">\n <rect class=\"bar\" [attr.x]=\"bar.x\" [attr.y]=\"bar.y\" [attr.width]=\"bar.width\" [attr.height]=\"bar.height\" rx=\"2\" [style.fill]=\"color()\" />\n @if (bar.showLabel) {\n <text class=\"axis-label\" [attr.x]=\"bar.centerX\" [attr.y]=\"labelY\" text-anchor=\"middle\">{{ bar.labelText }}</text>\n }\n @if (tooltip()) {\n <title>{{ bar.title }}</title>\n }\n </g>\n }\n</svg>\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=bar-chart.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-chart.types.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/bar-chart/bar-chart.types.ts"],"names":[],"mappings":"","sourcesContent":["export interface BarChartPoint {\n label: string;\n value: number;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/bar-chart/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC","sourcesContent":["export * from './bar-chart.component';\nexport type { BarChartPoint } from './bar-chart.types';\n"]}
|
|
@@ -494,6 +494,33 @@ export const ICON_DEFINITIONS = {
|
|
|
494
494
|
addBox: {
|
|
495
495
|
path: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z'
|
|
496
496
|
},
|
|
497
|
+
wallet: {
|
|
498
|
+
path: 'M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1',
|
|
499
|
+
additionalShapes: [{ type: 'path', d: 'M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4' }]
|
|
500
|
+
},
|
|
501
|
+
cash: {
|
|
502
|
+
path: 'M6 12h.01M18 12h.01',
|
|
503
|
+
additionalShapes: [
|
|
504
|
+
{ type: 'rect', x: '2', y: '6', width: '20', height: '12', rx: '2' },
|
|
505
|
+
{ type: 'circle', cx: '12', cy: '12', r: '2' }
|
|
506
|
+
]
|
|
507
|
+
},
|
|
508
|
+
coin: {
|
|
509
|
+
path: 'M18.09 10.37A6 6 0 1 1 10.34 18',
|
|
510
|
+
additionalShapes: [
|
|
511
|
+
{ type: 'circle', cx: '8', cy: '8', r: '6' },
|
|
512
|
+
{ type: 'path', d: 'M7 6h1v4' },
|
|
513
|
+
{ type: 'path', d: 'm16.71 13.88.7.71-2.82 2.82' }
|
|
514
|
+
]
|
|
515
|
+
},
|
|
516
|
+
trendingUp: {
|
|
517
|
+
path: 'M22 7l-8.5 8.5-5-5L2 17',
|
|
518
|
+
additionalShapes: [{ type: 'path', d: 'M16 7h6v6' }]
|
|
519
|
+
},
|
|
520
|
+
trendingDown: {
|
|
521
|
+
path: 'M22 17l-8.5-8.5-5 5L2 7',
|
|
522
|
+
additionalShapes: [{ type: 'path', d: 'M16 17h6v-6' }]
|
|
523
|
+
},
|
|
497
524
|
default: {
|
|
498
525
|
path: '',
|
|
499
526
|
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.definitions.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.definitions.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-len */\r\nimport type { IconDefinition } from './icon.types';\r\n\r\nconst HEART_PATH = 'M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z';\r\n\r\n/**\r\n * ICON DEFINITIONS - Estructura unificada que combina paths, shapes y multi-color\r\n * \r\n * NUEVA ARQUITECTURA: Una sola fuente de verdad para cada icono\r\n * - path: Path principal del SVG\r\n * - additionalShapes: Formas complementarias (círculos, rectángulos) \r\n * - multiColor: Configuración para iconos con múltiples colores específicos\r\n * \r\n * BENEFICIOS:\r\n * - Una búsqueda en lugar de 3 lookups separados (mejor performance)\r\n * - Garantiza consistencia (no hay iconos \"a medias\")\r\n * - Fácil mantenimiento y escalabilidad\r\n * - TypeScript más robusto\r\n */\r\nexport const ICON_DEFINITIONS: Readonly<Record<string, IconDefinition>> = {\r\n check: {\r\n path: 'M5 13l4 4L19 7'\r\n },\r\n cancel: {\r\n path: 'M6 6l12 12M6 18L18 6'\r\n },\r\n edit: {\r\n path: 'M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z',\r\n additionalShapes: [{ type: 'rect', x: '5', y: '19', width: '14', height: '2', rx: '1' }]\r\n },\r\n delete: {\r\n path: 'M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'\r\n },\r\n add: {\r\n path: 'M12 5v14M5 12h14'\r\n },\r\n remove: {\r\n path: 'M5 12h14'\r\n },\r\n view: {\r\n path: 'M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6 7 11 7s9.27-3.11 11-7c-1.73-3.89-6-7-11-7z',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\r\n },\r\n get: {\r\n path: 'm8.5 8.5 7 7',\r\n additionalShapes: [\r\n { type: 'circle', cx: '6', cy: '6', r: '3' },\r\n { type: 'circle', cx: '18', cy: '18', r: '3' },\r\n { type: 'path', d: 'm13 11 2 2-2 2' }\r\n ]\r\n },\r\n settings: {\r\n path: 'M12 1v6m0 6v10M3.34 7l5.2 3M15.46 14l5.2 3M3.34 17l5.2-3M15.46 10l5.2-3',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\r\n },\r\n schedule: {\r\n path: 'M12 6v6l4 2',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n refresh: {\r\n path: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8M21 3v5h-5M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16M3 21v-5h5'\r\n },\r\n casino: {\r\n path: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z'\r\n },\r\n checkCircle: {\r\n path: 'm9 12 2 2 4-4',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n cancelCircle: {\r\n path: 'm15 9-6 6m0-6 6 6',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n error: {\r\n path: 'M15 9L9 15M9 9l6 6',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n queue: {\r\n path: 'M3 12h18m-9-9v18',\r\n additionalShapes: [\r\n { type: 'rect', x: '2', y: '3', width: '20', height: '6', rx: '1' },\r\n { type: 'rect', x: '2', y: '15', width: '20', height: '6', rx: '1' }\r\n ]\r\n },\r\n arrowUp: {\r\n path: 'm18 15-6-6-6 6'\r\n },\r\n arrowDown: {\r\n path: 'm6 9 6 6 6-6'\r\n },\r\n toggleOn: {\r\n path: '',\r\n additionalShapes: [\r\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\r\n { type: 'circle', cx: '18', cy: '12', r: '4', fill: 'color' }\r\n ]\r\n },\r\n toggleOff: {\r\n path: '',\r\n additionalShapes: [\r\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\r\n { type: 'circle', cx: '6', cy: '12', r: '4', fill: 'color' }\r\n ]\r\n },\r\n search: {\r\n path: 'm21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z'\r\n },\r\n upload: {\r\n path: 'M12 15V3m0 0l-4 4m4-4l4 4M2 17l.621 2.485A2 2 0 0 0 4.561 21h14.878a2 2 0 0 0 1.94-1.515L22 17'\r\n },\r\n image: {\r\n path: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21',\r\n additionalShapes: [\r\n { type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' },\r\n { type: 'circle', cx: '9', cy: '9', r: '2' }\r\n ]\r\n },\r\n pendingActions: {\r\n path: 'M12 8v4l3 3m6-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0z'\r\n },\r\n playCircle: {\r\n path: 'M14.752 11.168l-3.197-2.132A1 1 0 0 0 10 9.87v4.263a1 1 0 0 0 1.555.832l3.197-2.132a1 1 0 0 0 0-1.664z',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n play: {\r\n path: 'M8 5v14l11-7z'\r\n },\r\n stop: {\r\n path: 'M6 6h12v12H6z'\r\n },\r\n tune: {\r\n path: 'M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z'\r\n },\r\n visibility: {\r\n path: 'M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5z',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\r\n },\r\n visibilityOff: {\r\n path: 'M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7z' +\r\n 'M2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27z' +\r\n 'M7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2z' +\r\n 'm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z'\r\n },\r\n close: {\r\n path: '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'\r\n },\r\n record: {\r\n path: '',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '5', fill: 'color' }]\r\n },\r\n star: {\r\n path: 'M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z',\r\n fill: true\r\n },\r\n starFilled: {\r\n path: 'M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z',\r\n fill: true\r\n },\r\n xCircle: {\r\n path: 'M15 9l-6 6m0-6l6 6',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n key: {\r\n path: 'M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4'\r\n },\r\n exclamationTriangle: {\r\n path: 'M12 9v4m0 4h.01',\r\n additionalShapes: [{ type: 'path', d: 'M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z' }]\r\n },\r\n clipboard: {\r\n path: 'M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'\r\n },\r\n download: {\r\n path: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4m4-5l5 5m0 0l5-5m-5 5V3'\r\n },\r\n shield: {\r\n path: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',\r\n fill: true\r\n },\r\n person: {\r\n path: 'M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z',\r\n fill: true\r\n },\r\n envelope: {\r\n path: 'M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z',\r\n additionalShapes: [{ type: 'path', d: 'm22 6-10 7L2 6' }]\r\n },\r\n infoCircle: {\r\n path: 'M12 16v-4m0-4h.01',\r\n strokeWidth: '3',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n info: {\r\n path: 'M12 11v5m0-9h.01',\r\n strokeWidth: '2.5'\r\n },\r\n checkSquare: {\r\n path: 'm9 11 3 3L22 4',\r\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\r\n },\r\n square: {\r\n path: '',\r\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\r\n },\r\n dashSquare: {\r\n path: 'M8 12h8',\r\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\r\n },\r\n people: {\r\n path: 'M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3z' +\r\n 'm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z',\r\n fill: true\r\n },\r\n boxSeam: {\r\n path: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\r\n additionalShapes: [\r\n { type: 'path', d: 'M21 8.5v7c0 .6-.2 1.2-.6 1.7l-7 4c-.3.2-.6.3-1 .3-.3 0-.7-.1-1-.3l-7-4c-.4-.5-.6-1.1-.6-1.7v-7c0-.6.2-1.2.6-1.7l7-4c.6-.4 1.4-.4 2 0l7 4c.4.5.6 1.1.6 1.7z' },\r\n { type: 'path', d: 'M3.3 7L12 12l8.7-5M12 22.5V12' }\r\n ]\r\n },\r\n personBadge: {\r\n path: 'M12 2L4 6v5c0 5.55 3.84 10.74 8 12 4.16-1.26 8-6.45 8-12V6l-8-4z',\r\n additionalShapes: [\r\n { type: 'circle', cx: '12', cy: '12', r: '1.5' },\r\n { type: 'path', d: 'M12 9.5v1m0 3v1m2.5-2.5h-1m-3 0h-1' }\r\n ]\r\n },\r\n listTask: {\r\n path: 'M9 6h12M9 12h12M9 18h12',\r\n additionalShapes: [\r\n { type: 'path', d: 'M3 5l1.5 1.5L7 4' },\r\n { type: 'path', d: 'M3 11l1.5 1.5L7 10' },\r\n { type: 'path', d: 'M3 17l1.5 1.5L7 16' }\r\n ]\r\n },\r\n shuffle: {\r\n path: 'M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5'\r\n },\r\n motor: {\r\n path: 'M9 3v3m6-3v3M9 18v3m6-3v3M3 9h3M3 15h3m12-6h3m-3 6h3',\r\n additionalShapes: [\r\n { type: 'circle', cx: '12', cy: '12', r: '8' },\r\n { type: 'circle', cx: '12', cy: '12', r: '3', fill: 'color' },\r\n { type: 'path', d: 'M12 4v2m0 12v2M4 12h2m12 0h2M7.05 7.05l1.42 1.42m7.07 7.07l1.41 1.41M7.05 16.95l1.42-1.42m7.07-7.07l1.41-1.41' }\r\n ]\r\n },\r\n box: {\r\n path: 'M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8z',\r\n additionalShapes: [\r\n { type: 'path', d: 'M12 2.7L3.3 7v9.3l8.7 5 8.7-5V7L12 2.7z' },\r\n { type: 'path', d: 'M12 22V12M3.3 7L12 12l8.7-5' }\r\n ]\r\n },\r\n bell: {\r\n path: 'M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 0 1-3.46 0'\r\n },\r\n message: {\r\n path: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'\r\n },\r\n send: {\r\n path: 'M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'\r\n },\r\n file: {\r\n path: 'M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z',\r\n additionalShapes: [{ type: 'path', d: 'M13 2v7h7' }]\r\n },\r\n folder: {\r\n path: 'M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z'\r\n },\r\n save: {\r\n path: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',\r\n additionalShapes: [\r\n { type: 'path', d: 'M15 3v6h4M9 21v-8h6v8' }\r\n ]\r\n },\r\n print: {\r\n path: 'M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2',\r\n additionalShapes: [{ type: 'rect', x: '6', y: '14', width: '12', height: '8', rx: '1' }]\r\n },\r\n clock: {\r\n path: 'M12 6v6l4 2',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n calendar: {\r\n path: 'M8 2v4m8-4v4M3 10h18',\r\n additionalShapes: [{ type: 'rect', x: '3', y: '4', width: '18', height: '18', rx: '2' }]\r\n },\r\n timer: {\r\n path: 'M12 8v4l2 2',\r\n additionalShapes: [\r\n { type: 'circle', cx: '12', cy: '13', r: '9' },\r\n { type: 'path', d: 'M9 2h6' }\r\n ]\r\n },\r\n lock: {\r\n path: 'M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 10 0v4'\r\n },\r\n unlock: {\r\n path: 'M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 9.9-1'\r\n },\r\n chart: {\r\n path: 'M3 3v18h18M7 16l4-4 4 4 6-6'\r\n },\r\n table: {\r\n path: 'M3 3h18v18H3zM3 9h18M3 15h18M9 3v18'\r\n },\r\n database: {\r\n path: 'M12 8c-4.97 0-9-1.34-9-3s4.03-3 9-3 9 1.34 9 3-4.03 3-9 3zM3 5v5c0 1.66 4.03 3 9 3s9-1.34 9-3V5M3 10v5c0 1.66 4.03 3 9 3s9-1.34 9-3v-5'\r\n },\r\n home: {\r\n path: 'm3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\r\n additionalShapes: [{ type: 'path', d: 'M9 22V12h6v10' }]\r\n },\r\n menu: {\r\n path: 'M3 12h18M3 6h18M3 18h18'\r\n },\r\n moreVert: {\r\n path: 'M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z'\r\n },\r\n arrowLeft: {\r\n path: 'm15 18-6-6 6-6'\r\n },\r\n arrowRight: {\r\n path: 'm9 18 6-6-6-6'\r\n },\r\n arrowBack: {\r\n path: 'm12 19-7-7 7-7M19 12H5'\r\n },\r\n history: {\r\n path: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8',\r\n additionalShapes: [\r\n { type: 'path', d: 'M3 3v5h5' },\r\n { type: 'path', d: 'M12 7v5l4 2' }\r\n ]\r\n },\r\n copy: {\r\n path: 'M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7.242a2 2 0 0 0-.602-1.43L16.083 2.57A2 2 0 0 0 14.685 2H10a2 2 0 0 0-2 2z',\r\n additionalShapes: [{ type: 'rect', x: '4', y: '8', width: '12', height: '12', rx: '2' }]\r\n },\r\n filter: {\r\n path: 'M22 3H2l8 9.46V19l4 2v-8.54L22 3z'\r\n },\r\n sort: {\r\n path: 'M11 5h10M11 9h7M11 13h4M3 17l3 3m0 0l3-3m-3 3V4'\r\n },\r\n help: {\r\n path: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n warning: {\r\n path: 'M12 9v4',\r\n additionalShapes: [\r\n { type: 'circle', cx: '12', cy: '12', r: '10' },\r\n { type: 'circle', cx: '12', cy: '17', r: '0.5', fill: 'color' }\r\n ]\r\n },\r\n dashboard: {\r\n path: 'M3 13h8V3H3zm0 8h8v-6H3zm10 0h8V11h-8zm0-18v6h8V3z'\r\n },\r\n settingsApplications: {\r\n path: 'M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2z' +\r\n 'm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8' +\r\n 'c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68' +\r\n 'l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8' +\r\n 'c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z'\r\n },\r\n route: {\r\n path: 'M19 15.18V7c0-2.21-1.79-4-4-4s-4 1.79-4 4v10c0 1.1-.9 2-2 2s-2-.9-2-2V8.82C8.16 8.4 9 7.3 9 6c0-1.66-1.34-3-3-3S3 4.34 3 6c0 1.3.84 2.4 2 2.82V17c0 2.21 1.79 4 4 4s4-1.79 4-4V7c0-1.1.9-2 2-2s2 .9 2 2v8.18A2.996 2.996 0 0 0 15 18c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82z'\r\n },\r\n developerBoard: {\r\n path: 'M9 2v4m6-4v4M9 18v4m6-18v4M2 9h4M2 15h4m16-6h4m-4 6h4',\r\n additionalShapes: [\r\n { type: 'rect', x: '5', y: '5', width: '14', height: '14', rx: '2' },\r\n { type: 'rect', x: '9', y: '9', width: '6', height: '6', rx: '0.5' },\r\n { type: 'circle', cx: '12', cy: '12', r: '1.5', fill: 'color' }\r\n ]\r\n },\r\n directions: {\r\n path: 'm21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z'\r\n },\r\n category: {\r\n path: 'M12 2 6.5 11h11z',\r\n additionalShapes: [\r\n { type: 'circle', cx: '17.5', cy: '17.5', r: '3.5' },\r\n { type: 'rect', x: '3', y: '14', width: '7', height: '7', rx: '1' }\r\n ]\r\n },\r\n logout: {\r\n path: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4m7 14 5-5m0 0-5-5m5 5H9'\r\n },\r\n heart: {\r\n path: HEART_PATH\r\n },\r\n heartFilled: {\r\n path: HEART_PATH,\r\n fill: true\r\n },\r\n heartBroken: {\r\n path: HEART_PATH,\r\n additionalShapes: [\r\n { type: 'path', d: 'M12 5.5l-1 2.5h2l-1.5 3h1.5l-1 3.5V21' }\r\n ]\r\n },\r\n user: {\r\n path: 'M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '7', r: '4' }]\r\n },\r\n sun: {\r\n path: 'M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1z' +\r\n 'M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1z' +\r\n 'M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06z' +\r\n 'm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z'\r\n },\r\n moon: {\r\n path: 'M9.37 5.51C9.19 6.15 9.1 6.82 9.1 7.5c0 4.08 3.32 7.4 7.4 7.4.68 0 1.35-.09 1.99-.27C17.45 17.19 14.93 19 12 19c-3.86 0-7-3.14-7-7 0-2.93 1.81-5.45 4.37-6.49z' +\r\n 'M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1z'\r\n },\r\n google: {\r\n path: '',\r\n multiColor: {\r\n colors: [\r\n '#4285F4', // Azul - parte superior\r\n '#34A853', // Verde - parte inferior derecha\r\n '#FBBC05', // Amarillo - parte inferior izquierda\r\n '#EA4335', // Rojo - parte izquierda\r\n ],\r\n paths: [\r\n 'M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z',\r\n 'M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z',\r\n 'M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z',\r\n 'M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'\r\n ]\r\n }\r\n },\r\n local_drink: {\r\n path: 'M3 2l2.01 18.23C5.13 21.23 5.97 22 7 22h10c1.03 0 1.87-.77 1.99-1.77L21 2H3zm9 17c-1.66 0-3-1.34-3-3 0-2 3-5.4 3-5.4s3 3.4 3 5.4c0 1.66-1.34 3-3 3zm6.33-11H5.67l-.44-4h13.53l-.43 4z'\r\n },\r\n list: {\r\n path: 'M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z'\r\n },\r\n gpsFixed: {\r\n path: 'M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z'\r\n },\r\n locationPin: {\r\n path: 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'\r\n },\r\n controlPoint: {\r\n path: 'M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n photo: {\r\n path: 'M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'\r\n },\r\n restaurant: {\r\n path: 'M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z'\r\n },\r\n iceCream: {\r\n path: 'M8.79 12.4 12 20.94l3.21-8.54C16.26 12.15 17 11.2 17 10c0-1.66-1.34-3-3-3 0-.55-.45-1-1-1s-1 .45-1 1c-1.66 0-3 1.34-3 3 0 1.2.74 2.15 1.79 2.4z',\r\n additionalShapes: [\r\n { type: 'path', d: 'M14 2a3 3 0 0 1 3 3h-2a1 1 0 0 0-1-1z' },\r\n { type: 'path', d: 'M10 2a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1z' }\r\n ]\r\n },\r\n barChart: {\r\n path: 'M5 9.2h3V19H5V9.2zM10.6 5h2.8v14h-2.8V5zm5.6 8H19v6h-2.8v-6z'\r\n },\r\n waterDrop: {\r\n path: 'M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z'\r\n },\r\n cocktailGlass: {\r\n path: 'M21 5V3H3v2l8 9v5H6v2h12v-2h-5v-5l8-9zM7.43 7 5.66 5h12.69l-1.78 2H7.43z'\r\n },\r\n acUnit: {\r\n path: 'M22 11h-4.17l3.24-3.24-1.41-1.42L15 11h-2V9l4.66-4.66-1.42-1.41L13 6.17V2h-2v4.17L7.76 2.93 6.34 4.34 11 9v2H9L4.34 6.34 2.93 7.76 6.17 11H2v2h4.17l-3.24 3.24 1.41 1.42L9 13h2v2l-4.66 4.66 1.42 1.41L11 17.83V22h2v-4.17l3.24 3.24 1.42-1.41L13 15v-2h2l4.66 4.66 1.41-1.42L17.83 13H22v-2z'\r\n },\r\n formatListNumbered: {\r\n path: 'M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z'\r\n },\r\n widgets: {\r\n path: 'M13 13v8h8v-8h-8zM3 21h8v-8H3v8zM3 3v8h8V3H3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66-5.66-5.65z'\r\n },\r\n contrast: {\r\n path: 'M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm0-18c4.42 0 8 3.58 8 8s-3.58 8-8 8z',\r\n additionalShapes: [{ type: 'path', d: 'M12 4v16' }]\r\n },\r\n grid3x3: {\r\n path: 'M20 3H4c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM8 19H5v-3h3v3zm0-5H5v-3h3v3zm0-5H5V6h3v3zm5 10h-3v-3h3v3zm0-5h-3v-3h3v3zm0-5h-3V6h3v3zm5 10h-3v-3h3v3zm0-5h-3v-3h3v3zm0-5h-3V6h3v3z'\r\n },\r\n monetizationOn: {\r\n path: 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.41 16.09V20h-2.67v-1.93c-1.71-.36-3.16-1.46-3.27-3.4h1.96c.1 1.05.82 1.87 2.65 1.87 1.96 0 2.4-.98 2.4-1.59 0-.83-.44-1.61-2.67-2.14-2.48-.6-4.18-1.62-4.18-3.67 0-1.72 1.39-2.84 3.11-3.21V4h2.67v1.95c1.86.45 2.79 1.86 2.85 3.39H14.3c-.05-1.11-.64-1.87-2.22-1.87-1.5 0-2.4.68-2.4 1.64 0 .84.65 1.39 2.67 1.91s4.18 1.39 4.18 3.91c-.01 1.83-1.38 2.83-3.12 3.16z'\r\n },\r\n calculate: {\r\n path: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM13.03 7.06 14.09 6l1.41 1.41L16.91 6l1.06 1.06-1.41 1.41 1.41 1.41-1.06 1.06-1.41-1.4-1.41 1.41-1.06-1.06 1.41-1.41-1.41-1.42zM6.25 7.72h5v1.5h-5v-1.5zM11.5 16h-2v2H8v-2H6v-1.5h2v-2h1.5v2h2V16zm5.13.02-1.41-1.41-1.46 1.41-1.05-1.05 1.41-1.41-1.41-1.41L13.76 11l1.41 1.41 1.41-1.41 1.06 1.06-1.41 1.41 1.41 1.41-1.01 1.05z'\r\n },\r\n buildCircle: {\r\n path: 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5.78 14.61-1.14 1.14-1.71-1.71-2.28 2.27-1.14-1.14 2.27-2.27-1.71-1.71 1.14-1.14 1.71 1.71 1.71-1.71 1.14 1.14-1.71 1.71 1.72 1.71zM15.5 7.5c0 .83-.67 1.5-1.5 1.5H8.75v3.68A2.99 2.99 0 0 0 10 9.5c1.65 0 3 1.35 3 3s-1.35 3-3 3c-1.3 0-2.4-.84-2.82-2H5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1.68c.15-.62.51-1.16 1-1.55V7.5c0-.28.22-.5.5-.5H14c.28 0 .5.22.5.5z'\r\n },\r\n addBox: {\r\n path: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z'\r\n },\r\n default: {\r\n path: '',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n }\r\n} as const;"]}
|
|
1
|
+
{"version":3,"file":"icon.definitions.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.definitions.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-len */\r\nimport type { IconDefinition } from './icon.types';\r\n\r\nconst HEART_PATH = 'M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z';\r\n\r\n/**\r\n * ICON DEFINITIONS - Estructura unificada que combina paths, shapes y multi-color\r\n * \r\n * NUEVA ARQUITECTURA: Una sola fuente de verdad para cada icono\r\n * - path: Path principal del SVG\r\n * - additionalShapes: Formas complementarias (círculos, rectángulos) \r\n * - multiColor: Configuración para iconos con múltiples colores específicos\r\n * \r\n * BENEFICIOS:\r\n * - Una búsqueda en lugar de 3 lookups separados (mejor performance)\r\n * - Garantiza consistencia (no hay iconos \"a medias\")\r\n * - Fácil mantenimiento y escalabilidad\r\n * - TypeScript más robusto\r\n */\r\nexport const ICON_DEFINITIONS: Readonly<Record<string, IconDefinition>> = {\r\n check: {\r\n path: 'M5 13l4 4L19 7'\r\n },\r\n cancel: {\r\n path: 'M6 6l12 12M6 18L18 6'\r\n },\r\n edit: {\r\n path: 'M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z',\r\n additionalShapes: [{ type: 'rect', x: '5', y: '19', width: '14', height: '2', rx: '1' }]\r\n },\r\n delete: {\r\n path: 'M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'\r\n },\r\n add: {\r\n path: 'M12 5v14M5 12h14'\r\n },\r\n remove: {\r\n path: 'M5 12h14'\r\n },\r\n view: {\r\n path: 'M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6 7 11 7s9.27-3.11 11-7c-1.73-3.89-6-7-11-7z',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\r\n },\r\n get: {\r\n path: 'm8.5 8.5 7 7',\r\n additionalShapes: [\r\n { type: 'circle', cx: '6', cy: '6', r: '3' },\r\n { type: 'circle', cx: '18', cy: '18', r: '3' },\r\n { type: 'path', d: 'm13 11 2 2-2 2' }\r\n ]\r\n },\r\n settings: {\r\n path: 'M12 1v6m0 6v10M3.34 7l5.2 3M15.46 14l5.2 3M3.34 17l5.2-3M15.46 10l5.2-3',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\r\n },\r\n schedule: {\r\n path: 'M12 6v6l4 2',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n refresh: {\r\n path: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8M21 3v5h-5M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16M3 21v-5h5'\r\n },\r\n casino: {\r\n path: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z'\r\n },\r\n checkCircle: {\r\n path: 'm9 12 2 2 4-4',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n cancelCircle: {\r\n path: 'm15 9-6 6m0-6 6 6',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n error: {\r\n path: 'M15 9L9 15M9 9l6 6',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n queue: {\r\n path: 'M3 12h18m-9-9v18',\r\n additionalShapes: [\r\n { type: 'rect', x: '2', y: '3', width: '20', height: '6', rx: '1' },\r\n { type: 'rect', x: '2', y: '15', width: '20', height: '6', rx: '1' }\r\n ]\r\n },\r\n arrowUp: {\r\n path: 'm18 15-6-6-6 6'\r\n },\r\n arrowDown: {\r\n path: 'm6 9 6 6 6-6'\r\n },\r\n toggleOn: {\r\n path: '',\r\n additionalShapes: [\r\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\r\n { type: 'circle', cx: '18', cy: '12', r: '4', fill: 'color' }\r\n ]\r\n },\r\n toggleOff: {\r\n path: '',\r\n additionalShapes: [\r\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\r\n { type: 'circle', cx: '6', cy: '12', r: '4', fill: 'color' }\r\n ]\r\n },\r\n search: {\r\n path: 'm21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z'\r\n },\r\n upload: {\r\n path: 'M12 15V3m0 0l-4 4m4-4l4 4M2 17l.621 2.485A2 2 0 0 0 4.561 21h14.878a2 2 0 0 0 1.94-1.515L22 17'\r\n },\r\n image: {\r\n path: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21',\r\n additionalShapes: [\r\n { type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' },\r\n { type: 'circle', cx: '9', cy: '9', r: '2' }\r\n ]\r\n },\r\n pendingActions: {\r\n path: 'M12 8v4l3 3m6-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0z'\r\n },\r\n playCircle: {\r\n path: 'M14.752 11.168l-3.197-2.132A1 1 0 0 0 10 9.87v4.263a1 1 0 0 0 1.555.832l3.197-2.132a1 1 0 0 0 0-1.664z',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n play: {\r\n path: 'M8 5v14l11-7z'\r\n },\r\n stop: {\r\n path: 'M6 6h12v12H6z'\r\n },\r\n tune: {\r\n path: 'M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z'\r\n },\r\n visibility: {\r\n path: 'M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5z',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\r\n },\r\n visibilityOff: {\r\n path: 'M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7z' +\r\n 'M2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27z' +\r\n 'M7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2z' +\r\n 'm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z'\r\n },\r\n close: {\r\n path: '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'\r\n },\r\n record: {\r\n path: '',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '5', fill: 'color' }]\r\n },\r\n star: {\r\n path: 'M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z',\r\n fill: true\r\n },\r\n starFilled: {\r\n path: 'M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z',\r\n fill: true\r\n },\r\n xCircle: {\r\n path: 'M15 9l-6 6m0-6l6 6',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n key: {\r\n path: 'M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4'\r\n },\r\n exclamationTriangle: {\r\n path: 'M12 9v4m0 4h.01',\r\n additionalShapes: [{ type: 'path', d: 'M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z' }]\r\n },\r\n clipboard: {\r\n path: 'M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'\r\n },\r\n download: {\r\n path: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4m4-5l5 5m0 0l5-5m-5 5V3'\r\n },\r\n shield: {\r\n path: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',\r\n fill: true\r\n },\r\n person: {\r\n path: 'M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z',\r\n fill: true\r\n },\r\n envelope: {\r\n path: 'M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z',\r\n additionalShapes: [{ type: 'path', d: 'm22 6-10 7L2 6' }]\r\n },\r\n infoCircle: {\r\n path: 'M12 16v-4m0-4h.01',\r\n strokeWidth: '3',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n info: {\r\n path: 'M12 11v5m0-9h.01',\r\n strokeWidth: '2.5'\r\n },\r\n checkSquare: {\r\n path: 'm9 11 3 3L22 4',\r\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\r\n },\r\n square: {\r\n path: '',\r\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\r\n },\r\n dashSquare: {\r\n path: 'M8 12h8',\r\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\r\n },\r\n people: {\r\n path: 'M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3z' +\r\n 'm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z',\r\n fill: true\r\n },\r\n boxSeam: {\r\n path: 'M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z',\r\n additionalShapes: [\r\n { type: 'path', d: 'M21 8.5v7c0 .6-.2 1.2-.6 1.7l-7 4c-.3.2-.6.3-1 .3-.3 0-.7-.1-1-.3l-7-4c-.4-.5-.6-1.1-.6-1.7v-7c0-.6.2-1.2.6-1.7l7-4c.6-.4 1.4-.4 2 0l7 4c.4.5.6 1.1.6 1.7z' },\r\n { type: 'path', d: 'M3.3 7L12 12l8.7-5M12 22.5V12' }\r\n ]\r\n },\r\n personBadge: {\r\n path: 'M12 2L4 6v5c0 5.55 3.84 10.74 8 12 4.16-1.26 8-6.45 8-12V6l-8-4z',\r\n additionalShapes: [\r\n { type: 'circle', cx: '12', cy: '12', r: '1.5' },\r\n { type: 'path', d: 'M12 9.5v1m0 3v1m2.5-2.5h-1m-3 0h-1' }\r\n ]\r\n },\r\n listTask: {\r\n path: 'M9 6h12M9 12h12M9 18h12',\r\n additionalShapes: [\r\n { type: 'path', d: 'M3 5l1.5 1.5L7 4' },\r\n { type: 'path', d: 'M3 11l1.5 1.5L7 10' },\r\n { type: 'path', d: 'M3 17l1.5 1.5L7 16' }\r\n ]\r\n },\r\n shuffle: {\r\n path: 'M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5'\r\n },\r\n motor: {\r\n path: 'M9 3v3m6-3v3M9 18v3m6-3v3M3 9h3M3 15h3m12-6h3m-3 6h3',\r\n additionalShapes: [\r\n { type: 'circle', cx: '12', cy: '12', r: '8' },\r\n { type: 'circle', cx: '12', cy: '12', r: '3', fill: 'color' },\r\n { type: 'path', d: 'M12 4v2m0 12v2M4 12h2m12 0h2M7.05 7.05l1.42 1.42m7.07 7.07l1.41 1.41M7.05 16.95l1.42-1.42m7.07-7.07l1.41-1.41' }\r\n ]\r\n },\r\n box: {\r\n path: 'M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8z',\r\n additionalShapes: [\r\n { type: 'path', d: 'M12 2.7L3.3 7v9.3l8.7 5 8.7-5V7L12 2.7z' },\r\n { type: 'path', d: 'M12 22V12M3.3 7L12 12l8.7-5' }\r\n ]\r\n },\r\n bell: {\r\n path: 'M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 0 1-3.46 0'\r\n },\r\n message: {\r\n path: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'\r\n },\r\n send: {\r\n path: 'M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'\r\n },\r\n file: {\r\n path: 'M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z',\r\n additionalShapes: [{ type: 'path', d: 'M13 2v7h7' }]\r\n },\r\n folder: {\r\n path: 'M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z'\r\n },\r\n save: {\r\n path: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',\r\n additionalShapes: [\r\n { type: 'path', d: 'M15 3v6h4M9 21v-8h6v8' }\r\n ]\r\n },\r\n print: {\r\n path: 'M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2',\r\n additionalShapes: [{ type: 'rect', x: '6', y: '14', width: '12', height: '8', rx: '1' }]\r\n },\r\n clock: {\r\n path: 'M12 6v6l4 2',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n calendar: {\r\n path: 'M8 2v4m8-4v4M3 10h18',\r\n additionalShapes: [{ type: 'rect', x: '3', y: '4', width: '18', height: '18', rx: '2' }]\r\n },\r\n timer: {\r\n path: 'M12 8v4l2 2',\r\n additionalShapes: [\r\n { type: 'circle', cx: '12', cy: '13', r: '9' },\r\n { type: 'path', d: 'M9 2h6' }\r\n ]\r\n },\r\n lock: {\r\n path: 'M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 10 0v4'\r\n },\r\n unlock: {\r\n path: 'M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2zM7 11V7a5 5 0 0 1 9.9-1'\r\n },\r\n chart: {\r\n path: 'M3 3v18h18M7 16l4-4 4 4 6-6'\r\n },\r\n table: {\r\n path: 'M3 3h18v18H3zM3 9h18M3 15h18M9 3v18'\r\n },\r\n database: {\r\n path: 'M12 8c-4.97 0-9-1.34-9-3s4.03-3 9-3 9 1.34 9 3-4.03 3-9 3zM3 5v5c0 1.66 4.03 3 9 3s9-1.34 9-3V5M3 10v5c0 1.66 4.03 3 9 3s9-1.34 9-3v-5'\r\n },\r\n home: {\r\n path: 'm3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\r\n additionalShapes: [{ type: 'path', d: 'M9 22V12h6v10' }]\r\n },\r\n menu: {\r\n path: 'M3 12h18M3 6h18M3 18h18'\r\n },\r\n moreVert: {\r\n path: 'M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z'\r\n },\r\n arrowLeft: {\r\n path: 'm15 18-6-6 6-6'\r\n },\r\n arrowRight: {\r\n path: 'm9 18 6-6-6-6'\r\n },\r\n arrowBack: {\r\n path: 'm12 19-7-7 7-7M19 12H5'\r\n },\r\n history: {\r\n path: 'M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8',\r\n additionalShapes: [\r\n { type: 'path', d: 'M3 3v5h5' },\r\n { type: 'path', d: 'M12 7v5l4 2' }\r\n ]\r\n },\r\n copy: {\r\n path: 'M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7.242a2 2 0 0 0-.602-1.43L16.083 2.57A2 2 0 0 0 14.685 2H10a2 2 0 0 0-2 2z',\r\n additionalShapes: [{ type: 'rect', x: '4', y: '8', width: '12', height: '12', rx: '2' }]\r\n },\r\n filter: {\r\n path: 'M22 3H2l8 9.46V19l4 2v-8.54L22 3z'\r\n },\r\n sort: {\r\n path: 'M11 5h10M11 9h7M11 13h4M3 17l3 3m0 0l3-3m-3 3V4'\r\n },\r\n help: {\r\n path: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n warning: {\r\n path: 'M12 9v4',\r\n additionalShapes: [\r\n { type: 'circle', cx: '12', cy: '12', r: '10' },\r\n { type: 'circle', cx: '12', cy: '17', r: '0.5', fill: 'color' }\r\n ]\r\n },\r\n dashboard: {\r\n path: 'M3 13h8V3H3zm0 8h8v-6H3zm10 0h8V11h-8zm0-18v6h8V3z'\r\n },\r\n settingsApplications: {\r\n path: 'M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2z' +\r\n 'm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8' +\r\n 'c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68' +\r\n 'l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8' +\r\n 'c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z'\r\n },\r\n route: {\r\n path: 'M19 15.18V7c0-2.21-1.79-4-4-4s-4 1.79-4 4v10c0 1.1-.9 2-2 2s-2-.9-2-2V8.82C8.16 8.4 9 7.3 9 6c0-1.66-1.34-3-3-3S3 4.34 3 6c0 1.3.84 2.4 2 2.82V17c0 2.21 1.79 4 4 4s4-1.79 4-4V7c0-1.1.9-2 2-2s2 .9 2 2v8.18A2.996 2.996 0 0 0 15 18c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82z'\r\n },\r\n developerBoard: {\r\n path: 'M9 2v4m6-4v4M9 18v4m6-18v4M2 9h4M2 15h4m16-6h4m-4 6h4',\r\n additionalShapes: [\r\n { type: 'rect', x: '5', y: '5', width: '14', height: '14', rx: '2' },\r\n { type: 'rect', x: '9', y: '9', width: '6', height: '6', rx: '0.5' },\r\n { type: 'circle', cx: '12', cy: '12', r: '1.5', fill: 'color' }\r\n ]\r\n },\r\n directions: {\r\n path: 'm21.41 10.59-7.99-8c-.78-.78-2.05-.78-2.83 0l-8.01 8c-.78.78-.78 2.05 0 2.83l8.01 8c.78.78 2.05.78 2.83 0l7.99-8c.79-.79.79-2.05 0-2.83zM13.5 14.5V12H10v3H8v-4c0-.55.45-1 1-1h4.5V7.5L17 11l-3.5 3.5z'\r\n },\r\n category: {\r\n path: 'M12 2 6.5 11h11z',\r\n additionalShapes: [\r\n { type: 'circle', cx: '17.5', cy: '17.5', r: '3.5' },\r\n { type: 'rect', x: '3', y: '14', width: '7', height: '7', rx: '1' }\r\n ]\r\n },\r\n logout: {\r\n path: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4m7 14 5-5m0 0-5-5m5 5H9'\r\n },\r\n heart: {\r\n path: HEART_PATH\r\n },\r\n heartFilled: {\r\n path: HEART_PATH,\r\n fill: true\r\n },\r\n heartBroken: {\r\n path: HEART_PATH,\r\n additionalShapes: [\r\n { type: 'path', d: 'M12 5.5l-1 2.5h2l-1.5 3h1.5l-1 3.5V21' }\r\n ]\r\n },\r\n user: {\r\n path: 'M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '7', r: '4' }]\r\n },\r\n sun: {\r\n path: 'M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1z' +\r\n 'M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1z' +\r\n 'M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06z' +\r\n 'm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z'\r\n },\r\n moon: {\r\n path: 'M9.37 5.51C9.19 6.15 9.1 6.82 9.1 7.5c0 4.08 3.32 7.4 7.4 7.4.68 0 1.35-.09 1.99-.27C17.45 17.19 14.93 19 12 19c-3.86 0-7-3.14-7-7 0-2.93 1.81-5.45 4.37-6.49z' +\r\n 'M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1z'\r\n },\r\n google: {\r\n path: '',\r\n multiColor: {\r\n colors: [\r\n '#4285F4', // Azul - parte superior\r\n '#34A853', // Verde - parte inferior derecha\r\n '#FBBC05', // Amarillo - parte inferior izquierda\r\n '#EA4335', // Rojo - parte izquierda\r\n ],\r\n paths: [\r\n 'M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z',\r\n 'M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z',\r\n 'M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z',\r\n 'M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'\r\n ]\r\n }\r\n },\r\n local_drink: {\r\n path: 'M3 2l2.01 18.23C5.13 21.23 5.97 22 7 22h10c1.03 0 1.87-.77 1.99-1.77L21 2H3zm9 17c-1.66 0-3-1.34-3-3 0-2 3-5.4 3-5.4s3 3.4 3 5.4c0 1.66-1.34 3-3 3zm6.33-11H5.67l-.44-4h13.53l-.43 4z'\r\n },\r\n list: {\r\n path: 'M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z'\r\n },\r\n gpsFixed: {\r\n path: 'M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z'\r\n },\r\n locationPin: {\r\n path: 'M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'\r\n },\r\n controlPoint: {\r\n path: 'M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n },\r\n photo: {\r\n path: 'M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'\r\n },\r\n restaurant: {\r\n path: 'M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z'\r\n },\r\n iceCream: {\r\n path: 'M8.79 12.4 12 20.94l3.21-8.54C16.26 12.15 17 11.2 17 10c0-1.66-1.34-3-3-3 0-.55-.45-1-1-1s-1 .45-1 1c-1.66 0-3 1.34-3 3 0 1.2.74 2.15 1.79 2.4z',\r\n additionalShapes: [\r\n { type: 'path', d: 'M14 2a3 3 0 0 1 3 3h-2a1 1 0 0 0-1-1z' },\r\n { type: 'path', d: 'M10 2a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1z' }\r\n ]\r\n },\r\n barChart: {\r\n path: 'M5 9.2h3V19H5V9.2zM10.6 5h2.8v14h-2.8V5zm5.6 8H19v6h-2.8v-6z'\r\n },\r\n waterDrop: {\r\n path: 'M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z'\r\n },\r\n cocktailGlass: {\r\n path: 'M21 5V3H3v2l8 9v5H6v2h12v-2h-5v-5l8-9zM7.43 7 5.66 5h12.69l-1.78 2H7.43z'\r\n },\r\n acUnit: {\r\n path: 'M22 11h-4.17l3.24-3.24-1.41-1.42L15 11h-2V9l4.66-4.66-1.42-1.41L13 6.17V2h-2v4.17L7.76 2.93 6.34 4.34 11 9v2H9L4.34 6.34 2.93 7.76 6.17 11H2v2h4.17l-3.24 3.24 1.41 1.42L9 13h2v2l-4.66 4.66 1.42 1.41L11 17.83V22h2v-4.17l3.24 3.24 1.42-1.41L13 15v-2h2l4.66 4.66 1.41-1.42L17.83 13H22v-2z'\r\n },\r\n formatListNumbered: {\r\n path: 'M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z'\r\n },\r\n widgets: {\r\n path: 'M13 13v8h8v-8h-8zM3 21h8v-8H3v8zM3 3v8h8V3H3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66-5.66-5.65z'\r\n },\r\n contrast: {\r\n path: 'M12 22c5.52 0 10-4.48 10-10S17.52 2 12 2 2 6.48 2 12s4.48 10 10 10zm0-18c4.42 0 8 3.58 8 8s-3.58 8-8 8z',\r\n additionalShapes: [{ type: 'path', d: 'M12 4v16' }]\r\n },\r\n grid3x3: {\r\n path: 'M20 3H4c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM8 19H5v-3h3v3zm0-5H5v-3h3v3zm0-5H5V6h3v3zm5 10h-3v-3h3v3zm0-5h-3v-3h3v3zm0-5h-3V6h3v3zm5 10h-3v-3h3v3zm0-5h-3v-3h3v3zm0-5h-3V6h3v3z'\r\n },\r\n monetizationOn: {\r\n path: 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.41 16.09V20h-2.67v-1.93c-1.71-.36-3.16-1.46-3.27-3.4h1.96c.1 1.05.82 1.87 2.65 1.87 1.96 0 2.4-.98 2.4-1.59 0-.83-.44-1.61-2.67-2.14-2.48-.6-4.18-1.62-4.18-3.67 0-1.72 1.39-2.84 3.11-3.21V4h2.67v1.95c1.86.45 2.79 1.86 2.85 3.39H14.3c-.05-1.11-.64-1.87-2.22-1.87-1.5 0-2.4.68-2.4 1.64 0 .84.65 1.39 2.67 1.91s4.18 1.39 4.18 3.91c-.01 1.83-1.38 2.83-3.12 3.16z'\r\n },\r\n calculate: {\r\n path: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM13.03 7.06 14.09 6l1.41 1.41L16.91 6l1.06 1.06-1.41 1.41 1.41 1.41-1.06 1.06-1.41-1.4-1.41 1.41-1.06-1.06 1.41-1.41-1.41-1.42zM6.25 7.72h5v1.5h-5v-1.5zM11.5 16h-2v2H8v-2H6v-1.5h2v-2h1.5v2h2V16zm5.13.02-1.41-1.41-1.46 1.41-1.05-1.05 1.41-1.41-1.41-1.41L13.76 11l1.41 1.41 1.41-1.41 1.06 1.06-1.41 1.41 1.41 1.41-1.01 1.05z'\r\n },\r\n buildCircle: {\r\n path: 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5.78 14.61-1.14 1.14-1.71-1.71-2.28 2.27-1.14-1.14 2.27-2.27-1.71-1.71 1.14-1.14 1.71 1.71 1.71-1.71 1.14 1.14-1.71 1.71 1.72 1.71zM15.5 7.5c0 .83-.67 1.5-1.5 1.5H8.75v3.68A2.99 2.99 0 0 0 10 9.5c1.65 0 3 1.35 3 3s-1.35 3-3 3c-1.3 0-2.4-.84-2.82-2H5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1.68c.15-.62.51-1.16 1-1.55V7.5c0-.28.22-.5.5-.5H14c.28 0 .5.22.5.5z'\r\n },\r\n addBox: {\r\n path: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z'\r\n },\r\n wallet: {\r\n path: 'M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1',\r\n additionalShapes: [{ type: 'path', d: 'M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4' }]\r\n },\r\n cash: {\r\n path: 'M6 12h.01M18 12h.01',\r\n additionalShapes: [\r\n { type: 'rect', x: '2', y: '6', width: '20', height: '12', rx: '2' },\r\n { type: 'circle', cx: '12', cy: '12', r: '2' }\r\n ]\r\n },\r\n coin: {\r\n path: 'M18.09 10.37A6 6 0 1 1 10.34 18',\r\n additionalShapes: [\r\n { type: 'circle', cx: '8', cy: '8', r: '6' },\r\n { type: 'path', d: 'M7 6h1v4' },\r\n { type: 'path', d: 'm16.71 13.88.7.71-2.82 2.82' }\r\n ]\r\n },\r\n trendingUp: {\r\n path: 'M22 7l-8.5 8.5-5-5L2 17',\r\n additionalShapes: [{ type: 'path', d: 'M16 7h6v6' }]\r\n },\r\n trendingDown: {\r\n path: 'M22 17l-8.5-8.5-5 5L2 7',\r\n additionalShapes: [{ type: 'path', d: 'M16 17h6v-6' }]\r\n },\r\n default: {\r\n path: '',\r\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\r\n }\r\n} as const;"]}
|
|
@@ -1,16 +1,29 @@
|
|
|
1
|
-
import { Component, input, ChangeDetectionStrategy } from '@angular/core';
|
|
1
|
+
import { Component, computed, input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { IconComponent } from '../icon';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
const DELTA_FORMAT = new Intl.NumberFormat('es-AR', { maximumFractionDigits: 1, signDisplay: 'exceptZero' });
|
|
4
5
|
/**
|
|
5
6
|
*
|
|
6
7
|
*/
|
|
7
8
|
export class StatCardComponent {
|
|
8
9
|
cards = input([], ...(ngDevMode ? [{ debugName: "cards" }] : /* istanbul ignore next */ []));
|
|
10
|
+
items = computed(() => this.cards().map((card) => ({
|
|
11
|
+
color: card.color,
|
|
12
|
+
icon: card.icon,
|
|
13
|
+
text: card.text,
|
|
14
|
+
display: card.value ?? (card.count !== undefined ? String(card.count) : ''),
|
|
15
|
+
delta: card.delta === undefined
|
|
16
|
+
? undefined
|
|
17
|
+
: {
|
|
18
|
+
text: `${DELTA_FORMAT.format(card.delta)}%`,
|
|
19
|
+
direction: card.delta > 0 ? 'up' : card.delta < 0 ? 'down' : 'flat'
|
|
20
|
+
}
|
|
21
|
+
})), ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
9
22
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: StatCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: StatCardComponent, isStandalone: true, selector: "c80-stat-card", inputs: { cards: { classPropertyName: "cards", publicName: "cards", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"stats-section py-4\">\
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: StatCardComponent, isStandalone: true, selector: "c80-stat-card", inputs: { cards: { classPropertyName: "cards", publicName: "cards", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"stats-section py-4\">\n @for (item of items(); track item.text) {\n <div class=\"stat-card\" [style.border-left-color]=\"item.color\">\n <div class=\"stat-card-content\">\n <div class=\"stat-content\">\n <c80-icon [icon]=\"item.icon\" [color]=\"'secondary'\" [size]=\"1.1\" />\n <div class=\"stat-info\">\n <div class=\"stat-number-row\">\n <div class=\"stat-number\">{{ item.display }}</div>\n @if (item.delta) {\n <span class=\"stat-delta\" [attr.data-direction]=\"item.delta.direction\">\n @if (item.delta.direction !== 'flat') {\n <c80-icon [icon]=\"item.delta.direction === 'down' ? 'trendingDown' : 'trendingUp'\" customColor=\"currentColor\" [size]=\"0.55\" />\n }\n {{ item.delta.text }}\n </span>\n }\n </div>\n <div class=\"stat-label\">{{ item.text }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [".stats-section{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px}.stats-section .stat-card{flex:1;min-width:200px;box-shadow:var(--shadow-sm);transition:box-shadow .3s ease;border-left:4px solid transparent;background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:4px;display:block;position:relative;padding:0;overflow:hidden}.stats-section .stat-card:hover{box-shadow:var(--shadow-md)}.stats-section .stat-card-content{display:block;padding:16px}.stat-content{display:flex;align-items:center;gap:12px}.stat-info .stat-number-row{display:flex;align-items:baseline;gap:6px}.stat-info .stat-delta{display:inline-flex;align-items:center;font-size:12px;font-weight:600;white-space:nowrap}.stat-info .stat-delta[data-direction=up]{color:var(--color-text-success, #059669)}.stat-info .stat-delta[data-direction=down]{color:var(--color-text-danger, #dc2626)}.stat-info .stat-delta[data-direction=flat]{color:var(--color-text-tertiary, #9ca3af)}.stat-info .stat-number{font-size:24px;font-weight:700;line-height:1;margin-bottom:4px;color:var(--color-text-secondary)}.stat-info .stat-label{font-size:12px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "c80-icon", inputs: ["icon", "color", "customColor", "disabled", "size", "button", "border", "type", "textLeft", "textRight", "dark"], outputs: ["iconClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11
24
|
}
|
|
12
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: StatCardComponent, decorators: [{
|
|
13
26
|
type: Component,
|
|
14
|
-
args: [{ selector: 'c80-stat-card', imports: [IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"stats-section py-4\">\
|
|
27
|
+
args: [{ selector: 'c80-stat-card', imports: [IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"stats-section py-4\">\n @for (item of items(); track item.text) {\n <div class=\"stat-card\" [style.border-left-color]=\"item.color\">\n <div class=\"stat-card-content\">\n <div class=\"stat-content\">\n <c80-icon [icon]=\"item.icon\" [color]=\"'secondary'\" [size]=\"1.1\" />\n <div class=\"stat-info\">\n <div class=\"stat-number-row\">\n <div class=\"stat-number\">{{ item.display }}</div>\n @if (item.delta) {\n <span class=\"stat-delta\" [attr.data-direction]=\"item.delta.direction\">\n @if (item.delta.direction !== 'flat') {\n <c80-icon [icon]=\"item.delta.direction === 'down' ? 'trendingDown' : 'trendingUp'\" customColor=\"currentColor\" [size]=\"0.55\" />\n }\n {{ item.delta.text }}\n </span>\n }\n </div>\n <div class=\"stat-label\">{{ item.text }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: [".stats-section{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px}.stats-section .stat-card{flex:1;min-width:200px;box-shadow:var(--shadow-sm);transition:box-shadow .3s ease;border-left:4px solid transparent;background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:4px;display:block;position:relative;padding:0;overflow:hidden}.stats-section .stat-card:hover{box-shadow:var(--shadow-md)}.stats-section .stat-card-content{display:block;padding:16px}.stat-content{display:flex;align-items:center;gap:12px}.stat-info .stat-number-row{display:flex;align-items:baseline;gap:6px}.stat-info .stat-delta{display:inline-flex;align-items:center;font-size:12px;font-weight:600;white-space:nowrap}.stat-info .stat-delta[data-direction=up]{color:var(--color-text-success, #059669)}.stat-info .stat-delta[data-direction=down]{color:var(--color-text-danger, #dc2626)}.stat-info .stat-delta[data-direction=flat]{color:var(--color-text-tertiary, #9ca3af)}.stat-info .stat-number{font-size:24px;font-weight:700;line-height:1;margin-bottom:4px;color:var(--color-text-secondary)}.stat-info .stat-label{font-size:12px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px}\n"] }]
|
|
15
28
|
}], propDecorators: { cards: [{ type: i0.Input, args: [{ isSignal: true, alias: "cards", required: false }] }] } });
|
|
16
29
|
//# sourceMappingURL=stat-card.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat-card.component.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/stat-card/stat-card.component.ts","../../../../../libs/ui/src/lib/stat-card/stat-card.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"stat-card.component.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/stat-card/stat-card.component.ts","../../../../../libs/ui/src/lib/stat-card/stat-card.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;;AAGxC,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AAE7G;;GAEG;AAQH,MAAM,OAAO,iBAAiB;IACnB,KAAK,GAAG,KAAK,CAAY,EAAE,4EAAC,CAAC;IAEnB,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,CACvC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;YAC7B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,IAAI,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;gBAC3C,SAAS,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAE,IAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAE,MAAgB;aACrG;KACN,CAAC,CAAC,4EACJ,CAAC;wGAhBS,iBAAiB;4FAAjB,iBAAiB,6MChB9B,g/BAyBA,gvCDdY,aAAa;;4FAKZ,iBAAiB;kBAP7B,SAAS;+BACE,eAAe,WAChB,CAAC,aAAa,CAAC,mBAGP,uBAAuB,CAAC,MAAM","sourcesContent":["import { Component, computed, input, ChangeDetectionStrategy } from '@angular/core';\nimport { IconComponent } from '../icon';\nimport type { CardDef } from './stat-card.types';\n\nconst DELTA_FORMAT = new Intl.NumberFormat('es-AR', { maximumFractionDigits: 1, signDisplay: 'exceptZero' });\n\n/**\n *\n */\n@Component({\n selector: 'c80-stat-card',\n imports: [IconComponent],\n templateUrl: './stat-card.component.html',\n styleUrls: ['./stat-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StatCardComponent {\n readonly cards = input<CardDef[]>([]);\n\n protected readonly items = computed(() =>\n this.cards().map((card) => ({\n color: card.color,\n icon: card.icon,\n text: card.text,\n display: card.value ?? (card.count !== undefined ? String(card.count) : ''),\n delta: card.delta === undefined\n ? undefined\n : {\n text: `${DELTA_FORMAT.format(card.delta)}%`,\n direction: card.delta > 0 ? ('up' as const) : card.delta < 0 ? ('down' as const) : ('flat' as const)\n }\n }))\n );\n}\n","<div class=\"stats-section py-4\">\n @for (item of items(); track item.text) {\n <div class=\"stat-card\" [style.border-left-color]=\"item.color\">\n <div class=\"stat-card-content\">\n <div class=\"stat-content\">\n <c80-icon [icon]=\"item.icon\" [color]=\"'secondary'\" [size]=\"1.1\" />\n <div class=\"stat-info\">\n <div class=\"stat-number-row\">\n <div class=\"stat-number\">{{ item.display }}</div>\n @if (item.delta) {\n <span class=\"stat-delta\" [attr.data-direction]=\"item.delta.direction\">\n @if (item.delta.direction !== 'flat') {\n <c80-icon [icon]=\"item.delta.direction === 'down' ? 'trendingDown' : 'trendingUp'\" customColor=\"currentColor\" [size]=\"0.55\" />\n }\n {{ item.delta.text }}\n </span>\n }\n </div>\n <div class=\"stat-label\">{{ item.text }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n</div>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat-card.types.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/stat-card/stat-card.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { IconType } from '../icon/icon.types';\n\nexport interface CardDef {\n color: string; // Acepta cualquier color CSS\n icon: IconType;\n text: string;\n count: number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"stat-card.types.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/stat-card/stat-card.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { IconType } from '../icon/icon.types';\n\nexport interface CardDef {\n color: string; // Acepta cualquier color CSS\n icon: IconType;\n text: string;\n /** Valor numerico crudo (se muestra tal cual) */\n count?: number;\n /** Valor ya formateado (ej. moneda); tiene prioridad sobre count */\n value?: string;\n /** Variacion porcentual: se muestra como +x% / -x% con color segun signo */\n delta?: number;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/status-badge/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC","sourcesContent":["export * from './status-badge.component';\nexport type { StatusBadgeVariant } from './status-badge.types';\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Chip generico de estado: texto + variante de color (success/warning/danger/info/neutral).
|
|
5
|
+
*/
|
|
6
|
+
export class StatusBadgeComponent {
|
|
7
|
+
text = input.required(...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
8
|
+
variant = input('neutral', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: StatusBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.17", type: StatusBadgeComponent, isStandalone: true, selector: "c80-status-badge", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<span class=\"status-badge\" [attr.data-variant]=\"variant()\">{{ text() }}</span>\n", styles: [".status-badge{display:inline-flex;align-items:center;padding:2px 10px;border:1px solid transparent;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.3px;line-height:1.4;white-space:nowrap;-webkit-user-select:none;user-select:none}.status-badge[data-variant=success]{background:#10b9811f;border-color:#10b9814d;color:var(--color-text-success, #047857)}.status-badge[data-variant=warning]{background:#f59e0b1f;border-color:#f59e0b4d;color:var(--color-text-warning, #b45309)}.status-badge[data-variant=danger]{background:#ef44441f;border-color:#ef44444d;color:var(--color-text-danger, #b91c1c)}.status-badge[data-variant=info]{background:#3b82f61f;border-color:#3b82f64d;color:var(--color-text-info, #1d4ed8)}.status-badge[data-variant=neutral]{background:#6b72801f;border-color:#6b72804d;color:var(--color-text-secondary, #6b7280)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: StatusBadgeComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{ selector: 'c80-status-badge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"status-badge\" [attr.data-variant]=\"variant()\">{{ text() }}</span>\n", styles: [".status-badge{display:inline-flex;align-items:center;padding:2px 10px;border:1px solid transparent;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.3px;line-height:1.4;white-space:nowrap;-webkit-user-select:none;user-select:none}.status-badge[data-variant=success]{background:#10b9811f;border-color:#10b9814d;color:var(--color-text-success, #047857)}.status-badge[data-variant=warning]{background:#f59e0b1f;border-color:#f59e0b4d;color:var(--color-text-warning, #b45309)}.status-badge[data-variant=danger]{background:#ef44441f;border-color:#ef44444d;color:var(--color-text-danger, #b91c1c)}.status-badge[data-variant=info]{background:#3b82f61f;border-color:#3b82f64d;color:var(--color-text-info, #1d4ed8)}.status-badge[data-variant=neutral]{background:#6b72801f;border-color:#6b72804d;color:var(--color-text-secondary, #6b7280)}\n"] }]
|
|
15
|
+
}], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
|
|
16
|
+
//# sourceMappingURL=status-badge.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-badge.component.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/status-badge/status-badge.component.ts","../../../../../libs/ui/src/lib/status-badge/status-badge.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;AAG1E;;GAEG;AAOH,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,KAAK,CAAC,QAAQ,0EAAU,CAAC;IAChC,OAAO,GAAG,KAAK,CAAqB,SAAS,8EAAC,CAAC;wGAF7C,oBAAoB;4FAApB,oBAAoB,0UCZjC,sFACA;;4FDWa,oBAAoB;kBANhC,SAAS;+BACE,kBAAkB,mBAGX,uBAAuB,CAAC,MAAM","sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport type { StatusBadgeVariant } from './status-badge.types';\n\n/**\n * Chip generico de estado: texto + variante de color (success/warning/danger/info/neutral).\n */\n@Component({\n selector: 'c80-status-badge',\n templateUrl: './status-badge.component.html',\n styleUrl: './status-badge.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StatusBadgeComponent {\n readonly text = input.required<string>();\n readonly variant = input<StatusBadgeVariant>('neutral');\n}\n","<span class=\"status-badge\" [attr.data-variant]=\"variant()\">{{ text() }}</span>\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=status-badge.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-badge.types.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/status-badge/status-badge.types.ts"],"names":[],"mappings":"","sourcesContent":["export type StatusBadgeVariant = 'success' | 'warning' | 'danger' | 'info' | 'neutral';\n"]}
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './lib/action-list';
|
|
2
|
+
export * from './lib/bar-chart';
|
|
2
3
|
export * from './lib/card-level';
|
|
3
4
|
export * from './lib/header';
|
|
4
5
|
export * from './lib/icon';
|
|
@@ -16,6 +17,7 @@ export * from './lib/select';
|
|
|
16
17
|
export * from './lib/snackbar';
|
|
17
18
|
export * from './lib/spinner';
|
|
18
19
|
export * from './lib/stat-card';
|
|
20
|
+
export * from './lib/status-badge';
|
|
19
21
|
export * from './lib/tab';
|
|
20
22
|
export * from './lib/table';
|
|
21
23
|
export * from './lib/error-notification';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { BarChartPoint } from './bar-chart.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
interface BarView {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
centerX: number;
|
|
9
|
+
labelText: string;
|
|
10
|
+
showLabel: boolean;
|
|
11
|
+
title: string;
|
|
12
|
+
}
|
|
13
|
+
interface TickView {
|
|
14
|
+
y: number;
|
|
15
|
+
text: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Grafico de barras verticales en SVG puro, sin dependencias externas.
|
|
19
|
+
* Pensado para dashboards simples (ej. ventas por dia/producto); no pretende
|
|
20
|
+
* reemplazar una libreria de charts. Solo valores >= 0 (los negativos se muestran en 0).
|
|
21
|
+
*/
|
|
22
|
+
export declare class BarChartComponent {
|
|
23
|
+
readonly series: import("@angular/core").InputSignal<BarChartPoint[]>;
|
|
24
|
+
/** Color de relleno de las barras (cualquier color CSS, admite var()). */
|
|
25
|
+
readonly color: import("@angular/core").InputSignal<string>;
|
|
26
|
+
/** Tooltip nativo (title SVG) con label y valor por barra. */
|
|
27
|
+
readonly tooltip: import("@angular/core").InputSignal<boolean>;
|
|
28
|
+
/** Formateo de valores para ticks y tooltip (default: notacion compacta es-AR). */
|
|
29
|
+
readonly valueFormatter: import("@angular/core").InputSignal<(value: number) => string>;
|
|
30
|
+
protected readonly viewBox = "0 0 600 260";
|
|
31
|
+
protected readonly plotLeft = 46;
|
|
32
|
+
protected readonly plotRight: number;
|
|
33
|
+
protected readonly labelY: number;
|
|
34
|
+
private readonly maxValue;
|
|
35
|
+
protected readonly ticks: import("@angular/core").Signal<TickView[]>;
|
|
36
|
+
protected readonly bars: import("@angular/core").Signal<BarView[]>;
|
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BarChartComponent, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BarChartComponent, "c80-bar-chart", never, { "series": { "alias": "series"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "valueFormatter": { "alias": "valueFormatter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -5,6 +5,16 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
*/
|
|
6
6
|
export declare class StatCardComponent {
|
|
7
7
|
readonly cards: import("@angular/core").InputSignal<CardDef[]>;
|
|
8
|
+
protected readonly items: import("@angular/core").Signal<{
|
|
9
|
+
color: string;
|
|
10
|
+
icon: string;
|
|
11
|
+
text: string;
|
|
12
|
+
display: string;
|
|
13
|
+
delta: {
|
|
14
|
+
text: string;
|
|
15
|
+
direction: "flat" | "up" | "down";
|
|
16
|
+
} | undefined;
|
|
17
|
+
}[]>;
|
|
8
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<StatCardComponent, never>;
|
|
9
19
|
static ɵcmp: i0.ɵɵComponentDeclaration<StatCardComponent, "c80-stat-card", never, { "cards": { "alias": "cards"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10
20
|
}
|
|
@@ -3,5 +3,10 @@ export interface CardDef {
|
|
|
3
3
|
color: string;
|
|
4
4
|
icon: IconType;
|
|
5
5
|
text: string;
|
|
6
|
-
|
|
6
|
+
/** Valor numerico crudo (se muestra tal cual) */
|
|
7
|
+
count?: number;
|
|
8
|
+
/** Valor ya formateado (ej. moneda); tiene prioridad sobre count */
|
|
9
|
+
value?: string;
|
|
10
|
+
/** Variacion porcentual: se muestra como +x% / -x% con color segun signo */
|
|
11
|
+
delta?: number;
|
|
7
12
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StatusBadgeVariant } from './status-badge.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Chip generico de estado: texto + variante de color (success/warning/danger/info/neutral).
|
|
5
|
+
*/
|
|
6
|
+
export declare class StatusBadgeComponent {
|
|
7
|
+
readonly text: import("@angular/core").InputSignal<string>;
|
|
8
|
+
readonly variant: import("@angular/core").InputSignal<StatusBadgeVariant>;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StatusBadgeComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StatusBadgeComponent, "c80-status-badge", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type StatusBadgeVariant = 'success' | 'warning' | 'danger' | 'info' | 'neutral';
|