@haoduo-icon/memory 1.0.1 → 1.0.3

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/pkg-index.js +34 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haoduo-icon/memory",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Icon package for memory",
5
5
  "type": "module",
6
6
  "main": "./pkg-index.js",
package/pkg-index.js CHANGED
@@ -580,9 +580,11 @@ class HdIcon extends HTMLElement {
580
580
  static get observedAttributes() {
581
581
  return ["icon"];
582
582
  }
583
+ _root;
583
584
  _use = null;
584
585
  constructor() {
585
586
  super();
587
+ this._root = this.attachShadow({ mode: "open" });
586
588
  }
587
589
  ensureTemplate() {
588
590
  if (this._use)
@@ -597,7 +599,7 @@ class HdIcon extends HTMLElement {
597
599
  use.setAttribute("width", "100%");
598
600
  use.setAttribute("height", "100%");
599
601
  svg.appendChild(use);
600
- this.appendChild(svg);
602
+ this._root.appendChild(svg);
601
603
  this._use = use;
602
604
  }
603
605
  attributeChangedCallback(name, oldValue, newValue) {
@@ -617,10 +619,35 @@ class HdIcon extends HTMLElement {
617
619
  window.removeEventListener("hd-icon-registered", this.handleRegistration);
618
620
  }
619
621
  }
622
+ parseIconKey(iconKey) {
623
+ if (!iconKey)
624
+ return null;
625
+ const colonIndex = iconKey.indexOf(":");
626
+ if (colonIndex > 0 && colonIndex < iconKey.length - 1) {
627
+ return {
628
+ pkg: iconKey.slice(0, colonIndex),
629
+ name: iconKey.slice(colonIndex + 1)
630
+ };
631
+ }
632
+ const registry = getRegistry();
633
+ let matchedPkg = "";
634
+ for (const pkg of registry.keys()) {
635
+ if (iconKey.startsWith(pkg + "-") && pkg.length > matchedPkg.length) {
636
+ matchedPkg = pkg;
637
+ }
638
+ }
639
+ if (matchedPkg) {
640
+ return {
641
+ pkg: matchedPkg,
642
+ name: iconKey.slice(matchedPkg.length + 1)
643
+ };
644
+ }
645
+ return null;
646
+ }
620
647
  handleRegistration = (e) => {
621
648
  const detail = e.detail;
622
649
  const iconKey = this.getAttribute("icon");
623
- if (iconKey && iconKey.startsWith(detail.pkg + ":")) {
650
+ if (iconKey && (iconKey.startsWith(detail.pkg + ":") || iconKey.startsWith(detail.pkg + "-"))) {
624
651
  this.render();
625
652
  }
626
653
  };
@@ -629,11 +656,12 @@ class HdIcon extends HTMLElement {
629
656
  const iconKey = this.getAttribute("icon");
630
657
  if (!iconKey)
631
658
  return;
632
- const [pkg, name] = iconKey.split(":");
633
- if (!pkg || !name) {
634
- console.warn(`[hd-icon] Invalid icon format: "${iconKey}". Expected "pkg:name".`);
659
+ const parsed = this.parseIconKey(iconKey);
660
+ if (!parsed) {
661
+ console.warn(`[hd-icon] Invalid icon format: "${iconKey}". Expected "pkg:name" or "pkg-name".`);
635
662
  return;
636
663
  }
664
+ const { pkg, name } = parsed;
637
665
  const registry = getRegistry().get(pkg);
638
666
  if (!registry) {
639
667
  return;
@@ -678,7 +706,7 @@ if (typeof window !== "undefined") {
678
706
  }
679
707
 
680
708
  // iconpkg/memory/src-index.ts
681
- var lookup = "AAADdIkZAosYgxr0wkUEWEJJZVUzOTKmNkYkQoNIQURWSVVCZ1dUVFRVU6UUZoFnY1dGJlZVhUaJNkVUJHU2QYhGWFUiVmJnYzZEQVs2RWVHFglYgeAIEAInGB4KigYBA+I+Rg4/Cy0DBBoBzQuJAQQ0HcAZAQUJAx5lTAgCDQUDBBlMAgMmAbAYGSMhbzlWAbEBuAMdAScWCAwCDTzpAnANnAycAQwDHxIVFgQeGQkM/gJbZgSKBBANLAEOFwFWKVYJMhYTCAOWCxE0BhQEOGwsCFz9CQJZAosJAWGooDvbt0NpctnCshdZ3b+pPtrSNDyNrWtNqHOo65Z9YKzbyjSN3gOYcBphD3n8uGLhxwpJbMN9PzQ7kM/5kNCcAG+C9oIK6UhVS65OwSDW67Ot3lKaZWcMFTI1aOCAlYYdG3/x/2y+kk1Fz9c+vIJ70Sr7+X1T4RQV0VslZQ9Eb6mk9+/4LGrkeo4cLe6rR2aV/exgScfYh1k5MECcY3D47NP3JRMj7IndMqhilP7rnIyxfxtf8s2aeo1ExCgP02MfgdeGvHlyS9HzkGVz0p6fEaCBUPd9rDNR9F2Ab5zVnVy9PkAM7RoYeXWYcd/od0K2gx/6k93O5eGbrPANA16iw440rWf5keq9oqcWVdEo8slyofv5HE/mxNOs5HC+5mnsMgwFYxLol/RNJmNpad7f4q9nzRpQ26haQGqKdkSqpIi8l0ym+5R7hKc0J4qm1qLF5ANM8v7URB5sadmMDudBZ1Pfu6yxZfbG0YuXHtVjeJWouVTtzB8g5s8XIqYLuYNxgfAp5ju2Tyqty6vKwEbb/QvVGeVxg/P1P941hSy59ksYCXWBPD5+UOux8TS2zwzyqclAzRfYM8nWCkvQwQVo6JJHJvWpgXiHRpF9o2E4kvKc1wRFy/JV0U41nV/engr6RJmlmYKWvmH9p+jXq7N3mKq45AD0qVUaXmMN0DdznchtpfGvqwuQMCqYvkdKSoZFxfSfH8pMskpiBcEkA5WW1l2ldG0+d9dyqr5OqlPbWQXIYIj2thv7db+3utUBDVKAERvSD/x8ANJbV3uOQXFCYmUDhUf7JGL6jBEIaULP/8epRtVpd/kcG5U2yiC9rdKDEhYk1FQXcjE5NwzZuWNfnqEckqo9lSxRQAoANhAAgAQgAIAUQAASAAIAAAAABAAAAA1tZW1vcnktMDEuc3ZnAAAADW1lbW9yeS0wMi5zdmcAAAANbWVtb3J5LTAzLnN2ZwAAAA1tZW1vcnktMDQuc3Zn/////wAAAAMAAAD1CgAAQLJFEqQJiYIkCCAMQCREgBZBkSAgkCAEWhRJgRIFmAJBEAQlkZRMUqQAQiApWhQAgoQkEZRpiKIgUQRNEBBEQSIICCIMWSBAQZIAQKBEyCJFGCJNSqAggBYoiCQEWAJhSqQEQLAsgRAMCIIoAhQhUwIAyqRAQhQIUgRBASBtyhJIQhIAkwBoWYIAkjRJQLIIkpBEAQAAiSBEEhIokBRBQhJEiYIkSAJhUoAAyzBpUAQFChBIkqIg2xIsSTQICAJICRBgSBIoQAYliSBEiAQlQqIoUSIpk5QtUSAJkBREEiJIQYQBiJRsUIQIUYREACQEAQAAAAAA";
709
+ var lookup = "AAADfYkZAosYgxoAI7o2WEInYXnERSOhRnUThmRUVEdCc4iWFyNYlUcyUhZWNjp1h0kRZCgpJaE0NEQ1FZQ1ZidWZmBER3ZHVmpCZ1UzWmMjZQZYioQBBIkKRhH9Vg0MAQHfIz8JjwIGP9EEAhkiBgEO+QEDAQIPrwj9B9EEPqQGigMIjgElmwefAwsBEyycAeoBLQoC6gcKMrwDoAEIsQICIhsR1gcBtA4GAg0CDAFEGALgAgMCBiHtAQFFByR6SWwBD4sEcgMKlRaAAQILKn8tCQcBugURAg0GAVZDBAJZAosA29bzY77K8eHfMIjP4mIX+jJEsgPRZTfCq3feJFvA2vSWgBFzS7bRY5NohaqrkhkMRSxCTd59WfIMrwCXNtTVQa3Pqj5jS1TM7Iks13fT+6s5ySqcJb7H6EeCmt2+pVNUM0J+kKSt1cQadXsbSveGqM7XhWeX/Zxsaa8N2fTPjZbT3kh8F7Fjgd4X1uTRqigD2z/XmD8s5m2EDRX5/5Gh+wPW1RYB6amnc8SW5fAxeS3NkBNZRHnV8qo+0LFszyT1vUzHH/4NULzZXrYgCvmqO2PdNN/blLaZZehpexu87I51Ve1smea5yILDTR6QAwyogwWdnARy5dJA7+hwH5DTNHJFZVypsX8oKqzhaFdaQFBm5n1VgRK8lRUms7jyovoSG8OtHPR9rMbnc+sMnvlKksj7hg4068p6fxoeCz4K9pgyZ6hG/qb1XgoBfbmNO+DsHzI9MMVdCSAjis1FR3Bxt/idTqmO80KmvU6gQZVEGHXygmF9pa1qqzXbi05py2dqVaw8gWKYGkpixfDogmnJ/J2Bg+EP1p8cZTdb+6f5HFOlAJXNNGDqtpLtldUFYdHx7HbfnNgp157uz+sRbRxEX2V5h/9RrtdAG0f3gCpMwZL9wWkUlUa5lb+U99LJWUn0A0etIEybnr2HETsnPGBSJnGct/nYNWFfY7gIb5iMaWKXS7mioBsLrEZEZyQ0cqTmjsrHSSVL8lW+YtvrsndyYagzy4OD3nJNjGDZX7vUaXG6eLP6rHcLUnp7OTRPqPEPph/9v4EMGt2iUNKo9g+Kmo1vQCL2qcrQXW+pcB2+BRj2hvyAoQrkUz4+n+SnOOTRNQnyjNIX+9FrY0+R0ohDBXR4+A+pFtBxo8FRBpAIAIASJACMHKAAVCAAAAAAAAAABAAAAA1tZW1vcnktMDEuc3ZnAAAADW1lbW9yeS0wMi5zdmcAAAANbWVtb3J5LTAzLnN2ZwAAAA1tZW1vcnktMDQuc3Zn/////wAAAAMAAAD1AQQMC4RIyQYByyBFEpBMCZQMmiQpCIBgCCAkGrREE4ApECAhkJQgk6IAiDJkmhRMmqJokyAFghBBEpIkAZIMCIAIAaQFg6JA0wBJ0jQBCpRICBBFEBBFUjIgiBJBGyIBSxINEBAJAiJBgAZAQgIhABIEyiJFURIFAIYIwxBIApIIgRQpAAAkURApCQYJESBkCRBFAwIFQaJAUaQoQhIliYQgipBISRQogJQokpRIEJAMkYQEySJIAABAkJQoAKRIUCANABIkAjRFQYRAwBBhiQQEUAIAkSAhQSAJSJIISKIEkgJJESBpgqJkiKIlUBAISRIFQQAAAAAA";
682
710
  var chunks = {
683
711
  "memory-01.svg": new URL("./memory-01.svg", import.meta.url).href,
684
712
  "memory-02.svg": new URL("./memory-02.svg", import.meta.url).href,