@hugeicons/angular 1.0.12 → 1.0.13
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/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# @hugeicons/angular
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## 1.0.13
|
|
5
|
+
|
|
6
|
+
### Patch Changes
|
|
7
|
+
|
|
8
|
+
- Fixed the browser tab freezing (infinite loop, memory climbing by GBs) when the `icon` input changes in apps that use `@angular/animations` (`provideAnimations()`, `BrowserAnimationsModule` or the noop variants), a regression in 1.0.12 ([#46](https://github.com/hugeicons/hugeicons/issues/46))
|
|
9
|
+
|
|
10
|
+
|
|
4
11
|
## 1.0.12
|
|
5
12
|
|
|
6
13
|
### Patch Changes
|
|
@@ -14,8 +14,10 @@ export class HugeiconsSvgChildrenDirective {
|
|
|
14
14
|
renderer = inject(Renderer2);
|
|
15
15
|
ngOnChanges() {
|
|
16
16
|
const svg = this.host.nativeElement;
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
// Iterate over a snapshot: with @angular/animations the renderer only queues the
|
|
18
|
+
// removal until change detection ends, so svg.firstChild would never change.
|
|
19
|
+
for (const child of Array.from(svg.childNodes)) {
|
|
20
|
+
this.renderer.removeChild(svg, child);
|
|
19
21
|
}
|
|
20
22
|
for (const { tag, ...props } of this.hugeiconsSvgChildren ?? []) {
|
|
21
23
|
const child = this.renderer.createElement(tag, "svg");
|
|
@@ -41,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
41
43
|
type: Input,
|
|
42
44
|
args: [{ required: true }]
|
|
43
45
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLWNoaWxkcmVuLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3N2Zy1jaGlsZHJlbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsRUFDVCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVF2RDs7Ozs7O0dBTUc7QUFLSCxNQUFNLE9BQU8sNkJBQTZCO0lBQ2Isb0JBQW9CLENBQTJCO0lBRXpELElBQUksR0FBOEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUMsV0FBVztRQUNULE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXBDLGlGQUFpRjtRQUNqRiw2RUFBNkU7UUFDN0UsS0FBSyxNQUFNLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDdkM7UUFFRCxLQUFLLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksRUFBRSxFQUFFO1lBQy9ELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakQsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQ3hCLEtBQUssRUFDTCxTQUFTLENBQUMsSUFBSSxFQUNkLFNBQVMsQ0FBQyxLQUFLLEVBQ2YsU0FBUyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQ2pDLENBQUM7aUJBQ0g7YUFDRjtZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7d0dBOUJVLDZCQUE2Qjs0RkFBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFFNEIsb0JBQW9CO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgUmVuZGVyZXIyLFxuICBpbmplY3QsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0b1N2Z0F0dHJpYnV0ZSB9IGZyb20gXCIuLi9saWIvc3ZnLWF0dHJpYnV0ZXNcIjtcblxuLyoqIE9uZSBpY29uIGNoaWxkOiBhbiBTVkcgdGFnIG5hbWUgcGx1cyBSZWFjdC1zdHlsZSBwcm9wcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ZnQ2hpbGROb2RlIHtcbiAgdGFnOiBzdHJpbmc7XG4gIFtwcm9wOiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgaWNvbiBjaGlsZHJlbiBpbnRvIHRoZSBob3N0IDxzdmc+LCB3aXRoIGFueSB0YWcgYW5kIGFueSBhdHRyaWJ1dGUsIHRoZSB3YXlcbiAqIFJlYWN0J3MgY3JlYXRlRWxlbWVudCBkb2VzLiBBIHRlbXBsYXRlIGNhbid0IGJpbmQgYSBkeW5hbWljIHRhZyBuYW1lLCBzbyB0aGUgbm9kZXNcbiAqIGFyZSBidWlsdCB0aHJvdWdoIFJlbmRlcmVyMi4gSXQgcnVucyBpbiBuZ09uQ2hhbmdlcywgaS5lLiBzeW5jaHJvbm91c2x5IGR1cmluZ1xuICogY2hhbmdlIGRldGVjdGlvbiwgc28gdGhlIGljb24gaXMgaW4gdGhlIERPTSByaWdodCBhZnRlciBkZXRlY3RDaGFuZ2VzKCkgYW5kIGluXG4gKiBzZXJ2ZXItcmVuZGVyZWQgSFRNTC4gQW55IGNoaWxkcmVuIGFscmVhZHkgcHJlc2VudCAoZS5nLiBmcm9tIFNTUikgYXJlIHJlcGxhY2VkLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwic3ZnW2h1Z2VpY29uc1N2Z0NoaWxkcmVuXVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBIdWdlaWNvbnNTdmdDaGlsZHJlbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGh1Z2VpY29uc1N2Z0NoaWxkcmVuITogcmVhZG9ubHkgU3ZnQ2hpbGROb2RlW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBFbGVtZW50UmVmPFNWR1NWR0VsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc3ZnID0gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyBJdGVyYXRlIG92ZXIgYSBzbmFwc2hvdDogd2l0aCBAYW5ndWxhci9hbmltYXRpb25zIHRoZSByZW5kZXJlciBvbmx5IHF1ZXVlcyB0aGVcbiAgICAvLyByZW1vdmFsIHVudGlsIGNoYW5nZSBkZXRlY3Rpb24gZW5kcywgc28gc3ZnLmZpcnN0Q2hpbGQgd291bGQgbmV2ZXIgY2hhbmdlLlxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgQXJyYXkuZnJvbShzdmcuY2hpbGROb2RlcykpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoc3ZnLCBjaGlsZCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB7IHRhZywgLi4ucHJvcHMgfSBvZiB0aGlzLmh1Z2VpY29uc1N2Z0NoaWxkcmVuID8/IFtdKSB7XG4gICAgICBjb25zdCBjaGlsZCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCh0YWcsIFwic3ZnXCIpO1xuICAgICAgZm9yIChjb25zdCBbcHJvcCwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSB0b1N2Z0F0dHJpYnV0ZShwcm9wLCB2YWx1ZSk7XG4gICAgICAgIGlmIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGNoaWxkLFxuICAgICAgICAgICAgYXR0cmlidXRlLm5hbWUsXG4gICAgICAgICAgICBhdHRyaWJ1dGUudmFsdWUsXG4gICAgICAgICAgICBhdHRyaWJ1dGUubmFtZXNwYWNlID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHN2ZywgY2hpbGQpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -81,8 +81,10 @@ class HugeiconsSvgChildrenDirective {
|
|
|
81
81
|
renderer = inject(Renderer2);
|
|
82
82
|
ngOnChanges() {
|
|
83
83
|
const svg = this.host.nativeElement;
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
// Iterate over a snapshot: with @angular/animations the renderer only queues the
|
|
85
|
+
// removal until change detection ends, so svg.firstChild would never change.
|
|
86
|
+
for (const child of Array.from(svg.childNodes)) {
|
|
87
|
+
this.renderer.removeChild(svg, child);
|
|
86
88
|
}
|
|
87
89
|
for (const { tag, ...props } of this.hugeiconsSvgChildren ?? []) {
|
|
88
90
|
const child = this.renderer.createElement(tag, "svg");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hugeicons-angular.mjs","sources":["../../src/lib/svg-attributes.ts","../../src/components/svg-children.directive.ts","../../src/components/hugeicons-icon.component.ts","../../src/hugeicons-angular.ts"],"sourcesContent":["/**\n * Maps the React-style prop names used by the icon data (strokeWidth, fillRule, xlinkHref …)\n * to real SVG attribute names, following the same rules as React DOM:\n * - names that SVG itself spells in camelCase (viewBox, gradientTransform …) are kept as-is\n * - xlink / xml prefixed names get their namespace\n * - every other camelCase name becomes kebab-case (strokeLinecap → stroke-linecap)\n * - names that are already kebab-case or lowercase pass through unchanged\n */\n\n/** SVG attributes whose canonical spelling is camelCase. */\nconst CAMEL_CASE_ATTRIBUTES = new Set([\n 'allowReorder', 'attributeName', 'attributeType', 'autoReverse', 'baseFrequency',\n 'baseProfile', 'calcMode', 'clipPathUnits', 'contentScriptType', 'contentStyleType',\n 'diffuseConstant', 'edgeMode', 'externalResourcesRequired', 'filterRes', 'filterUnits',\n 'glyphRef', 'gradientTransform', 'gradientUnits', 'kernelMatrix', 'kernelUnitLength',\n 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'limitingConeAngle', 'markerHeight',\n 'markerUnits', 'markerWidth', 'maskContentUnits', 'maskUnits', 'numOctaves', 'pathLength',\n 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointsAtX', 'pointsAtY',\n 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'refX', 'refY',\n 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'specularConstant',\n 'specularExponent', 'spreadMethod', 'startOffset', 'stdDeviation', 'stitchTiles',\n 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textLength',\n 'viewBox', 'viewTarget', 'xChannelSelector', 'yChannelSelector', 'zoomAndPan',\n]);\n\n/** Namespaced attributes, as Renderer2 expects them: a namespace key plus the local name. */\nconst NAMESPACED_ATTRIBUTES: Record<string, { name: string; namespace: string }> = {\n xlinkActuate: { name: 'actuate', namespace: 'xlink' },\n xlinkArcrole: { name: 'arcrole', namespace: 'xlink' },\n xlinkHref: { name: 'href', namespace: 'xlink' },\n xlinkRole: { name: 'role', namespace: 'xlink' },\n xlinkShow: { name: 'show', namespace: 'xlink' },\n xlinkTitle: { name: 'title', namespace: 'xlink' },\n xlinkType: { name: 'type', namespace: 'xlink' },\n xmlBase: { name: 'base', namespace: 'xml' },\n xmlLang: { name: 'lang', namespace: 'xml' },\n xmlSpace: { name: 'space', namespace: 'xml' },\n xmlnsXlink: { name: 'xlink', namespace: 'xmlns' },\n};\n\n/** Props React consumes itself and never writes to the DOM. */\nconst IGNORED_PROPS = new Set(['key', 'ref', 'children', 'dangerouslySetInnerHTML']);\n\nexport interface SvgAttribute {\n /** Local attribute name */\n name: string;\n /** Renderer2 namespace key (xlink, xml, xmlns) or null */\n namespace: string | null;\n value: string;\n}\n\nexport function toSvgAttribute(prop: string, value: unknown): SvgAttribute | null {\n if (IGNORED_PROPS.has(prop) || value === undefined || value === null || value === false) {\n return null;\n }\n if (typeof value === 'function' || typeof value === 'object') {\n return null;\n }\n const stringValue = value === true ? '' : String(value);\n\n if (prop === 'className') {\n return { name: 'class', namespace: null, value: stringValue };\n }\n if (prop === 'htmlFor') {\n return { name: 'for', namespace: null, value: stringValue };\n }\n const namespaced = NAMESPACED_ATTRIBUTES[prop];\n if (namespaced) {\n return { name: namespaced.name, namespace: namespaced.namespace, value: stringValue };\n }\n if (CAMEL_CASE_ATTRIBUTES.has(prop) || !/[A-Z]/.test(prop)) {\n return { name: prop, namespace: null, value: stringValue };\n }\n return {\n name: prop.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`),\n namespace: null,\n value: stringValue,\n };\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n Renderer2,\n inject,\n} from \"@angular/core\";\nimport { toSvgAttribute } from \"../lib/svg-attributes\";\n\n/** One icon child: an SVG tag name plus React-style props. */\nexport interface SvgChildNode {\n tag: string;\n [prop: string]: unknown;\n}\n\n/**\n * Renders icon children into the host <svg>, with any tag and any attribute, the way\n * React's createElement does. A template can't bind a dynamic tag name, so the nodes\n * are built through Renderer2. It runs in ngOnChanges, i.e. synchronously during\n * change detection, so the icon is in the DOM right after detectChanges() and in\n * server-rendered HTML. Any children already present (e.g. from SSR) are replaced.\n */\n@Directive({\n selector: \"svg[hugeiconsSvgChildren]\",\n standalone: true,\n})\nexport class HugeiconsSvgChildrenDirective implements OnChanges {\n @Input({ required: true }) hugeiconsSvgChildren!: readonly SvgChildNode[];\n\n private readonly host: ElementRef<SVGSVGElement> = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n ngOnChanges(): void {\n const svg = this.host.nativeElement;\n\n while (svg.firstChild) {\n this.renderer.removeChild(svg, svg.firstChild);\n }\n\n for (const { tag, ...props } of this.hugeiconsSvgChildren ?? []) {\n const child = this.renderer.createElement(tag, \"svg\");\n for (const [prop, value] of Object.entries(props)) {\n const attribute = toSvgAttribute(prop, value);\n if (attribute) {\n this.renderer.setAttribute(\n child,\n attribute.name,\n attribute.value,\n attribute.namespace ?? undefined,\n );\n }\n }\n this.renderer.appendChild(svg, child);\n }\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n computed,\n input,\n} from \"@angular/core\";\nimport { IconSvgObject } from \"../lib/types\";\nimport { HugeiconsSvgChildrenDirective } from \"./svg-children.directive\";\n\n/**\n * One SVG child of an icon: the icon data's props (React-style camelCase names)\n * plus `tag`, the element name. The named fields are the ones 1.0.11 exposed.\n */\ninterface PathData {\n tag: string;\n d?: string;\n fill?: string;\n opacity?: string;\n fillRule?: string;\n stroke?: string;\n strokeWidth?: number | string;\n [prop: string]: unknown;\n}\n\n/**\n * 1.0.11 wrote fill=\"none\" on every child it rendered (always path, circle, ellipse or\n * rect). Kept for those tags so CSS such as `svg { fill: ... }` behaves as before;\n * any other tag is left untouched, like React.\n */\nconst LEGACY_FILL_NONE_TAGS = new Set([\"path\", \"circle\", \"ellipse\", \"rect\"]);\n\n@Component({\n selector: \"hugeicons-icon\",\n standalone: true,\n imports: [HugeiconsSvgChildrenDirective],\n template: `\n <svg\n [attr.width]=\"resolvedSize()\"\n [attr.height]=\"resolvedSize()\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n [attr.color]=\"mainColor()\"\n [attr.stroke]=\"strokeOverride()?.stroke\"\n [attr.stroke-width]=\"strokeOverride()?.strokeWidth\"\n [class]=\"iconClass()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [hugeiconsSvgChildren]=\"paths()\"\n ></svg>\n `,\n host: {\n style:\n \"display: inline-flex; align-items: center; justify-content: center;\",\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HugeiconsIconComponent {\n // Signal inputs - modern Angular 17.1+ approach\n readonly size = input<string | number>(24);\n readonly strokeWidth = input<number | undefined>(undefined);\n readonly absoluteStrokeWidth = input<boolean>(false);\n readonly icon = input.required<IconSvgObject>();\n readonly altIcon = input<IconSvgObject | undefined>(undefined);\n readonly color = input<string>(\"currentColor\");\n readonly iconClass = input<string>(\"\", { alias: \"class\" });\n readonly showAlt = input<boolean>(false);\n readonly primaryColor = input<string | undefined>(undefined);\n readonly secondaryColor = input<string | undefined>(undefined);\n readonly disableSecondaryOpacity = input<boolean>(false);\n\n // Like React's default props: an explicitly bound `undefined` still falls back to the default\n readonly resolvedSize = computed(() => this.size() ?? 24);\n readonly mainColor = computed(\n () => this.primaryColor() || (this.color() ?? \"currentColor\"),\n );\n\n /** Stroke width/color forced by the strokeWidth input, applied to the svg and every child. */\n readonly strokeOverride = computed(() => {\n const strokeWidthValue = this.strokeWidth();\n if (strokeWidthValue === undefined) {\n return undefined;\n }\n const strokeWidth = this.absoluteStrokeWidth()\n ? (Number(strokeWidthValue) * 24) / Number(this.resolvedSize())\n : strokeWidthValue;\n return { strokeWidth, stroke: \"currentColor\" };\n });\n\n // Computed signal for reactive path updates\n readonly paths = computed<PathData[]>(() => {\n const currentIcon =\n this.showAlt() && this.altIcon() ? this.altIcon()! : this.icon();\n\n if (!currentIcon || !Array.isArray(currentIcon)) {\n return [];\n }\n\n const strokeOverride = this.strokeOverride();\n const mainColor = this.mainColor();\n const secondaryColor = this.secondaryColor();\n const disableSecondaryOpacity = this.disableSecondaryOpacity();\n\n // Same ordering as @hugeicons/react: secondary (opacity) layers first\n return [...currentIcon]\n .sort(([, a], [, b]) => {\n const hasOpacityA = a[\"opacity\"] !== undefined;\n const hasOpacityB = b[\"opacity\"] !== undefined;\n return hasOpacityB ? 1 : hasOpacityA ? -1 : 0;\n })\n .map(([tag, rawAttrs]) => {\n const attrs = rawAttrs as Record<string, unknown>;\n const isSecondary = attrs[\"opacity\"] !== undefined;\n const colorProps = secondaryColor\n ? {\n [attrs[\"stroke\"] !== undefined ? \"stroke\" : \"fill\"]: isSecondary\n ? secondaryColor\n : mainColor,\n }\n : {};\n\n return {\n ...attrs,\n tag,\n fill:\n (attrs[\"fill\"] as string | undefined) ||\n (LEGACY_FILL_NONE_TAGS.has(tag) ? \"none\" : undefined),\n ...strokeOverride,\n ...colorProps,\n opacity:\n isSecondary && !disableSecondaryOpacity\n ? attrs[\"opacity\"]\n : undefined,\n } as PathData;\n });\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hugeicons-angular.mjs","sources":["../../src/lib/svg-attributes.ts","../../src/components/svg-children.directive.ts","../../src/components/hugeicons-icon.component.ts","../../src/hugeicons-angular.ts"],"sourcesContent":["/**\n * Maps the React-style prop names used by the icon data (strokeWidth, fillRule, xlinkHref …)\n * to real SVG attribute names, following the same rules as React DOM:\n * - names that SVG itself spells in camelCase (viewBox, gradientTransform …) are kept as-is\n * - xlink / xml prefixed names get their namespace\n * - every other camelCase name becomes kebab-case (strokeLinecap → stroke-linecap)\n * - names that are already kebab-case or lowercase pass through unchanged\n */\n\n/** SVG attributes whose canonical spelling is camelCase. */\nconst CAMEL_CASE_ATTRIBUTES = new Set([\n 'allowReorder', 'attributeName', 'attributeType', 'autoReverse', 'baseFrequency',\n 'baseProfile', 'calcMode', 'clipPathUnits', 'contentScriptType', 'contentStyleType',\n 'diffuseConstant', 'edgeMode', 'externalResourcesRequired', 'filterRes', 'filterUnits',\n 'glyphRef', 'gradientTransform', 'gradientUnits', 'kernelMatrix', 'kernelUnitLength',\n 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'limitingConeAngle', 'markerHeight',\n 'markerUnits', 'markerWidth', 'maskContentUnits', 'maskUnits', 'numOctaves', 'pathLength',\n 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointsAtX', 'pointsAtY',\n 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'refX', 'refY',\n 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'specularConstant',\n 'specularExponent', 'spreadMethod', 'startOffset', 'stdDeviation', 'stitchTiles',\n 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textLength',\n 'viewBox', 'viewTarget', 'xChannelSelector', 'yChannelSelector', 'zoomAndPan',\n]);\n\n/** Namespaced attributes, as Renderer2 expects them: a namespace key plus the local name. */\nconst NAMESPACED_ATTRIBUTES: Record<string, { name: string; namespace: string }> = {\n xlinkActuate: { name: 'actuate', namespace: 'xlink' },\n xlinkArcrole: { name: 'arcrole', namespace: 'xlink' },\n xlinkHref: { name: 'href', namespace: 'xlink' },\n xlinkRole: { name: 'role', namespace: 'xlink' },\n xlinkShow: { name: 'show', namespace: 'xlink' },\n xlinkTitle: { name: 'title', namespace: 'xlink' },\n xlinkType: { name: 'type', namespace: 'xlink' },\n xmlBase: { name: 'base', namespace: 'xml' },\n xmlLang: { name: 'lang', namespace: 'xml' },\n xmlSpace: { name: 'space', namespace: 'xml' },\n xmlnsXlink: { name: 'xlink', namespace: 'xmlns' },\n};\n\n/** Props React consumes itself and never writes to the DOM. */\nconst IGNORED_PROPS = new Set(['key', 'ref', 'children', 'dangerouslySetInnerHTML']);\n\nexport interface SvgAttribute {\n /** Local attribute name */\n name: string;\n /** Renderer2 namespace key (xlink, xml, xmlns) or null */\n namespace: string | null;\n value: string;\n}\n\nexport function toSvgAttribute(prop: string, value: unknown): SvgAttribute | null {\n if (IGNORED_PROPS.has(prop) || value === undefined || value === null || value === false) {\n return null;\n }\n if (typeof value === 'function' || typeof value === 'object') {\n return null;\n }\n const stringValue = value === true ? '' : String(value);\n\n if (prop === 'className') {\n return { name: 'class', namespace: null, value: stringValue };\n }\n if (prop === 'htmlFor') {\n return { name: 'for', namespace: null, value: stringValue };\n }\n const namespaced = NAMESPACED_ATTRIBUTES[prop];\n if (namespaced) {\n return { name: namespaced.name, namespace: namespaced.namespace, value: stringValue };\n }\n if (CAMEL_CASE_ATTRIBUTES.has(prop) || !/[A-Z]/.test(prop)) {\n return { name: prop, namespace: null, value: stringValue };\n }\n return {\n name: prop.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`),\n namespace: null,\n value: stringValue,\n };\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n Renderer2,\n inject,\n} from \"@angular/core\";\nimport { toSvgAttribute } from \"../lib/svg-attributes\";\n\n/** One icon child: an SVG tag name plus React-style props. */\nexport interface SvgChildNode {\n tag: string;\n [prop: string]: unknown;\n}\n\n/**\n * Renders icon children into the host <svg>, with any tag and any attribute, the way\n * React's createElement does. A template can't bind a dynamic tag name, so the nodes\n * are built through Renderer2. It runs in ngOnChanges, i.e. synchronously during\n * change detection, so the icon is in the DOM right after detectChanges() and in\n * server-rendered HTML. Any children already present (e.g. from SSR) are replaced.\n */\n@Directive({\n selector: \"svg[hugeiconsSvgChildren]\",\n standalone: true,\n})\nexport class HugeiconsSvgChildrenDirective implements OnChanges {\n @Input({ required: true }) hugeiconsSvgChildren!: readonly SvgChildNode[];\n\n private readonly host: ElementRef<SVGSVGElement> = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n ngOnChanges(): void {\n const svg = this.host.nativeElement;\n\n // Iterate over a snapshot: with @angular/animations the renderer only queues the\n // removal until change detection ends, so svg.firstChild would never change.\n for (const child of Array.from(svg.childNodes)) {\n this.renderer.removeChild(svg, child);\n }\n\n for (const { tag, ...props } of this.hugeiconsSvgChildren ?? []) {\n const child = this.renderer.createElement(tag, \"svg\");\n for (const [prop, value] of Object.entries(props)) {\n const attribute = toSvgAttribute(prop, value);\n if (attribute) {\n this.renderer.setAttribute(\n child,\n attribute.name,\n attribute.value,\n attribute.namespace ?? undefined,\n );\n }\n }\n this.renderer.appendChild(svg, child);\n }\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n computed,\n input,\n} from \"@angular/core\";\nimport { IconSvgObject } from \"../lib/types\";\nimport { HugeiconsSvgChildrenDirective } from \"./svg-children.directive\";\n\n/**\n * One SVG child of an icon: the icon data's props (React-style camelCase names)\n * plus `tag`, the element name. The named fields are the ones 1.0.11 exposed.\n */\ninterface PathData {\n tag: string;\n d?: string;\n fill?: string;\n opacity?: string;\n fillRule?: string;\n stroke?: string;\n strokeWidth?: number | string;\n [prop: string]: unknown;\n}\n\n/**\n * 1.0.11 wrote fill=\"none\" on every child it rendered (always path, circle, ellipse or\n * rect). Kept for those tags so CSS such as `svg { fill: ... }` behaves as before;\n * any other tag is left untouched, like React.\n */\nconst LEGACY_FILL_NONE_TAGS = new Set([\"path\", \"circle\", \"ellipse\", \"rect\"]);\n\n@Component({\n selector: \"hugeicons-icon\",\n standalone: true,\n imports: [HugeiconsSvgChildrenDirective],\n template: `\n <svg\n [attr.width]=\"resolvedSize()\"\n [attr.height]=\"resolvedSize()\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n [attr.color]=\"mainColor()\"\n [attr.stroke]=\"strokeOverride()?.stroke\"\n [attr.stroke-width]=\"strokeOverride()?.strokeWidth\"\n [class]=\"iconClass()\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [hugeiconsSvgChildren]=\"paths()\"\n ></svg>\n `,\n host: {\n style:\n \"display: inline-flex; align-items: center; justify-content: center;\",\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HugeiconsIconComponent {\n // Signal inputs - modern Angular 17.1+ approach\n readonly size = input<string | number>(24);\n readonly strokeWidth = input<number | undefined>(undefined);\n readonly absoluteStrokeWidth = input<boolean>(false);\n readonly icon = input.required<IconSvgObject>();\n readonly altIcon = input<IconSvgObject | undefined>(undefined);\n readonly color = input<string>(\"currentColor\");\n readonly iconClass = input<string>(\"\", { alias: \"class\" });\n readonly showAlt = input<boolean>(false);\n readonly primaryColor = input<string | undefined>(undefined);\n readonly secondaryColor = input<string | undefined>(undefined);\n readonly disableSecondaryOpacity = input<boolean>(false);\n\n // Like React's default props: an explicitly bound `undefined` still falls back to the default\n readonly resolvedSize = computed(() => this.size() ?? 24);\n readonly mainColor = computed(\n () => this.primaryColor() || (this.color() ?? \"currentColor\"),\n );\n\n /** Stroke width/color forced by the strokeWidth input, applied to the svg and every child. */\n readonly strokeOverride = computed(() => {\n const strokeWidthValue = this.strokeWidth();\n if (strokeWidthValue === undefined) {\n return undefined;\n }\n const strokeWidth = this.absoluteStrokeWidth()\n ? (Number(strokeWidthValue) * 24) / Number(this.resolvedSize())\n : strokeWidthValue;\n return { strokeWidth, stroke: \"currentColor\" };\n });\n\n // Computed signal for reactive path updates\n readonly paths = computed<PathData[]>(() => {\n const currentIcon =\n this.showAlt() && this.altIcon() ? this.altIcon()! : this.icon();\n\n if (!currentIcon || !Array.isArray(currentIcon)) {\n return [];\n }\n\n const strokeOverride = this.strokeOverride();\n const mainColor = this.mainColor();\n const secondaryColor = this.secondaryColor();\n const disableSecondaryOpacity = this.disableSecondaryOpacity();\n\n // Same ordering as @hugeicons/react: secondary (opacity) layers first\n return [...currentIcon]\n .sort(([, a], [, b]) => {\n const hasOpacityA = a[\"opacity\"] !== undefined;\n const hasOpacityB = b[\"opacity\"] !== undefined;\n return hasOpacityB ? 1 : hasOpacityA ? -1 : 0;\n })\n .map(([tag, rawAttrs]) => {\n const attrs = rawAttrs as Record<string, unknown>;\n const isSecondary = attrs[\"opacity\"] !== undefined;\n const colorProps = secondaryColor\n ? {\n [attrs[\"stroke\"] !== undefined ? \"stroke\" : \"fill\"]: isSecondary\n ? secondaryColor\n : mainColor,\n }\n : {};\n\n return {\n ...attrs,\n tag,\n fill:\n (attrs[\"fill\"] as string | undefined) ||\n (LEGACY_FILL_NONE_TAGS.has(tag) ? \"none\" : undefined),\n ...strokeOverride,\n ...colorProps,\n opacity:\n isSecondary && !disableSecondaryOpacity\n ? attrs[\"opacity\"]\n : undefined,\n } as PathData;\n });\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hugeicons/angular",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"description": "Hugeicons Angular Component Library https://hugeicons.com",
|
|
5
5
|
"homepage": "https://hugeicons.com",
|
|
6
6
|
"license": "MIT",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "pnpm clean && ng-packagr -p ng-package.json",
|
|
30
30
|
"clean": "rm -rf dist",
|
|
31
|
-
"test": "
|
|
31
|
+
"test": "pnpm build && node --test test/*.test.mjs",
|
|
32
32
|
"publish:beta": "pnpm build && npm publish --tag beta --no-git-checks",
|
|
33
33
|
"publish:prod": "pnpm build && npm publish --no-git-checks"
|
|
34
34
|
},
|
|
@@ -40,11 +40,14 @@
|
|
|
40
40
|
"@angular/core": ">=17.1.0 <23.0.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
+
"@angular/animations": "^17.0.0",
|
|
43
44
|
"@angular/common": "^17.0.0",
|
|
44
45
|
"@angular/compiler": "^17.0.0",
|
|
45
46
|
"@angular/compiler-cli": "^17.0.0",
|
|
46
47
|
"@angular/core": "^17.0.0",
|
|
48
|
+
"@angular/platform-browser": "^17.0.0",
|
|
47
49
|
"@angular-devkit/build-angular": "^17.0.0",
|
|
50
|
+
"jsdom": "^24.1.3",
|
|
48
51
|
"ng-packagr": "^17.0.0",
|
|
49
52
|
"typescript": "~5.2.0"
|
|
50
53
|
},
|