j-Paper
El componente edita un documento como una matriz de objetos de widget. Vincule una ruta de modelo a esa matriz, configure el repositorio de widgets y use el guardado automático para escribir las ediciones en el modelo.
- la salida es una estructura simple
Object Array:[{ id: String, widget: String, newbie: Boolean, changed: Boolean, config: Object }]
- repositorio de widgets: https://github.com/totaljs/parts/tree/main/paper
Configuración:
readonly {Number}habilita/deshabilita el modo de solo lectura0=disabled,1=partially enabled,2=fully enabledparent {String}opcional, un elemento principal para altura mínima (predeterminado:null)margin {Number}margen adicional para altura mínima (predeterminado:0)autosave {Boolean}los cambios se serializan según la ruta automáticamentewidgets {String}un enlace a los widgets (predeterminado: Componentator CDN)- puede contener varias direcciones divididas por la coma
mywidget1.html,/mywidget2.html,etc.. - o puedes conservar estructura CDN
- puede contener varias direcciones divididas por la coma
icon {String}un enlace alfunction(opt, callback)opt.element {jQuery element}- IMPORTANTE: llame al argumento
callbacksi el icono ha sido cambiado en el elemento
link {String}un enlace alfunction(opt)opt.element {jQuery element}opt.href {String}opt.target {String}opt.widget {Object}una instancia de widget
command {String}un enlace alfunction(cmd)cmd.widget {Object}una instancia de widget temporalcmd.widgets {Array}una lista de widgets registradoscmd.remove() {Function}elimina el widgetcmd.append(name)reemplaza el widget temporal actual con un nuevo widget (namenombre del widget)
format {String}un enlace alfunction(toolbar)toolbarpuede sernulltoolbar.element {jQuery element}un elemento actualtoolbar.node {HTML element}un elemento actualtoolbar.widget {Object}una instancia de widgettoolbar.style {Object}contiene un estilo actual, p.bold: 1, link: 1
upload {String}un enlace alfunction(opt, callback)opt.accept {String}opcionalopt.files {FileList}opcionalopt.multiple {Boolean}opcional, predeterminado:falseopt.width {Number}opcionalopt.height {Number}opcional- IMPORTANTE: El argumento
callbackdebe ejecutarse después de la carga con el argumentofiles {Array}.
change {String}un enlace alfunction(change)- Identificador
change.id {String} change.block {String}un identificador de bloquechange.blockprev {String}un identificador de bloque anteriorchange.widget {String}una identificación de widgetchange.type {String}tipo de operación (insertar, actualizar, eliminar)
- Identificador
contextmenu {String}un enlace alfunction(widget)cuando el usuario presiona el botón derecho del mouse en el widgetcheck {String}un enlace alfunction(widget)que decide si habilitar la edición o noplaceholder {String}un marcador de posición para el widget HTML predeterminado (predeterminado:Press / for adding rich content)
Métodos:
component.save(function(data, ischange) {para guardar contenidocomponent.import(url or url_array, [callback])para importar widgets adicionalescomponent.notify(event, [a], [b], [c], [d])emite eventos en cada widget
Es bueno saberlo:
El componente crea una variable global llamada window.papercache {Object} utilizada por todas las instancias j-Paper.
- el componente compara el contenido cuando cambia los datos, por lo que puede cambiar los datos en tiempo real
- el componente asigna (en el formato) la clase
paper-yourwidgetnamea cada elemento del widget - clases HTML reservadas
readonly,widget,selected- uso de solo lectura:
.readonly .paper-yourwidgetname { ... }
- uso de solo lectura:
htmlelement.$widget {Object}contiene una instancia de widget- El método
widget.remove()eliminará el widget.
- El método
Atajos en la edición de texto:
CMD + mresalta el textoCMD + lcrea un enlaceCMD + pagrega un íconoCMD + bnegritaCMD + icursivaCMD + usubrayado
Es bueno saberlo:
- El atributo
[data-prevent]puede evitar el evento de clic en el widget
Uso
<ui-component name="paper" path="form.widgets"
config="autosave:true;widgets:/paper/db.json"></ui-component>
<script>
SET('form.widgets', []);
function saveDocument() {
SETTER('paper/save', function(widgets) {
console.log(widgets);
});
}
</script>Entregue el índice del widget en /paper/db.json y sus archivos de widget desde su aplicación. La devolución de llamada para guardar recibe la matriz de widgets serializados.
Fuente: Total.js componentes. Copyright Peter Širka y colaboradores. Licencia MIT.