From f73f2356820468344757dbb9d7f3ec73ece7bf66 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 13 Feb 2023 20:43:51 +0100 Subject: Updating. Signed-off-by: Daniel Baumann --- web/_static/jsuites/jsuites.webcomponents.js | 501 +++++++++++++++++++++++++++ 1 file changed, 501 insertions(+) create mode 100644 web/_static/jsuites/jsuites.webcomponents.js (limited to 'web/_static/jsuites/jsuites.webcomponents.js') diff --git a/web/_static/jsuites/jsuites.webcomponents.js b/web/_static/jsuites/jsuites.webcomponents.js new file mode 100644 index 0000000..8cf7dcc --- /dev/null +++ b/web/_static/jsuites/jsuites.webcomponents.js @@ -0,0 +1,501 @@ + +/** + * (c) jSuites Javascript Web Components + * + * Website: https://jsuites.net + * Description: Create amazing web based applications. + * + * MIT License + * + */ + +class JsuitesCalendar extends HTMLElement { + constructor() { + // always call super() first + super(); + } + + init(o) { + // Create element + this.input = document.createElement('input'); + // Append to the DOM + o.appendChild(this.input); + // Place holder + var placeholder = o.getAttribute('placeholder'); + // Place holder + var format = o.getAttribute('format'); + // Place holder + var time = o.getAttribute('time'); + // Initial value + var value = o.getAttribute('value'); + if (value) { + this.input.value = value; + o.value = value; + } + // Component + jSuites.calendar(this.input, { + value: value ? value : null, + placeholder: placeholder ? placeholder : null, + format: format ? format : 'YYYY-MM-DD', + time: time ? true : false, + onchange: function(el, val) { + // Change value of the element + el.setAttribute('value', val); + o.setAttribute('value', val); + o.value = val; + // Basic HTML event + var s = o.getAttribute('onchange'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onchange"); + el.parentNode.dispatchEvent(e); + }, + onclose: function(el) { + // Basic HTML event + var s = o.getAttribute('onclose'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onclose"); + el.parentNode.dispatchEvent(e); + } + }); + } + + connectedCallback() { + if (! this.input) { + this.init(this); + } + } + + disconnectedCallback() { + } + + attributeChangedCallback(name, oldVal, newVal) { + } +} + +window.customElements.define('jsuites-calendar', JsuitesCalendar); + +class JsuitesColor extends HTMLElement { + constructor() { + // always call super() first + super(); + } + + init(o) { + // Create element + this.input = document.createElement('input'); + // Append to the DOM + o.appendChild(this.input); + // Place holder + var placeholder = o.getAttribute('placeholder'); + // Initial value + var value = o.getAttribute('value'); + if (value) { + o.value = value; + } + // Component + jSuites.color(this.input, { + value: value ? value : null, + placeholder: placeholder ? placeholder : null, + onchange: function(el, color) { + // Change value of the element + o.setAttribute('value', color); + o.value = color; + // Basic HTML event + var s = o.getAttribute('onchange'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onchange"); + el.parentNode.dispatchEvent(e); + }, + onclose: function(el) { + // Basic HTML event + var s = o.getAttribute('onclose'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onclose"); + el.parentNode.dispatchEvent(e); + } + }); + } + + connectedCallback() { + if (! this.input) { + this.init(this); + } + } + + disconnectedCallback() { + } + + attributeChangedCallback(name, oldVal, newVal) { + } +} + +window.customElements.define('jsuites-color', JsuitesColor); + +class JsuitesContextmenu extends HTMLElement { + constructor() { + // always call super() first + super(); + } + + init(o) { + this.el = jSuites.contextmenu(o, { + items: null, + onclick: function(a) { + a.close(); + } + }); + } + + connectedCallback() { + if (! this.el) { + this.init(this); + } + } + + disconnectedCallback() { + } + + attributeChangedCallback(name, oldVal, newVal) { + } +} + +window.customElements.define('jsuites-contextmenu', JsuitesContextmenu); + +class JsuitesEditor extends HTMLElement { + constructor() { + // always call super() first + super(); + } + + init(o) { + this.el = document.createElement('div'); + + // Options + var options = {}; + // Initial values + var toolbar = o.getAttribute('toolbar'); + if (toolbar) { + options.toolbar = toolbar; + } + + // Events + options.onload = function(el, obj) { + // Basic HTML event + var s = o.getAttribute('onload'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onload"); + el.dispatchEvent(e); + } + + options.onclick = function(el, obj) { + // Basic HTML event + var s = o.getAttribute('onclick'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onclick"); + el.dispatchEvent(e); + } + + options.onfocus = function(el, obj) { + // Basic HTML event + var s = o.getAttribute('onfocus'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onfocus"); + el.dispatchEvent(e); + } + + options.onblur = function(el, obj) { + // Basic HTML event + var s = o.getAttribute('onblur'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onblur"); + el.dispatchEvent(e); + } + + options.onclose = function(el, obj) { + // Basic HTML event + var s = o.getAttribute('onclose'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onclose"); + el.dispatchEvent(e); + } + + setTimeout(function() { + jSuites.editor(o, options); + }, 0); + } + + connectedCallback() { + if (! this.el) { + this.init(this); + } + } + + disconnectedCallback() { + } + + attributeChangedCallback(name, oldVal, newVal) { + } +} + +window.customElements.define('jsuites-editor', JsuitesEditor); + +class JsuitesModal extends HTMLElement { + constructor() { + // always call super() first + super(); + } + + init(o) { + this.el = document.createElement('div'); + + // Options + var options = {}; + // Initial values + var title = o.getAttribute('title'); + if (title) { + options.title = title; + } + var width = o.getAttribute('width'); + if (width) { + options.width = parseInt(width) + 'px'; + } + var height = o.getAttribute('height'); + if (height) { + options.height = parseInt(height) + 'px'; + } + var closed = o.getAttribute('closed'); + if (closed) { + options.closed = closed; + } + + // Events + options.onopen = function(el, obj) { + // Basic HTML event + var s = o.getAttribute('onopen'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onopen"); + el.dispatchEvent(e); + } + + options.onclose = function(el, obj) { + // Basic HTML event + var s = o.getAttribute('onclose'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onclose"); + el.dispatchEvent(e); + } + + setTimeout(function() { + jSuites.modal(o, options); + }, 0); + } + + connectedCallback() { + if (! this.el) { + this.init(this); + } + } + + disconnectedCallback() { + } + + attributeChangedCallback(name, oldVal, newVal) { + } +} + +window.customElements.define('jsuites-modal', JsuitesModal); + +class JsuitesRating extends HTMLElement { + constructor() { + // always call super() first + super(); + } + + init(o) { + // Initial values + var value = o.getAttribute('value') ? o.getAttribute('value') : null; + var number = o.getAttribute('number') ? o.getAttribute('number') : 5; + var tooltip = o.getAttribute('tooltip') ? o.getAttribute('tooltip') : null; + if (tooltip) { + tooltip = tooltip.split(','); + } else { + tooltip = [ 'Very bad', 'Bad', 'Average', 'Good', 'Very good' ]; + } + + jSuites.rating(o, { + value: value, + number: number, + tooltip: tooltip, + onchange: function(el, v) { + // Change value of the element + o.setAttribute('value', v); + o.value = v; + // Basic HTML event + var s = o.getAttribute('onchange'); + if (s) { + eval(s); + } + // Trigger event + var e = new CustomEvent("onchange"); + el.dispatchEvent(e); + } + }); + + // Initiated + this.initiated = true; + } + + connectedCallback() { + if (! this.initiated) { + this.init(this); + } + } + + disconnectedCallback() { + } + + attributeChangedCallback(name, oldVal, newVal) { + } +} + +window.customElements.define('jsuites-rating', JsuitesRating); + +class JsuitesTags extends HTMLElement { + constructor() { + // always call super() first + super(); + } + + init(o) { + // Initial values + var value = o.getAttribute('value') ? o.getAttribute('value') : null; + var limit = o.getAttribute('limit') ? o.getAttribute('limit') : null; + var search = o.getAttribute('search') ? o.getAttribute('search') : null; + var placeholder = o.getAttribute('placeholder') ? o.getAttribute('placeholder') : null; + + jSuites.tags(o, { + value: value, + limit: limit, + search: search, + placeholder: placeholder, + onbeforechange: function(el, obj, v) { + // Basic HTML event + var s = o.getAttribute('onbeforechange'); + if (s) { + var newValue = eval(s); + if (newValue != null) { + return newValue; + } + } else { + // Trigger event + var e = new CustomEvent("onbeforechange"); + el.dispatchEvent(e); + } + }, + onchange: function(el, obj, v) { + var newValue = obj.getValue(); + // Change value of the element + o.setAttribute('value', newValue); + o.value = newValue; + // Basic HTML event + var s = o.getAttribute('onchange'); + if (s) { + eval(s); + } else { + // Trigger event + var e = new CustomEvent("onchange"); + el.dispatchEvent(e); + } + }, + onfocus: function(el, obj, v) { + // Basic HTML event + var s = o.getAttribute('onfocus'); + if (s) { + eval(s); + } else { + // Trigger event + var e = new CustomEvent("onfocus"); + el.dispatchEvent(e); + } + }, + onblur: function(el, obj, v) { + var newValue = obj.getValue(); + // Change value of the element + o.setAttribute('value', newValue); + o.value = newValue; + // Basic HTML event + var s = o.getAttribute('onblur'); + if (s) { + eval(s); + } else { + // Trigger event + var e = new CustomEvent("onblur"); + el.dispatchEvent(e); + } + }, + onload: function(el, obj) { + // Basic HTML event + var s = o.getAttribute('onload'); + if (s) { + eval(s); + } else { + // Trigger event + var e = new CustomEvent("onload"); + el.dispatchEvent(e); + } + } + }); + + // Initiated + this.initiated = true; + } + + connectedCallback() { + if (! this.initiated) { + this.init(this); + } + } + + disconnectedCallback() { + } + + attributeChangedCallback(name, oldVal, newVal) { + } +} + +window.customElements.define('jsuites-tags', JsuitesTags); + + -- cgit v1.2.3