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

85 lines
1.8 KiB
JavaScript
Raw Normal View History

2021-08-18 20:51:15 +02:00
"use strict";
2019-06-08 17:20:51 +02:00
2021-08-18 20:51:15 +02:00
import $ from "jquery";
2019-06-08 17:20:51 +02:00
2021-08-18 20:51:15 +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
2021-08-18 20:51:15 +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 = (($) => {
2021-08-18 20:51:15 +02:00
const NAME = "jsJqteUI";
2019-06-08 17:20:51 +02:00
const DATA_KEY = NAME;
const jqteOptions = {
color: false,
fsize: false,
2021-08-18 20:51:15 +02:00
funit: "em",
2019-06-08 17:20:51 +02:00
format: false,
rule: false,
source: false,
sub: false,
sup: false,
};
class JqteUI {
constructor(element) {
2020-12-24 23:42:33 +01:00
console.log(`${NAME}: init`);
2020-09-09 17:40:58 +02:00
2019-06-08 17:20:51 +02:00
const ui = this;
const $element = $(element);
2021-08-18 20:51:15 +02:00
const validationUI = $element.data("jsFormValidateField");
2019-06-08 17:20:51 +02:00
ui._element = element;
$element.data(DATA_KEY, this);
$element.jqte(jqteOptions);
// dynamic error control
if (validationUI) {
2020-12-24 23:42:33 +01:00
$element
2021-08-18 20:51:15 +02:00
.parents(".jqte")
.find(".jqte_editor")
.on("change", (e) => {
2020-12-24 23:42:33 +01:00
validationUI.validate();
});
2019-06-08 17:20:51 +02:00
}
}
static dispose() {
2020-09-09 17:40:58 +02:00
console.log(`${NAME}: dispose`);
2019-06-08 17:20:51 +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
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;
2020-12-24 23:42:33 +01:00
$.fn[NAME].noConflict = function () {
2019-06-08 17:20:51 +02:00
$.fn[NAME] = JQUERY_NO_CONFLICT;
return JqteUI._jQueryInterface;
};
// auto-apply
$(window).on(`${Events.AJAX} ${Events.LOADED}`, () => {
2021-08-18 20:51:15 +02:00
$("textarea.jqte-field").jsJqteUI();
2019-06-08 17:20:51 +02:00
});
return JqteUI;
})($);
export default JqteUI;