Ejemplo de personalización simple
Descubra cómo integrar estas personalizaciones en nuestra aplicación de AEM Guides.
Supongamos que queremos añadir este botón en una vista existente de la aplicación.
Para esto necesitamos 3 cosas básicas:
- El
id
del JSON de vista al que queremos agregar nuestro componente. - El
target
, es decir, la ubicación en el JSON al que queremos agregar el nuevo componente.target
se ha definido conkey
yvalue
. El par clave-valor puede ser cualquier atributo utilizado para definir el componente que pueda ayudar en la identificación única del mismo.
También podemos usar índices para hacer referencia al objetivo.
Tenemos 3 viewStates:APPEND
,PREPEND
,REPLACE
. - El JSON del componente recién creado y los métodos correspondientes.
AEM Supongamos que queremos añadir un botón al cuadro de herramientas de anotaciones utilizado en la revisión que abra el archivo en la vista de datos de.
export default {
id: 'annotation_toolbox',
view: {
items: [
{
component: 'button',
icon: 'linkOut',
title: 'Open topic in Assets view',
'on-click': 'openTopicInAEM',
target: {
key: 'value',
value: 'addcomment',
viewState: VIEW_STATE.APPEND
},
},
],
},
controller: {
openTopicInAEM: function (args) {
const topicIndex = tcx.model.getValue(tcx.model.KEYS.REVIEW_CURR_TOPIC)
const {allTopics = {}} = tcx.model.getValue(tcx.model.KEYS.REVIEW_DATA) || {}
tcx.appGet('util').openInAEM(allTopics[topicIndex])
},
},
}
En el ejemplo anterior tenemos:
- el
id
del JSON en el que queremos insertar nuestro componente, por ejemplo:annotation_toolbox
- el destino es el botón
addcomment
. Agregamos nuestro botón después del botónaddcomment
usando viewStateappend
. - Definimos el evento en el que se hace clic del botón en el controlador.
El JSON para "annotation_toolbox" .src/jsons/review_app/annotation_toolbox.json
Antes de la personalización, el cuadro de herramientas de anotación tenía este aspecto:
Después de la personalización, el cuadro de herramientas de anotación tiene este aspecto:
Adición de CSS
Para mantener la coherencia, proporcionamos el componente ya diseñado. El JSON insertado tendrá estilos inherentes aplicados
La forma principal de administrar css es mediante la clave extraClass en las extensiones.
{
"view":{
items:[
{
compoenent:"button",
extraClass:"underline bg-red",
}
]
}
}
Puede colocar estilos personalizados con clases CSS agregando un archivo css a clientlibs. Durante la compilación también creamos la salida Tailwind para las clases de utilidades en tailwind. La configuración para lo mismo se puede encontrar en tailwind.config.js
de la extensión en ./tailwind.config.js