Web Components List (リスト) の概要

    Ignite UI for Web Components List 要素は、項目のグループを番号の付いた形式または黒丸の付いた形式のいずれかで提示する時に非常に役に立ちます。さまざまなレイアウト要素の配列を含むテキスト アイテムの単純なリスト、またはより複雑なリストを作成できます。IgcListComponent コンポーネントは項目の行を表示し、1 つ以上のヘッダーもサポートします。各リスト項目は完全にテンプレート化可能であり、有効な HTML またはその他のコンポーネントをサポートします。

    Web Components List の例

    次の例は、名前と電話番号のプロパティを持つ連絡先が入力されたリストを表しています。以下に示す IgcListComponent コンポーネントは、IgcAvatarComponent 要素と IgcButtonComponent 要素を使用して、ユーザー エクスペリエンスを強化し、テキストと呼び出しアクションのアバター画像とボタンを設定する機能を公開します。

    使用方法

    List Web コンポーネントは、項目の垂直リストを簡単に表示できます。

    まず、次のコマンドを実行して Ignite UI for Web Components をインストールする必要があります。

    npm install igniteui-webcomponents
    
    import { defineComponents, IgcListComponent } from 'igniteui-webcomponents';
    
    defineComponents(IgcListComponent);
    

    Ignite UI for Web Components の完全な概要については、作業の開始トピックを参照してください。

    リスト項目の追加

    これで、次のコードを追加して、項目の簡単なリストを取得できます。

        <igc-list>
            <igc-list-header>Header</igc-list-header>
            <igc-list-item>
                <h2 slot="title">Item 1</h2>
            </igc-list-item>
            <igc-list-item>
                <h2 slot="title">Item 2</h2>
            </igc-list-item>
            <igc-list-item>
                <h2 slot="title">Item 3</h2>
            </igc-list-item>
        </igc-list>
    

    以下は結果です:

    リスト項目を次のように強化できます。名前と名前の下に表示される電話番号を使用して連絡先のリストを作成するとします。これを実現するために、次の例に示すように、リスト項目に付属するいくつかのスロットを使用できます。

    <igc-list>
        <igc-list-header>
            <h1>Contacts</h1>
        </igc-list-header>
        <igc-list-item>
            <h2 slot="title">Terrance Orta</h2>
            <span slot="subtitle">770-504-2217</span>
        </igc-list-item>
        <igc-list-item>
            <h2 slot="title">Richard Mahoney</h2>
            <span slot="subtitle">423-676-2869</span>
        </igc-list-item>
        <igc-list-item>
            <h2 slot="title">Donna Price</h2>
            <span slot="subtitle">859-496-2817</span>
        </igc-list-item>
    </igc-list>
    

    上記のコードを実装すると、リスト コンポーネントは次のようになります:

    アバターおよびボタンの追加

    他のコンポーネントのいくつかを IgcListComponent コンポーネントと組み合わせて使用して、エクスペリエンスを充実させ、いくつかの機能を追加することができます。名前や電話番号の値の左に画像のアバターを表示できます。さらに、右側にいくつかのボタンを追加して、ユーザーが連絡先にテキスト メッセージを送信したり電話をかけたりできるようにすることができるので、連絡先リスト コンポーネントを更新して、アバターとボタンを表示します。リスト項目のスロットのいくつかを使用することでそれを行うことができます。

        <igc-list>
            <igc-list-header>
                <h1>Job Positions</h1>
            </igc-list-header>
            <igc-list-item>
                <igc-avatar slot="start" src="https://randomuser.me/api/portraits/men/27.jpg" shape="circle">
                    AA
                </igc-avatar>
                <h2 slot="title">Terrance Orta</h2>
                <span slot="subtitle">770-504-2217</span>
                <igc-button slot="end" variant="outlined">
                    Text
                </igc-button>
                <igc-button slot="end" variant="outlined">
                    Call
                </igc-button>
            </igc-list-item>
            <igc-list-item>
                <igc-avatar slot="start" src="https://randomuser.me/api/portraits/men/1.jpg" shape="circle">
                    AA
                </igc-avatar>
                <h2 slot="title">Richard Mahoney</h2>
                <span slot="subtitle">423-676-2869</span>
                <igc-button slot="end" variant="outlined">
                    Text
                </igc-button>
                <igc-button slot="end" variant="outlined">
                    Call
                </igc-button>
            </igc-list-item>
            <igc-list-item>
                <igc-avatar slot="start" src="https://randomuser.me/api/portraits/women/50.jpg" shape="circle">
                    AA
                </igc-avatar>
                <h2 slot="title">Donna Price</h2>
                <span slot="subtitle">859-496-2817</span>
                <igc-button slot="end" variant="outlined">
                    Text
                </igc-button>
                <igc-button slot="end" variant="outlined">
                    Call
                </igc-button>
            </igc-list-item>
        </igc-list>
    

    start スロットは、リスト項目の他のすべてのコンテンツの前に、ある種のメディアを追加するために使用することを目的としています。ターゲット要素 (この場合は IgcAvatarComponent コンポーネント) にも、デフォルトの位置と間隔が提供されます。

    end スロットは、switch、button、checkbox などで表される、ある種のアクションまたはメタデータを持つリスト項目に使用することを目的としています。IgcButtonComponent コンポーネントを使用します。

    また、ユーザーが --ig-size CSS 変数を使用してリストのサイズを変更できるようにしましょう。すべてのサイズ値を表示するために、いくつかのラジオ ボタンを追加します。このようにして、選択されるたびに、リストのサイズを変更します。

    <igc-radio-group id="radio-group" alignment="horizontal">
        <igc-radio name="size" value="small" label-position="after">Small</igc-radio>
        <igc-radio name="size" value="medium" label-position="after">Medium</igc-radio>
        <igc-radio name="size" value="large" label-position="after" checked>Large</igc-radio>
    </igc-radio-group>
    
    this.list = document.getElementById('list') as IgcListComponent;
    this.radioGroup = document.getElementById('radio-group') as IgcRadioGroupComponent;
    
    this.radioGroup.addEventListener('click', (radio: any) => {
        this.list.style.setProperty('--ig-size', `var(--ig-size-${radio.target.value})`);
    });
    

    上記のコードを実装した結果は、次のようになります:

    スタイル設定

    IgcListComponent はいくつかの CSS パーツを公開し、スタイルを完全に制御できるようにします。

    名前 説明
    start 開始のコンテナー。
    end 終了のコンテナー。
    content ヘッダーとカスタム コンテンツのコンテナー。
    header タイトルとサブタイトルのコンテナー。
    title タイトルのコンテナー。
    subtitle サブタイトルのコンテナー。
    igc-list-header {
      font-size: 20px;
      font-weight: 700;
      color: var(--ig-primary-700);
    }
    
    igc-list-item::part(title) {
      font-size: 18px;
      color: var(--ig-primary-600);
    }
    
    igc-list-item::part(subtitle) {
      color: var(--ig-primary-300);
    }
    

    この記事では、IgcListComponent コンポーネントで多くのことを取り上げました。最初に、テキスト項目を含む簡単なリストを作成しました。次に、連絡先項目のリストを作成し、IgcAvatarComponentIgcButtonComponent などの追加の Ignite UI for Web Components コンポーネントを使用してそれらに機能を追加しました。最後に、公開された CSS パーツを使用してコンポーネントの外観を変更しました。

    API リファレンス

    その他のリソース