webpack-bootstrap-ui-kit/src/js_old/_components/_ui.form.jqte.js

85 lines
1.8 KiB
JavaScript
Raw Normal View History

2022-05-03 20:50:57 +02:00
'use strict'
2019-06-08 17:20:51 +02:00
2022-05-03 20:50:57 +02:00
import $ from 'jquery'
2019-06-08 17:20:51 +02:00
2022-05-03 20:50:57 +02:00
import Events from '../_events'
import Spinner from '../_components/_ui.spinner'
import FormValidateField from './_ui.form.validate.field'
2019-12-02 16:33:28 +01:00
2022-05-03 20:50:57 +02:00
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'
2019-12-02 16:33:28 +01:00
2019-06-08 17:20:51 +02:00
const JqteUI = (($) => {
2022-05-03 20:50:57 +02:00
const NAME = 'jsJqteUI'
const DATA_KEY = NAME
2019-06-08 17:20:51 +02:00
const jqteOptions = {
color: false,
fsize: false,
2022-05-03 20:50:57 +02:00
funit: 'em',
2019-06-08 17:20:51 +02:00
format: false,
rule: false,
source: false,
sub: false,
sup: false,
2022-05-03 20:50:57 +02:00
}
2019-06-08 17:20:51 +02:00
class JqteUI {
2022-05-03 20:50:57 +02:00
constructor (element) {
console.log(`${NAME}: init`)
2020-09-09 17:40:58 +02:00
2022-05-03 20:50:57 +02:00
const ui = this
const $element = $(element)
const validationUI = $element.data('jsFormValidateField')
2019-06-08 17:20:51 +02:00
2022-05-03 20:50:57 +02:00
ui._element = element
$element.data(DATA_KEY, this)
$element.jqte(jqteOptions)
2019-06-08 17:20:51 +02:00
// dynamic error control
if (validationUI) {
2020-12-24 23:42:33 +01:00
$element
2022-05-03 20:50:57 +02:00
.parents('.jqte')
.find('.jqte_editor')
.on('change', (e) => {
validationUI.validate()
})
2019-06-08 17:20:51 +02:00
}
}
2022-05-03 20:50:57 +02:00
static dispose () {
console.log(`${NAME}: dispose`)
2019-06-08 17:20:51 +02:00
}
2022-05-03 20:50:57 +02:00
static _jQueryInterface () {
2020-12-24 23:42:33 +01:00
return this.each(function () {
2019-06-08 17:20:51 +02:00
// attach functionality to element
2022-05-03 20:50:57 +02:00
const $element = $(this)
let data = $element.data(DATA_KEY)
2019-06-08 17:20:51 +02:00
if (!data) {
2022-05-03 20:50:57 +02:00
data = new JqteUI(this)
$element.data(DATA_KEY, data)
2019-06-08 17:20:51 +02:00
}
2022-05-03 20:50:57 +02:00
})
2019-06-08 17:20:51 +02:00
}
}
// jQuery interface
2022-05-03 20:50:57 +02:00
$.fn[NAME] = JqteUI._jQueryInterface
$.fn[NAME].Constructor = JqteUI
2020-12-24 23:42:33 +01:00
$.fn[NAME].noConflict = function () {
2022-05-03 20:50:57 +02:00
$.fn[NAME] = JQUERY_NO_CONFLICT
return JqteUI._jQueryInterface
}
2019-06-08 17:20:51 +02:00
// auto-apply
$(window).on(`${Events.AJAX} ${Events.LOADED}`, () => {
2022-05-03 20:50:57 +02:00
$('textarea.jqte-field').jsJqteUI()
})
2019-06-08 17:20:51 +02:00
2022-05-03 20:50:57 +02:00
return JqteUI
})($)
2019-06-08 17:20:51 +02:00
2022-05-03 20:50:57 +02:00
export default JqteUI