j-Paper
O componente edita um documento como uma série de objetos de widget. vincular uma rota de modelo a essa linha, configurar o repository de widgets e usar autosave para escrever editores de volta ao modelo.
- A produção é uma estrutura simples de
Object Array:[{ id: String, widget: String, newbie: Boolean, changed: Boolean, config: Object }]
- Reserva de widgets: https://github.com/totaljs/parts/tree/main/paper
Configuração:
readonly {Number}permite/disabilita o modo readonly0=disabled,1=partially enabled,2=fully enabledparent {String}opcional, um elemento parental para min-altura (default:null)- Margem adicional de
margin {Number}para min-altura (default:0) - As mudanças de
autosave {Boolean}são serializadas de acordo com o caminho automaticamente widgets {String}um link para os widgets (default: Componentator CDN)- Pode conter vários endereços divididos pelo comma
mywidget1.html,/mywidget2.html,etc.. - Ou você pode manter Estrutura do CDN
- Pode conter vários endereços divididos pelo comma
icon {String}um link para ofunction(opt, callback)opt.element {jQuery element}- IMPORTANT: chame o argumento
callbackse a icona foi alterada no elemento
link {String}um link para ofunction(opt)opt.element {jQuery element}opt.href {String}opt.target {String}opt.widget {Object}uma instância de widget
command {String}um link para ofunction(cmd)cmd.widget {Object}é um widget temporáriocmd.widgets {Array}uma lista de widgets registadoscmd.remove() {Function}remove o widgetcmd.append(name)substitui o widget temporário com um novo widget (nome do widgetname)
format {String}um link para ofunction(toolbar)toolbarpode sernulltoolbar.element {jQuery element}um elemento atualtoolbar.node {HTML element}um elemento atualtoolbar.widget {Object}uma instância de widgettoolbar.style {Object}contém um estilo atual, por exemplo,bold: 1, link: 1
upload {String}um link para ofunction(opt, callback)opt.accept {String}opcionalopt.files {FileList}opcionalopt.multiple {Boolean}opcional, padrão:falseopt.width {Number}opcionalopt.height {Number}opcional- IMPORTANTE: o argumento
callbackdeve ser executado após o upload com o argentofiles {Array}
change {String}um link para ofunction(change)- Identificação de
change.id {String} change.block {String}um identificador de blocochange.blockprev {String}um identificador de bloco anteriorchange.widget {String}um widget ID- Tipo de operação
change.type {String}(inserir, atualizar, remover)
- Identificação de
contextmenu {String}um link para ofunction(widget)quando o usuário pressionou o botão direito do mouse no widgetcheck {String}um link para ofunction(widget)que decide se permitir a edição ou nãoplaceholder {String}um local para o widget HTML padrão (default:Press / for adding rich content)
Métodos:
component.save(function(data, ischange) {para o conteúdocomponent.import(url or url_array, [callback])para a importação de widgets adicionaiscomponent.notify(event, [a], [b], [c], [d])emite evento em cada widget
Bom para saber:
O componente cria uma variável global chamada window.papercache {Object} usada por todos os casos de j-Paper.
- O componente compara o conteúdo quando você muda dados, para que você possa mudar dados em tempo real
- O componente atribui (no formato) classe
paper-yourwidgetnamea cada elemento do widget - Classificação de HTML
readonly,widget,selected- Utilização:
.readonly .paper-yourwidgetname { ... }
- Utilização:
htmlelement.$widget {Object}contém uma instância widget- O método
widget.remove()irá remover o widget
- O método
Curtas em texto edit:
CMD + mé um textoCMD + lcria um linkCMD + padiciona um íconeCMD + b- ObrigadoCMD + iem portuguêsCMD + uem linha
Bom para saber:
- O atributo
[data-prevent]pode impedir o evento de clique no 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>Servir o índice de widget em /paper/db.json e seus arquivos de widgets da sua aplicação.
Fonte da fonte: Componentes Total.jsCopyright Peter Širka e contribuintes. A licença.