WebCAD-Lib-TS API 文档 - v1.0.0
    Preparing search index...

    Class IconRegistry

    图标注册管理器

    提供统一的图标管理接口,用于注册、获取和管理 SVG 图标。 支持内置图标和自定义图标的注册。

    const svg = IconRegistry.getCommandIcon('line');
    if (svg) {
    element.innerHTML = svg;
    }
    IconRegistry.registerIcon('my-icon', '<svg>...</svg>', {
    category: IconCategory.Custom
    });
    if (IconRegistry.hasIcon('line', IconCategory.Commands)) {
    // 显示图标
    }
    Index

    Constructors

    Methods

    • 初始化图标注册表(同步版本)

      Returns void

      此方法会同步加载所有内置图标数据。 模块加载时会自动调用。

    • 初始化图标注册表(异步版本,保持向后兼容)

      Returns Promise<void>

      此方法会加载内置图标数据。 如果已经通过同步方式初始化,则直接返回。

    • 批量注册图标

      Parameters

      • icons: Record<string, string>

        图标数据对象,键为图标名,值为 SVG 内容

      • category: IconCategory

        图标分类

      Returns void

    • 注册单个图标

      Parameters

      Returns boolean

      是否注册成功

      IconRegistry.registerIcon('custom-tool', '<svg>...</svg>', {
      category: IconCategory.Custom,
      override: true
      });
    • 注册命令图标

      Parameters

      • commandName: string

        命令名称

      • svg: string

        SVG 内容

      • override: boolean = true

        是否覆盖已存在的图标

      Returns boolean

      是否注册成功

      IconRegistry.registerCommandIcon('MYCOMMAND', '<svg>...</svg>');
      
    • 获取图标 SVG 内容

      Parameters

      • key: string

        图标键名

      • Optionalcategory: IconCategory

        图标分类(可选,不指定则搜索所有分类)

      Returns string

      SVG 内容,如果不存在则返回 undefined

      const svg = IconRegistry.getIcon('line', IconCategory.Commands);
      
    • 获取命令图标

      Parameters

      • commandName: string

        命令名称

      Returns string

      SVG 内容,如果不存在则返回 undefined

      const svg = IconRegistry.getCommandIcon('LINE');
      if (svg) {
      button.innerHTML = svg;
      }
    • 获取活动栏图标

      Parameters

      • name: string

        图标名称

      Returns string

      SVG 内容

    • 获取对象捕捉图标

      Parameters

      • name: string

        图标名称(如 'end', 'mid', 'cen' 等)

      Returns string

      SVG 内容

    • 检查图标是否存在

      Parameters

      • key: string

        图标键名

      • Optionalcategory: IconCategory

        图标分类(可选)

      Returns boolean

      是否存在

      if (IconRegistry.hasIcon('line', IconCategory.Commands)) {
      // 显示图标
      } else {
      // 显示默认图标或不显示
      }
    • 检查命令是否有图标

      Parameters

      • commandName: string

        命令名称

      Returns boolean

      是否有图标

    • 获取图标详细信息

      Parameters

      • key: string

        图标键名

      Returns IconInfo

      图标信息,如果不存在则返回 undefined

    • 获取某个分类下的所有图标

      Parameters

      Returns Record<string, string>

      图标数据对象

    • 获取所有命令图标

      Returns Record<string, string>

      命令图标数据对象

    • 删除图标

      Parameters

      Returns boolean

      是否删除成功

    • 清空某个分类的所有图标

      Parameters

      Returns void

    • 获取某个分类的图标数量

      Parameters

      Returns number

      图标数量

    • 创建图标 HTML 元素

      Parameters

      • key: string

        图标键名

      • Optionalcategory: IconCategory

        图标分类(可选)

      • OptionalclassName: string

        CSS 类名(可选)

      Returns HTMLElement

      HTML 元素,如果图标不存在则返回 null

      const iconEl = IconRegistry.createIconElement('line', IconCategory.Commands, 'toolbar-icon');
      if (iconEl) {
      container.appendChild(iconEl);
      }
    • 获取图标作为 Data URL

      Parameters

      • key: string

        图标键名

      • Optionalcategory: IconCategory

        图标分类(可选)

      Returns string

      Data URL 字符串,如果图标不存在则返回 undefined

      const dataUrl = IconRegistry.getIconAsDataUrl('line');
      if (dataUrl) {
      img.src = dataUrl;
      }
    • 重置图标注册表

      Returns void

      清空所有已注册的图标,包括内置图标。 调用此方法后需要重新调用 init() 来加载内置图标。