React Tile Manager 개요

    Ignite UI for React Tile Manager 구성 요소를 사용하면 개별 타일에 콘텐츠를 표시할 수 있습니다. 이를 통해 사용자는 이러한 타일을 재정렬하고 크기를 조정하여 상호 작용할 수 있으므로 기본 설정에 따라 콘텐츠의 레이아웃과 모양을 자유롭게 사용자 지정할 수 있습니다. 이러한 유연성은 콘텐츠를 보다 개인화되고 효율적인 방식으로 보고 관리할 수 있도록 하여 사용자 환경을 향상시킵니다.

    React Tile Manager Example

    다음 Ignite UI for React Tile Manager Example은 작동 중인 컴포넌트를 보여줍니다.

    [!Warning] Due to the iframe permissions policy, the fullscreen button in this example will only work when the example is opened in standalone mode by clicking the 'Expand to fullscreen' button in the top-right corner.

    Usage

    이 도구는IgrTileManager 기본 타일 배치 동작을 제공하며, 최대화 또는 정상 상태에서 타일의 배치를 관리합니다. 타일들은 서로 독립적으로 크기를 조절할 수 있으며, 복잡한 레이아웃을 형성하는 데 사용됩니다. 최종 사용자는 타일을 드래그 앤 드롭하여 재정렬할 수 있어 유연하고 직관적인 경험을 제공합니다.

    타일 매니저는 사용할 수 있는 두 가지 컴포넌트를 제공합니다.

    • IgrTile- 이 컴포넌트는 타일 관리자 내에 표시되는 개별 타일을 나타냅니다.
    • IgrTileManager- 모든 타일 구성 요소를 포함하는 주요 구성 요소로, 전체 타일 레이아웃의 컨테이너 역할을 합니다.

    시작하기

    Tile Manager를 사용하려면 먼저 다음 명령을 실행하여 Ignite UI for React 설치해야 합니다.

    npm install igniteui-react
    

    타일 매니저를 사용하기 전에 다음과 같이 가져와야 합니다.

    import { IgrTile, IgrTileManager } from 'igniteui-react';
    import 'igniteui-webcomponents/themes/light/bootstrap.css';
    

    이제 React Tile Manager의 기본 구성부터 시작할 수 있습니다.

      <IgrTileManager>
        <IgrTile>
          <p>Tile 1</p>
        </IgrTile>
        <IgrTile>
          <p>Tile 2</p>
        </IgrTile>
        <IgrTile>
          <p>Tile 3</p>
        </IgrTile>
      </IgrTileManager>
    

    Ignite UI for React에 대한 완전한 소개는 '시작 주제'를 읽어보세요.

    Layout

    Columns and Rows

    타일 매니저의 그리드 열 수를 지정할 수 있습니다. 이를 위해 원하는 열 수로 속성을 설정columnCount 하면 됩니다. 만약 숫자가 1보다 작거나 속성이 설정되어 있지 않으면, 타일 매니저가 가능한 한 많은 열을 생성하며, 각 열은 최소 200px 너비이고 사용 가능한 공간을 균등하게 나누도록 확장됩니다. 뷰포트 크기가 변하면 타일도 공간 활용을 극대화하기 위해 스스로 재배치됩니다.

    <IgrTileManager columnCount={2}>
      <IgrTile>
        <span slot="title">Tile 1 header</span>
        <p>Tile 1 Content</p>
      </IgrTile>
      <IgrTile>
        <span slot="title">Tile 2 header</span>
        <p>Tile 2 Content</p>
      </IgrTile>
      <IgrTile>
        <span slot="title">Tile 3 header</span>
        <p>Tile 3 Content</p>
      </IgrTile>
      ...
    </IgrTileManager>
    

    이 코드 스니펫에서 타일 관리자의 3개 타일은 2개의 행과 2개의 열로 정렬됩니다.

    Gap

    타일 매니저에서 사용할 수 있는 또 다른 속성은 타일 사이의 공간을 정의하는 속성입니다gap. 속성의gap 값은 숫자 뒤에 길이 단위(예: px, rem, em, ...)가 따라야 합니다. 이 값은 타일 사이의 가로 간격(너비)과 수직 간격(높이) 모두에 적용됩니다.

    <IgrTileManager gap="20px">
      <IgrTile>
        <span slot="title">Tile 1 header</span>
        <p>Tile 1 Content</p>
      </IgrTile>
      <IgrTile>
        <span slot="title">Tile 2 header</span>
        <p>Tile 2 Content</p>
      </IgrTile>
      ...
    </IgrTileManager>
    

    Minimum width and height

    또한 타일 매니저에서 열의 최소 너비(minColumnWidth)와 행minRowHeight의 최소 높이()를 설정하는 속성도 있습니다. 간극 속성과 유사하게, 이 특성들의 값은 숫자 뒤에 길이 단위가 붙어야 합니다. 이 값들은 타일 관리자에서 모든 열의 최소 너비와 모든 행의 최소 높이를 정의합니다.

    <IgrTileManager minColumnWidth="200px" minRowHeight="150px">
      <IgrTile>
        <span slot="title">Tile 1 header</span>
        <p>Tile 1 Content</p>
      </IgrTile>
      <IgrTile>
        <span slot="title">Tile 2 header</span>
        <p>Tile 2 Content</p>
      </IgrTile>
      ...
    </IgrTileManager>
    

    Example

    Tile component

    Tile 구성 요소에는 각 타일에 대해 개별적으로 설정할 수 있는 속성이 있습니다. 이러한 속성 중 일부는 다음과 같습니다.

    • 이 속성은colSpan 타일이 레이아웃에서 몇 개의 열을 가로질지 지정해주어, 타일의 수평 크기를 조절할 수 있게 해줍니다.
    • 이 속성은rowSpan 타일이 수직으로 몇 행 가로질지 결정하며, 레이아웃 내에서 타일의 높이를 조절합니다.
    • 속성은colStart 타일이 놓인 시작 열을 지정합니다.
    • 속성은rowStart 타일이 놓인 시작 행을 지정합니다.
    • 이 속성은disableFullscreen 기본 전체 화면 액션 버튼을 숨깁니다.
    • 이 속성은disableMaximize 기본값인 최대 토글 액션 버튼을 숨깁니다.
    • 이 속성은disableResize 사용자가 타일을 크기를 조절하는 것을 방지합니다.
    <IgrTileManager>
      <IgrTile colSpan={2} disableResize={true}>
        <span slot="title">Tile 1 header</span>
        <p>Tile 1 Content</p>
      </IgrTile>
      <IgrTile>
        <span slot="title">Tile 2 header</span>
        <p>Tile 2 Content</p>
      </IgrTile>
      ...
    </IgrTileManager>
    

    Tile 컴포넌트는 또한 사용할 수 있는 여러 슬롯을 노출합니다.

    슬롯 이름 설명
    title 타일 헤더에 대한 콘텐츠입니다.
    fullscreen-action 기본 전체 화면 작업 내용을 덮어씁니다.
    maximize-action Overwrite the default maximize action content.
    actions 기본 작업 후에 렌더링된 사용자 지정 콘텐츠.
    side-adorner Overwrite the default horizontal resize adorner.
    corner-adorner Overwrite the default diagonal resize adorner.
    bottom-adorner Overwrite the default vertical resize adorner.

    Header section actions

    기본적으로 헤더 섹션에는 두 개의 작업 버튼이 포함되어 있습니다.

    • 이 버튼은maximize 타일 내용을 확장하여 타일 관리자 전체 너비를 채우게 하여 더 넓은 시야를 제공합니다.
    • 이 버튼은fullscreen 사용자의 브라우저에서 타일이 전체 화면 모드로 열릴 수 있게 해줍니다.
    타일 관리자 행동

    두 버튼 중 하나만 표시하고 싶다면 둘 중 하나disableMaximizedisableFullscreen만 설정할 수 있습니다. 외관을 커스터마이즈하려면 최대 버튼maximize-action 슬롯이나 전체 화면 버튼 슬롯을 사용할fullscreen-action 수 있습니다.

    <IgrTileManager>
      <IgrTile disableFullscreen={true}>
        <IgrIconButton slot="maximize-actions" name="north_east" collection="material">
        </IgrIconButton>
        <p>Tile 1 Content</p>
      </IgrTile>
    </IgrTileManager>
    

    또한 두 작업 버튼을 모두 비활성화하고 기본 설정에 따라 사용자 지정 버튼을 만들 수 있는 옵션도 있습니다.

    이 예에서는 Ignite UI Icon Button 구성 요소를 사용하여 사용자 지정 작업 버튼을 만들었습니다.

    Resizing

    타일 관리자의 크기 조정은 세 가지 다른 크기 조정 표시기를 사용하여 타일 크기를 조정할 수 있는 기능입니다.

    • Side Adorner: 열 범위를 수정하여 너비를 조정합니다.
    • 아래쪽 표시기: 행 범위를 수정하여 높이를 조정합니다.
    • 모서리 표시기: 너비와 높이를 동시에 조정합니다.

    부드러운 크기 조정을 위해 타일의 크기를 직접 수정하는 대신 고스트 요소가 사용됩니다. 이 요소는 원래 타일 위에 나타나 크기 조정이 시작될 때 현재 크기를 표시하며 사용자가 크기 조정 핸들을 드래그하면 실시간으로 업데이트됩니다.

    [!Note] If the ghost element exceeds the available grid space, it will automatically adjust to the largest possible span within the grid's limits.

    Tile Manager는 타일의 크기가 변경될 때 자동으로 재정렬되어 빈 공간이 최소화되도록 합니다. 그렇기 때문에 타일을 확장하면 인접한 타일이 새로운 위치로 밀려날 수 있고, 축소하면 다른 타일이 동적으로 채울 수 있는 틈이 생깁니다. 이렇게 하면 Tile Manager가 겹치는 타일 없이 가능한 한 컴팩트하게 유지되고 모든 이동이 정의된 그리드 구조 내에서 유지됩니다.

    이 속성을 사용resizeMode 해 타일 매니저에서 크기 조정 적용을 제어할 수 있습니다. 또는 또는 로 설정할nonehoveralways 수 있는데, 이는 크기 변경 장식이 언제 보이는지 결정합니다. 기본 값은 이none 고, 타일은 크기를 조절할 수 없습니다.

    <IgrTileManager resizeMode="hover">
      <IgrTile>
        <p>Tile 1</p>
      </IgrTile>
      <IgrTile>
        <p>Tile 2</p>
      </IgrTile>
    </IgrTileManager>
    

    아래 예에서 세 가지 상태의 차이점을 볼 수 있습니다.

    Snapping

    타일은 전체 그리드 단위로 크기가 조정되므로 전체 열 또는 행에 의해서만 확장되거나 축소될 수 있습니다. 고스트 요소는 중간 지점을 지나 확장될 때 다음 열 또는 행으로 스냅되고 중간 지점을 지나 축소될 때 이전 열 또는 행으로 스냅됩니다. 이는 모든 표시기(아래쪽, 측면 및 모서리)에 적용되어 타일이 항상 그리드에 정렬된 상태로 유지되도록 합니다.

    그리드 간격도 고려하여 크기를 조정하는 동안 레이아웃을 일관되게 유지합니다.

    Limitations

    크기 조정 프로세스에는 몇 가지 제약 조건과 제한 사항이 있습니다.

    • 타일은 정의된 최소 너비 또는 높이(minColumnWidth,)minRowHeight 보다 작게 크기를 조절할 수 없습니다.
    • 바둑판식 배열은 그리드에서 사용 가능한 최대 가로 공간을 초과할 수 없습니다.

    Reorder

    드래그 앤 드롭 기능을 사용하여 타일 관리자에서 타일의 순서를 변경할 수 있습니다. 기본적으로 타일은 드래그할 수 없습니다. 이 기능을 활성화하려면dragMode 타일 매니저의 속성은 다음 중 하나로 변환됩니다.tile 또는tile-header.

    • 이 옵션을 사용하면tile 개별 타일의 아무 곳을 클릭하고 길게 눌러 드래그할 수 있습니다.
    • 이 옵션을 사용하면tile-header 타일의 헤더 섹션을 클릭하고 누르고 있으면 드래그 과정을 시작할 수 있습니다.

    [!Note] While the tile is in maximized or fullscreen state, the tile cannot be dragged.

    크기 조정과 유사하게, 드래그 앤 드롭 프로세스를 시작하면 잡은 타일 아래에 고스트 요소가 나타납니다. 타일을 드래그하면 고스트 요소가 함께 이동하여 다른 타일의 순서를 실시간으로 동적으로 변경합니다. 이렇게 하면 타일을 놓을 때 타일 그리드가 어떻게 보이는지 미리 볼 수 있습니다.

    <IgrTileManager dragMode="tile-header">
      <IgrTile>
        <span slot="title">Tile 1 header</span>
        <p>Tile 1 Content</p>
      </IgrTile>
      <IgrTile>
        <span slot="title">Tile 2 header</span>
        <p>Tile 2 Content</p>
      </IgrTile>
    </IgrTileManager>
    

    Serialization

    타일 관리자는 타일의 레이아웃을 관리하는 데 도움이 되는 메서드를 제공합니다.

    • saveLayout이 방법은 타일 관리자에 현재 배열된 타일을 저장할 수 있게 해주며, 모든 타일의 현재 순서, 크기, 위치를 캡처하여 나중에 정확한 구성으로 복원할 수 있습니다.
    • loadLayout이 방법은 이전에 저장해둔 레이아웃을 불러올 수 있게 해줍니다. 호출되면 레이아웃이 저장되었을 때의 정확한 상태로 타일을 복원하며, 순서, 크기, 위치를 포함합니다.

    Styling

    두 부품의 외관도 커스터마이즈할 수 있습니다 -IgrTileManagerandIgrTile. 이 경우IgrTileManager 타일 매니저의 기본 래퍼를 스타일링하는 데 사용할 수 있는 CSS 속성base 하나만 노출됩니다. 이 기능은IgrTile 우리가 사용할 수 있는 여러 CSS 속성을 노출시킵니다:

    부품명 설명
    base 타일 구성 요소의 래핑 컨테이너입니다.
    header title 및 actions 부분을 포함하는 타일의 헤더 컨테이너입니다.
    title 제목 컨테이너입니다.
    actions actions 컨테이너입니다.
    content-container 타일 기본 슬롯을 래핑하는 컨테이너입니다.
    trigger-side The horizontal adorner.
    trigger The diagonal adorner
    trigger-bottom The vertical adorner.

    이러한 CSS 부분을 사용하여 다음과 같이 두 구성 요소의 모양을 사용자 지정할 수 있습니다.

    igc-tile-manager::part(base) {
      background-color: var(--ig-surface-900);
    }
    
    igc-tile::part(content-container) {
      color: var(--ig-secondary-200);
    }
    
    igc-tile::part(header) {
      background-color: var(--ig-gray-300);
    }
    
    igc-tile::part(title) {
      color: var(--ig-primary-400);
    }
    
    igc-tile:nth-child(n+2)::part(trigger-side),
    igc-tile:nth-child(n+2)::part(trigger-bottom) {
      background-color: var(--ig-success-500);
    }
    
    igc-tile:nth-child(n+2)::part(trigger) {
      background-color: var(--ig-error-500);
    }
    

    장식자 아이콘을 the,,side-adorner andcorner-adorner slots를 사용bottom-adorner 해 커스텀으로 변경할 수도 있습니다. 예를 들어:

    <IgrTile>
      <IgrIcon slot="side-adorner" className="side" name="indicator"></IgrIcon>
      <IgrIcon slot="corner-adorner" className="corner" name="indicator"></IgrIcon>
      <IgrIcon slot="bottom-adorner" className="bottom" name="indicator"></IgrIcon>
      <span slot="title">Tile header</span>
    </IgrTile>
    

    API Reference

    Additional Resources