Skip to content

IconSet 类

IconSet 类在 Iconify Tools 中表示一个图标集。

使用方法

要创建实例,请使用以下代码导入现有的 IconifyJSON 数据:

tsimport { IconSet } from '@iconify/tools';

const iconSet = new IconSet({
   prefix: 'codicon',
   icons: {
       'add': {
           body: '<g fill="currentColor"><path d="M14 7v1H8v6H7V8H1V7h6V1h1v6h6z"/></g>',
       },
       'chrome-maximize': {
           body: '<g fill="currentColor"><path d="M3 3v10h10V3H3zm9 9H4V4h8v8z"/></g>',
       },
       'chrome-minimize': {
           body: '<g fill="currentColor"><path d="M14 8v1H3V8h11z"/></g>',
       },
   },
});

或使用以下代码创建空的图标集:

tsimport { blankIconSet } from '@iconify/tools';

const iconSet = blankIconSet('some-prefix');

构造函数不会对图标集进行验证。 如果你不确定数据来源, 则需要使用 Iconify Utils 中的 validateIconSet() 对其进行验证。

函数

处理图标:

导入/导出图标集的函数:

处理元数据的函数:

  • info 属性包含 IconifyInfo 类型的图标集信息(如果信息不可用则为 null)。要更新信息,直接写入该属性即可。
  • chars() 返回字符映射,其中键为字符(十六进制代码),值为图标名称。
  • toggleCharacter(name, char, add) 为图标添加或移除字符。
  • listCategory(category) 列出类别中的所有图标,不包括别名和隐藏的图标。
  • toggleCategory(name, category, add) 为图标添加或移除类别。
  • categories 属性包含类别的数据。如果需要,你可以直接访问它。
  • checkTheme() 检查前缀或后缀,返回属于每个主题的图标列表以及不属于任何主题的图标列表。
  • suffixesprefixes 属性包含前缀和后缀。直接访问这些属性以更新主题。

其他:

  • mergeIconSets() 合并两个 IconSet 实例,并返回新实例。此函数旨在用于更新图标集。

处理图标

所有图标优化和解析函数都作用于 SVG 实例。如何将这些函数应用于整个图标集?

可以通过使用 forEach() 方法遍历图标来实现:

tsiconSet.forEach(async (name, type) => {
   if (type !== 'icon') {
       // Ignore aliases and variations: they inherit content from parent icon, so there is nothing to change
       return;
   }

   const svg = iconSet.toSVG(name);
   if (svg) {
       // Change colors to red
       parseColors(svg, {
           defaultColor: 'red',
           callback: (attr, colorStr, color) => {
               return !color || isEmptyColor(color) ? colorStr : 'red';
           },
       });

       // Update icon from SVG instance
       iconSet.fromSVG(name, svg);
   }
});

// The rest of code here