%PDF- %PDF-
| Direktori : /home/opti/workflow/src/public/app-assets/vendors/formBuilder-master/src/js/control/ |
| Current File : /home/opti/workflow/src/public/app-assets/vendors/formBuilder-master/src/js/control/textarea.js |
import control from '../control';
/**
* Text input class
* Output a <input type="text" ... /> form element
*/
export default class controlTextarea extends control {
/**
* class configuration
*/
static get definition() {
return {
// mi18n custom mappings (defaults to camelCase type)
mi18n: {
textarea: 'textArea'
}
};
}
/**
* build a text DOM element, supporting other jquery text form-control's
* @return {Object} DOM Element to be injected into the form.
*/
build() {
const {value = '', ...attrs} = this.config;
this.field = this.markup('textarea', this.parsedHtml(value), attrs);
return this.field;
}
/**
* onRender callback
*/
onRender() {
// Set userData if available
if(this.config.userData){
$('#'+this.config.name).val(this.config.userData[0]);
}
}
/**
* extend the default events to add a prerender for textareas
* @param {String} eventType
* @return {Function} prerender function
*/
on(eventType) {
if (eventType == 'prerender' && this.preview) {
return (element) => {
if (this.field) {
element = this.field;
}
// if this is a preview, stop events bubbling up so the editor preview is clickable (and not draggable)
$(element).on('mousedown', (e) => {
e.stopPropagation();
});
};
}
return super.on(eventType);
}
}
// register the following controls
control.register('textarea', controlTextarea);
control.register('textarea', controlTextarea, 'textarea');