Descripción general de Web Components Tile Manager
El componente Administrador de mosaicos de Web Components permite la visualización de contenido en mosaicos individuales. Permite a los usuarios interactuar con estos mosaicos reorganizándolos y cambiando su tamaño, dándoles la libertad de personalizar el diseño y la apariencia del contenido según sus preferencias. Esta flexibilidad mejora la experiencia del usuario al permitir una forma más personalizada y eficiente de ver y administrar el contenido.
Web Components Tile Manager Example
El siguiente ejemplo de administrador de mosaicos de Ignite UI for Web Components muestra el componente en acción.
Like this sample? Get access to our complete Ignite UI for Web Components toolkit and start building your own apps in minutes. Download it for free.
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
El Administrador de mosaicos proporciona un comportamiento de diseño de mosaico base, administrando la ubicación de los mosaicos en estado maximizado o normal. Las baldosas pueden tener un tamaño independiente entre sí y se pueden utilizar para formar diseños complejos. Los usuarios finales pueden reordenar los mosaicos arrastrándolos y soltándolos, lo que proporciona una experiencia flexible e intuitiva.
El Tile Manager ofrece dos componentes que podemos utilizar:
TileComponent- Este componente representa un mosaico individual que se muestra dentro del Administrador de mosaicos.
TileManagerComponent- Este es el componente principal que contiene todos los componentes de la baldosa, sirviendo como contenedor para todo el diseño de la tesela.
Empezando
Para comenzar a usar el Administrador de mosaicos, primero debe instalar el Ignite UI for Web Components ejecutando el siguiente comando:
npm install igniteui-webcomponents
cmd
Antes de usar el Administrador de mosaicos, debe importarlo de la siguiente manera:
Para obtener una introducción completa a Ignite UI for Web Components, lea el tema Primeros pasos.
Layout
Columns and Rows
Podemos especificar el número de columnas de la cuadrícula para nuestro Administrador de mosaicos. Para ello, basta con establecer la column-count propiedad en el número deseado de columnas. Si el número es menor que uno o la propiedad no está establecida, el Administrador de mosaicos creará tantas columnas como quepa, cada columna tendrá al menos 200 px de ancho y se expandirá para compartir equitativamente el espacio disponible. Cuando cambian las dimensiones de la ventanilla, los mosaicos también se reorganizarán para maximizar el uso del espacio.
<igc-tile-managercolumn-count="2"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile>
...
</igc-tile-manager>html
En este fragmento de código, los tres mosaicos del Administrador de mosaicos se organizarán en 2 filas y 2 columnas.
Gap
Otra propiedad que se puede utilizar en el Administrador de mosaicos es la gap propiedad, que define el espacio entre mosaicos. El valor de la gap propiedad debe ser un número seguido de una unidad de longitud (por ejemplo, px, rem, em, ...). Este valor se aplicará tanto al espacio horizontal (ancho) como al espacio vertical (alto) entre mosaicos.
<igc-tile-managergap="20px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile>
...
</igc-tile-manager>html
Minimum width and height
También tenemos propiedades para establecer el ancho mínimo de las columnas (min-column-width) y la altura mínima de las filas (min-row-height) en el Administrador de mosaicos. De forma similar a la propiedad gap, los valores de estas propiedades deben ser un número seguido de una unidad de longitud. Estos valores definirán el ancho mínimo para todas las columnas y la altura mínima para todas las filas en el Administrador de mosaicos.
<igc-tile-managermin-column-width="200px"min-row-height="150px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile>
...
</igc-tile-manager>html
<!DOCTYPE html><html><head><title>Tile Manager Columns</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><divclass="inputWrapper"><igc-inputlabel="Columns Number"id="rowIn"type='number'value="0"min="0"></igc-input><igc-inputlabel="Gap Size"type='string'placeholder="10px"></igc-input></div><igc-tile-managergap="10px"><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1048/998"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1049/999"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1050/1000"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1051/1001"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1052/1002"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1053/1003"alt="picture" /></div></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
El componente Mosaico tiene propiedades que se pueden establecer individualmente para cada mosaico. Algunas de estas propiedades incluyen:
La col-span propiedad especifica el número de columnas que abarcará el mosaico en el diseño, lo que le permite controlar su tamaño horizontal.
La row-span propiedad determina el número de filas que se extenderá verticalmente el mosaico, ajustando la altura del mosaico dentro del diseño.
La col-start propiedad especifica la columna inicial donde se coloca el mosaico.
La row-start propiedad especifica la fila inicial en la que se coloca el mosaico.
La disable-fullscreen propiedad oculta el botón de acción de pantalla completa predeterminado.
La disable-maximize propiedad oculta el botón de acción de alternancia de maximización predeterminado.
La disable-resize propiedad impide que el usuario cambie el tamaño del icono.
<igc-tile-manager><igc-tilecol-span="2"disable-resize><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile>
...
</igc-tile-manager>html
El componente Tile también expone varias ranuras que se pueden utilizar:
Nombre de la ranura
Descripción
title
Contenido del encabezado del icono.
fullscreen-action
Sobrescribe el contenido predeterminado de la acción a pantalla completa.
maximize-action
Overwrite the default maximize action content.
actions
Contenido personalizado renderizado después de las acciones predeterminadas.
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
De forma predeterminada, la sección de encabezado incluye dos botones de acción:
El maximize botón amplía el contenido del mosaico para ocupar todo el ancho del Administrador de mosaicos, lo que ofrece una vista más amplia del contenido.
El fullscreen botón permite que el icono se abra en modo de pantalla completa en el explorador del usuario.
Si desea mostrar solo uno de los dos botones, puede establecer una disable-maximize propiedad o disable-fullscreen. Para personalizar la apariencia, puede usar la maximize-action ranura para el botón maximizar o la fullscreen-action ranura para el botón de pantalla completa.
<igc-tile-manager><igc-tiledisable-fullscreen><igc-icon-buttonslot="maximize-actions"name="north_east"collection="material"></igc-icon-button><p>Content for Tile 1</p></igc-tile></igc-tile-manager>html
También tienes la opción de desactivar ambos botones de acción y crear otros personalizados según tus preferencias.
<!DOCTYPE html><html><head><title>Tile Manager Actions</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><igc-tile-managerid="tile-manager1"column-count="2"gap="20px"><igc-tile ><h3slot="title">Default Actions</h3><p>This tile has default actions and title.</p></igc-tile><igc-tiledisable-fullscreen><h3slot="title">No Fullscreen Action</h3><p>Fullscreen is disabled via property.</p></igc-tile><igc-tiledisable-fullscreendisable-maximize><h3slot="title">Custom Actions</h3><igc-icon-buttonid="customOne"slot="actions"variant="flat"collection="material"exportparts="icon"name="north_east"aria-label="north_east"></igc-icon-button><p>Replace the default actions with custom ones, and include extra actions when the tile is maximized.</p></igc-tile><igc-tiledisable-fullscreendisable-maximize><igc-icon-buttonid="customTwo"slot="actions"variant="flat"collection="material"exportparts="icon"name="north_east"></igc-icon-button><p>Display only custom actions in the header.</p></igc-tile><igc-tiledisable-fullscreendisable-maximize><h3slot="title">Only title</h3><p>Display only title in the header.</p></igc-tile><igc-tiledisable-fullscreendisable-maximize><p>Content only.</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
En este ejemplo, hemos creado botones de acción personalizados mediante el componente Botón de icono Ignite UI.
Resizing
El cambio de tamaño en el Administrador de mosaicos es una funcionalidad que permite cambiar el tamaño de los mosaicos mediante tres adornos de cambio de tamaño diferentes.
Adorno lateral: Ajusta la anchura modificando el tramo de la columna.
Adorno inferior: Ajusta la altura modificando el intervalo de la fila.
Adorno de esquina: Ajusta la anchura y la altura simultáneamente.
Para garantizar un cambio de tamaño suave, se utiliza un elemento fantasma en lugar de modificar directamente las dimensiones del mosaico. Este elemento aparece en la parte superior del mosaico original, mostrando sus dimensiones actuales cuando comienza el cambio de tamaño, y se actualiza en tiempo real a medida que el usuario arrastra cualquiera de los controladores de cambio de tamaño.
If the ghost element exceeds the available grid space, it will automatically adjust to the largest possible span within the grid's limits.
El Administrador de mosaicos se reorganiza automáticamente cuando un mosaico cambia de tamaño, lo que garantiza que haya un espacio vacío mínimo. Es por eso que la expansión de un mosaico puede empujar a los mosaicos adyacentes a nuevas posiciones, mientras que la contracción crea espacios que otros mosaicos pueden llenar dinámicamente. Esto garantiza que el Administrador de mosaicos permanezca lo más compacto posible, sin mosaicos superpuestos, y que todos los movimientos permanezcan dentro de la estructura de cuadrícula definida.
Podemos usar la propiedad para controlar cómo se aplica el resize-mode cambio de tamaño en el Administrador de mosaicos. Se puede establecer en,o none always, hover que determina cuándo son visibles los adornos de cambio de tamaño. El valor predeterminado es none y no se pudo cambiar el tamaño del mosaico.
<!DOCTYPE html><html><head><title>Tile Manager Resize</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><divclass="inputWrapper"><igc-radio-groupid="resize"alignment="horizontal"><igc-radioname="resize"value="Always"checked>Always</igc-radio><igc-radioname="resize"value="Hover">Hover</igc-radio><igc-radioname="resize"value="None">None</igc-radio></igc-radio-group><igc-inputlabel="Minimum Column Width"placeholder="200px"type='string'></igc-input><igc-inputlabel="Minimum Row Height"placeholder="200px"type='string'></igc-input></div><igc-tile-managerresize-mode="always"gap="20px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile><igc-tile><spanslot="title">Tile 4 header</span><p>Content for Tile 4</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
Existen varias restricciones y limitaciones en el proceso de cambio de tamaño:
No se puede cambiar el tamaño de un icono más pequeño que su ancho o alto mínimos definidos (minColWidth, minRowHeight).
Un mosaico no puede exceder el espacio horizontal máximo disponible en la cuadrícula.
Reorder
Puede reordenar los mosaicos en el Administrador de mosaicos mediante la función de arrastrar y soltar. De forma predeterminada, los mosaicos no se pueden arrastrar. Para habilitar esta funcionalidad, establezca la drag-mode propiedad en el Administrador de mosaicos en o tile. tile-header
Con la tile opción, puede hacer clic y mantener presionado en cualquier lugar de un mosaico individual para comenzar a arrastrarlo.
Con la tile-header opción, solo puede hacer clic y mantener presionada la sección del encabezado del mosaico para iniciar el proceso de arrastre.
While the tile is in maximized or fullscreen state, the tile cannot be dragged.
Al igual que con el cambio de tamaño, cuando inicias el proceso de arrastrar y soltar, aparece un elemento fantasma debajo del mosaico que has agarrado. A medida que arrastra el mosaico, el elemento fantasma se mueve con él, reordenando dinámicamente los otros mosaicos en tiempo real. Esto le permite obtener una vista previa de cómo se verá la cuadrícula de mosaicos cuando suelte el mosaico.
<igc-tile-managerdrag-mode="tile-header"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile></igc-tile-manager>html
<!DOCTYPE html><html><head><title>Tile Manager Drag and drop</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><divclass="radioWrapper"><igc-radio-groupid="dragMode"alignment="horizontal"><igc-radioname="dragMode"value="TileHeader"checked>Tile-header</igc-radio><igc-radioname="dragMode"value="Tile">Tile</igc-radio><igc-radioname="dragMode"value="None">None</igc-radio></igc-radio-group></div><igc-tile-managerdrag-mode="tile-header"drag-action="slide"column-count="2"gap="20px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile><igc-tile><spanslot="title">Tile 4 header</span><p>Content for Tile 4</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
El Administrador de mosaicos proporciona métodos que ayudan a administrar el diseño de los mosaicos:
El saveLayout método le permite guardar la disposición actual de las fichas en el Administrador de fichas, captura el orden actual, el tamaño y la posición de todas las fichas, para que luego pueda restaurarlas a esta configuración exacta.
El loadLayout método le permite cargar un diseño guardado previamente. Cuando se llama, restaura las baldosas al estado exacto en el que se encontraban cuando se guardó el diseño, incluido su orden, tamaño y posición.
<!DOCTYPE html><html><head><title>Tile Manager Layout</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><divclass="btnWrapper"><igc-buttonid="saveL">Save Layout</igc-button><igc-buttonid="loadL">Load Layout</igc-button><igc-buttonid="addT">Add Tile</igc-button><igc-buttonid="remT">Remove Tile</igc-button></div><igc-tile-managerresize-mode="always"id="tile-manager1"drag-mode="tile"column-count="2"gap="20px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile><igc-tile><spanslot="title">Tile 4 header</span><p>Content for Tile 4</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
También puede personalizar la apariencia de los dos componentes -Tile Manager y Tile. Expone Tile Manager solo una propiedad CSS, base que se puede usar para diseñar el contenedor base del Administrador de mosaicos. El Tile componente expone varias propiedades CSS que podemos usar:
Nombre de la pieza
Descripción
base
Contenedor de envoltura del componente de mosaico.
header
El contenedor de encabezado del icono, incluidas las partes de título y acciones.
title
El contenedor de títulos.
actions
El contenedor de acciones.
content-container
El contenedor que envuelve la ranura predeterminada del mosaico.
trigger-side
The horizontal adorner.
trigger
The diagonal adorner
trigger-bottom
The vertical adorner.
Con estos elementos CSS, puede personalizar la apariencia de los dos componentes de la siguiente manera:
También puede cambiar el icono de los adornos a uno personalizado usando las side-adorner ranuras , corner-adorner, y bottom-adorner. Para ello, cree un igc-icon elemento dentro del elemento tile. A continuación, establezca su ranura en uno de los tres adornos y especifique el nombre del icono que desea utilizar.
<!DOCTYPE html><html><head><title>Tile Manager Styling</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><igc-tile-managercolumn-count="2"gap="20px"resize-mode="always"><igc-tile><igc-iconslot="side-adorner"class="side"name="indicator"></igc-icon><igc-iconslot="corner-adorner"class="corner"name="indicator"></igc-icon><igc-iconslot="bottom-adorner"class="bottom"name="indicator"></igc-icon><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile><igc-tile><spanslot="title">Tile 4 header</span><p>Content for Tile 4</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css