@c80/ui 1.0.53 → 1.0.54
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/lib/icon/icon.component.js +18 -8
- package/esm2022/lib/icon/icon.component.js.map +1 -1
- package/esm2022/lib/icon/icon.constants.js +7 -293
- package/esm2022/lib/icon/icon.constants.js.map +1 -1
- package/esm2022/lib/icon/icon.definitions.js +379 -0
- package/esm2022/lib/icon/icon.definitions.js.map +1 -0
- package/esm2022/lib/icon/icon.types.js.map +1 -1
- package/esm2022/lib/icon/icon.utils.js +14 -0
- package/esm2022/lib/icon/icon.utils.js.map +1 -1
- package/lib/icon/icon.component.d.ts +10 -1
- package/lib/icon/icon.constants.d.ts +7 -14
- package/lib/icon/icon.definitions.d.ts +16 -0
- package/lib/icon/icon.types.d.ts +40 -5
- package/lib/icon/icon.utils.d.ts +5 -0
- package/package.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import { Component, input, output, computed, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
-
import { BASE_ICON_SIZE, BASE_ICON_COLORS, DISABLED_COLOR, DEFAULT_ICON_COLOR, DISABLED_OPACITY, SECONDARY_WARN_OPACITY, DEFAULT_OPACITY,
|
|
4
|
-
import {
|
|
3
|
+
import { BASE_ICON_SIZE, BASE_ICON_COLORS, DISABLED_COLOR, DEFAULT_ICON_COLOR, DISABLED_OPACITY, SECONDARY_WARN_OPACITY, DEFAULT_OPACITY, OPACITY_REDUCED_COLORS, SVG_STROKE_ATTRS, } from './icon.constants';
|
|
4
|
+
import { ICON_DEFINITIONS } from './icon.definitions';
|
|
5
|
+
import { transformToBoolean, shouldIconUseFill } from './icon.utils';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class C80IconComponent {
|
|
7
8
|
/* v8 ignore next */
|
|
@@ -38,21 +39,30 @@ export class C80IconComponent {
|
|
|
38
39
|
if (this.disabled())
|
|
39
40
|
return DISABLED_OPACITY;
|
|
40
41
|
const hasCustomColor = this.customColor() !== undefined;
|
|
41
|
-
const
|
|
42
|
-
return !hasCustomColor &&
|
|
42
|
+
const isOpacityReducedColor = OPACITY_REDUCED_COLORS.includes(this.color());
|
|
43
|
+
return !hasCustomColor && isOpacityReducedColor ? SECONDARY_WARN_OPACITY : DEFAULT_OPACITY;
|
|
43
44
|
}, ...(ngDevMode ? [{ debugName: "iconOpacity" }] : []));
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
// Optimización: Un solo lookup a ICON_DEFINITIONS
|
|
46
|
+
iconDefinition = computed(() => {
|
|
47
|
+
return ICON_DEFINITIONS[this.icon()] ?? ICON_DEFINITIONS['default'];
|
|
48
|
+
}, ...(ngDevMode ? [{ debugName: "iconDefinition" }] : []));
|
|
49
|
+
iconPath = computed(() => this.iconDefinition().path, ...(ngDevMode ? [{ debugName: "iconPath" }] : []));
|
|
50
|
+
additionalShapes = computed(() => this.iconDefinition().additionalShapes ?? [], ...(ngDevMode ? [{ debugName: "additionalShapes" }] : []));
|
|
51
|
+
shouldFillIcon = computed(() => shouldIconUseFill(this.icon()), ...(ngDevMode ? [{ debugName: "shouldFillIcon" }] : []));
|
|
52
|
+
multiColorIcon = computed(() => this.iconDefinition().multiColor, ...(ngDevMode ? [{ debugName: "multiColorIcon" }] : []));
|
|
53
|
+
hasMultiPaths = computed(() => this.multiColorIcon() !== undefined, ...(ngDevMode ? [{ debugName: "hasMultiPaths" }] : []));
|
|
54
|
+
// Exponer constantes SVG al template
|
|
55
|
+
svgStrokeAttrs = SVG_STROKE_ATTRS;
|
|
46
56
|
onButtonClick(event) {
|
|
47
57
|
if (!this.disabled()) {
|
|
48
58
|
this.iconClick.emit(event);
|
|
49
59
|
}
|
|
50
60
|
}
|
|
51
61
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: C80IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: C80IconComponent, isStandalone: true, selector: "c80-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customColor: { classPropertyName: "customColor", publicName: "customColor", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, textLeft: { classPropertyName: "textLeft", publicName: "textLeft", isSignal: true, isRequired: false, transformFunction: null }, textRight: { classPropertyName: "textRight", publicName: "textRight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { iconClick: "iconClick" }, ngImport: i0, template: "<ng-template #svgContent>\n <!-- eslint-disable-next-line @angular-eslint/template/no-inline-styles -->\n <svg [attr.width]=\"iconSize()\" [attr.height]=\"iconSize()\" viewBox=\"0 0 24 24\" fill=\"none\" [style.opacity]=\"iconOpacity()\">\n @for (shape of additionalShapes(); track $index) {\n @if (shape.type === 'circle') {\n <circle [attr.cx]=\"shape
|
|
62
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: C80IconComponent, isStandalone: true, selector: "c80-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, customColor: { classPropertyName: "customColor", publicName: "customColor", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, button: { classPropertyName: "button", publicName: "button", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, textLeft: { classPropertyName: "textLeft", publicName: "textLeft", isSignal: true, isRequired: false, transformFunction: null }, textRight: { classPropertyName: "textRight", publicName: "textRight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { iconClick: "iconClick" }, ngImport: i0, template: "<ng-template #svgContent>\n <!-- eslint-disable-next-line @angular-eslint/template/no-inline-styles -->\n <svg [attr.width]=\"iconSize()\" [attr.height]=\"iconSize()\" viewBox=\"0 0 24 24\" fill=\"none\" [style.opacity]=\"iconOpacity()\">\n @for (shape of additionalShapes(); track $index) {\n @if (shape.type === 'circle') {\n <circle [attr.cx]=\"shape.cx\" [attr.cy]=\"shape.cy\" [attr.r]=\"shape.r\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n } @else if (shape.type === 'rect') {\n <rect [attr.x]=\"shape.x\" [attr.y]=\"shape.y\" [attr.width]=\"shape.width\" [attr.height]=\"shape.height\" [attr.rx]=\"shape.rx || null\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\"\n [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n } @else if (shape.type === 'path') {\n <path [attr.d]=\"shape.d\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.stroke-linecap]=\"svgStrokeAttrs.strokeLinecap\" [attr.stroke-linejoin]=\"svgStrokeAttrs.strokeLinejoin\"\n [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n }\n }\n\n @if (hasMultiPaths()) {\n <!-- Iconos con m\u00FAltiples paths y colores personalizados -->\n @for (path of multiColorIcon()!.paths; track $index) {\n <path [attr.d]=\"path\" [attr.fill]=\"multiColorIcon()!.colors[$index] || iconColor()\" stroke=\"none\" />\n }\n } @else {\n <!-- Iconos con un solo path -->\n <path [attr.d]=\"iconPath()\" [attr.stroke]=\"iconColor()\" [attr.fill]=\"shouldFillIcon() ? iconColor() : 'none'\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.stroke-linecap]=\"svgStrokeAttrs.strokeLinecap\"\n [attr.stroke-linejoin]=\"svgStrokeAttrs.strokeLinejoin\" />\n }\n </svg>\n</ng-template>\n\n<ng-template #textContent>\n @if (textLeft()) {\n <span class=\"icon-text ms-3\">{{ textLeft() }}</span>\n }\n <!-- eslint-disable-next-line @angular-eslint/template/no-inline-styles -->\n <span class=\"icon-content\" [style.width.px]=\"iconSize() + 8\" [style.height.px]=\"iconSize() + 8\">\n <ng-container *ngTemplateOutlet=\"svgContent\" />\n </span>\n @if (textRight()) {\n <span class=\"icon-text me-3\">{{ textRight() }}</span>\n }\n</ng-template>\n\n@if (button()) {\n<button [type]=\"type()\" [disabled]=\"disabled()\" class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\" (click)=\"onButtonClick($event)\">\n <ng-container *ngTemplateOutlet=\"textContent\" />\n</button>\n} @else {\n<span class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\">\n <ng-container *ngTemplateOutlet=\"textContent\" />\n</span>\n}", styles: [":host .icon-wrapper{display:inline-flex;align-items:center;gap:8px;background:transparent;padding:0;border:none;outline:none;cursor:pointer;transition:opacity .2s}:host button.icon-wrapper:focus-visible{outline:none;outline-offset:2px;border-radius:4px}:host button.icon-wrapper:disabled{opacity:.5;cursor:default}:host .icon-content{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;min-width:0;min-height:0;padding:4px;margin:0 4px;transition:background .2s;box-sizing:border-box}:host button.icon-wrapper:hover:not(:disabled) .icon-content{background:var(--color-bg-hover)}:host button.icon-wrapper:active:not(:disabled) .icon-content{background:var(--color-bg-tertiary)}:host .icon-text{font-size:14px;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none;color:var(--color-text-primary)}:host .icon-wrapper-border{border:1px solid var(--color-border-default);border-radius:4px;padding:4px 8px}:host button.icon-wrapper-border:hover:not(:disabled){border-color:var(--color-border-medium)}:host button.icon-wrapper-border:disabled{border-color:var(--color-border-light)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
63
|
}
|
|
54
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: C80IconComponent, decorators: [{
|
|
55
65
|
type: Component,
|
|
56
|
-
args: [{ selector: 'c80-icon', standalone: true, imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #svgContent>\n <!-- eslint-disable-next-line @angular-eslint/template/no-inline-styles -->\n <svg [attr.width]=\"iconSize()\" [attr.height]=\"iconSize()\" viewBox=\"0 0 24 24\" fill=\"none\" [style.opacity]=\"iconOpacity()\">\n @for (shape of additionalShapes(); track $index) {\n @if (shape.type === 'circle') {\n <circle [attr.cx]=\"shape
|
|
66
|
+
args: [{ selector: 'c80-icon', standalone: true, imports: [NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #svgContent>\n <!-- eslint-disable-next-line @angular-eslint/template/no-inline-styles -->\n <svg [attr.width]=\"iconSize()\" [attr.height]=\"iconSize()\" viewBox=\"0 0 24 24\" fill=\"none\" [style.opacity]=\"iconOpacity()\">\n @for (shape of additionalShapes(); track $index) {\n @if (shape.type === 'circle') {\n <circle [attr.cx]=\"shape.cx\" [attr.cy]=\"shape.cy\" [attr.r]=\"shape.r\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n } @else if (shape.type === 'rect') {\n <rect [attr.x]=\"shape.x\" [attr.y]=\"shape.y\" [attr.width]=\"shape.width\" [attr.height]=\"shape.height\" [attr.rx]=\"shape.rx || null\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\"\n [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n } @else if (shape.type === 'path') {\n <path [attr.d]=\"shape.d\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.stroke-linecap]=\"svgStrokeAttrs.strokeLinecap\" [attr.stroke-linejoin]=\"svgStrokeAttrs.strokeLinejoin\"\n [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n }\n }\n\n @if (hasMultiPaths()) {\n <!-- Iconos con m\u00FAltiples paths y colores personalizados -->\n @for (path of multiColorIcon()!.paths; track $index) {\n <path [attr.d]=\"path\" [attr.fill]=\"multiColorIcon()!.colors[$index] || iconColor()\" stroke=\"none\" />\n }\n } @else {\n <!-- Iconos con un solo path -->\n <path [attr.d]=\"iconPath()\" [attr.stroke]=\"iconColor()\" [attr.fill]=\"shouldFillIcon() ? iconColor() : 'none'\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.stroke-linecap]=\"svgStrokeAttrs.strokeLinecap\"\n [attr.stroke-linejoin]=\"svgStrokeAttrs.strokeLinejoin\" />\n }\n </svg>\n</ng-template>\n\n<ng-template #textContent>\n @if (textLeft()) {\n <span class=\"icon-text ms-3\">{{ textLeft() }}</span>\n }\n <!-- eslint-disable-next-line @angular-eslint/template/no-inline-styles -->\n <span class=\"icon-content\" [style.width.px]=\"iconSize() + 8\" [style.height.px]=\"iconSize() + 8\">\n <ng-container *ngTemplateOutlet=\"svgContent\" />\n </span>\n @if (textRight()) {\n <span class=\"icon-text me-3\">{{ textRight() }}</span>\n }\n</ng-template>\n\n@if (button()) {\n<button [type]=\"type()\" [disabled]=\"disabled()\" class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\" (click)=\"onButtonClick($event)\">\n <ng-container *ngTemplateOutlet=\"textContent\" />\n</button>\n} @else {\n<span class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\">\n <ng-container *ngTemplateOutlet=\"textContent\" />\n</span>\n}", styles: [":host .icon-wrapper{display:inline-flex;align-items:center;gap:8px;background:transparent;padding:0;border:none;outline:none;cursor:pointer;transition:opacity .2s}:host button.icon-wrapper:focus-visible{outline:none;outline-offset:2px;border-radius:4px}:host button.icon-wrapper:disabled{opacity:.5;cursor:default}:host .icon-content{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;min-width:0;min-height:0;padding:4px;margin:0 4px;transition:background .2s;box-sizing:border-box}:host button.icon-wrapper:hover:not(:disabled) .icon-content{background:var(--color-bg-hover)}:host button.icon-wrapper:active:not(:disabled) .icon-content{background:var(--color-bg-tertiary)}:host .icon-text{font-size:14px;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none;color:var(--color-text-primary)}:host .icon-wrapper-border{border:1px solid var(--color-border-default);border-radius:4px;padding:4px 8px}:host button.icon-wrapper-border:hover:not(:disabled){border-color:var(--color-border-medium)}:host button.icon-wrapper-border:disabled{border-color:var(--color-border-light)}\n"] }]
|
|
57
67
|
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], customColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "customColor", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], button: [{ type: i0.Input, args: [{ isSignal: true, alias: "button", required: false }] }], border: [{ type: i0.Input, args: [{ isSignal: true, alias: "border", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], textLeft: [{ type: i0.Input, args: [{ isSignal: true, alias: "textLeft", required: false }] }], textRight: [{ type: i0.Input, args: [{ isSignal: true, alias: "textRight", required: false }] }], iconClick: [{ type: i0.Output, args: ["iconClick"] }] } });
|
|
58
68
|
//# sourceMappingURL=icon.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.component.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.component.ts","../../../../../libs/ui/src/lib/icon/icon.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"icon.component.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.component.ts","../../../../../libs/ui/src/lib/icon/icon.component.html"],"names":[],"mappings":"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","sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { Component, input, output, computed, ChangeDetectionStrategy } from '@angular/core';\nimport {\n BASE_ICON_SIZE,\n BASE_ICON_COLORS,\n DISABLED_COLOR,\n DEFAULT_ICON_COLOR,\n DISABLED_OPACITY,\n SECONDARY_WARN_OPACITY,\n DEFAULT_OPACITY,\n OPACITY_REDUCED_COLORS,\n SVG_STROKE_ATTRS,\n} from './icon.constants';\nimport { ICON_DEFINITIONS } from './icon.definitions';\nimport type { ColorType, ButtonType, IconType } from './icon.types';\nimport { transformToBoolean, shouldIconUseFill } from './icon.utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'c80-icon',\n standalone: true,\n imports: [NgTemplateOutlet],\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class C80IconComponent {\n /* v8 ignore next */\n readonly icon = input<IconType>('check'); // Tipo de icono a mostrar\n /* v8 ignore next */\n readonly color = input<ColorType>('dark'); // Color del icono (primary, secondary, warn, success, dark)\n /* v8 ignore next */\n readonly customColor = input<string | undefined>(undefined); // Color personalizado (sobrescribe color)\n /* v8 ignore next */\n readonly disabled = input(false); // Estado deshabilitado\n /* v8 ignore next */\n readonly size = input(1); // Multiplicador de tamaño (1 = 24px)\n /* v8 ignore next */\n readonly button = input(false, { transform: transformToBoolean }); // Renderiza como botón clickeable\n /* v8 ignore next */\n readonly border = input(false, { transform: transformToBoolean }); // Agrega borde al wrapper\n /* v8 ignore next */\n readonly type = input<ButtonType>('button'); // Tipo de botón (button, submit, reset)\n /* v8 ignore next */\n readonly textLeft = input<string | undefined>(undefined); // Texto a la izquierda del icono\n /* v8 ignore next */\n readonly textRight = input<string | undefined>(undefined); // Texto a la derecha del icono\n\n readonly iconClick = output<Event>(); // Evento emitido al hacer click (solo si button=true)\n\n readonly iconSize = computed(() => BASE_ICON_SIZE * this.size());\n\n readonly iconColor = computed(() => {\n if (this.disabled()) return DISABLED_COLOR;\n\n const custom = this.customColor();\n if (custom) return custom;\n\n return BASE_ICON_COLORS[this.color()] ?? DEFAULT_ICON_COLOR;\n });\n\n readonly iconOpacity = computed(() => {\n if (this.disabled()) return DISABLED_OPACITY;\n\n const hasCustomColor = this.customColor() !== undefined;\n const isOpacityReducedColor = OPACITY_REDUCED_COLORS.includes(this.color());\n\n return !hasCustomColor && isOpacityReducedColor ? SECONDARY_WARN_OPACITY : DEFAULT_OPACITY;\n });\n\n // Optimización: Un solo lookup a ICON_DEFINITIONS\n readonly iconDefinition = computed(() => {\n return ICON_DEFINITIONS[this.icon()] ?? ICON_DEFINITIONS['default'];\n });\n\n readonly iconPath = computed(() => this.iconDefinition().path);\n\n readonly additionalShapes = computed(() => this.iconDefinition().additionalShapes ?? []);\n\n readonly shouldFillIcon = computed(() => shouldIconUseFill(this.icon()));\n\n readonly multiColorIcon = computed(() => this.iconDefinition().multiColor);\n\n readonly hasMultiPaths = computed(() => this.multiColorIcon() !== undefined);\n\n // Exponer constantes SVG al template\n readonly svgStrokeAttrs = SVG_STROKE_ATTRS;\n\n onButtonClick(event: Event): void {\n if (!this.disabled()) {\n this.iconClick.emit(event);\n }\n }\n}\n","<ng-template #svgContent>\n <!-- eslint-disable-next-line @angular-eslint/template/no-inline-styles -->\n <svg [attr.width]=\"iconSize()\" [attr.height]=\"iconSize()\" viewBox=\"0 0 24 24\" fill=\"none\" [style.opacity]=\"iconOpacity()\">\n @for (shape of additionalShapes(); track $index) {\n @if (shape.type === 'circle') {\n <circle [attr.cx]=\"shape.cx\" [attr.cy]=\"shape.cy\" [attr.r]=\"shape.r\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n } @else if (shape.type === 'rect') {\n <rect [attr.x]=\"shape.x\" [attr.y]=\"shape.y\" [attr.width]=\"shape.width\" [attr.height]=\"shape.height\" [attr.rx]=\"shape.rx || null\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\"\n [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n } @else if (shape.type === 'path') {\n <path [attr.d]=\"shape.d\" [attr.stroke]=\"iconColor()\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.stroke-linecap]=\"svgStrokeAttrs.strokeLinecap\" [attr.stroke-linejoin]=\"svgStrokeAttrs.strokeLinejoin\"\n [attr.fill]=\"shape.fill === 'color' ? iconColor() : 'none'\" />\n }\n }\n\n @if (hasMultiPaths()) {\n <!-- Iconos con múltiples paths y colores personalizados -->\n @for (path of multiColorIcon()!.paths; track $index) {\n <path [attr.d]=\"path\" [attr.fill]=\"multiColorIcon()!.colors[$index] || iconColor()\" stroke=\"none\" />\n }\n } @else {\n <!-- Iconos con un solo path -->\n <path [attr.d]=\"iconPath()\" [attr.stroke]=\"iconColor()\" [attr.fill]=\"shouldFillIcon() ? iconColor() : 'none'\" [attr.stroke-width]=\"svgStrokeAttrs.strokeWidth\" [attr.stroke-linecap]=\"svgStrokeAttrs.strokeLinecap\"\n [attr.stroke-linejoin]=\"svgStrokeAttrs.strokeLinejoin\" />\n }\n </svg>\n</ng-template>\n\n<ng-template #textContent>\n @if (textLeft()) {\n <span class=\"icon-text ms-3\">{{ textLeft() }}</span>\n }\n <!-- eslint-disable-next-line @angular-eslint/template/no-inline-styles -->\n <span class=\"icon-content\" [style.width.px]=\"iconSize() + 8\" [style.height.px]=\"iconSize() + 8\">\n <ng-container *ngTemplateOutlet=\"svgContent\" />\n </span>\n @if (textRight()) {\n <span class=\"icon-text me-3\">{{ textRight() }}</span>\n }\n</ng-template>\n\n@if (button()) {\n<button [type]=\"type()\" [disabled]=\"disabled()\" class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\" (click)=\"onButtonClick($event)\">\n <ng-container *ngTemplateOutlet=\"textContent\" />\n</button>\n} @else {\n<span class=\"icon-wrapper\" [class.icon-wrapper-border]=\"border()\">\n <ng-container *ngTemplateOutlet=\"textContent\" />\n</span>\n}"]}
|
|
@@ -1,88 +1,3 @@
|
|
|
1
|
-
export const ICON_NAMES = [
|
|
2
|
-
'check',
|
|
3
|
-
'cancel',
|
|
4
|
-
'edit',
|
|
5
|
-
'delete',
|
|
6
|
-
'add',
|
|
7
|
-
'view',
|
|
8
|
-
'get',
|
|
9
|
-
'settings',
|
|
10
|
-
'schedule',
|
|
11
|
-
'refresh',
|
|
12
|
-
'checkCircle',
|
|
13
|
-
'cancelCircle',
|
|
14
|
-
'error',
|
|
15
|
-
'queue',
|
|
16
|
-
'arrowUp',
|
|
17
|
-
'arrowDown',
|
|
18
|
-
'toggleOn',
|
|
19
|
-
'toggleOff',
|
|
20
|
-
'search',
|
|
21
|
-
'upload',
|
|
22
|
-
'pendingActions',
|
|
23
|
-
'playCircle',
|
|
24
|
-
'play',
|
|
25
|
-
'stop',
|
|
26
|
-
'tune',
|
|
27
|
-
'visibility',
|
|
28
|
-
'visibilityOff',
|
|
29
|
-
'close',
|
|
30
|
-
'record',
|
|
31
|
-
'star',
|
|
32
|
-
'xCircle',
|
|
33
|
-
'key',
|
|
34
|
-
'exclamationTriangle',
|
|
35
|
-
'clipboard',
|
|
36
|
-
'download',
|
|
37
|
-
'shield',
|
|
38
|
-
'person',
|
|
39
|
-
'envelope',
|
|
40
|
-
'infoCircle',
|
|
41
|
-
'checkSquare',
|
|
42
|
-
'square',
|
|
43
|
-
'dashSquare',
|
|
44
|
-
'people',
|
|
45
|
-
'boxSeam',
|
|
46
|
-
'personBadge',
|
|
47
|
-
'listTask',
|
|
48
|
-
'shuffle',
|
|
49
|
-
'motor',
|
|
50
|
-
'box',
|
|
51
|
-
'bell',
|
|
52
|
-
'message',
|
|
53
|
-
'send',
|
|
54
|
-
'file',
|
|
55
|
-
'folder',
|
|
56
|
-
'save',
|
|
57
|
-
'print',
|
|
58
|
-
'clock',
|
|
59
|
-
'calendar',
|
|
60
|
-
'timer',
|
|
61
|
-
'lock',
|
|
62
|
-
'unlock',
|
|
63
|
-
'chart',
|
|
64
|
-
'table',
|
|
65
|
-
'database',
|
|
66
|
-
'home',
|
|
67
|
-
'menu',
|
|
68
|
-
'arrowLeft',
|
|
69
|
-
'arrowRight',
|
|
70
|
-
'copy',
|
|
71
|
-
'filter',
|
|
72
|
-
'sort',
|
|
73
|
-
'help',
|
|
74
|
-
'warning',
|
|
75
|
-
'dashboard',
|
|
76
|
-
'settingsApplications',
|
|
77
|
-
'route',
|
|
78
|
-
'developerBoard',
|
|
79
|
-
'directions',
|
|
80
|
-
'category',
|
|
81
|
-
'logout',
|
|
82
|
-
'sun',
|
|
83
|
-
'moon',
|
|
84
|
-
'default',
|
|
85
|
-
];
|
|
86
1
|
export const BASE_ICON_COLORS = {
|
|
87
2
|
primary: '#003775c8',
|
|
88
3
|
secondary: '#6b7280',
|
|
@@ -96,213 +11,12 @@ export const DISABLED_OPACITY = 0.5;
|
|
|
96
11
|
export const SECONDARY_WARN_OPACITY = 0.7;
|
|
97
12
|
export const DEFAULT_OPACITY = 1;
|
|
98
13
|
export const BASE_ICON_SIZE = 24;
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
* - ViewBox: 24x24 (compatible con BASE_ICON_SIZE)
|
|
107
|
-
* - Máximo 300 caracteres por línea (usar concatenación con + si es necesario)
|
|
108
|
-
*/
|
|
109
|
-
export const ICON_PATHS = {
|
|
110
|
-
check: 'M5 13l4 4L19 7',
|
|
111
|
-
cancel: 'M6 6l12 12M6 18L18 6',
|
|
112
|
-
edit: 'M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z',
|
|
113
|
-
delete: 'M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z',
|
|
114
|
-
add: 'M12 5v14M5 12h14',
|
|
115
|
-
view: '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',
|
|
116
|
-
get: 'm8.5 8.5 7 7',
|
|
117
|
-
settings: 'M12 1v6m0 6v10M3.34 7l5.2 3M15.46 14l5.2 3M3.34 17l5.2-3M15.46 10l5.2-3',
|
|
118
|
-
schedule: 'M12 6v6l4 2',
|
|
119
|
-
refresh: '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',
|
|
120
|
-
checkCircle: 'm9 12 2 2 4-4',
|
|
121
|
-
cancelCircle: 'm15 9-6 6m0-6 6 6',
|
|
122
|
-
error: 'M15 9L9 15M9 9l6 6',
|
|
123
|
-
queue: 'M3 12h18m-9-9v18',
|
|
124
|
-
arrowUp: 'm18 15-6-6-6 6',
|
|
125
|
-
arrowDown: 'm6 9 6 6 6-6',
|
|
126
|
-
toggleOn: '',
|
|
127
|
-
toggleOff: '',
|
|
128
|
-
search: 'm21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z',
|
|
129
|
-
upload: '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',
|
|
130
|
-
pendingActions: 'M12 8v4l3 3m6-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0z',
|
|
131
|
-
playCircle: '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',
|
|
132
|
-
play: 'M8 5v14l11-7z',
|
|
133
|
-
stop: 'M6 6h12v12H6z',
|
|
134
|
-
// Material Design: tune (adjustments/sliders)
|
|
135
|
-
tune: 'M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z',
|
|
136
|
-
visibility: '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',
|
|
137
|
-
visibilityOff: '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' +
|
|
138
|
-
'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' +
|
|
139
|
-
'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' +
|
|
140
|
-
'm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z',
|
|
141
|
-
close: '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',
|
|
142
|
-
record: '',
|
|
143
|
-
star: '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',
|
|
144
|
-
xCircle: 'M15 9l-6 6m0-6l6 6',
|
|
145
|
-
key: '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',
|
|
146
|
-
exclamationTriangle: 'M12 9v4m0 4h.01',
|
|
147
|
-
clipboard: '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',
|
|
148
|
-
download: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4m4-5l5 5m0 0l5-5m-5 5V3',
|
|
149
|
-
shield: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',
|
|
150
|
-
// Material Design: person (single user)
|
|
151
|
-
person: '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',
|
|
152
|
-
envelope: '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',
|
|
153
|
-
infoCircle: 'M12 16v-4m0-4h.01',
|
|
154
|
-
checkSquare: 'm9 11 3 3L22 4',
|
|
155
|
-
square: '',
|
|
156
|
-
dashSquare: 'M8 12h8',
|
|
157
|
-
people: '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' +
|
|
158
|
-
'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',
|
|
159
|
-
boxSeam: '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',
|
|
160
|
-
personBadge: 'M12 2L4 6v5c0 5.55 3.84 10.74 8 12 4.16-1.26 8-6.45 8-12V6l-8-4z',
|
|
161
|
-
listTask: 'M9 6h12M9 12h12M9 18h12',
|
|
162
|
-
shuffle: 'M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5',
|
|
163
|
-
motor: 'M9 3v3m6-3v3M9 18v3m6-3v3M3 9h3M3 15h3m12-6h3m-3 6h3',
|
|
164
|
-
box: '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',
|
|
165
|
-
bell: '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',
|
|
166
|
-
message: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',
|
|
167
|
-
send: 'M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z',
|
|
168
|
-
file: 'M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z',
|
|
169
|
-
folder: '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',
|
|
170
|
-
save: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',
|
|
171
|
-
print: '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',
|
|
172
|
-
clock: 'M12 6v6l4 2',
|
|
173
|
-
calendar: 'M8 2v4m8-4v4M3 10h18',
|
|
174
|
-
timer: 'M12 8v4l2 2',
|
|
175
|
-
lock: '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',
|
|
176
|
-
unlock: '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',
|
|
177
|
-
chart: 'M3 3v18h18M7 16l4-4 4 4 6-6',
|
|
178
|
-
table: 'M3 3h18v18H3zM3 9h18M3 15h18M9 3v18',
|
|
179
|
-
database: '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',
|
|
180
|
-
home: 'm3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',
|
|
181
|
-
menu: 'M3 12h18M3 6h18M3 18h18',
|
|
182
|
-
arrowLeft: 'm19 12H5m0 0 7 7m-7-7 7-7',
|
|
183
|
-
arrowRight: 'm5 12 7 7m0 0 5-5m-5 5V5',
|
|
184
|
-
copy: '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',
|
|
185
|
-
filter: 'M22 3H2l8 9.46V19l4 2v-8.54L22 3z',
|
|
186
|
-
sort: 'M11 5h10M11 9h7M11 13h4M3 17l3 3m0 0l3-3m-3 3V4',
|
|
187
|
-
help: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01',
|
|
188
|
-
warning: 'M12 9v4',
|
|
189
|
-
dashboard: 'M3 13h8V3H3zm0 8h8v-6H3zm10 0h8V11h-8zm0-18v6h8V3z',
|
|
190
|
-
// Material Design: settings_applications (system profiles/configuration)
|
|
191
|
-
settingsApplications: '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' +
|
|
192
|
-
'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' +
|
|
193
|
-
'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' +
|
|
194
|
-
'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' +
|
|
195
|
-
'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',
|
|
196
|
-
route: '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',
|
|
197
|
-
developerBoard: 'M9 2v4m6-4v4M9 18v4m6-18v4M2 9h4M2 15h4m16-6h4m-4 6h4',
|
|
198
|
-
// Material Design: directions (map navigation icon with arrow)
|
|
199
|
-
directions: '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',
|
|
200
|
-
category: 'M12 2 6.5 11h11z',
|
|
201
|
-
logout: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4m7 14 5-5m0 0-5-5m5 5H9',
|
|
202
|
-
// Material Design: light_mode (sun icon)
|
|
203
|
-
sun: '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' +
|
|
204
|
-
'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' +
|
|
205
|
-
'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' +
|
|
206
|
-
'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',
|
|
207
|
-
// Material Design: dark_mode (moon icon)
|
|
208
|
-
moon: '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' +
|
|
209
|
-
'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',
|
|
210
|
-
default: '',
|
|
211
|
-
};
|
|
212
|
-
export const ICON_ADDITIONAL_SHAPES = {
|
|
213
|
-
view: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],
|
|
214
|
-
get: [
|
|
215
|
-
{ type: 'circle', cx: '6', cy: '6', r: '3' },
|
|
216
|
-
{ type: 'circle', cx: '18', cy: '18', r: '3' },
|
|
217
|
-
{ type: 'path', d: 'm13 11 2 2-2 2' },
|
|
218
|
-
],
|
|
219
|
-
settings: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],
|
|
220
|
-
schedule: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
221
|
-
checkCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
222
|
-
cancelCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
223
|
-
error: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
224
|
-
queue: [
|
|
225
|
-
{ type: 'rect', x: '2', y: '3', width: '20', height: '6', rx: '1' },
|
|
226
|
-
{ type: 'rect', x: '2', y: '15', width: '20', height: '6', rx: '1' },
|
|
227
|
-
],
|
|
228
|
-
toggleOn: [
|
|
229
|
-
{ type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },
|
|
230
|
-
{ type: 'circle', cx: '18', cy: '12', r: '4', fill: 'color' },
|
|
231
|
-
],
|
|
232
|
-
toggleOff: [
|
|
233
|
-
{ type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },
|
|
234
|
-
{ type: 'circle', cx: '6', cy: '12', r: '4', fill: 'color' },
|
|
235
|
-
],
|
|
236
|
-
playCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
237
|
-
visibility: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],
|
|
238
|
-
record: [{ type: 'circle', cx: '12', cy: '12', r: '5', fill: 'color' }],
|
|
239
|
-
xCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
240
|
-
exclamationTriangle: [{ 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' }],
|
|
241
|
-
person: [],
|
|
242
|
-
envelope: [{ type: 'path', d: 'm22 6-10 7L2 6' }],
|
|
243
|
-
infoCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
244
|
-
checkSquare: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],
|
|
245
|
-
square: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],
|
|
246
|
-
dashSquare: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],
|
|
247
|
-
people: [],
|
|
248
|
-
boxSeam: [{ 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' }, { type: 'path', d: 'M3.3 7L12 12l8.7-5M12 22.5V12' }],
|
|
249
|
-
personBadge: [
|
|
250
|
-
{ type: 'circle', cx: '12', cy: '12', r: '1.5' },
|
|
251
|
-
{ type: 'path', d: 'M12 9.5v1m0 3v1m2.5-2.5h-1m-3 0h-1' }
|
|
252
|
-
],
|
|
253
|
-
listTask: [
|
|
254
|
-
{ type: 'path', d: 'M3 5l1.5 1.5L7 4' },
|
|
255
|
-
{ type: 'path', d: 'M3 11l1.5 1.5L7 10' },
|
|
256
|
-
{ type: 'path', d: 'M3 17l1.5 1.5L7 16' },
|
|
257
|
-
],
|
|
258
|
-
shuffle: [],
|
|
259
|
-
motor: [
|
|
260
|
-
{ type: 'circle', cx: '12', cy: '12', r: '8' },
|
|
261
|
-
{ type: 'circle', cx: '12', cy: '12', r: '3', fill: 'color' },
|
|
262
|
-
{ 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' }
|
|
263
|
-
],
|
|
264
|
-
box: [{ type: 'path', d: 'M12 2.7L3.3 7v9.3l8.7 5 8.7-5V7L12 2.7z' }, { type: 'path', d: 'M12 22V12M3.3 7L12 12l8.7-5' }],
|
|
265
|
-
bell: [],
|
|
266
|
-
message: [],
|
|
267
|
-
send: [],
|
|
268
|
-
file: [{ type: 'path', d: 'M13 2v7h7' }],
|
|
269
|
-
folder: [],
|
|
270
|
-
save: [{ type: 'path', d: 'M15 3v6h4M9 21v-8h6v8' }],
|
|
271
|
-
print: [{ type: 'rect', x: '6', y: '14', width: '12', height: '8', rx: '1' }],
|
|
272
|
-
clock: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
273
|
-
calendar: [{ type: 'rect', x: '3', y: '4', width: '18', height: '18', rx: '2' }],
|
|
274
|
-
timer: [{ type: 'circle', cx: '12', cy: '13', r: '9' }, { type: 'path', d: 'M9 2h6' }],
|
|
275
|
-
lock: [],
|
|
276
|
-
unlock: [],
|
|
277
|
-
chart: [],
|
|
278
|
-
table: [],
|
|
279
|
-
database: [],
|
|
280
|
-
home: [{ type: 'path', d: 'M9 22V12h6v10' }],
|
|
281
|
-
menu: [],
|
|
282
|
-
arrowLeft: [],
|
|
283
|
-
arrowRight: [],
|
|
284
|
-
copy: [{ type: 'rect', x: '4', y: '8', width: '12', height: '12', rx: '2' }],
|
|
285
|
-
filter: [],
|
|
286
|
-
sort: [],
|
|
287
|
-
help: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
288
|
-
warning: [{ type: 'circle', cx: '12', cy: '12', r: '10' }, { type: 'circle', cx: '12', cy: '17', r: '0.5', fill: 'color' }],
|
|
289
|
-
dashboard: [],
|
|
290
|
-
settingsApplications: [],
|
|
291
|
-
route: [],
|
|
292
|
-
developerBoard: [
|
|
293
|
-
{ type: 'rect', x: '5', y: '5', width: '14', height: '14', rx: '2' },
|
|
294
|
-
{ type: 'rect', x: '9', y: '9', width: '6', height: '6', rx: '0.5' },
|
|
295
|
-
{ type: 'circle', cx: '12', cy: '12', r: '1.5', fill: 'color' },
|
|
296
|
-
],
|
|
297
|
-
directions: [],
|
|
298
|
-
category: [
|
|
299
|
-
{ type: 'circle', cx: '17.5', cy: '17.5', r: '3.5' },
|
|
300
|
-
{ type: 'rect', x: '3', y: '14', width: '7', height: '7', rx: '1' },
|
|
301
|
-
],
|
|
302
|
-
logout: [],
|
|
303
|
-
sun: [],
|
|
304
|
-
moon: [],
|
|
305
|
-
default: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],
|
|
306
|
-
edit: [{ type: 'rect', x: '5', y: '19', width: '14', height: '2', rx: '1' }],
|
|
14
|
+
// Optimización: Colores que requieren opacidad reducida
|
|
15
|
+
export const OPACITY_REDUCED_COLORS = ['secondary', 'warn'];
|
|
16
|
+
// Optimización: Atributos SVG comunes
|
|
17
|
+
export const SVG_STROKE_ATTRS = {
|
|
18
|
+
strokeWidth: '1',
|
|
19
|
+
strokeLinecap: 'round',
|
|
20
|
+
strokeLinejoin: 'round'
|
|
307
21
|
};
|
|
308
22
|
//# sourceMappingURL=icon.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.constants.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.constants.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ColorType, ShapeAttributes } from './icon.types';\n\nexport const ICON_NAMES = [\n 'check',\n 'cancel',\n 'edit',\n 'delete',\n 'add',\n 'view',\n 'get',\n 'settings',\n 'schedule',\n 'refresh',\n 'checkCircle',\n 'cancelCircle',\n 'error',\n 'queue',\n 'arrowUp',\n 'arrowDown',\n 'toggleOn',\n 'toggleOff',\n 'search',\n 'upload',\n 'pendingActions',\n 'playCircle',\n 'play',\n 'stop',\n 'tune',\n 'visibility',\n 'visibilityOff',\n 'close',\n 'record',\n 'star',\n 'xCircle',\n 'key',\n 'exclamationTriangle',\n 'clipboard',\n 'download',\n 'shield',\n 'person',\n 'envelope',\n 'infoCircle',\n 'checkSquare',\n 'square',\n 'dashSquare',\n 'people',\n 'boxSeam',\n 'personBadge',\n 'listTask',\n 'shuffle',\n 'motor',\n 'box',\n 'bell',\n 'message',\n 'send',\n 'file',\n 'folder',\n 'save',\n 'print',\n 'clock',\n 'calendar',\n 'timer',\n 'lock',\n 'unlock',\n 'chart',\n 'table',\n 'database',\n 'home',\n 'menu',\n 'arrowLeft',\n 'arrowRight',\n 'copy',\n 'filter',\n 'sort',\n 'help',\n 'warning',\n 'dashboard',\n 'settingsApplications',\n 'route',\n 'developerBoard',\n 'directions',\n 'category',\n 'logout',\n 'sun',\n 'moon',\n 'default',\n] as const;\n\nexport const BASE_ICON_COLORS: Readonly<Record<ColorType, string>> = {\n primary: '#003775c8',\n secondary: '#6b7280',\n warn: '#e53935',\n success: '#4caf50',\n dark: '#e9ecef',\n};\n\nexport const DISABLED_COLOR = '#bdbdbd';\nexport const DEFAULT_ICON_COLOR = '#222';\nexport const DISABLED_OPACITY = 0.5;\nexport const SECONDARY_WARN_OPACITY = 0.7;\nexport const DEFAULT_OPACITY = 1;\nexport const BASE_ICON_SIZE = 24;\n\n/**\n * ICON PATHS - SVG path definitions\n *\n * IMPORTANTE: Al crear o modificar iconos, SIEMPRE buscar primero en Material Design Icons oficial:\n * - Repositorio: https://github.com/google/material-design-icons\n * - Navegador: https://fonts.google.com/icons\n * - Usar paths oficiales de Material Design siempre que sea posible\n * - ViewBox: 24x24 (compatible con BASE_ICON_SIZE)\n * - Máximo 300 caracteres por línea (usar concatenación con + si es necesario)\n */\nexport const ICON_PATHS: Readonly<Record<string, string>> = {\n check: 'M5 13l4 4L19 7',\n cancel: 'M6 6l12 12M6 18L18 6',\n edit: 'M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z',\n delete: 'M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z',\n add: 'M12 5v14M5 12h14',\n view: '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',\n get: 'm8.5 8.5 7 7',\n settings: 'M12 1v6m0 6v10M3.34 7l5.2 3M15.46 14l5.2 3M3.34 17l5.2-3M15.46 10l5.2-3',\n schedule: 'M12 6v6l4 2',\n refresh: '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',\n checkCircle: 'm9 12 2 2 4-4',\n cancelCircle: 'm15 9-6 6m0-6 6 6',\n error: 'M15 9L9 15M9 9l6 6',\n queue: 'M3 12h18m-9-9v18',\n arrowUp: 'm18 15-6-6-6 6',\n arrowDown: 'm6 9 6 6 6-6',\n toggleOn: '',\n toggleOff: '',\n search: 'm21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z',\n upload: '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',\n pendingActions: 'M12 8v4l3 3m6-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0z',\n playCircle: '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',\n play: 'M8 5v14l11-7z',\n stop: 'M6 6h12v12H6z',\n // Material Design: tune (adjustments/sliders)\n tune: 'M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z',\n visibility: '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',\n visibilityOff:\n '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' +\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' +\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' +\n 'm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z',\n close: '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',\n record: '',\n star: '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',\n xCircle: 'M15 9l-6 6m0-6l6 6',\n key: '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',\n exclamationTriangle: 'M12 9v4m0 4h.01',\n clipboard: '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',\n download: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4m4-5l5 5m0 0l5-5m-5 5V3',\n shield: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',\n // Material Design: person (single user)\n person: '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',\n envelope: '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',\n infoCircle: 'M12 16v-4m0-4h.01',\n checkSquare: 'm9 11 3 3L22 4',\n square: '',\n dashSquare: 'M8 12h8',\n people:\n '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' +\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',\n boxSeam: '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',\n personBadge: 'M12 2L4 6v5c0 5.55 3.84 10.74 8 12 4.16-1.26 8-6.45 8-12V6l-8-4z',\n listTask: 'M9 6h12M9 12h12M9 18h12',\n shuffle: 'M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5',\n motor: 'M9 3v3m6-3v3M9 18v3m6-3v3M3 9h3M3 15h3m12-6h3m-3 6h3',\n box: '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',\n bell: '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',\n message: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',\n send: 'M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z',\n file: 'M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z',\n folder: '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',\n save: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',\n print: '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',\n clock: 'M12 6v6l4 2',\n calendar: 'M8 2v4m8-4v4M3 10h18',\n timer: 'M12 8v4l2 2',\n lock: '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',\n unlock: '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',\n chart: 'M3 3v18h18M7 16l4-4 4 4 6-6',\n table: 'M3 3h18v18H3zM3 9h18M3 15h18M9 3v18',\n database: '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',\n home: 'm3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n menu: 'M3 12h18M3 6h18M3 18h18',\n arrowLeft: 'm19 12H5m0 0 7 7m-7-7 7-7',\n arrowRight: 'm5 12 7 7m0 0 5-5m-5 5V5',\n copy: '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',\n filter: 'M22 3H2l8 9.46V19l4 2v-8.54L22 3z',\n sort: 'M11 5h10M11 9h7M11 13h4M3 17l3 3m0 0l3-3m-3 3V4',\n help: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01',\n warning: 'M12 9v4',\n dashboard: 'M3 13h8V3H3zm0 8h8v-6H3zm10 0h8V11h-8zm0-18v6h8V3z',\n // Material Design: settings_applications (system profiles/configuration)\n settingsApplications:\n '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' +\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' +\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' +\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' +\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',\n route: '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',\n developerBoard: 'M9 2v4m6-4v4M9 18v4m6-18v4M2 9h4M2 15h4m16-6h4m-4 6h4',\n // Material Design: directions (map navigation icon with arrow)\n directions: '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',\n category: 'M12 2 6.5 11h11z',\n logout: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4m7 14 5-5m0 0-5-5m5 5H9',\n // Material Design: light_mode (sun icon)\n sun:\n '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' +\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' +\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' +\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',\n // Material Design: dark_mode (moon icon)\n moon:\n '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' +\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',\n default: '',\n};\n\nexport const ICON_ADDITIONAL_SHAPES: Readonly<Record<string, ShapeAttributes[]>> = {\n view: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],\n get: [\n { type: 'circle', cx: '6', cy: '6', r: '3' },\n { type: 'circle', cx: '18', cy: '18', r: '3' },\n { type: 'path', d: 'm13 11 2 2-2 2' },\n ],\n settings: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],\n schedule: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n checkCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n cancelCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n error: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n queue: [\n { type: 'rect', x: '2', y: '3', width: '20', height: '6', rx: '1' },\n { type: 'rect', x: '2', y: '15', width: '20', height: '6', rx: '1' },\n ],\n toggleOn: [\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\n { type: 'circle', cx: '18', cy: '12', r: '4', fill: 'color' },\n ],\n toggleOff: [\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\n { type: 'circle', cx: '6', cy: '12', r: '4', fill: 'color' },\n ],\n playCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n visibility: [{ type: 'circle', cx: '12', cy: '12', r: '3' }],\n record: [{ type: 'circle', cx: '12', cy: '12', r: '5', fill: 'color' }],\n xCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n exclamationTriangle: [{ 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' }],\n person: [],\n envelope: [{ type: 'path', d: 'm22 6-10 7L2 6' }],\n infoCircle: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n checkSquare: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n square: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n dashSquare: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }],\n people: [],\n boxSeam: [{ 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' }, { type: 'path', d: 'M3.3 7L12 12l8.7-5M12 22.5V12' }],\n personBadge: [\n { type: 'circle', cx: '12', cy: '12', r: '1.5' },\n { type: 'path', d: 'M12 9.5v1m0 3v1m2.5-2.5h-1m-3 0h-1' }\n ],\n listTask: [\n { type: 'path', d: 'M3 5l1.5 1.5L7 4' },\n { type: 'path', d: 'M3 11l1.5 1.5L7 10' },\n { type: 'path', d: 'M3 17l1.5 1.5L7 16' },\n ],\n shuffle: [],\n motor: [\n { type: 'circle', cx: '12', cy: '12', r: '8' },\n { type: 'circle', cx: '12', cy: '12', r: '3', fill: 'color' },\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' }\n ],\n box: [{ type: 'path', d: 'M12 2.7L3.3 7v9.3l8.7 5 8.7-5V7L12 2.7z' }, { type: 'path', d: 'M12 22V12M3.3 7L12 12l8.7-5' }],\n bell: [],\n message: [],\n send: [],\n file: [{ type: 'path', d: 'M13 2v7h7' }],\n folder: [],\n save: [{ type: 'path', d: 'M15 3v6h4M9 21v-8h6v8' }],\n print: [{ type: 'rect', x: '6', y: '14', width: '12', height: '8', rx: '1' }],\n clock: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n calendar: [{ type: 'rect', x: '3', y: '4', width: '18', height: '18', rx: '2' }],\n timer: [{ type: 'circle', cx: '12', cy: '13', r: '9' }, { type: 'path', d: 'M9 2h6' }],\n lock: [],\n unlock: [],\n chart: [],\n table: [],\n database: [],\n home: [{ type: 'path', d: 'M9 22V12h6v10' }],\n menu: [],\n arrowLeft: [],\n arrowRight: [],\n copy: [{ type: 'rect', x: '4', y: '8', width: '12', height: '12', rx: '2' }],\n filter: [],\n sort: [],\n help: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n warning: [{ type: 'circle', cx: '12', cy: '12', r: '10' }, { type: 'circle', cx: '12', cy: '17', r: '0.5', fill: 'color' }],\n dashboard: [],\n settingsApplications: [],\n route: [],\n developerBoard: [\n { type: 'rect', x: '5', y: '5', width: '14', height: '14', rx: '2' },\n { type: 'rect', x: '9', y: '9', width: '6', height: '6', rx: '0.5' },\n { type: 'circle', cx: '12', cy: '12', r: '1.5', fill: 'color' },\n ],\n directions: [],\n category: [\n { type: 'circle', cx: '17.5', cy: '17.5', r: '3.5' },\n { type: 'rect', x: '3', y: '14', width: '7', height: '7', rx: '1' },\n ],\n logout: [],\n sun: [],\n moon: [],\n default: [{ type: 'circle', cx: '12', cy: '12', r: '10' }],\n edit: [{ type: 'rect', x: '5', y: '19', width: '14', height: '2', rx: '1' }],\n};\n"]}
|
|
1
|
+
{"version":3,"file":"icon.constants.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAwC;IACnE,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,wDAAwD;AACxD,MAAM,CAAC,MAAM,sBAAsB,GAAyB,CAAC,WAAW,EAAE,MAAM,CAAU,CAAC;AAE3F,sCAAsC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW,EAAE,GAAG;IAChB,aAAa,EAAE,OAAO;IACtB,cAAc,EAAE,OAAO;CACf,CAAC","sourcesContent":["import type { ColorType } from './icon.types';\n\nexport const BASE_ICON_COLORS: Readonly<Record<ColorType, string>> = {\n primary: '#003775c8',\n secondary: '#6b7280',\n warn: '#e53935',\n success: '#4caf50',\n dark: '#e9ecef',\n};\n\nexport const DISABLED_COLOR = '#bdbdbd';\nexport const DEFAULT_ICON_COLOR = '#222';\nexport const DISABLED_OPACITY = 0.5;\nexport const SECONDARY_WARN_OPACITY = 0.7;\nexport const DEFAULT_OPACITY = 1;\nexport const BASE_ICON_SIZE = 24;\n\n// Optimización: Colores que requieren opacidad reducida\nexport const OPACITY_REDUCED_COLORS: readonly ColorType[] = ['secondary', 'warn'] as const;\n\n// Optimización: Atributos SVG comunes\nexport const SVG_STROKE_ATTRS = {\n strokeWidth: '1',\n strokeLinecap: 'round',\n strokeLinejoin: 'round'\n} as const;\n"]}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ICON DEFINITIONS - Estructura unificada que combina paths, shapes y multi-color
|
|
3
|
+
*
|
|
4
|
+
* NUEVA ARQUITECTURA: Una sola fuente de verdad para cada icono
|
|
5
|
+
* - path: Path principal del SVG
|
|
6
|
+
* - additionalShapes: Formas complementarias (círculos, rectángulos)
|
|
7
|
+
* - multiColor: Configuración para iconos con múltiples colores específicos
|
|
8
|
+
*
|
|
9
|
+
* BENEFICIOS:
|
|
10
|
+
* - Una búsqueda en lugar de 3 lookups separados (mejor performance)
|
|
11
|
+
* - Garantiza consistencia (no hay iconos "a medias")
|
|
12
|
+
* - Fácil mantenimiento y escalabilidad
|
|
13
|
+
* - TypeScript más robusto
|
|
14
|
+
*/
|
|
15
|
+
export const ICON_DEFINITIONS = {
|
|
16
|
+
check: {
|
|
17
|
+
path: 'M5 13l4 4L19 7'
|
|
18
|
+
},
|
|
19
|
+
cancel: {
|
|
20
|
+
path: 'M6 6l12 12M6 18L18 6'
|
|
21
|
+
},
|
|
22
|
+
edit: {
|
|
23
|
+
path: 'M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z',
|
|
24
|
+
additionalShapes: [{ type: 'rect', x: '5', y: '19', width: '14', height: '2', rx: '1' }]
|
|
25
|
+
},
|
|
26
|
+
delete: {
|
|
27
|
+
path: 'M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'
|
|
28
|
+
},
|
|
29
|
+
add: {
|
|
30
|
+
path: 'M12 5v14M5 12h14'
|
|
31
|
+
},
|
|
32
|
+
view: {
|
|
33
|
+
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',
|
|
34
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]
|
|
35
|
+
},
|
|
36
|
+
get: {
|
|
37
|
+
path: 'm8.5 8.5 7 7',
|
|
38
|
+
additionalShapes: [
|
|
39
|
+
{ type: 'circle', cx: '6', cy: '6', r: '3' },
|
|
40
|
+
{ type: 'circle', cx: '18', cy: '18', r: '3' },
|
|
41
|
+
{ type: 'path', d: 'm13 11 2 2-2 2' }
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
settings: {
|
|
45
|
+
path: 'M12 1v6m0 6v10M3.34 7l5.2 3M15.46 14l5.2 3M3.34 17l5.2-3M15.46 10l5.2-3',
|
|
46
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]
|
|
47
|
+
},
|
|
48
|
+
schedule: {
|
|
49
|
+
path: 'M12 6v6l4 2',
|
|
50
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
51
|
+
},
|
|
52
|
+
refresh: {
|
|
53
|
+
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'
|
|
54
|
+
},
|
|
55
|
+
checkCircle: {
|
|
56
|
+
path: 'm9 12 2 2 4-4',
|
|
57
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
58
|
+
},
|
|
59
|
+
cancelCircle: {
|
|
60
|
+
path: 'm15 9-6 6m0-6 6 6',
|
|
61
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
62
|
+
},
|
|
63
|
+
error: {
|
|
64
|
+
path: 'M15 9L9 15M9 9l6 6',
|
|
65
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
66
|
+
},
|
|
67
|
+
queue: {
|
|
68
|
+
path: 'M3 12h18m-9-9v18',
|
|
69
|
+
additionalShapes: [
|
|
70
|
+
{ type: 'rect', x: '2', y: '3', width: '20', height: '6', rx: '1' },
|
|
71
|
+
{ type: 'rect', x: '2', y: '15', width: '20', height: '6', rx: '1' }
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
arrowUp: {
|
|
75
|
+
path: 'm18 15-6-6-6 6'
|
|
76
|
+
},
|
|
77
|
+
arrowDown: {
|
|
78
|
+
path: 'm6 9 6 6 6-6'
|
|
79
|
+
},
|
|
80
|
+
toggleOn: {
|
|
81
|
+
path: '',
|
|
82
|
+
additionalShapes: [
|
|
83
|
+
{ type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },
|
|
84
|
+
{ type: 'circle', cx: '18', cy: '12', r: '4', fill: 'color' }
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
toggleOff: {
|
|
88
|
+
path: '',
|
|
89
|
+
additionalShapes: [
|
|
90
|
+
{ type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },
|
|
91
|
+
{ type: 'circle', cx: '6', cy: '12', r: '4', fill: 'color' }
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
search: {
|
|
95
|
+
path: 'm21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z'
|
|
96
|
+
},
|
|
97
|
+
upload: {
|
|
98
|
+
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'
|
|
99
|
+
},
|
|
100
|
+
pendingActions: {
|
|
101
|
+
path: 'M12 8v4l3 3m6-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0z'
|
|
102
|
+
},
|
|
103
|
+
playCircle: {
|
|
104
|
+
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',
|
|
105
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
106
|
+
},
|
|
107
|
+
play: {
|
|
108
|
+
path: 'M8 5v14l11-7z'
|
|
109
|
+
},
|
|
110
|
+
stop: {
|
|
111
|
+
path: 'M6 6h12v12H6z'
|
|
112
|
+
},
|
|
113
|
+
tune: {
|
|
114
|
+
path: 'M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z'
|
|
115
|
+
},
|
|
116
|
+
visibility: {
|
|
117
|
+
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',
|
|
118
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]
|
|
119
|
+
},
|
|
120
|
+
visibilityOff: {
|
|
121
|
+
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' +
|
|
122
|
+
'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' +
|
|
123
|
+
'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' +
|
|
124
|
+
'm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z'
|
|
125
|
+
},
|
|
126
|
+
close: {
|
|
127
|
+
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'
|
|
128
|
+
},
|
|
129
|
+
record: {
|
|
130
|
+
path: '',
|
|
131
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '5', fill: 'color' }]
|
|
132
|
+
},
|
|
133
|
+
star: {
|
|
134
|
+
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'
|
|
135
|
+
},
|
|
136
|
+
xCircle: {
|
|
137
|
+
path: 'M15 9l-6 6m0-6l6 6',
|
|
138
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
139
|
+
},
|
|
140
|
+
key: {
|
|
141
|
+
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'
|
|
142
|
+
},
|
|
143
|
+
exclamationTriangle: {
|
|
144
|
+
path: 'M12 9v4m0 4h.01',
|
|
145
|
+
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' }]
|
|
146
|
+
},
|
|
147
|
+
clipboard: {
|
|
148
|
+
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'
|
|
149
|
+
},
|
|
150
|
+
download: {
|
|
151
|
+
path: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4m4-5l5 5m0 0l5-5m-5 5V3'
|
|
152
|
+
},
|
|
153
|
+
shield: {
|
|
154
|
+
path: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'
|
|
155
|
+
},
|
|
156
|
+
person: {
|
|
157
|
+
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'
|
|
158
|
+
},
|
|
159
|
+
envelope: {
|
|
160
|
+
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',
|
|
161
|
+
additionalShapes: [{ type: 'path', d: 'm22 6-10 7L2 6' }]
|
|
162
|
+
},
|
|
163
|
+
infoCircle: {
|
|
164
|
+
path: 'M12 16v-4m0-4h.01',
|
|
165
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
166
|
+
},
|
|
167
|
+
checkSquare: {
|
|
168
|
+
path: 'm9 11 3 3L22 4',
|
|
169
|
+
additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]
|
|
170
|
+
},
|
|
171
|
+
square: {
|
|
172
|
+
path: '',
|
|
173
|
+
additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]
|
|
174
|
+
},
|
|
175
|
+
dashSquare: {
|
|
176
|
+
path: 'M8 12h8',
|
|
177
|
+
additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]
|
|
178
|
+
},
|
|
179
|
+
people: {
|
|
180
|
+
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' +
|
|
181
|
+
'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'
|
|
182
|
+
},
|
|
183
|
+
boxSeam: {
|
|
184
|
+
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',
|
|
185
|
+
additionalShapes: [
|
|
186
|
+
{ 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' },
|
|
187
|
+
{ type: 'path', d: 'M3.3 7L12 12l8.7-5M12 22.5V12' }
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
personBadge: {
|
|
191
|
+
path: 'M12 2L4 6v5c0 5.55 3.84 10.74 8 12 4.16-1.26 8-6.45 8-12V6l-8-4z',
|
|
192
|
+
additionalShapes: [
|
|
193
|
+
{ type: 'circle', cx: '12', cy: '12', r: '1.5' },
|
|
194
|
+
{ type: 'path', d: 'M12 9.5v1m0 3v1m2.5-2.5h-1m-3 0h-1' }
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
listTask: {
|
|
198
|
+
path: 'M9 6h12M9 12h12M9 18h12',
|
|
199
|
+
additionalShapes: [
|
|
200
|
+
{ type: 'path', d: 'M3 5l1.5 1.5L7 4' },
|
|
201
|
+
{ type: 'path', d: 'M3 11l1.5 1.5L7 10' },
|
|
202
|
+
{ type: 'path', d: 'M3 17l1.5 1.5L7 16' }
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
shuffle: {
|
|
206
|
+
path: 'M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5'
|
|
207
|
+
},
|
|
208
|
+
motor: {
|
|
209
|
+
path: 'M9 3v3m6-3v3M9 18v3m6-3v3M3 9h3M3 15h3m12-6h3m-3 6h3',
|
|
210
|
+
additionalShapes: [
|
|
211
|
+
{ type: 'circle', cx: '12', cy: '12', r: '8' },
|
|
212
|
+
{ type: 'circle', cx: '12', cy: '12', r: '3', fill: 'color' },
|
|
213
|
+
{ 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' }
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
box: {
|
|
217
|
+
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',
|
|
218
|
+
additionalShapes: [
|
|
219
|
+
{ type: 'path', d: 'M12 2.7L3.3 7v9.3l8.7 5 8.7-5V7L12 2.7z' },
|
|
220
|
+
{ type: 'path', d: 'M12 22V12M3.3 7L12 12l8.7-5' }
|
|
221
|
+
]
|
|
222
|
+
},
|
|
223
|
+
bell: {
|
|
224
|
+
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'
|
|
225
|
+
},
|
|
226
|
+
message: {
|
|
227
|
+
path: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'
|
|
228
|
+
},
|
|
229
|
+
send: {
|
|
230
|
+
path: 'M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'
|
|
231
|
+
},
|
|
232
|
+
file: {
|
|
233
|
+
path: 'M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z',
|
|
234
|
+
additionalShapes: [{ type: 'path', d: 'M13 2v7h7' }]
|
|
235
|
+
},
|
|
236
|
+
folder: {
|
|
237
|
+
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'
|
|
238
|
+
},
|
|
239
|
+
save: {
|
|
240
|
+
path: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',
|
|
241
|
+
additionalShapes: [
|
|
242
|
+
{ type: 'path', d: 'M15 3v6h4M9 21v-8h6v8' }
|
|
243
|
+
]
|
|
244
|
+
},
|
|
245
|
+
print: {
|
|
246
|
+
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',
|
|
247
|
+
additionalShapes: [{ type: 'rect', x: '6', y: '14', width: '12', height: '8', rx: '1' }]
|
|
248
|
+
},
|
|
249
|
+
clock: {
|
|
250
|
+
path: 'M12 6v6l4 2',
|
|
251
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
252
|
+
},
|
|
253
|
+
calendar: {
|
|
254
|
+
path: 'M8 2v4m8-4v4M3 10h18',
|
|
255
|
+
additionalShapes: [{ type: 'rect', x: '3', y: '4', width: '18', height: '18', rx: '2' }]
|
|
256
|
+
},
|
|
257
|
+
timer: {
|
|
258
|
+
path: 'M12 8v4l2 2',
|
|
259
|
+
additionalShapes: [
|
|
260
|
+
{ type: 'circle', cx: '12', cy: '13', r: '9' },
|
|
261
|
+
{ type: 'path', d: 'M9 2h6' }
|
|
262
|
+
]
|
|
263
|
+
},
|
|
264
|
+
lock: {
|
|
265
|
+
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'
|
|
266
|
+
},
|
|
267
|
+
unlock: {
|
|
268
|
+
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'
|
|
269
|
+
},
|
|
270
|
+
chart: {
|
|
271
|
+
path: 'M3 3v18h18M7 16l4-4 4 4 6-6'
|
|
272
|
+
},
|
|
273
|
+
table: {
|
|
274
|
+
path: 'M3 3h18v18H3zM3 9h18M3 15h18M9 3v18'
|
|
275
|
+
},
|
|
276
|
+
database: {
|
|
277
|
+
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'
|
|
278
|
+
},
|
|
279
|
+
home: {
|
|
280
|
+
path: 'm3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',
|
|
281
|
+
additionalShapes: [{ type: 'path', d: 'M9 22V12h6v10' }]
|
|
282
|
+
},
|
|
283
|
+
menu: {
|
|
284
|
+
path: 'M3 12h18M3 6h18M3 18h18'
|
|
285
|
+
},
|
|
286
|
+
arrowLeft: {
|
|
287
|
+
path: 'm19 12H5m0 0 7 7m-7-7 7-7'
|
|
288
|
+
},
|
|
289
|
+
arrowRight: {
|
|
290
|
+
path: 'm5 12 7 7m0 0 5-5m-5 5V5'
|
|
291
|
+
},
|
|
292
|
+
copy: {
|
|
293
|
+
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',
|
|
294
|
+
additionalShapes: [{ type: 'rect', x: '4', y: '8', width: '12', height: '12', rx: '2' }]
|
|
295
|
+
},
|
|
296
|
+
filter: {
|
|
297
|
+
path: 'M22 3H2l8 9.46V19l4 2v-8.54L22 3z'
|
|
298
|
+
},
|
|
299
|
+
sort: {
|
|
300
|
+
path: 'M11 5h10M11 9h7M11 13h4M3 17l3 3m0 0l3-3m-3 3V4'
|
|
301
|
+
},
|
|
302
|
+
help: {
|
|
303
|
+
path: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01',
|
|
304
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
305
|
+
},
|
|
306
|
+
warning: {
|
|
307
|
+
path: 'M12 9v4',
|
|
308
|
+
additionalShapes: [
|
|
309
|
+
{ type: 'circle', cx: '12', cy: '12', r: '10' },
|
|
310
|
+
{ type: 'circle', cx: '12', cy: '17', r: '0.5', fill: 'color' }
|
|
311
|
+
]
|
|
312
|
+
},
|
|
313
|
+
dashboard: {
|
|
314
|
+
path: 'M3 13h8V3H3zm0 8h8v-6H3zm10 0h8V11h-8zm0-18v6h8V3z'
|
|
315
|
+
},
|
|
316
|
+
settingsApplications: {
|
|
317
|
+
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' +
|
|
318
|
+
'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' +
|
|
319
|
+
'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' +
|
|
320
|
+
'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' +
|
|
321
|
+
'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'
|
|
322
|
+
},
|
|
323
|
+
route: {
|
|
324
|
+
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'
|
|
325
|
+
},
|
|
326
|
+
developerBoard: {
|
|
327
|
+
path: 'M9 2v4m6-4v4M9 18v4m6-18v4M2 9h4M2 15h4m16-6h4m-4 6h4',
|
|
328
|
+
additionalShapes: [
|
|
329
|
+
{ type: 'rect', x: '5', y: '5', width: '14', height: '14', rx: '2' },
|
|
330
|
+
{ type: 'rect', x: '9', y: '9', width: '6', height: '6', rx: '0.5' },
|
|
331
|
+
{ type: 'circle', cx: '12', cy: '12', r: '1.5', fill: 'color' }
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
directions: {
|
|
335
|
+
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'
|
|
336
|
+
},
|
|
337
|
+
category: {
|
|
338
|
+
path: 'M12 2 6.5 11h11z',
|
|
339
|
+
additionalShapes: [
|
|
340
|
+
{ type: 'circle', cx: '17.5', cy: '17.5', r: '3.5' },
|
|
341
|
+
{ type: 'rect', x: '3', y: '14', width: '7', height: '7', rx: '1' }
|
|
342
|
+
]
|
|
343
|
+
},
|
|
344
|
+
logout: {
|
|
345
|
+
path: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4m7 14 5-5m0 0-5-5m5 5H9'
|
|
346
|
+
},
|
|
347
|
+
sun: {
|
|
348
|
+
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' +
|
|
349
|
+
'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' +
|
|
350
|
+
'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' +
|
|
351
|
+
'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'
|
|
352
|
+
},
|
|
353
|
+
moon: {
|
|
354
|
+
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' +
|
|
355
|
+
'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'
|
|
356
|
+
},
|
|
357
|
+
google: {
|
|
358
|
+
path: '',
|
|
359
|
+
multiColor: {
|
|
360
|
+
colors: [
|
|
361
|
+
'#4285F4', // Azul - parte superior
|
|
362
|
+
'#34A853', // Verde - parte inferior derecha
|
|
363
|
+
'#FBBC05', // Amarillo - parte inferior izquierda
|
|
364
|
+
'#EA4335', // Rojo - parte izquierda
|
|
365
|
+
],
|
|
366
|
+
paths: [
|
|
367
|
+
'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',
|
|
368
|
+
'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',
|
|
369
|
+
'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',
|
|
370
|
+
'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'
|
|
371
|
+
]
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
default: {
|
|
375
|
+
path: '',
|
|
376
|
+
additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
//# sourceMappingURL=icon.definitions.js.map
|
|
@@ -0,0 +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":["import type { IconDefinition } from './icon.types';\n\n/**\n * ICON DEFINITIONS - Estructura unificada que combina paths, shapes y multi-color\n * \n * NUEVA ARQUITECTURA: Una sola fuente de verdad para cada icono\n * - path: Path principal del SVG\n * - additionalShapes: Formas complementarias (círculos, rectángulos) \n * - multiColor: Configuración para iconos con múltiples colores específicos\n * \n * BENEFICIOS:\n * - Una búsqueda en lugar de 3 lookups separados (mejor performance)\n * - Garantiza consistencia (no hay iconos \"a medias\")\n * - Fácil mantenimiento y escalabilidad\n * - TypeScript más robusto\n */\nexport const ICON_DEFINITIONS: Readonly<Record<string, IconDefinition>> = {\n check: {\n path: 'M5 13l4 4L19 7'\n },\n cancel: {\n path: 'M6 6l12 12M6 18L18 6'\n },\n edit: {\n path: 'M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z',\n additionalShapes: [{ type: 'rect', x: '5', y: '19', width: '14', height: '2', rx: '1' }]\n },\n delete: {\n path: 'M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'\n },\n add: {\n path: 'M12 5v14M5 12h14'\n },\n view: {\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',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\n },\n get: {\n path: 'm8.5 8.5 7 7',\n additionalShapes: [\n { type: 'circle', cx: '6', cy: '6', r: '3' },\n { type: 'circle', cx: '18', cy: '18', r: '3' },\n { type: 'path', d: 'm13 11 2 2-2 2' }\n ]\n },\n settings: {\n path: 'M12 1v6m0 6v10M3.34 7l5.2 3M15.46 14l5.2 3M3.34 17l5.2-3M15.46 10l5.2-3',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\n },\n schedule: {\n path: 'M12 6v6l4 2',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n refresh: {\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'\n },\n checkCircle: {\n path: 'm9 12 2 2 4-4',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n cancelCircle: {\n path: 'm15 9-6 6m0-6 6 6',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n error: {\n path: 'M15 9L9 15M9 9l6 6',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n queue: {\n path: 'M3 12h18m-9-9v18',\n additionalShapes: [\n { type: 'rect', x: '2', y: '3', width: '20', height: '6', rx: '1' },\n { type: 'rect', x: '2', y: '15', width: '20', height: '6', rx: '1' }\n ]\n },\n arrowUp: {\n path: 'm18 15-6-6-6 6'\n },\n arrowDown: {\n path: 'm6 9 6 6 6-6'\n },\n toggleOn: {\n path: '',\n additionalShapes: [\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\n { type: 'circle', cx: '18', cy: '12', r: '4', fill: 'color' }\n ]\n },\n toggleOff: {\n path: '',\n additionalShapes: [\n { type: 'rect', x: '2', y: '7', width: '20', height: '10', rx: '5' },\n { type: 'circle', cx: '6', cy: '12', r: '4', fill: 'color' }\n ]\n },\n search: {\n path: 'm21 21-6-6m2-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0z'\n },\n upload: {\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'\n },\n pendingActions: {\n path: 'M12 8v4l3 3m6-3a9 9 0 1 1-18 0 9 9 0 0 1 18 0z'\n },\n playCircle: {\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',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n play: {\n path: 'M8 5v14l11-7z'\n },\n stop: {\n path: 'M6 6h12v12H6z'\n },\n tune: {\n path: 'M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z'\n },\n visibility: {\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',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '3' }]\n },\n visibilityOff: {\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' +\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' +\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' +\n 'm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z'\n },\n close: {\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'\n },\n record: {\n path: '',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '5', fill: 'color' }]\n },\n star: {\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'\n },\n xCircle: {\n path: 'M15 9l-6 6m0-6l6 6',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n key: {\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'\n },\n exclamationTriangle: {\n path: 'M12 9v4m0 4h.01',\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' }]\n },\n clipboard: {\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'\n },\n download: {\n path: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4m4-5l5 5m0 0l5-5m-5 5V3'\n },\n shield: {\n path: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'\n },\n person: {\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'\n },\n envelope: {\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',\n additionalShapes: [{ type: 'path', d: 'm22 6-10 7L2 6' }]\n },\n infoCircle: {\n path: 'M12 16v-4m0-4h.01',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n checkSquare: {\n path: 'm9 11 3 3L22 4',\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\n },\n square: {\n path: '',\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\n },\n dashSquare: {\n path: 'M8 12h8',\n additionalShapes: [{ type: 'rect', x: '3', y: '3', width: '18', height: '18', rx: '2' }]\n },\n people: {\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' +\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'\n },\n boxSeam: {\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',\n additionalShapes: [\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' },\n { type: 'path', d: 'M3.3 7L12 12l8.7-5M12 22.5V12' }\n ]\n },\n personBadge: {\n path: 'M12 2L4 6v5c0 5.55 3.84 10.74 8 12 4.16-1.26 8-6.45 8-12V6l-8-4z',\n additionalShapes: [\n { type: 'circle', cx: '12', cy: '12', r: '1.5' },\n { type: 'path', d: 'M12 9.5v1m0 3v1m2.5-2.5h-1m-3 0h-1' }\n ]\n },\n listTask: {\n path: 'M9 6h12M9 12h12M9 18h12',\n additionalShapes: [\n { type: 'path', d: 'M3 5l1.5 1.5L7 4' },\n { type: 'path', d: 'M3 11l1.5 1.5L7 10' },\n { type: 'path', d: 'M3 17l1.5 1.5L7 16' }\n ]\n },\n shuffle: {\n path: 'M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5'\n },\n motor: {\n path: 'M9 3v3m6-3v3M9 18v3m6-3v3M3 9h3M3 15h3m12-6h3m-3 6h3',\n additionalShapes: [\n { type: 'circle', cx: '12', cy: '12', r: '8' },\n { type: 'circle', cx: '12', cy: '12', r: '3', fill: 'color' },\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' }\n ]\n },\n box: {\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',\n additionalShapes: [\n { type: 'path', d: 'M12 2.7L3.3 7v9.3l8.7 5 8.7-5V7L12 2.7z' },\n { type: 'path', d: 'M12 22V12M3.3 7L12 12l8.7-5' }\n ]\n },\n bell: {\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'\n },\n message: {\n path: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'\n },\n send: {\n path: 'M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'\n },\n file: {\n path: 'M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z',\n additionalShapes: [{ type: 'path', d: 'M13 2v7h7' }]\n },\n folder: {\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'\n },\n save: {\n path: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z',\n additionalShapes: [\n { type: 'path', d: 'M15 3v6h4M9 21v-8h6v8' }\n ]\n },\n print: {\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',\n additionalShapes: [{ type: 'rect', x: '6', y: '14', width: '12', height: '8', rx: '1' }]\n },\n clock: {\n path: 'M12 6v6l4 2',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n calendar: {\n path: 'M8 2v4m8-4v4M3 10h18',\n additionalShapes: [{ type: 'rect', x: '3', y: '4', width: '18', height: '18', rx: '2' }]\n },\n timer: {\n path: 'M12 8v4l2 2',\n additionalShapes: [\n { type: 'circle', cx: '12', cy: '13', r: '9' },\n { type: 'path', d: 'M9 2h6' }\n ]\n },\n lock: {\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'\n },\n unlock: {\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'\n },\n chart: {\n path: 'M3 3v18h18M7 16l4-4 4 4 6-6'\n },\n table: {\n path: 'M3 3h18v18H3zM3 9h18M3 15h18M9 3v18'\n },\n database: {\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'\n },\n home: {\n path: 'm3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',\n additionalShapes: [{ type: 'path', d: 'M9 22V12h6v10' }]\n },\n menu: {\n path: 'M3 12h18M3 6h18M3 18h18'\n },\n arrowLeft: {\n path: 'm19 12H5m0 0 7 7m-7-7 7-7'\n },\n arrowRight: {\n path: 'm5 12 7 7m0 0 5-5m-5 5V5'\n },\n copy: {\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',\n additionalShapes: [{ type: 'rect', x: '4', y: '8', width: '12', height: '12', rx: '2' }]\n },\n filter: {\n path: 'M22 3H2l8 9.46V19l4 2v-8.54L22 3z'\n },\n sort: {\n path: 'M11 5h10M11 9h7M11 13h4M3 17l3 3m0 0l3-3m-3 3V4'\n },\n help: {\n path: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n },\n warning: {\n path: 'M12 9v4',\n additionalShapes: [\n { type: 'circle', cx: '12', cy: '12', r: '10' },\n { type: 'circle', cx: '12', cy: '17', r: '0.5', fill: 'color' }\n ]\n },\n dashboard: {\n path: 'M3 13h8V3H3zm0 8h8v-6H3zm10 0h8V11h-8zm0-18v6h8V3z'\n },\n settingsApplications: {\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' +\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' +\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' +\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' +\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'\n },\n route: {\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'\n },\n developerBoard: {\n path: 'M9 2v4m6-4v4M9 18v4m6-18v4M2 9h4M2 15h4m16-6h4m-4 6h4',\n additionalShapes: [\n { type: 'rect', x: '5', y: '5', width: '14', height: '14', rx: '2' },\n { type: 'rect', x: '9', y: '9', width: '6', height: '6', rx: '0.5' },\n { type: 'circle', cx: '12', cy: '12', r: '1.5', fill: 'color' }\n ]\n },\n directions: {\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'\n },\n category: {\n path: 'M12 2 6.5 11h11z',\n additionalShapes: [\n { type: 'circle', cx: '17.5', cy: '17.5', r: '3.5' },\n { type: 'rect', x: '3', y: '14', width: '7', height: '7', rx: '1' }\n ]\n },\n logout: {\n path: 'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4m7 14 5-5m0 0-5-5m5 5H9'\n },\n sun: {\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' +\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' +\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' +\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'\n },\n moon: {\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' +\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'\n },\n google: {\n path: '',\n multiColor: {\n colors: [\n '#4285F4', // Azul - parte superior\n '#34A853', // Verde - parte inferior derecha\n '#FBBC05', // Amarillo - parte inferior izquierda\n '#EA4335', // Rojo - parte izquierda\n ],\n paths: [\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',\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',\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',\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'\n ]\n }\n },\n default: {\n path: '',\n additionalShapes: [{ type: 'circle', cx: '12', cy: '12', r: '10' }]\n }\n} as const;"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.types.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.types.ts"],"names":[],"mappings":"","sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"icon.types.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ICON_DEFINITIONS } from './icon.definitions';\n\nexport type ColorType = 'primary' | 'secondary' | 'warn' | 'success' | 'dark';\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\n// Tipos más específicos para shapes\ninterface CircleAttributes {\n type: 'circle';\n cx: string;\n cy: string;\n r: string;\n fill?: 'color' | 'none';\n}\n\ninterface RectAttributes {\n type: 'rect';\n x: string;\n y: string;\n width: string;\n height: string;\n rx?: string;\n fill?: 'color' | 'none';\n}\n\ninterface PathAttributes {\n type: 'path';\n d: string;\n fill?: 'color' | 'none';\n}\n\nexport type ShapeAttributes = CircleAttributes | RectAttributes | PathAttributes;\n\nexport interface MultiColorIconConfig {\n colors: string[];\n paths: string[];\n}\n\n/**\n * Interface unificada para definiciones de iconos\n * Combina path principal, formas adicionales y configuración multi-color\n */\nexport interface IconDefinition {\n /** Path principal del icono SVG */\n path: string;\n /** Formas adicionales (círculos, rectángulos) que complementan el path */\n additionalShapes?: ShapeAttributes[];\n /** Configuración para iconos multi-color como Google, Microsoft, etc. */\n multiColor?: MultiColorIconConfig;\n}\n\n// IconType será definido como las keys de ICON_DEFINITIONS en cada archivo que lo importe\n// Para evitar referencias circulares, los archivos que necesiten IconType deberán definirlo localmente\n\n// Derivar IconType de las keys de ICON_DEFINITIONS \nexport type IconType = keyof typeof ICON_DEFINITIONS;"]}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
|
+
import { ICON_DEFINITIONS } from './icon.definitions';
|
|
1
2
|
export function transformToBoolean(val) {
|
|
2
3
|
return val !== null && val !== undefined && val !== false && val !== 'false';
|
|
3
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Determina si un icono debería usar fill basado en su definición explícita
|
|
7
|
+
*/
|
|
8
|
+
export function shouldIconUseFill(iconName) {
|
|
9
|
+
const iconDef = ICON_DEFINITIONS[iconName];
|
|
10
|
+
if (!iconDef)
|
|
11
|
+
return false;
|
|
12
|
+
// Los iconos multi-color siempre usan fill
|
|
13
|
+
if (iconDef.multiColor)
|
|
14
|
+
return true;
|
|
15
|
+
// Iconos con shapes que tienen fill='color' necesitan fill
|
|
16
|
+
return iconDef.additionalShapes?.some((shape) => shape.fill === 'color') ?? false;
|
|
17
|
+
}
|
|
4
18
|
//# sourceMappingURL=icon.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.utils.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,GAAwC;IACzE,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC;AAC/E,CAAC","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"icon.utils.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/icon/icon.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,UAAU,kBAAkB,CAAC,GAAwC;IACzE,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE3C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,2CAA2C;IAC3C,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAEpC,2DAA2D;IAC3D,OAAO,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,CAAC;AACrG,CAAC","sourcesContent":["import { ICON_DEFINITIONS } from './icon.definitions';\nimport type { IconType, ShapeAttributes } from './icon.types';\n\nexport function transformToBoolean(val: boolean | string | null | undefined): boolean {\n return val !== null && val !== undefined && val !== false && val !== 'false';\n}\n\n/**\n * Determina si un icono debería usar fill basado en su definición explícita\n */\nexport function shouldIconUseFill(iconName: IconType): boolean {\n const iconDef = ICON_DEFINITIONS[iconName];\n\n if (!iconDef) return false;\n\n // Los iconos multi-color siempre usan fill\n if (iconDef.multiColor) return true;\n\n // Iconos con shapes que tienen fill='color' necesitan fill\n return iconDef.additionalShapes?.some((shape: ShapeAttributes) => shape.fill === 'color') ?? false;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ColorType, ButtonType } from './icon.types';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class C80IconComponent {
|
|
4
|
-
readonly icon: import("@angular/core").InputSignal<
|
|
4
|
+
readonly icon: import("@angular/core").InputSignal<string>;
|
|
5
5
|
readonly color: import("@angular/core").InputSignal<ColorType>;
|
|
6
6
|
readonly customColor: import("@angular/core").InputSignal<string | undefined>;
|
|
7
7
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
@@ -15,8 +15,17 @@ export declare class C80IconComponent {
|
|
|
15
15
|
readonly iconSize: import("@angular/core").Signal<number>;
|
|
16
16
|
readonly iconColor: import("@angular/core").Signal<string>;
|
|
17
17
|
readonly iconOpacity: import("@angular/core").Signal<0.5 | 0.7 | 1>;
|
|
18
|
+
readonly iconDefinition: import("@angular/core").Signal<import("@c80/ui").IconDefinition>;
|
|
18
19
|
readonly iconPath: import("@angular/core").Signal<string>;
|
|
19
20
|
readonly additionalShapes: import("@angular/core").Signal<import("@c80/ui").ShapeAttributes[]>;
|
|
21
|
+
readonly shouldFillIcon: import("@angular/core").Signal<boolean>;
|
|
22
|
+
readonly multiColorIcon: import("@angular/core").Signal<import("@c80/ui").MultiColorIconConfig | undefined>;
|
|
23
|
+
readonly hasMultiPaths: import("@angular/core").Signal<boolean>;
|
|
24
|
+
readonly svgStrokeAttrs: {
|
|
25
|
+
readonly strokeWidth: "1";
|
|
26
|
+
readonly strokeLinecap: "round";
|
|
27
|
+
readonly strokeLinejoin: "round";
|
|
28
|
+
};
|
|
20
29
|
onButtonClick(event: Event): void;
|
|
21
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<C80IconComponent, never>;
|
|
22
31
|
static ɵcmp: i0.ɵɵComponentDeclaration<C80IconComponent, "c80-icon", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "customColor": { "alias": "customColor"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "button": { "alias": "button"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "textLeft": { "alias": "textLeft"; "required": false; "isSignal": true; }; "textRight": { "alias": "textRight"; "required": false; "isSignal": true; }; }, { "iconClick": "iconClick"; }, never, never, true, never>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { ColorType
|
|
2
|
-
export declare const ICON_NAMES: readonly ["check", "cancel", "edit", "delete", "add", "view", "get", "settings", "schedule", "refresh", "checkCircle", "cancelCircle", "error", "queue", "arrowUp", "arrowDown", "toggleOn", "toggleOff", "search", "upload", "pendingActions", "playCircle", "play", "stop", "tune", "visibility", "visibilityOff", "close", "record", "star", "xCircle", "key", "exclamationTriangle", "clipboard", "download", "shield", "person", "envelope", "infoCircle", "checkSquare", "square", "dashSquare", "people", "boxSeam", "personBadge", "listTask", "shuffle", "motor", "box", "bell", "message", "send", "file", "folder", "save", "print", "clock", "calendar", "timer", "lock", "unlock", "chart", "table", "database", "home", "menu", "arrowLeft", "arrowRight", "copy", "filter", "sort", "help", "warning", "dashboard", "settingsApplications", "route", "developerBoard", "directions", "category", "logout", "sun", "moon", "default"];
|
|
1
|
+
import type { ColorType } from './icon.types';
|
|
3
2
|
export declare const BASE_ICON_COLORS: Readonly<Record<ColorType, string>>;
|
|
4
3
|
export declare const DISABLED_COLOR = "#bdbdbd";
|
|
5
4
|
export declare const DEFAULT_ICON_COLOR = "#222";
|
|
@@ -7,15 +6,9 @@ export declare const DISABLED_OPACITY = 0.5;
|
|
|
7
6
|
export declare const SECONDARY_WARN_OPACITY = 0.7;
|
|
8
7
|
export declare const DEFAULT_OPACITY = 1;
|
|
9
8
|
export declare const BASE_ICON_SIZE = 24;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* - Usar paths oficiales de Material Design siempre que sea posible
|
|
17
|
-
* - ViewBox: 24x24 (compatible con BASE_ICON_SIZE)
|
|
18
|
-
* - Máximo 300 caracteres por línea (usar concatenación con + si es necesario)
|
|
19
|
-
*/
|
|
20
|
-
export declare const ICON_PATHS: Readonly<Record<string, string>>;
|
|
21
|
-
export declare const ICON_ADDITIONAL_SHAPES: Readonly<Record<string, ShapeAttributes[]>>;
|
|
9
|
+
export declare const OPACITY_REDUCED_COLORS: readonly ColorType[];
|
|
10
|
+
export declare const SVG_STROKE_ATTRS: {
|
|
11
|
+
readonly strokeWidth: "1";
|
|
12
|
+
readonly strokeLinecap: "round";
|
|
13
|
+
readonly strokeLinejoin: "round";
|
|
14
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IconDefinition } from './icon.types';
|
|
2
|
+
/**
|
|
3
|
+
* ICON DEFINITIONS - Estructura unificada que combina paths, shapes y multi-color
|
|
4
|
+
*
|
|
5
|
+
* NUEVA ARQUITECTURA: Una sola fuente de verdad para cada icono
|
|
6
|
+
* - path: Path principal del SVG
|
|
7
|
+
* - additionalShapes: Formas complementarias (círculos, rectángulos)
|
|
8
|
+
* - multiColor: Configuración para iconos con múltiples colores específicos
|
|
9
|
+
*
|
|
10
|
+
* BENEFICIOS:
|
|
11
|
+
* - Una búsqueda en lugar de 3 lookups separados (mejor performance)
|
|
12
|
+
* - Garantiza consistencia (no hay iconos "a medias")
|
|
13
|
+
* - Fácil mantenimiento y escalabilidad
|
|
14
|
+
* - TypeScript más robusto
|
|
15
|
+
*/
|
|
16
|
+
export declare const ICON_DEFINITIONS: Readonly<Record<string, IconDefinition>>;
|
package/lib/icon/icon.types.d.ts
CHANGED
|
@@ -1,8 +1,43 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export type IconType = (typeof ICON_NAMES)[number];
|
|
1
|
+
import type { ICON_DEFINITIONS } from './icon.definitions';
|
|
3
2
|
export type ColorType = 'primary' | 'secondary' | 'warn' | 'success' | 'dark';
|
|
4
3
|
export type ButtonType = 'button' | 'submit' | 'reset';
|
|
5
|
-
|
|
6
|
-
type: 'circle'
|
|
7
|
-
|
|
4
|
+
interface CircleAttributes {
|
|
5
|
+
type: 'circle';
|
|
6
|
+
cx: string;
|
|
7
|
+
cy: string;
|
|
8
|
+
r: string;
|
|
9
|
+
fill?: 'color' | 'none';
|
|
8
10
|
}
|
|
11
|
+
interface RectAttributes {
|
|
12
|
+
type: 'rect';
|
|
13
|
+
x: string;
|
|
14
|
+
y: string;
|
|
15
|
+
width: string;
|
|
16
|
+
height: string;
|
|
17
|
+
rx?: string;
|
|
18
|
+
fill?: 'color' | 'none';
|
|
19
|
+
}
|
|
20
|
+
interface PathAttributes {
|
|
21
|
+
type: 'path';
|
|
22
|
+
d: string;
|
|
23
|
+
fill?: 'color' | 'none';
|
|
24
|
+
}
|
|
25
|
+
export type ShapeAttributes = CircleAttributes | RectAttributes | PathAttributes;
|
|
26
|
+
export interface MultiColorIconConfig {
|
|
27
|
+
colors: string[];
|
|
28
|
+
paths: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Interface unificada para definiciones de iconos
|
|
32
|
+
* Combina path principal, formas adicionales y configuración multi-color
|
|
33
|
+
*/
|
|
34
|
+
export interface IconDefinition {
|
|
35
|
+
/** Path principal del icono SVG */
|
|
36
|
+
path: string;
|
|
37
|
+
/** Formas adicionales (círculos, rectángulos) que complementan el path */
|
|
38
|
+
additionalShapes?: ShapeAttributes[];
|
|
39
|
+
/** Configuración para iconos multi-color como Google, Microsoft, etc. */
|
|
40
|
+
multiColor?: MultiColorIconConfig;
|
|
41
|
+
}
|
|
42
|
+
export type IconType = keyof typeof ICON_DEFINITIONS;
|
|
43
|
+
export {};
|
package/lib/icon/icon.utils.d.ts
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
+
import type { IconType } from './icon.types';
|
|
1
2
|
export declare function transformToBoolean(val: boolean | string | null | undefined): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Determina si un icono debería usar fill basado en su definición explícita
|
|
5
|
+
*/
|
|
6
|
+
export declare function shouldIconUseFill(iconName: IconType): boolean;
|