Close
Angular React Web Components Blazor Angular
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 ファミリで参照によって宣言されるようになりました (下の表を参照)。

エイリアス ターゲット アイコン ターゲット ファミリ
add add material
add_child add-child imx-icons
add_row add-row imx-icons
arrow_back arrow_back material
arrow_drop_down arrow_drop_up material
arrow_forward arrow_forward material
arrow_next chevron_right material
arrow_prev chevron_left material
case_sensitive case-sensitive imx-icons
carousel_next arrow_forward material
carousel_prev arrow_back material
chevron_left chevron_left material
chevron_right chevron_right material
clock access_time material
close close material
collapse expand_less material
confirm check material
date_range date_range material
delete delete material
drag_indicator drag_indicator material
edit edit material
error error material
expand expand_more material
expand_more expand_more material
file_download file_download material
filter_all select-all imx-icons
filter_before is-before imx-icons
filter_contains contains imx-icons
filter_does_not_contain does-not-contain imx-icons
filter_empty is-empty imx-icons
filter_equal equals imx-icons
filter_false is-false imx-icons
filter_greater_than greater-than imx-icons
filter_greater_than_or_equal greater-than-or-equal imx-icons
filter_in is-in imx-icons
filter_last_month last-month imx-icons
filter_last_year last-year imx-icons
filter_less_than less-than imx-icons
filter_less_than_or_equal less-than-or-equal imx-icons
filter_next_month next-month imx-icons
filter_next_year next-year imx-icons
filter_not_empty not-empty imx-icons
filter_not_equal not-equal imx-icons
filter_not_null is-not-null imx-icons
filter_null is-null imx-icons
filter_starts_with starts-with imx-icons
filter_this_month this-month imx-icons
filter_this_year this-year imx-icons
filter_today today imx-icons
filter_true is-true imx-icons
filter_yesterday yesterday imx-icons
first_page first_page material
group_work group_work material
hide visibility_off material
import_export import_export material
input_collapse arrow_drop_up material
input_clear clear material
input_expand arrow_drop_down material
jump_down jump-down imx-icons
jump_up jump-up imx-icons
last_page last_page material
more_vert more_vert material
next navigate_next material
pin pin-left imx-icons
prev navigate_before material
refresh refresh material
remove cancel material
search search material
selected done material
show visibility material
sort_asc arrow_upward material
sort_desc arrow_downward material
functions functions material
table_rows table_rows material
today calendar_today material
tree_collapse expand_more material
tree_expand chevron_right material
unfold_less unfold_less material
unfold_more unfold_more material
unpin unpin-left imx-icons
view_column view_column material

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

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_right Excel スタイルのフィルタリングのように、展開可能なメニューを示すために使用されます。
close 展開されたメニューを閉じるときに使用します。
confirm 操作を確認するときに使用されます。
drag_indicator 項目をドラッグできることを示すハンドルを表示するために使用されます。
error 編集可能なセルで、誤ったデータ入力を示すために使用されます。
expand_more Excel フィルタリング メニューで使用され、フィルターの追加を示します。
file_download Excel フィルター エクスポーターによって使用されます。
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 リファレンス


その他のリソース


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