'use strict' import $ from 'jquery' import Events from '../_events' import Spinner from '../_components/_ui.spinner' import FormValidateField from './_ui.form.validate.field' import '../../thirdparty/jQuery-TE_v.1.4.0/jquery-te-1.4.0.css' import '../../thirdparty/jQuery-TE_v.1.4.0/uncompressed/jquery-te-1.4.0.js' const JqteUI = (($) => { const NAME = 'jsJqteUI' const DATA_KEY = NAME const jqteOptions = { color: false, fsize: false, funit: 'em', format: false, rule: false, source: false, sub: false, sup: false, } class JqteUI { constructor (element) { console.log(`${NAME}: init`) const ui = this const $element = $(element) const validationUI = $element.data('jsFormValidateField') ui._element = element $element.data(DATA_KEY, this) $element.jqte(jqteOptions) // dynamic error control if (validationUI) { $element .parents('.jqte') .find('.jqte_editor') .on('change', (e) => { validationUI.validate() }) } } static dispose () { console.log(`${NAME}: dispose`) } static _jQueryInterface () { return this.each(function () { // attach functionality to element const $element = $(this) let data = $element.data(DATA_KEY) if (!data) { data = new JqteUI(this) $element.data(DATA_KEY, data) } }) } } // jQuery interface $.fn[NAME] = JqteUI._jQueryInterface $.fn[NAME].Constructor = JqteUI $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT return JqteUI._jQueryInterface } // auto-apply $(window).on(`${Events.AJAX} ${Events.LOADED}`, () => { $('textarea.jqte-field').jsJqteUI() }) return JqteUI })($) export default JqteUI