Close
Angular React Web Components Blazor
Open Source

Angular Icon Service (アイコン サービス) の概要

The Ignite UI for Angular Icon Service allows developers to add new icons from various sources to their UIs.

概要

Ignite UI for Angular アイコン サービスには、ユーザーがアイコン ファミリを作成および管理できるようにするいくつかのメソッドが用意されています。

アイコン サービスは、Ignite UI for Angular パッケージから直接インポートできます。

import { IgxIconComponent } from 'igniteui-angular/icon';
import { IgxIconService } from 'igniteui-angular/core';

@Component({
    selector: 'app-root',
    standalone: true,
    imports: [ IgxIconComponent ]
})
export class AppComponent implements OnInit {
    constructor(public iconService: IgxIconService) {}
}

アイコン ファミリの追加

デフォルトでは、アイコン サービスはデフォルトのファミリを material に設定します。

新しいアイコン ファミリを追加するには、アイコン サービスの setFamily メソッドを使用します。これは、igx-icon コンポーネントに描画するアイコンを指示するメタデータを含むファミリ エントリを作成します。

setFamily メソッドの動作を説明するために、実際の例を使用しましょう。

/** 
* The icon service associates a given family name (provided by the user) 
* with a specific CSS class (as documented in the providing icon font) 
* and corresponding icon name (documented in the icon font).
* NOTE: Material is already the default family.
*/ 
iconService.setFamily('material', { className: 'material-icons', type: 'liga' });
iconService.setFamily('fa-solid', { className: 'fas', type: 'font', prefix: 'fa' });

上記の例では、2 つのアイコン ファミリを作成します: ‘material’ と ‘fa-solid’。タイプが異なり、material ファミリは liga として登録され、fa-solid ファミリは font として登録されています。 2 つの違いは、igx-icon コンポーネントがそれらを描画する方法です。通常、Font Awesome は、クラス名を使用して font ファミリのコード ポイントを指定するため、そのタイプを font に設定します。アイコンを描画するためにコード ポイントに依存する必要がある場合は、常にタイプを font に設定する必要があります。Material Icons ファミリは依然としてフォント ファミリですが、アイコンを表示する標準的な方法は、特定のコード ポイントを指すクラス名ではなく、ligature 名を提供することです。そのため、タイプを liga に設定する必要があります。3 番目のファミリ タイプである svg は、アイコン サービスを通じて登録される SVG で構成されるアイコン ファミリ用に予約されています。

上記の 2 つのフォント ファミリを登録したら、igx-icon コンポーネントを介して標準化された方法でアイコンを使用できるようになりました。

<igx-icon family="material" name="home"></igx-icon>
<igx-icon family="fa-solid" name="car"></igx-icon>

このコンポーネントはマテリアル アイコンを使用します。index.html に次のリンクを追加してください: <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

デフォルトの material ファミリーのアイコンを igx-icon でレンダリングするには、次のリンクを index.html に追加してください: <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

material ファミリの場合は、名前として合字 name を使用し、fa-solid ファミリの場合は、名前として className (fa-car) を指定していることに気付いたかもしれません。ただし、前の手順でアイコン ファミリを登録したときに指定した fa- プレフィックスは削除します。

SVG アイコンの追加

Ignite UI for Angular アイコン サービスを使用すると、SVG 画像をファミリに関連付けて名前を付けることができるため、フォントベースのアイコンと同じように igx-icon コンポーネントを介して含めることができます。SVG は、文字列または SVG アセットへの絶対 URI を介して解決する必要があります。

// Add a new 'material' icon called 'my-icon' from an SVG file
iconService.addSvgIcon('my-icon', 'my-icon.svg', 'material');

// Add a new 'fa-solid' icon called 'my-icon' from string 
iconService.addSvgIconFromText('my-icon', '<svg>...</svg>', 'fa-solid');

マークアップ:

<igx-icon family="material" name="my-icon"></igx-icon>
<igx-icon family="fa-solid" name="my-icon"></igx-icon>

カスタム SVG アイコンを liga および font タイプのファミリに追加していることに注意してください。これが可能なのは、addSvgIcon メソッドと addSvgIconFromText メソッドがアイコンを svg タイプとして暗黙的に登録し、igx-icon コンポーネントが SVG を正しく描画できるようにするためです。

メタ ファミリ

Ignite UI for Angular アイコン サービスを使用すると、フォント アイコンのファミリを設定するか、共通の傘の下に SVG を追加して追加されたアイコンを組み合わせた疑似ファミリ マップを作成し、簡単に参照できるようにすることができます。

// The `setIconRef` sets an icon reference in the icon map,
// assuming material and fa-solid have been added as families,
iconService.setIconRef('home', 'my-family', { family: 'material', name: 'home' });
iconService.setIconRef('home-alt', 'my-family', { family: 'fa-solid', name: 'home' });
iconService.setIconRef('car', 'my-family', { family: 'fa-solid', name: 'car' });

マークアップ:

<igx-icon family="my-family" name="home"></igx-icon>
<igx-icon family="my-family" name="home-alt"></igx-icon>
<igx-icon family="my-family" name="car"></igx-icon>

アイコンの取得

元のアイコン typenamefamily、および className を読み取るために、特定の family とアイコン name のアイコンを取得できます。

const { family, className, name, type } = iconService.getIcon('my-family', 'car');

console.log(family); // -> 'fa-solid'
console.log(className); // -> 'fas'
console.log(name); // -> 'fa-car'
console.log(type); // -> 'font'

内部使用

Ignite UI for Angular バージョン 18.1.0 以降では、新しい setFamily メソッドが追加されました。これにより、アイコン サービスで新しいアイコン ファミリを作成し、それらを CSS クラス、タイプ、さらにはプレフィックスに関連付けることができます。さらに、内部で使用されるアイコンはすべて、エイリアス名を持つ新しい default ファミリで参照によって宣言されるようになりました (下の表を参照)。

エイリアスターゲット アイコンターゲット ファミリ
addaddmaterial
add_childadd-childimx-icons
add_rowadd-rowimx-icons
arrow_backarrow_backmaterial
arrow_drop_downarrow_drop_upmaterial
arrow_forwardarrow_forwardmaterial
arrow_nextchevron_rightmaterial
arrow_prevchevron_leftmaterial
case_sensitivecase-sensitiveimx-icons
carousel_nextarrow_forwardmaterial
carousel_prevarrow_backmaterial
chevron_leftchevron_leftmaterial
chevron_rightchevron_rightmaterial
clockaccess_timematerial
closeclosematerial
collapseexpand_lessmaterial
confirmcheckmaterial
date_rangedate_rangematerial
deletedeletematerial
drag_indicatordrag_indicatormaterial
editeditmaterial
errorerrormaterial
expandexpand_morematerial
expand_moreexpand_morematerial
file_downloadfile_downloadmaterial
filter_allselect-allimx-icons
filter_beforeis-beforeimx-icons
filter_containscontainsimx-icons
filter_does_not_containdoes-not-containimx-icons
filter_emptyis-emptyimx-icons
filter_equalequalsimx-icons
filter_falseis-falseimx-icons
filter_greater_thangreater-thanimx-icons
filter_greater_than_or_equalgreater-than-or-equalimx-icons
filter_inis-inimx-icons
filter_last_monthlast-monthimx-icons
filter_last_yearlast-yearimx-icons
filter_less_thanless-thanimx-icons
filter_less_than_or_equalless-than-or-equalimx-icons
filter_next_monthnext-monthimx-icons
filter_next_yearnext-yearimx-icons
filter_not_emptynot-emptyimx-icons
filter_not_equalnot-equalimx-icons
filter_not_nullis-not-nullimx-icons
filter_nullis-nullimx-icons
filter_starts_withstarts-withimx-icons
filter_this_monththis-monthimx-icons
filter_this_yearthis-yearimx-icons
filter_todaytodayimx-icons
filter_trueis-trueimx-icons
filter_yesterdayyesterdayimx-icons
first_pagefirst_pagematerial
group_workgroup_workmaterial
hidevisibility_offmaterial
import_exportimport_exportmaterial
input_collapsearrow_drop_upmaterial
input_clearclearmaterial
input_expandarrow_drop_downmaterial
jump_downjump-downimx-icons
jump_upjump-upimx-icons
last_pagelast_pagematerial
more_vertmore_vertmaterial
nextnavigate_nextmaterial
pinpin-leftimx-icons
prevnavigate_beforematerial
refreshrefreshmaterial
removecancelmaterial
searchsearchmaterial
selecteddonematerial
showvisibilitymaterial
sort_ascarrow_upwardmaterial
sort_descarrow_downwardmaterial
functionsfunctionsmaterial
table_rowstable_rowsmaterial
todaycalendar_todaymaterial
tree_collapseexpand_morematerial
tree_expandchevron_rightmaterial
unfold_lessunfold_lessmaterial
unfold_moreunfold_morematerial
unpinunpin-leftimx-icons
view_columnview_columnmaterial

カスタム テンプレートを作成するのではなく、参照によって内部アイコンを変更する利点を活用するには、コンボ コンポーネントと選択コンポーネントの展開/縮小アイコンを置き換えるために次の操作を実行します:

iconService.setIconRef('input_expand', 'default', {
    name: 'arrow_downward',
    family: 'material',
});

iconService.setIconRef('input_collapse', 'default', {
    name: 'arrow_upward',
    family: 'material',
});

これにより、すべてのコンボ コンポーネントと選択コンポーネントの展開アイコンと縮小アイコンが、それぞれ material フォント ファミリの arrow_downward 合字と arrow_upward 合字に設定されます。

各コンポーネントで使用されるすべてのアイコンの内訳は以下のとおりです。

Action Strip

アイコン説明
add_childポップアップ メニューで使用されます。
add_rowポップアップ メニューで使用されます。
more_vertポップアップ メニューで使用されます。

Calendar

アイコン説明
arrow_prevヘッダーで月/年の間を移動するために使用されます。
arrow_nextヘッダーで月/年の間を移動するために使用されます。
アイコン説明
carousel_prevスライド間の移動に使用されます。
carousel_nextスライド間の移動に使用されます。

Chip

アイコン説明
selectedチップが選択されていることを示すために使用されます。
remove[削除] ボタンに使用されます。

Combo (Simple Combo を含む)

アイコン説明
case_sensitive大文字と小文字を区別するフィルタリングを指定および切り替えのために使用されます。
input_clear[クリア] ボタンに使用されます。
input_expandコンボ メニューが縮小されているときのトグル ボタンに使用されます。
input_collapseコンボ メニューが展開されているときのトグル ボタンに使用されます。

Date Picker

アイコン説明
todayピッカーをトリガーするトグル ボタンに使用されます。
input_clear[クリア] ボタンに使用されます。

Date Range Picker

アイコン説明
date_rangeピッカーをトリガーするトグル ボタンに使用されます。

Expansion Panel

アイコン説明
expand展開状態をトリガーするトグル ボタンに使用されます。
collapse縮小状態をトリガーするトグル ボタンに使用されます。

Grid

アイコン説明
addフィルター エントリを追加するために Excel フィルター メニューで使用されます。
arrow_back列を後方に移動するためにさまざまな UI 要素で使用されます。
arrow_drop_downトグル可能なメニューを示すためにさまざまなボタンで使用されます。
arrow_forward列を前方に移動するためにさまざまな UI 要素で使用されます。
cancel操作をキャンセルするためにさまざまな UI 要素で使用されます。
chevron_rightExcel スタイルのフィルタリングのように、展開可能なメニューを示すために使用されます。
close展開されたメニューを閉じるときに使用します。
confirm操作を確認するときに使用されます。
drag_indicator項目をドラッグできることを示すハンドルを表示するために使用されます。
error編集可能なセルで、誤ったデータ入力を示すために使用されます。
expand_moreExcel フィルタリング メニューで使用され、フィルターの追加を示します。
file_downloadExcel フィルター エクスポーターによって使用されます。
filter_*さまざまなフィルタリング オペランドに使用されます。
group_workグループ化ドロップ領域で使用されます。
hideさまざまな UI 要素によって列を非表示にするために使用されます。
import_exportピボット データ セレクターが移動する際に使用されます。
input_clear入力フィールドで入力データをクリアするために使用されます。
nextフィルタリング行メニューでチップ間を移動するために使用されます。
pin列のピン固定のためにさまざまな UI 要素によって使用されます。
prevフィルタリング行メニューでチップ間を移動するために使用されます。
removeさまざまな UI 要素によって削除インジケーターとして使用されます。
refreshフィルター行メニューでフィルターを再読み込みするために使用されます。
selectedアクティブな選択を示すためにさまざまな UI 要素によって使用されます。
show列を表示するためにさまざまな UI 要素によって使用されます。
sort_ascソート方向を示すためにさまざまな UI 要素によって使用されます。
sort_descソート方向を示すためにさまざまな UI 要素によって使用されます。
functionsピボット グリッドとデータ セレクターによって使用されます。
table_rowsピボット グリッド データ セレクターによって使用されます。
tree_collapseツリーのような構造で、表示する情報を少なくするために使用されます。
tree_expandツリーのような構造で、詳細を表示するために使用します。
unpin列のピン固定のためにさまざまな UI 要素によって使用されます。
unfold_less階層グリッドですべての行を縮小するために使用されます。
unfold_more階層グリッドですべての行を展開するために使用されます。
view_columnピボット データ セレクターによって使用されます。

Input Group

アイコン説明
input_clear[クリア] ボタンに使用されます。

Paginator

アイコン説明
first_page最初のページに移動するためのボタンで使用されます。
last_page最後のページに移動するためのボタンで使用されます。
prev前のページに移動するためのボタンで使用されます。
next次のページに移動するためのボタンで使用されます。

Query Builder

アイコン説明
add新しいフィルター エントリを追加するためのボタンで使用されます。
closeコンテキスト メニューを閉じるボタンで使用されます。
editフィルター エントリを編集するためのボタンによって使用されます。
confirm新しいフィルター エントリの追加を確認するボタンで使用されます。
ungroupフィルター エントリをグループ解除するボタンで使用されます。
deleteフィルター エントリを削除するボタンで使用されます。
filter_*さまざまなフィルタリング オペランドに使用されます。

Select

アイコン説明
input_expand選択メニューが縮小されているときのトグル ボタンに使用されます。
input_collapse選択メニューが展開されているときのトグル ボタンに使用されます。

Tabs

アイコン説明
prev前のタブに移動するためのボタンで使用されます。
next次のタブに移動するためのボタンで使用されます。

Time Picker

アイコン説明
clockピッカーをトリガーするトグル ボタンに使用されます。

Tree

アイコン説明
tree_expandピッカーをトリガーするトグル ボタンに使用されます。
tree_collapseピッカーをトリガーするトグル ボタンに使用されます。

API

以下では、Ignite UI for Angular Icon Service で利用できるすべての方法を簡単にまとめます。

ファミリの追加

setFamily(name: string, meta: IconFamilyMeta): IgxIconService;

アイコン参照

アイコン マップがまだ存在しない場合にのみ設定します:

addIconRef(name: string, family: string, icon: IconMeta): void;

アイコン マップにアイコン参照を設定します (すでに存在する場合はオーバーライドされます):

setIconRef(name: string, family: string, icon: IconMeta): void;

アイコン参照の取得

getIconRef(family: string, name: string): IconReference;

SVG アイコン

URI から:

addSvgIcon(name: string, url: string, family: string, stripMeta = false): void;

文字列から:

addSvgIconFromText(name: string, iconText: string, family: string, stripMeta = false): void;

API リファレンス


その他のリソース


コミュニティに参加して新しいアイデアをご提案ください。