diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..f17024c --- /dev/null +++ b/.babelrc @@ -0,0 +1,7 @@ +{ + "presets": [ + [ + "@babel/preset-env" + ] + ] +} \ No newline at end of file diff --git a/build/iui.js b/build/iui.js new file mode 100644 index 0000000..e940907 --- /dev/null +++ b/build/iui.js @@ -0,0 +1,9072 @@ +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 2 && _args3[2] !== undefined ? _args3[2] : false; + + if (element.bindings) { + _context3.next = 3; + break; + } + + return _context3.abrupt("return"); + + case 3: + if (!textNodesOnly) { + _context3.next = 14; + break; + } + + i = 0; + + case 5: + if (!(i < element.bindings.length)) { + _context3.next = 12; + break; + } + + if (!(element.bindings[i].type == _Binding.BindingType.TextNode)) { + _context3.next = 9; + break; + } + + _context3.next = 9; + return element.bindings[i].render(data); + + case 9: + i++; + _context3.next = 5; + break; + + case 12: + _context3.next = 21; + break; + + case 14: + i = 0; + + case 15: + if (!(i < element.bindings.length)) { + _context3.next = 21; + break; + } + + _context3.next = 18; + return element.bindings[i].render(data); + + case 18: + i++; + _context3.next = 15; + break; + + case 21: + i = 0; + + case 22: + if (!(i < element.children.length)) { + _context3.next = 48; + break; + } + + _el2 = element.children[i]; + + if (!(_el2 instanceof _IUIElement["default"])) { + _context3.next = 37; + break; + } + + if (!(_el2.dataMap != null)) { + _context3.next = 33; + break; + } + + _context3.next = 28; + return _el2.dataMap.render(data); + + case 28: + if (_context3.sent) { + _context3.next = 31; + break; + } + + _context3.next = 31; + return _el2.render(); + + case 31: + _context3.next = 35; + break; + + case 33: + _context3.next = 35; + return _el2.setData(data); + + case 35: + _context3.next = 45; + break; + + case 37: + if (!(_el2.dataMap != null)) { + _context3.next = 42; + break; + } + + _context3.next = 40; + return _el2.dataMap.render(data); + + case 40: + _context3.next = 43; + break; + + case 42: + _el2.data = data; + + case 43: + _context3.next = 45; + return IUI.render(_el2, _el2.data); + + case 45: + i++; + _context3.next = 22; + break; + + case 48: + case "end": + return _context3.stop(); + } + } + }, _callee3); + })); + + function render(_x3, _x4) { + return _render.apply(this, arguments); + } + + return render; + }() + }]); + + return IUI; +}(); + +exports.IUI = IUI; + +_defineProperty(IUI, "_menus", []); + +_defineProperty(IUI, "views", []); + +_defineProperty(IUI, "modules", {}); + +_defineProperty(IUI, "registry", []); + +_defineProperty(IUI, "observer", new IntersectionObserver(function (entries) { + // isIntersecting is true when element and viewport are overlapping + // isIntersecting is false when element and viewport don't overlap + for (var i = 0; i < entries.length; i++) { + if (entries[i].isIntersecting) { + if (entries[i]._require_update) entries[i].update(); + } + } +}, { + threshold: [0] +})); + +; + +function iui(selector) { + return IUI.get(selector); + /* + if ((typeof selector === 'string' || selector instanceof String) && selector.length > 0) + { + var els = document.querySelectorAll(selector); + } + else + { + var els = IUI.get(selector); + if (els != null) + + } + */ + + if (typeof this == "undefined" || this == window) { + var o = IUI.get(selector); + if (o) return o;else { + var el; + + if ((typeof Node === "undefined" ? "undefined" : _typeof(Node)) === "object" ? o instanceof Node : selector && _typeof(selector) === "object" && typeof selector.nodeType === "number" && typeof selector.nodeName === "string" || selector === window) { + el = selector; + } else if (typeof selector === 'string' || selector instanceof String) { + if (selector[0] == ".") el = document.getElementsByClassName(selector.substr(1));else el = document.getElementById(selector); + } + + if (el) { + var rt = {}; + + var makeFunc = function makeFunc(module) { + return function () { + if (el instanceof HTMLCollection) { + var _rt = []; + + for (var i = 0; i < el.length; i++) { + var args = [el[i]]; + + for (var j = 0; j < arguments.length; j++) { + args.push(arguments[j]); + } + + _rt.push(IUI.modules[module].init.apply(this, args)); + } + + return _rt; + } else { + var args = [el]; + + for (var i = 0; i < arguments.length; i++) { + args.push(arguments[i]); + } + + return IUI.modules[module].init.apply(this, args); + } + }; + }; + + for (var m in IUI.modules) { + rt[m] = makeFunc(m); + } + + return rt; + } + } + } + /* + IUI.registry.push(this); + + + if (selector) + { + if( Object.prototype.toString.call( selector ) === '[object Array]' ) + { + this.el = []; + selector.forEach(function(i){ + this.el.push(query(i)); + }); + } + else + this.el = query(selector); + + this.events = {}; + this.id = this.el.id; + } + */ + +} +/* +Array.prototype.each = function(func) +{ + if (this instanceof Array) + { + for(var i = 0; i < this.length; i++) + if (func(this[i], i)) + break; + } + else + for(var i in this) + if(func(this[i], i)) + break; +} + + +Array.prototype.distinct = function(field) +{ + var rt = []; + + this.forEach(function(item) + { + if (rt.indexOf(item[field]) == -1) + rt.push(item[field]); + }); + + return rt; +} +/* +iui.prototype.ec = function(className, parent) +{ + if (parent) + return parent.getElementsByClassName(className); + else + return document.getElementsByClassName(className); +} + +iui.prototype.ne = function(tag) +{ + return document.createElement(tag); +} +*/ + +/* +iui.prototype.destroy = function() +{ + IUI.registry.splice(IUI.registry.indexOf(this.el), 1); +}; + +iui.prototype.register = function(event) +{ + this.events[event] = []; + return this; +}; + +iui.prototype.emit = function(event) +{ + var args = Array.prototype.slice.call(arguments, 1); + if (this.events && this.events[event]) + for(var i = 0; i < this.events[event].length; i++) + this.events[event][i].apply(this, args); + + return this; +}; + +iui.prototype.on = function(event, fn) +{ + if (this.events && this.events[event]) + this.events[event].push(fn); + else if (document.attachEvent) + this.el.attachEvent('on' + event, fn) + else // if (document.addEventListener) + this.el.addEventListener(event, fn, !0); + + return this; +}; +*/ + +/* +window.addEventListener("load", function(){ + for(var m in IUI.modules) + { + var elements = document.getElementsByTagName(m); + + } +}); +*/ + +},{"./Binding.js":2,"./IUIElement.js":4}],4:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUI = require("./IUI.js"); + +var _Binding = require("./Binding.js"); + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } + +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var IUIElement = /*#__PURE__*/function (_HTMLElement) { + _inherits(IUIElement, _HTMLElement); + + var _super = _createSuper(IUIElement); + + function IUIElement(defaults) { + var _this; + + _classCallCheck(this, IUIElement); + + _this = _super.call(this); + _this._events = []; + _this._data = null; + _this._defaults = defaults; + + for (var i in defaults) { + if (_this[i] == undefined) try { + _this[i] = defaults[i]; + } catch (_unused) {// mostly because modifying dom attributes are not allowed in custom elements creation + } + } + + _this._register("data"); + + return _this; + } + + _createClass(IUIElement, [{ + key: "cssClass", + get: function get() { + if (this.hasAttribute("css-class")) return this.getAttribute("css-class"); //else + // return this.constructor.moduleName; + }, + set: function set(value) { + this.classList.remove(this.cssClass); + this.setAttribute("css-class", value); + this.classList.add(value); + } + }, { + key: "render", + value: function () { + var _render = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _IUI.IUI.render(this, this._data); + + case 2: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function render() { + return _render.apply(this, arguments); + } + + return render; + }() + }, { + key: "_getParentData", + value: function _getParentData() { + var p = this.parentElement; + + do { + if (p.data !== undefined) return p.data; + } while (p = p.parentElement); + + return undefined; + } + }, { + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(value) { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + this._data = value; + + this._emit("data", { + data: value + }); + + _context2.next = 4; + return _IUI.IUI.render(this, value); + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function setData(_x) { + return _setData.apply(this, arguments); + } + + return setData; + }() + }, { + key: "data", + get: function get() { + return this._data; + } + }, { + key: "revert", + value: function () { + var _revert = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var e, p; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + e = this; + + case 1: + p = e.parentElement; + + if (!(e.revertMap != null)) { + _context3.next = 5; + break; + } + + _context3.next = 5; + return e.revertMap.render(p === null || p === void 0 ? void 0 : p.data); + + case 5: + if (e = p) { + _context3.next = 1; + break; + } + + case 6: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function revert() { + return _revert.apply(this, arguments); + } + + return revert; + }() + }, { + key: "update", + value: function () { + var _update = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(data) { + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + if (!(data == undefined)) { + _context4.next = 10; + break; + } + + if (!(this.dataMap != null)) { + _context4.next = 6; + break; + } + + _context4.next = 4; + return this.dataMap.render(this._getParentData()); + + case 4: + _context4.next = 8; + break; + + case 6: + _context4.next = 8; + return this.setData(this.data); + + case 8: + _context4.next = 17; + break; + + case 10: + if (!(this.dataMap != null)) { + _context4.next = 15; + break; + } + + _context4.next = 13; + return this.dataMap.render(data); + + case 13: + _context4.next = 17; + break; + + case 15: + _context4.next = 17; + return this.setData(data); + + case 17: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function update(_x2) { + return _update.apply(this, arguments); + } + + return update; + }() // this meant to be inherited + + }, { + key: "modified", + value: function modified() {} + }, { + key: "connectedCallback", + value: function connectedCallback() { + if (this.hasAttribute("css-class")) { + this.classList.add(this.getAttribute("css-class")); + } else { + var className = this.constructor.moduleName; + this.setAttribute("css-class", className); + this.classList.add(className); + } + } + }, { + key: "disconnectedCallback", + value: function disconnectedCallback() {// console.log("removed", this); + } + }, { + key: "adoptedCallback", + value: function adoptedCallback() {//console.log("adopted", this); + } //appendChild(node) { + // // do some bindings + // super.appendChild(node); + //} + + }, { + key: "created", + value: function created() {} + }, { + key: "create", + value: function create() {} + }, { + key: "destroy", + value: function destroy() { + _IUI.IUI.registry.splice(_IUI.IUI.registry.indexOf(this), 1); + + if (this.parentNode) this.parentNode.removeChild(this); + } + }, { + key: "_emit", + value: function _emit(event, values) { + //var args = Array.prototype.slice.call(arguments, 1); + var e = new CustomEvent(event, values); + + for (var i in values) { + if (e[i] === undefined) e[i] = values[i]; + } + + try { + return this.dispatchEvent(e); + } catch (ex) { + console.log(ex); + } + } + }, { + key: "_encapsulateEvent", + value: function _encapsulateEvent(code) { + return "try {\r\n ".concat(code, " \r\n}\r\n catch(ex) { console.log(ex.name + \":\" + ex.message, this); }"); + } + }, { + key: "_register", + value: function _register(event) { + this._events.push(event); + + if (this.hasAttribute("@" + event)) { + var handler = this.getAttribute("@" + event); + + if (handler.match(/^[A-Za-z\$_]+(?:[\$_][A-Za-z0-9]+)*$/g) === null) { + try { + var func = new Function("event", this._encapsulateEvent(this.getAttribute("@" + event))); + this.addEventListener(event, func); + } catch (ex) { + console.log(ex); + } + } else { + var _func = this[handler]; + + if (_func instanceof Function) { + this.addEventListener(event, _func, false); + } else { + // might be added in the future + var _func2 = new Function("event", "this[\"".concat(handler, "\"](event)")); + + this.addEventListener(event, _func2, false); + } + } + } + } + }, { + key: "off", + value: function off(event, func) { + this.removeEventListener(event, func); + return this; + } + }, { + key: "on", + value: function on(event, func) { + this.addEventListener(event, func, false); + return this; + } + }], [{ + key: "moduleName", + get: function get() { + return this.name.toLowerCase(); + } + }]); + + return IUIElement; +}( /*#__PURE__*/_wrapNativeSuper(HTMLElement)); + +exports["default"] = IUIElement; + +},{"./Binding.js":2,"./IUI.js":3}],5:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } + +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_HTMLElement) { + _inherits(Field, _HTMLElement); + + var _super = _createSuper(Field); + + function Field() { + _classCallCheck(this, Field); + + return _super.call(this); + } + + _createClass(Field, [{ + key: "create", + value: function create() {// if (this.formatter === undefined) { + // // load script + // for (var i = 0; i < this.children.length; i++) + // if (this.children[i] instanceof HTMLScriptElement) { + // //this.formatter = new Function this.children[i]. + // } + // } + //this.style.display = "none"; + } + }, { + key: "name", + get: function get() { + return this.getAttribute("name"); + }, + set: function set(value) { + this.setAttribute("name", value); + } + }, { + key: "serialize", + value: function serialize(tag) { + var template = document.createElement("template"); + var node = document.createElement(tag !== null && tag !== void 0 ? tag : "div"); + var width = null, + name = null, + type = null; // copy attributes + + for (var i = 0; i < this.attributes.length; i++) { + var attr = this.attributes[i]; + if (attr.name == "width") width = attr.value;else if (attr.name == "name") name = attr.value;else if (attr.name == "type") type = attr.value;else node.setAttribute(attr.name, attr.value); + } // copy html + + + node.innerHTML = this.innerHTML; + return { + node: node, + width: width, + name: name, + type: type + }; + } + }], [{ + key: "moduleName", + get: function get() { + return this.name.toLowerCase(); + } + }]); + + return Field; +}( /*#__PURE__*/_wrapNativeSuper(HTMLElement))); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],6:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +var _Modifiable = _interopRequireDefault(require("./Modifiable.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Form, _IUIElement); + + var _super = _createSuper(Form); + + function Form() { + _classCallCheck(this, Form); + + return _super.call(this); + } + + _createClass(Form, [{ + key: "create", + value: function () { + var _create = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + function create() { + return _create.apply(this, arguments); + } + + return create; + }() + }, { + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(value) { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + this.original = value; //var copy = {}; + //Object.assign(copy, value); + + _get(_getPrototypeOf(Form.prototype), "setData", this).call(this, new _Modifiable["default"](this.original)); // Form._copy(this.original)); + //super.setData({ ...this.original }); + + + case 2: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function setData(_x) { + return _setData.apply(this, arguments); + } + + return setData; + }() + }, { + key: "reset", + value: function () { + var _reset = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + //super.setData({ ...this.original }); + _get(_getPrototypeOf(Form.prototype), "setData", this).call(this, new _Modifiable["default"](this.original)); //Form._copy(this.original)); + + + return _context3.abrupt("return", this); + + case 2: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function reset() { + return _reset.apply(this, arguments); + } + + return reset; + }() + }, { + key: "diff", + get: function get() { + return this._data._diff; + if (this.original == null) return this._data; + var rt = {}; + + for (var i in this._data) { + if (this._data[i] != this.original[i]) { + if (this._data[i] instanceof Array && Form._areEqual(this._data[i], this.original[i])) continue;else rt[i] = this._data[i]; + } + } + + return rt; + } + }], [{ + key: "_copy", + value: function _copy(val) { + if (_typeof(val) === 'object' && val !== null) { + var rt = {}; + + for (var i in val) { + if (val[i] instanceof Array) // copy array + rt[i] = _toConsumableArray(val[i]);else rt[i] = val[i]; + } + + return rt; + } else return val; + } + }]); + + return Form; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"./Modifiable.js":9}],7:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Include, _IUIElement); + + var _super = _createSuper(Include); + + function Include() { + var _this; + + _classCallCheck(this, Include); + + _this = _super.call(this); + _this.refs = {}; + return _this; + } + + _createClass(Include, [{ + key: "src", + get: function get() { + return this.getAttribute("src"); + }, + set: function set(value) { + this.setAttribute("src", value); + + this._load(value); + } + }, { + key: "_load", + value: function () { + var _load2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url) { + var src, x, _window, _window$app, t; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!this._loading) { + _context.next = 2; + break; + } + + return _context.abrupt("return"); + + case 2: + this._loading = true; + src = url.replace(/^\/+|\/+$/g, ''); + this.classList.add(this.cssClass + "-loading"); + _context.next = 7; + return fetch(src); + + case 7: + x = _context.sent; + + if (!(x.status == 200)) { + _context.next = 21; + break; + } + + _context.next = 11; + return x.text(); + + case 11: + t = _context.sent; + this.innerHTML = t; //let xeval = (code) => eval(code); + + if (!((_window = window) !== null && _window !== void 0 && (_window$app = _window.app) !== null && _window$app !== void 0 && _window$app.loaded)) { + _context.next = 21; + break; + } + + _context.next = 16; + return _IUI.IUI.create(this); + + case 16: + _context.next = 18; + return _IUI.IUI.created(this); + + case 18: + _IUI.IUI.bind(this, this, "include:" + src); + + _context.next = 21; + return _IUI.IUI.render(this, this._data, true); + + case 21: + this.classList.remove(this.cssClass + "-loading"); // if (window?.app?.loaded) + // { + // await IUI.create(this); + // await IUI.created(this); + // for(let i = 0; i < this.children.length; i++) + // { + // let el = this.children[i]; + // IUIElement._make_bindings(el); + // await IUIElement._renderElement(el, el._data); + // } + // } + + this._loading = false; + + case 23: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function _load(_x) { + return _load2.apply(this, arguments); + } + + return _load; + }() + }, { + key: "create", + value: function () { + var _create = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!this.hasAttribute("src")) { + _context2.next = 3; + break; + } + + _context2.next = 3; + return this._load(this.getAttribute("src")); + + case 3: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function create() { + return _create.apply(this, arguments); + } + + return create; + }() + }]); + + return Include; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],8:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _Field = _interopRequireDefault(require("./Field.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } + +function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_HTMLElement) { + _inherits(Layout, _HTMLElement); + + var _super = _createSuper(Layout); + + function Layout() { + _classCallCheck(this, Layout); + + return _super.call(this); + } + + _createClass(Layout, null, [{ + key: "moduleName", + get: function get() { + return this.name.toLowerCase(); + } //create() + //{ + // for (var i = 0; i < this.children.length; i++) + // if (this.children[i] instanceof Field) { + // this[this.children[i].name] = this.children[i]; + // this.fields.push(this.children[i]); + // } + // this.style.display = "none"; + //} + + }, { + key: "getHTML", + value: function getHTML(el) { + var removeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + for (var i = 0; i < el.children.length; i++) { + if (el.children[i] instanceof Layout) { + var layout = el.children[i]; + var rt = layout.innerHTML; + if (removeSelf) el.removeChild(layout); + return rt; + } + } + + return null; + } + }, { + key: "get", + value: function get(el, tag) { + var removeSelf = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var collection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + for (var i = 0; i < el.children.length; i++) { + if (el.children[i] instanceof Layout) { + var layout = el.children[i]; + var rt = collection ? {} : []; + + for (var j = 0; j < layout.children.length; j++) { + if (layout.children[j] instanceof _Field["default"]) { + var fd = layout.children[j].serialize(tag); + if (collection) rt[fd.name] = fd;else rt.push(fd); + } + } + + if (removeSelf) layout.parentElement.removeChild(layout); + return rt; + } + } + + return null; + } + }]); + + return Layout; +}( /*#__PURE__*/_wrapNativeSuper(HTMLElement // IUIElement +))); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"./Field.js":5}],9:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var Modifiable = /*#__PURE__*/function () { + function Modifiable(original) { + var _this = this; + + _classCallCheck(this, Modifiable); + + this._events = {}; + this._data = Modifiable._copy(original); + this._original = original; + + var _loop = function _loop(p) { + if (p.startsWith("_")) return "continue"; + + _this._register(":" + p); + + Object.defineProperty(_this, p, { + get: function get() { + return this._data[p]; + }, + set: function set(value) { + this._data[p] = value; + + this._emit(":" + p, value); + } + }); + }; + + for (var p in this._data) { + var _ret = _loop(p); + + if (_ret === "continue") continue; + } + } + + _createClass(Modifiable, [{ + key: "_diff", + get: function get() { + if (this._original == null) return this._data; + var rt = {}; + + for (var i in this._data) { + if (this._data[i] != this._original[i]) { + if (this._data[i] instanceof Array && Modifiable._areEqual(this._data[i], this._original[i])) continue;else rt[i] = this._data[i]; + } + } + + return rt; + } + }, { + key: "_register", + value: function _register(event) { + this._events[event] = []; + } + }, { + key: "_emit", + value: function _emit(event) { + event = event.toLowerCase(); + var args = Array.prototype.slice.call(arguments, 1); + if (this._events[event]) for (var i = 0; i < this._events[event].length; i++) { + if (this._events[event][i].f.apply(this._events[event][i].i, args)) return true; + } + return false; + } + }, { + key: "_emitArgs", + value: function _emitArgs(event, args) { + event = event.toLowerCase(); + if (this._events[event]) for (var i = 0; i < this._events[event].length; i++) { + if (this._events[event][i].f.apply(this._events[event][i].i, args)) return true; + } + return this; + } + }, { + key: "on", + value: function on(event, fn, issuer) { + if (!(fn instanceof Function)) return this; + event = event.toLowerCase(); // add + + if (!this._events[event]) this._events[event] = []; + + this._events[event].push({ + f: fn, + i: issuer == null ? this : issuer + }); + + return this; + } + }, { + key: "off", + value: function off(event, fn) { + event = event.toLowerCase(); + + if (this._events[event]) { + if (fn) { + for (var i = 0; i < this._events[event].length; i++) { + if (this._events[event][i].f == fn) this._events[event].splice(i--, 1); + } + } else { + this._events[event] = []; + } + } + } + }], [{ + key: "_copy", + value: function _copy(val) { + if (_typeof(val) === 'object' && val !== null) { + var rt = {}; + + for (var i in val) { + if (val[i] instanceof Array) // copy array + rt[i] = _toConsumableArray(val[i]);else rt[i] = val[i]; + } + + return rt; + } else return val; + } // @TODO: Remove this when esiur adds suport to partially modified arrays with modified flag + + }, { + key: "_areEqual", + value: function _areEqual(ar1, ar2) { + if (!(ar1 instanceof Array) || !(ar2 instanceof Array)) return false; + if (ar1.length != ar2.length) return false; + + for (var i = 0; i < ar1.length; i++) { + if (ar1[i] != ar2[i]) return false; + } + + return true; + } + }]); + + return Modifiable; +}(); + +exports["default"] = Modifiable; + +},{}],10:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Repeat, _IUIElement); + + var _super = _createSuper(Repeat); + + function Repeat() { + var _this; + + _classCallCheck(this, Repeat); + + _this = _super.call(this, { + _data: [] + }); + _this.list = []; + return _this; + } + + _createClass(Repeat, [{ + key: "_isDirectDecedent", + value: function _isDirectDecedent(x) { + while (x = x.parentElement) { + if (x == this) return true;else if (x instanceof Repeat && x != this) return false; + } + } + }, { + key: "create", + value: function create() { + var _this2 = this; + + ////////////// + /// Create /// + ////////////// + if (this._created) debugger; + this._created = true; // create template to speed avoid HTML parsing each time. + + var repeatables = this.querySelectorAll("*[repeat]"); + repeatables = Array.from(repeatables).filter(function (x) { + return _this2._isDirectDecedent(x); + }); + + if (repeatables.length > 0) { + this._repeatNode = repeatables[0].cloneNode(true); + this._container = repeatables[0].parentElement; + this._beforeNode = repeatables[0].nextSibling; + repeatables[0].parentElement.removeChild(repeatables[0]); + } else { + if (this.children.length > 0) this._repeatNode = this.children[0].cloneNode(true);else this._repeatNode = document.createElement("div"); + this.innerHTML = ""; + this._container = this; + } + + var newElements = this.querySelectorAll("*"); + + for (var i = 0; i < newElements.length; i++) { + newElements[i].repeat = this; + } + + var self = this; + /* + this._repeatModified = function(propertyName, value) + { + var bindings = self._repeatBindings.get(this); + // update view + for(var i = 0; i < bindings.length; i++) + { + if (bindings[i].props) + { + for(var j = 0; j < bindings[i].props.length; j++) + { + if (bindings[i].props[j] == propertyName) + { + bindings[i].node.data = bindings[i].func.apply(self, + [this, this, this, this, 0, 0]); + break; + } + } + } + } + }; + */ + } + }, { + key: "clear", + value: function clear() { + for (var i = 0; i < this.list.length; i++) { + this._container.removeChild(this.list[i]); + } + + this.list = []; + this._data = []; + } + }, { + key: "data", + get: function get() { + return _get(_getPrototypeOf(Repeat.prototype), "data", this); + } + }, { + key: "length", + get: function get() { + return this._data.length; + } + }, { + key: "_assign", + value: function _assign(node, index) { + // update fields + // this so we won't mess with i-include view + if (node.view == undefined) node.view = this.view; + node.rotue = this.route; + node.index = index; // update references + + if (node.hasAttribute("ref")) { + var ref = node.getAttribute("ref"); // create new array + + if (!(this.view.refs[ref] instanceof Array)) this.view.refs[ref] = []; + this.view.refs[ref][index] = node; + } //Object.assign(node, customFields); + + + for (var i = 0; i < node.children.length; i++) { + this._assign(node.children[i], index); + } + } + }, { + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(value) { + var i, e; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!this._busy) { + _context.next = 3; + break; + } + + console.log("Busy", this); + return _context.abrupt("return", false); + + case 3: + //console.log("RPT: SetData", value); + this._busy = true; // var id = Math.random(); + //console.log("SetData " + this.getAttribute("ref") + " " + id, value); + //console.trace(); + // clear + + this.clear(); + if (value.toArray instanceof Function) value = value.toArray();else if (value == null || !(value instanceof Array || value instanceof Int32Array)) value = []; //debugger; + + _context.next = 8; + return _get(_getPrototypeOf(Repeat.prototype), "setData", this).call(this, value); + + case 8: + i = 0; + + case 9: + if (!(i < value.length)) { + _context.next = 44; + break; + } + + ///console.log("ST1"); + //let content = this.template.content.cloneNode(true); + //let nodes = content.childNodes; + e = this._repeatNode.cloneNode(true); + this.list.push(e); //console.log("ST2"); + // Create node + + if (!(e instanceof _IUIElement2["default"])) { + _context.next = 15; + break; + } + + _context.next = 15; + return e.create(); + + case 15: + _context.next = 17; + return _IUI.IUI.create(e); + + case 17: + //console.log("Created repeat " + i, this, e); + //console.log("ST4"); + //this._make_bindings(e) + _IUI.IUI.bind(e, this, "repeat"); + + this._container.insertBefore(e, this._beforeNode); + + this._assign(e, i); // { view: this.view, route: this.route, index: i }); + //console.log("ST5"); + + + if (!(e instanceof _IUIElement2["default"])) { + _context.next = 33; + break; + } + + if (!(e.dataMap != null)) { + _context.next = 29; + break; + } + + _context.next = 24; + return e.dataMap.render(value[i]); + + case 24: + if (_context.sent) { + _context.next = 27; + break; + } + + _context.next = 27; + return e.render(); + + case 27: + _context.next = 31; + break; + + case 29: + _context.next = 31; + return e.setData(value[i]); + + case 31: + _context.next = 41; + break; + + case 33: + if (!(e.dataMap != null)) { + _context.next = 38; + break; + } + + _context.next = 36; + return e.dataMap.render(value[i]); + + case 36: + _context.next = 39; + break; + + case 38: + e.data = value[i]; + + case 39: + _context.next = 41; + return this._renderElement(e, e.data); + + case 41: + i++; + _context.next = 9; + break; + + case 44: + // @TODO: check if this works for event names starting with ":" + this._emit(":data", { + data: value + }); // this._emit("modified", { data: value, property: "data" }); + + + this._busy = false; + + case 46: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function setData(_x) { + return _setData.apply(this, arguments); + } + + return setData; + }() + }]); + + return Repeat; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],11:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(TableRow, _IUIElement); + + var _super = _createSuper(TableRow); + + function TableRow() { + _classCallCheck(this, TableRow); + + return _super.call(this); + } + + _createClass(TableRow, [{ + key: "create", + value: function create() { + //this.style.display = "none"; + this.style.display = "table-row"; + console.log("TR"); + } + }]); + + return TableRow; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],12:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Link, _IUIElement); + + var _super = _createSuper(Link); + + function Link() { + var _this; + + _classCallCheck(this, Link); + + //debugger; + _this = _super.call(this, { + cssClass: 'link' + }); // super({ cssClass: 'link' }); + + _this._register("route"); + + _this.addEventListener("click", function (e) { + var r = _this.getBoundingClientRect(); + + _this.style.setProperty("--x", e.x - r.x + "px"); + + _this.style.setProperty("--y", e.y - r.y + "px"); + + _this.style.setProperty("--w", r.width + "px"); + + _this.style.setProperty("--h", r.height + "px"); + + _this.classList.remove(_this.cssClass + "-clicked"); + + void _this.offsetWidth; + + _this.classList.add(_this.cssClass + "-clicked"); + + var url = _this.getAttribute("href"); + + var ok = _this._emit("route", { + url: url, + cancelable: true, + query: _this.query + }); + + if (!ok) return; //if (url == "#") + // url = router.current.link; + // return; + + var target = _this.hasAttribute("target") ? document.getElementById(_this.getAttribute("target")) : null; + + if (url == ":back") { + window.router.back(); + return; + } + + if (_this.query) // || this.hasAttribute(":data")) + window.router.navigate(url || router.current.url, _this.query, target);else if (url != null) window.router.navigate(url, undefined, target); + }); //this._register("click"); + + + return _this; + } + + _createClass(Link, [{ + key: "link", + get: function get() { + return this.getAttribute("href"); + }, + set: function set(value) { + this.setAttribute("href", value); + } + }, { + key: "create", + value: function create() {} + }]); + + return Link; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],13:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +var _Router = _interopRequireDefault(require("./Router.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Route, _IUIElement); + + var _super = _createSuper(Route); + + function Route() { + var _this; + + _classCallCheck(this, Route); + + _this = _super.call(this); + _this.routes = []; + _this.refs = {}; + + _this._register("show"); + + _this._register("hide"); + + return _this; + } + + _createClass(Route, [{ + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(value) { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (this.hasAttribute("debug")) debugger; + _context.next = 3; + return _get(_getPrototypeOf(Route.prototype), "setData", this).call(this, value); + + case 3: + return _context.abrupt("return", _context.sent); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function setData(_x) { + return _setData.apply(this, arguments); + } + + return setData; + }() + }, { + key: "_updateLinks", + value: function _updateLinks() { + for (var i = 0; i < this.children.length; i++) { + if (this.children[i] instanceof Route) { + this.routes.push(this.children[i]); + window.router.add(this.children[i], this); + i--; + } + } + } + }, { + key: "link", + get: function get() { + var link = this.name; + var parent = this.parent; + + while (parent != null) { + link = parent.name + "/" + link; + parent = parent.parent; + } + + return link; + } + }, { + key: "name", + get: function get() { + return this.getAttribute("name"); + } + }, { + key: "src", + get: function get() { + return this.getAttribute("src"); + } + }, { + key: "dst", + get: function get() { + return this._dst || this.getAttribute("dst"); + }, + set: function set(value) { + this._dst = value; + } + }, { + key: "caption", + get: function get() { + return this.getAttribute("caption"); + } + }, { + key: "private", + get: function get() { + return this.hasAttribute("private"); + } + }, { + key: "icon", + get: function get() { + return this.getAttribute("icon"); + } + }, { + key: "_getParent", + value: function _getParent() { + var e = null; //this.parentElement; + + while (e = this.parentElement) { + if (e instanceof Route || e instanceof _Router["default"]) return e; + } + + return null; + } // get route() { + // return this; + // } + // get view() { + // return this; + // } + + }, { + key: "create", + value: function () { + var _create = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var _window, _window$app; + + var _src, x, t; + + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + //window.router.add(this); + this._updateLinks(); + + if (!this.hasAttribute("src")) { + _context2.next = 12; + break; + } + + _src = this.getAttribute("src").replace(/^\/+|\/+$/g, ''); + _context2.next = 5; + return fetch(_src); + + case 5: + x = _context2.sent; + + if (!(x.status != 200)) { + _context2.next = 8; + break; + } + + return _context2.abrupt("return"); + + case 8: + _context2.next = 10; + return x.text(); + + case 10: + t = _context2.sent; + this.innerHTML = t; //let xeval = (code) => eval(code); + + case 12: + if (!((_window = window) !== null && _window !== void 0 && (_window$app = _window.app) !== null && _window$app !== void 0 && _window$app.loaded)) { + _context2.next = 20; + break; + } + + _context2.next = 15; + return _IUI.IUI.create(this); + + case 15: + _context2.next = 17; + return _IUI.IUI.created(this); + + case 17: + _IUI.IUI.bind(this, this, "route:" + src); + + _context2.next = 20; + return _IUI.IUI.render(this, this._data, true); + + case 20: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function create() { + return _create.apply(this, arguments); + } + + return create; + }() + }, { + key: "created", + value: function created() {} + }, { + key: "set", + value: function set(value) { + if (value == this.visible) return; + + if (value) { + this.setAttribute("selected", ""); + + this._emit("show"); + } else { + this.removeAttribute("selected"); + + this._emit("hide"); + } + } + }, { + key: "visible", + get: function get() { + return this.hasAttribute("selected"); + }, + set: function set(value) { + this.set(value); + } + }]); + + return Route; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"./Router.js":14}],14:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _Route = _interopRequireDefault(require("./Route.js")); + +var _Target2 = _interopRequireDefault(require("./Target.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_Target) { + _inherits(Router, _Target); + + var _super = _createSuper(Router); + + function Router() { + var _this; + + _classCallCheck(this, Router); + + _this = _super.call(this, { + routes: [], + _states: new Map(), + active: null, + cssClass: "router" + }); + _this._history = []; //IUI._router = this; + //Object.defineProperty(window, "router", { + // get() { + // if (!IUI._router.isConnected) + // IUI._router = document.getElementsByTagName("i-router")[0]; + // return IUI._router; + // } + //}); + + return _this; + } + + _createClass(Router, [{ + key: "_getRouteParent", + value: function _getRouteParent(route) { + var e = null; + + while (e = route.parentElement) { + if (e instanceof _Route["default"] || e instanceof Router) return e; + } + + return null; + } + }, { + key: "add", + value: function add(route) { + var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + if (parent == null) { + this.routes.push(route); + } else { + route.parent = parent; + this.appendChild(route); //parent.routes.push(route); + } + } + }, { + key: "_routeInPath", + value: function _routeInPath(name, routes) { + for (var i = 0; i < routes.length; i++) { + if (routes[i].name == name) return routes[i]; + } + + return null; + } + }, { + key: "getRoute", + value: function getRoute(url, data) { + var p = url.split("/"); + var searchRoutes = this.routes; + + for (var i = 0; i < p.length; i++) { + var route = this._routeInPath(p[i], searchRoutes); + + if (route == null) return [null, null]; + + if (i == p.length - 1) { + // return [destination state route (link, icon,..etc) , actual route to view] + if (route.dst == null) return [route, route];else { + var dst = route.dst instanceof Function ? route.dst(data) : route.dst; + + var _url = dst.replace(/^[/]*(.*?)[/]*$/g, '$1').trim(); + + return [route, this.getRoute(_url)[1]]; + } + } + + searchRoutes = route.routes; + } + } + }, { + key: "back", + value: function back() { + //if (this._history.length > 1) { + // let last = this._history[this._history.length - 2]; + // this.navigate(last.url, last.data, last.target); + //} + window.history.back(); + } + }, { + key: "_toQuery", + value: function _toQuery(o) { + var rt = []; + + for (var i in o) { + if (o[i] == undefined) rt.push(i);else rt.push(i + "=" + encodeURI(o[i].toString().replace("&", "&&"))); + } ///encodeURIComponent(o[i])); + + + return rt.join("&"); + } + }, { + key: "_fromQuery", + value: function _fromQuery(q) { + var kv = q.replace("&&", "\0").split('&'); + var rt = {}; + + for (var i = 0; i < kv.length; i++) { + var d = kv[i].replace("\0", "&").split('=', 2); + var v = decodeURI(d[1] || ''); //decodeURIComponent(d[1] || ''); + + if (v != null && v.trim() != '' && !isNaN(v)) v = new Number(v); + rt[d[0]] = v; + } + + return JSON.parse(JSON.stringify(rt)); + } + }, { + key: "navigate", + value: function () { + var _navigate = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, data, target, state) { + var dataToQuery, + q, + path, + _this$getRoute, + _this$getRoute2, + stateRoute, + viewRoute, + ok, + id, + _args = arguments; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + dataToQuery = _args.length > 4 && _args[4] !== undefined ? _args[4] : true; + q = url.match(/^\/*(.*?)\?(.*)$|^\/*(.*)$/); //debugger; + + // do we have a query string ? + if (q[2] !== undefined) { + path = q[1]; + data = this._fromQuery(q[2]); + url = path + "?" + q[2]; + } // do we have data ? + else if (data !== undefined) { + path = q[3]; + url = dataToQuery ? path + "?" + this._toQuery(data) : path; + } else { + path = q[3]; + url = path; + } + + _this$getRoute = this.getRoute(path, data), _this$getRoute2 = _slicedToArray(_this$getRoute, 2), stateRoute = _this$getRoute2[0], viewRoute = _this$getRoute2[1]; + + if (!(stateRoute == null)) { + _context.next = 7; + break; + } + + console.warn("State not found ", path); + return _context.abrupt("return"); + + case 7: + ok = this._emit("navigate", { + url: url, + stateRoute: stateRoute, + viewRoute: viewRoute, + base: path, + data: data, + cancelable: true + }); + + if (ok) { + _context.next = 11; + break; + } + + console.warn("Route not allowed", path); + return _context.abrupt("return"); + + case 11: + // destination view not found + if (viewRoute == null) { + console.log("Destination route not found ".concat(stateRoute.dst)); + viewRoute = stateRoute; + } //let state = null; + //if (data !== undefined) { + // for (let [k, v] of this._states) + // if (v == data) { + // state = k; + // break; + // } + // if (state == null) { + // state = Math.random().toString(36).substr(2, 10); + // this._states.set(state, data); + // } + //} + + + if (!(target instanceof _Target2["default"])) target = this; + + if (state == null) { + id = Math.random().toString(36).substr(2, 10); + state = { + id: id, + url: url, + data: data, + target: target, + stateRoute: stateRoute, + viewRoute: viewRoute + }; + + this._states.set(id, state); + + history.pushState(id, stateRoute.caption, this._hash ? "#" + url : "/" + url); + } + + this._history.push(state.id); // { url, data, target, stateRoute, viewRoute }); + + + target.show(viewRoute, this.active); + viewRoute.set(true); + this.active = viewRoute; //{ url: "/", data: null, target: null }; + + this._emit("route", { + route: stateRoute + }); + + viewRoute.query = data || {}; + stateRoute.query = viewRoute.query; + target.setLoading(true); + + if (!(stateRoute.dataMap != null)) { + _context.next = 33; + break; + } + + _context.next = 25; + return stateRoute.dataMap.render(data || {}); + + case 25: + if (_context.sent) { + _context.next = 28; + break; + } + + _context.next = 28; + return stateRoute.render(); + + case 28: + if (!(viewRoute != stateRoute)) { + _context.next = 31; + break; + } + + _context.next = 31; + return viewRoute.setData(stateRoute.data); + + case 31: + _context.next = 35; + break; + + case 33: + _context.next = 35; + return viewRoute.setData(data); + + case 35: + target.setLoading(false); + + case 36: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function navigate(_x, _x2, _x3, _x4) { + return _navigate.apply(this, arguments); + } + + return navigate; + }() + }, { + key: "hide", + value: function hide() {// do nothing, we're not here to hide. + } + }, { + key: "refresh", + value: function refresh() { + var state = this.current; + this.navigate(state.url, state.data, state.target, state); //this.current.render(); + //this.current.data = this.current.data; + //if (updateAttributes) + // this.current.updateAttributes(true); + } + }, { + key: "show", + value: function show(route, active) { + _get(_getPrototypeOf(Router.prototype), "show", this).call(this, route, active); + } + }, { + key: "current", + get: function get() { + return this._states.get(history.state); //.viewRoute; + //return this._history[this._history.length - 1].viewRoute; + } + }, { + key: "previous", + get: function get() { + if (this._history.length > 2) return this._states.get(this._history[this._history.length - 2]); //.viewRoute; + else return null; + } + }, { + key: "create", + value: function create() { + // save origin + this.origin = window.location.pathname + window.location.search; + } + }, { + key: "destroy", + value: function destroy() { + console.log("Destroyed", this); + } + }, { + key: "created", + value: function created() { + if (this.hasAttribute("type") && this.getAttribute("type").toLowerCase() == "hash") this._hash = true; /// find all children + + for (var i = 0; i < this.children.length; i++) { + var e = this.children[i]; + + if (e instanceof _Route["default"]) { + this.add(e); + if (e.visible) this.navigate(e.name); + } + } + + this._emit("created"); //console.log("Router created", this); + + } + }, { + key: "connectedCallback", + value: function connectedCallback() { + //console.log("New router", this); + window.router = this; + var self = this; + window.addEventListener("popstate", function (event) { + //console.log(event); + var stateId = event.state; + var path; + + if (self._hash) { + path = window.location.hash; + if (path.length > 0) path = path.substr(1); + } else { + path = window.location.pathname; + } + + if (stateId != null) { + if (stateId != self._history[self._history.length - 1]) { + //this._lastStateId = stateId; + var state = self._states.get(stateId); + + self.navigate(path, state.data, state.target, state); + } else { + console.log("SAME"); + } + } else { + this._lastState = null; + self.navigate(path, undefined, undefined, {}); + } //alert("location: " + document.location + ", state: " + JSON.stringify(event.state)); + + + console.log(document.location.hash, event.state); + }); + + this._register("navigate"); + + this._register("route"); + + this._register("created"); + } + }]); + + return Router; +}(_Target2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"./Route.js":13,"./Target.js":15}],15:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +var _Route = _interopRequireDefault(require("./Route.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Target, _IUIElement); + + var _super = _createSuper(Target); + + function Target(properties) { + var _this; + + _classCallCheck(this, Target); + + _this = _super.call(this, _IUI.IUI.extend(properties, { + cssClass: 'target' + })); + + _this._register("show"); + + _this._register("hide"); + + return _this; + } + + _createClass(Target, [{ + key: "setLoading", + value: function setLoading(value) { + if (value) this.classList.add(this.cssClass + "-loading");else this.classList.remove(this.cssClass + "-loading"); + } + }, { + key: "create", + value: function create() {} + }, { + key: "show", + value: function show(route, previous) { + var previousTarget = previous === null || previous === void 0 ? void 0 : previous.target; + route.target = this; + + for (var i = 0; i < this.children.length; i++) { + if (this.children[i] instanceof _Route["default"] && this.children[i] != route) { + this.children[i].set(false); + } + } //if (previous != null && previous != route && previous.target == this) { + // previous.set(false); + //} + //else + + + if (previousTarget != null && previousTarget != this) { + previousTarget.hide(this.active); + } + + if (route.parentElement != this) this.appendChild(route); + + this._emit("show", { + route: route, + previous: previous + }); + } + }, { + key: "hide", + value: function hide(route) { + for (var i = 0; i < this.children.length; i++) { + if (this.children[i] instanceof _Route["default"]) { + this.children[i].set(false); + } + } + + this._emit("hide", { + route: route + }); + } + }]); + + return Target; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"./Route.js":13}],16:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Background, _IUIElement); + + var _super = _createSuper(Background); + + function Background() { + var _this; + + _classCallCheck(this, Background); + + _this = _super.call(this, { + cssClass: 'background' + }); + + _this.classList.add(_this.cssClass); + + _this._register("visible"); + + return _this; + } + + _createClass(Background, [{ + key: "create", + value: function create() {} + }, { + key: "hide", + value: function hide() { + return this.setVisible(false); + } + }, { + key: "show", + value: function show() { + return this.setVisible(true); + } + }, { + key: "setVisible", + value: function setVisible(value) { + this.visible = value; + + if (value) { + this.classList.add(this.cssClass + "-visible"); + } else { + this.classList.remove(this.cssClass + "-visible"); + } + + this._emit("visible", value); + + return this; + } + }]); + + return Background; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],17:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Button, _IUIElement); + + var _super = _createSuper(Button); + + function Button() { + var _this; + + _classCallCheck(this, Button); + + _this = _super.call(this, { + cssClass: 'button' + }); + + _this.addEventListener("mousedown", function (e) { + var r = _this.getBoundingClientRect(); + + _this.style.setProperty("--x", e.x - r.x + "px"); + + _this.style.setProperty("--y", e.y - r.y + "px"); + + _this.style.setProperty("--w", r.width + "px"); + + _this.style.setProperty("--h", r.height + "px"); + + _this.classList.remove(_this.cssClass + "-clicked"); + + void _this.offsetWidth; + + _this.classList.add(_this.cssClass + "-clicked"); + }, true); + + _this._register("check"); + + return _this; + } + + _createClass(Button, [{ + key: "type", + get: function get() { + return this.getAttribute("type"); + }, + set: function set(value) { + this.setAttribute("type", value); + } + }, { + key: "checked", + get: function get() { + return this.hasAttribute("checked"); + }, + set: function set(value) { + if (value) this.setAttribute("checked", "");else this.removeAttribute("checked"); + } + }, { + key: "disabled", + get: function get() { + return this.getAttribute("disabled"); + }, + set: function set(value) { + this.setAttribute("disabled", value); + } + }, { + key: "create", + value: function create() { + var _this2 = this; + + if (this.type == "check") { + this.addEventListener("click", function () { + var checked = !_this2.checked; + _this2.checked = checked; + + _this2._emit("check", { + checked: checked + }); + }); + } //this.classList.add(this.cssClass); + + } + }]); + + return Button; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],18:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Check, _IUIElement); + + var _super = _createSuper(Check); + + function Check(properties) { + var _this; + + _classCallCheck(this, Check); + + _this = _super.call(this, _IUI.IUI.extend(properties, { + cssClass: 'check' + })); + + _this._register("check"); + + _this.on("click", function () { + _this.checked = !_this.checked; + }); + + return _this; + } + + _createClass(Check, [{ + key: "checked", + get: function get() { + return this.hasAttribute("checked"); + }, + set: function set(value) { + this.check(value); + + this._emit("check", { + checked: value + }); + } + }, { + key: "check", + value: function check(value) { + if (value) this.setAttribute("checked", "checked");else this.removeAttribute("checked"); + } + }, { + key: "create", + value: function create() { + this.field = this.getAttribute("field"); + } + }, { + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(value) { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _get(_getPrototypeOf(Check.prototype), "setData", this).call(this, value); + + case 2: + if (value != null && this.field != null) this.value = value[this.field];else if (this.field != null) this.value = null; + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function setData(_x) { + return _setData.apply(this, arguments); + } + + return setData; + }() + }, { + key: "modified", + value: function modified(name, value) { + if (name == this.field) { + this.value = value; + } + } + }, { + key: "value", + get: function get() { + return this.checked; + }, + set: function set(value) { + this.checked = value; + } + }]); + + return Check; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],19:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(CodePreview, _IUIElement); + + var _super = _createSuper(CodePreview); + + function CodePreview(properties) { + _classCallCheck(this, CodePreview); + + return _super.call(this); + } + + _createClass(CodePreview, [{ + key: "create", + value: function () { + var _create = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var self; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (this.hasAttribute("debug")) debugger; + this._code = this.innerHTML.trim(); + this.textContent = ''; // create elements + + this.bar = document.createElement("div"); + this.bar.className = this.cssClass + "-bar"; + this.content = document.createElement("div"); + this.content.className = this.cssClass + "-content"; + this.editor = document.createElement("code"); + this.editor.className = this.cssClass + "-editor"; + this.editor.innerText = this._code; + this.editor.contentEditable = true; + this.editor.setAttribute("skip", true); + self = this; + this.editor.addEventListener("input", function () { + self._code = self.editor.innerText.trim(); + self.update(); + }, false); + this.preview = document.createElement("div"); + this.preview.className = this.cssClass + "-preview"; //this.preview.setAttribute(":content", ""); + + this.content.append(this.editor); + this.content.append(this.preview); + this.append(this.bar); + this.append(this.content); + this.field = this.getAttribute("field"); + _context.next = 23; + return this.update(); + + case 23: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function create() { + return _create.apply(this, arguments); + } + + return create; + }() + }, { + key: "update", + value: function () { + var _update = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!this._updating) { + _context2.next = 2; + break; + } + + return _context2.abrupt("return"); + + case 2: + this._updating = true; + this.preview.innerHTML = this._code; + _context2.next = 6; + return _IUI.IUI.create(this.preview); + + case 6: + _context2.next = 8; + return _IUI.IUI.created(this.preview); + + case 8: + _IUI.IUI.bind(this.preview, this.preview, "preview"); + + _context2.next = 11; + return _IUI.IUI.render(this.preview, this._data, true); + + case 11: + this._updating = false; + + case 12: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function update() { + return _update.apply(this, arguments); + } + + return update; + }() + }]); + + return CodePreview; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],20:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(DateTimePicker, _IUIElement); + + var _super = _createSuper(DateTimePicker); + + function DateTimePicker() { + _classCallCheck(this, DateTimePicker); + + return _super.call(this); + } + + _createClass(DateTimePicker, [{ + key: "layout", + get: function get() { + return this._layout; + }, + set: function set(value) { + if (value == this._layout) return; + this.innerHTML = ""; + this._layout = value; + this.calendar = document.createElement("div"); + this.calendar.className = this.cssClass + "-calendar"; + this.calendarContent = document.createElement("div"); + this.calendarContent.className = this.cssClass + "-calendar-content"; + this.table = document.createElement("table"); + this.header = this.table.createTHead(); + this.body = this.table.createTBody(); + this.calendarContent.appendChild(this.table); + var tr = this.header.insertRow(); + + for (var i = 0; i < 7; i++) { + var td = tr.insertCell(); + td.innerHTML = this.layout.day.formatter((i + this.layout.weekStart) % 7); + td.className = this.cssClass + "-day"; + } + + this.tools = document.createElement("div"); + this.tools.className = this.cssClass + "-tools"; + this.month = document.createElement("div"); + this.month.className = this.cssClass + "-month"; + this.monthName = document.createElement("div"); + this.monthName.className = this.cssClass + "-name"; + this.nextMonth = document.createElement("div"); + this.nextMonth.className = this.cssClass + "-next"; + this.previousMonth = document.createElement("div"); + ; + this.previousMonth.className = this.cssClass + "-previous"; + this.month.appendChild(this.previousMonth); + this.month.appendChild(this.monthName); + this.month.appendChild(this.nextMonth); + this.year = document.createElement("div"); + this.year.className = this.cssClass + "-year"; + this.yearName = document.createElement("div"); + this.yearName.className = this.cssClass + "-name"; + this.nextYear = document.createElement("div"); + this.nextYear.className = this.cssClass + "-next"; + this.previousYear = document.createElement("div"); + this.previousYear.className = this.cssClass + "-previous"; + this.year.appendChild(this.previousYear); + this.year.appendChild(this.yearName); + this.year.appendChild(this.nextYear); + this.tools.appendChild(this.month); + this.tools.appendChild(this.year); + var self = this; + this.nextMonth.addEventListener("click", function () { + self._month = (self._month + 1) % 12; + self.render(); + }); + this.previousMonth.addEventListener("click", function () { + self._month = (self._month + 11) % 12; + self.render(); + }); + this.nextYear.addEventListener("click", function () { + self._year++; + self.render(); + }); + this.previousYear.addEventListener("click", function () { + self._year--; + self.render(); + }); + + for (var _i = 0; _i < 6; _i++) { + tr = this.body.insertRow(); + + for (var j = 0; j < 7; j++) { + var _td = tr.insertCell(tr); + + _td.className = this.cssClass + "-day"; + _td.innerHTML = _i + "x" + j; + + _td.addEventListener("click", function () { + self._day = parseInt(this.getAttribute("data-day")); + self._month = parseInt(this.getAttribute("data-month")); + self._year = parseInt(this.getAttribute("data-year")); + + self._value.setDate(self._day); + + self._value.setFullYear(self._year); + + self._value.setMonth(self._month); + + self.render(); + + self._emit("select", { + value: self._value + }); + + self._emit(":value", { + value: value + }); + }); + } + } + + this.calendar.appendChild(this.tools); + this.calendar.appendChild(this.calendarContent); + /* + this.minutes = document.createElement("div"); + this.minutes.className = this.cssClass + "-clock"; + for (var i = 1; i < 61; i++) { + var range = document.createElement("div"); + range.className = this.cssClass + "-time"; + range.innerHTML = i; + this.minutes.appendChild(range); + } + this.hours = document.createElement("div"); + this.hours.className = this.cssClass + "-clock"; + for (var i = 1; i < 25; i++) { + var range = document.createElement("div"); + range.className = this.cssClass + "-time"; + range.innerHTML = i; + this.hours.appendChild(range); + } + */ + + this.clock = document.createElement("div"); + this.clock.className = this.cssClass + "-clock"; + + for (var _i2 = 0; _i2 < 1440; _i2 += this.layout.time.range) { + var range = document.createElement("div"); + range.className = this.cssClass + "-time"; + range.innerHTML = this.layout.time.formatter(_i2); + range.setAttribute("data-time", _i2); + this.clock.appendChild(range); + range.addEventListener("click", function () { + var t = parseInt(this.getAttribute("data-time")); + var h = Math.floor(t / 60); + var m = Math.floor(t % 60); + + self._value.setHours(h); + + self._value.setMinutes(m); + + self._emit("select", self._value); + + self.render(); + }); + } //this.timeList = document.createElement("div"); + //this.timeList = + + + this.appendChild(this.calendar); + this.appendChild(this.clock); // this.appendChild(this.minutes); + // this.appendChild(this.hours); + + this.value = new Date(); + } + }, { + key: "create", + value: function create() { + var self = this; + + this._register("select"); + + this.classList.add(this.cssClass); + this.layout = { + day: { + formatter: function formatter(index) { + return ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][index]; //return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][index]; + } + }, + month: { + formatter: function formatter(index) { + return ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][index]; + } + }, + year: { + formatter: function formatter(value) { + return value; + } + }, + time: { + formatter: function formatter(value) { + var formatDigit = function formatDigit(d) { + return d < 10 ? "0" + d : d; + }; + + var h = Math.floor(value / 60); + var m = Math.floor(value % 60); + return formatDigit(h) + ":" + formatDigit(m); + }, + range: 15 + }, + weekStart: 5 + }; + } + }, { + key: "render", + value: function render() { + var start = new Date(this._year, this._month, 1); + var offset = 1 - start.getDay() - (7 - this.layout.weekStart) % 7; //(this.weekStart > 3 ? (this.weekStart - 7) : this.weekStart); + + this.yearName.innerHTML = this.layout.year.formatter(this._year); + this.monthName.innerHTML = this.layout.month.formatter(this._month); + var today = new Date(); + + for (var i = 0; i < 42; i++) { + var rowIndex = Math.floor(i / 7); + var cellIndex = i % 7; + var td = this.body.rows[rowIndex].cells[cellIndex]; + var d = new Date(this._year, this._month, offset + i); + td.classList.remove(this.cssClass + "-different-month"); // gray it + + if (d.getMonth() != this._month) td.classList.add(this.cssClass + "-different-month"); + if (d.getDate() == today.getDate() && d.getMonth() == today.getMonth() && d.getFullYear() == today.getFullYear()) td.classList.add(this.cssClass + "-day-today");else td.classList.remove(this.cssClass + "-day-today"); + if (d.getDate() == this._value.getDate() && d.getFullYear() == this._value.getFullYear() && d.getMonth() == this._value.getMonth()) td.classList.add(this.cssClass + "-day-selected");else td.classList.remove(this.cssClass + "-day-selected"); + td.setAttribute("data-day", d.getDate()); + td.setAttribute("data-month", d.getMonth()); + td.setAttribute("data-year", d.getFullYear()); + td.innerHTML = d.getDate(); + } + + for (var i = 0; i < this.clock.children.length; i++) { + this.clock.children[i].classList.remove(this.cssClass + "-time-selected"); + } + + var time = this._value.getHours() * 60 + this._value.getMinutes(); + + if (time % this.layout.time.range == 0) this.clock.children[time / this.layout.time.range].classList.add(this.cssClass + "-time-selected"); + } + }, { + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(value) { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _get(_getPrototypeOf(DateTimePicker.prototype), "setData", this).call(this, value); + + case 2: + if (value != null && this.field != null) this.value = this.data[this.field]; + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function setData(_x) { + return _setData.apply(this, arguments); + } + + return setData; + }() + }, { + key: "data", + get: function get() { + return _get(_getPrototypeOf(DateTimePicker.prototype), "data", this); + } + }, { + key: "modified", + value: function modified(name, value) { + if (name == this.field) this.value = value; + } + }, { + key: "value", + get: function get() { + return this._value; + }, + set: function set(value) { + if (value && !isNaN(value.getTime())) { + this._value = value; + this._month = value.getMonth(); + this._year = value.getFullYear(); + this._day = value.getDate(); + this.render(); + + this._emit("select", { + value: value + }); + + this._emit("modified", { + value: value, + property: "value" + }); //this.modified("value", ); + //this.modified("modified", { value }); + + } + } + }]); + + return DateTimePicker; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],21:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +var _Window = _interopRequireDefault(require("./Window.js")); + +var _class, _temp; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +var _default = _IUI.IUI.module((_temp = _class = /*#__PURE__*/function (_IUIWindow) { + _inherits(IUIDialog, _IUIWindow); + + var _super = _createSuper(IUIDialog); + + function IUIDialog() { + var _this; + + _classCallCheck(this, IUIDialog); + + _this = _super.call(this, { + closeable: true, + resizeable: true, + draggable: false, + _dragging: false, + _expanding: false, + x: 0, + y: 0, + visible: false, + modal: false + }); + + var self = _assertThisInitialized(_this); + + _this._register("visible"); + + _this._register("resize"); + + _this.on("close", function () { + self.hide(); + }); + + return _this; + } + + _createClass(IUIDialog, [{ + key: "create", + value: function create() { + _get(_getPrototypeOf(IUIDialog.prototype), "create", this).call(this); + + var self = this; + + if (this.modal) { + this.background = iui("iui_app_background"); + + if (!this.background) { + var bg = document.createElement("div"); + bg.id = "iui_app_background"; + document.body.insertAdjacentElement("afterBegin", bg); + this.background = iui(bg).background(); + } // this.modal.className = this.customClass + "-modal-background"; + + + this.classList.add(this.customClass + "-modal"); + } + + this.loading = document.createElement("div"); + this.loading.className = this.customClass + "-loading"; + if (this.loadingText) this.loading.innerHTML = this.loadingText;else { + var lc = document.createElement("div"); + lc.className = this.customClass + "-loading-content"; + this.loading.appendChild(lc); + } + this.body.appendChild(this.loading); + + if (this.draggable) { + this.addEventListener("mousedown", function (e) { + self._startDragging(e); + }); + } else { + this.header.addEventListener('mousedown', function (e) { + self._startDragging(e); + }); + } + + document.addEventListener('mouseup', function () { + self._stopDragging(); + + self._stopExpanding(); + }); + document.addEventListener('mousemove', function (e) { + if (self._dragging) self._drag(e);else if (self._expanding) self._expand(e); + }); + this.addEventListener("mousedown", function (e) { + if (self.style.cursor == "nwse-resize") self._startExpanding(e); + }); + this.addEventListener("mousemove", function (e) { + if (self._dragging) return; + + if (!self._expanding) { + var x = (e.pageX || e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft)) - self.offsetLeft; + var y = (e.pageY || e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop)) - self.offsetTop; + + if (self.clientWidth - x < 5 && self.clientHeight - y < 5) { + self.style.cursor = "nwse-resize"; + } else { + self.style.cursor = ""; + } + } + }); + } + }, { + key: "_startDragging", + value: function _startDragging(e) { + this._dragging = true; + this._dragX = (e.pageX || e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft)) - this.offsetLeft; + this._dragY = (e.pageY || e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop)) - this.offsetTop; //corssbrowser mouse pointer values + + document.onselectstart = function () { + return false; + }; + } + }, { + key: "_drag", + value: function _drag(e) { + var x = e.pageX || e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); + var y = e.pageY || e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); + this.style.top = y - this._dragY + "px"; // (y - self.y) + "px"; + + this.style.left = x - this._dragX + "px"; //(x - self.x) + "px"; + + this._emit("move", { + left: this.offsetLeft, + top: this.offsetTop + }); + } + }, { + key: "_stopDragging", + value: function _stopDragging() { + this._dragging = false; + } + }, { + key: "_startExpanding", + value: function _startExpanding(e) { + document.onselectstart = function () { + return false; + }; + + this._expanding = true; + this._dragX = (e.pageX || e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft)) - this.offsetLeft; + this._dragY = (e.pageY || e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop)) - this.offsetTop; + this._width = this.clientWidth; + this._height = this.clientHeight; + } + }, { + key: "_expand", + value: function _expand(e) { + var x = (e.pageX || e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft)) - this.offsetLeft; + var y = (e.pageY || e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop)) - this.offsetTop; + this.resize(this._width + x - this._dragX, this._height + y - this._dragY); + } + }, { + key: "_stopExpanding", + value: function _stopExpanding() { + this._expanding = false; + this.style.cursor = ""; + this._width = this.clientWidth; + this._height = this.clientHeight; + + document.onselectstart = function () { + return true; + }; + } + }, { + key: "setLoading", + value: function setLoading(visible) { + if (this.footer) for (var i = 0; i < this.footer.children.length; i++) { + if (this.footer.children[i].nodeName == "BUTTON") this.footer.children[i].disabled = visible; + } + if (visible) this.loading.classList.add(this.customClass + "-loading-visible");else this.loading.classList.remove(this.customClass + "-loading-visible"); + return this; + } + }, { + key: "center", + value: function center() { + this._updateSize(); + + return this.move(window.pageXOffset + window.innerWidth / 2 - this.offsetWidth / 2, window.pageYOffset + window.innerHeight / 2 - this.offsetHeight / 2); + } + }, { + key: "setVisible", + value: function setVisible(visible) { + if (visible == this.visible) return; + this.visible = visible; + + if (visible) { + this.classList.add(this.customClass + "-visible"); + + if (this.background) { + this.background.setVisible(true); + } //else + + + if (!this._shown) { + this._updateSize(); + + this._shown = true; + } + + this.setFocus(true); + + this._updateSize(); + } else { + this._updateSize(); + + this.classList.remove(this.customClass + "-visible"); + this.classList.remove(this.customClass + "-active"); + if (this.background) this.background.setVisible(false); //this.modal.classList.remove(this.customClass + "-modal-background-visible"); + + this.setFocus(false); + + var i = _IUI.IUI._nav_list.indexOf(this); + + if (i > -1) _IUI.IUI._nav_list.splice(i, 1); + /* + IUI._nav_list.pop + if (IUI._previousWindow) + if (IUI._previousWindow.visible) + IUI._previousWindow.focus(); + else + window.location.hash = ""; + else + window.location.hash = ""; + */ + } + + this._emit("visible", { + visible: visible + }); + + return this; + } + }, { + key: "hide", + value: function hide() { + this.setVisible(false); + return this; + } + }, { + key: "show", + value: function show() { + this.setVisible(true); + return this; + } + }]); + + return IUIDialog; +}(_Window["default"]), _defineProperty(_class, "moduleName", "dialog"), _temp)); + +exports["default"] = _default; +document.addEventListener("keydown", function (e) { + if (e.keyCode === 27) { + // ESC + var dialogs = _IUI.IUI.registry.filter(function (o) { + return o instanceof IUIDialog; + }).filter(function (x) { + return x.focus; + }); + + for (var i = 0; i < dialogs.length; i++) { + dialogs[i].hide(); + } + } +}); //IUI.module("dialog", IUIDialog, function(el, modal, properties){ return new IUIDialog(el, modal, properties);}); + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"./Window.js":33}],22:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function set(target, property, value, receiver) { if (typeof Reflect !== "undefined" && Reflect.set) { set = Reflect.set; } else { set = function set(target, property, value, receiver) { var base = _superPropBase(target, property); var desc; if (base) { desc = Object.getOwnPropertyDescriptor(base, property); if (desc.set) { desc.set.call(receiver, value); return true; } else if (!desc.writable) { return false; } } desc = Object.getOwnPropertyDescriptor(receiver, property); if (desc) { if (!desc.writable) { return false; } desc.value = value; Object.defineProperty(receiver, property, desc); } else { _defineProperty(receiver, property, value); } return true; }; } return set(target, property, value, receiver); } + +function _set(target, property, value, receiver, isStrict) { var s = set(target, property, value, receiver || target); if (!s && isStrict) { throw new Error('failed to set property'); } return value; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(DropDown, _IUIElement); + + var _super = _createSuper(DropDown); + + function DropDown() { + var _this; + + _classCallCheck(this, DropDown); + + _this = _super.call(this, { + "direction": "down" + }); + + var self = _assertThisInitialized(_this); + + _this._register("visible"); + + _this.visible = false; // this.classList.add(this.cssClass + "-" + this.direction); + + _this.menu = _this.getElementsByClassName(_this.cssClass + "-menu")[0]; //this.arrow = document.createElement("div"); + //this.arrow.className = this.customClass + "-arrow"; + //this.el.appendChild(this.arrow); + + if (_this.getAttribute("fixed")) { + _this._fixed = true; + document.body.appendChild(_this.menu); + } //this.el.appendChild(this.menu); + + + _this.addEventListener("click", function (e) { + var t = e.target; + + do { + if (t == self.menu) return; + } while (t = t.parentElement); + + self.setVisible(!self.visible); + }); + + _IUI.IUI._menus.push(_assertThisInitialized(_this)); + /* + document.body.addEventListener("click", function(e) + { + if (!self.visible) + return; + + var x = e.target; + do { + if (x == self.menu || x == self.el) + return; + } while (x = x.parentNode) + + if (e.target.id == "iui_app_background") + return; + self.setVisible(false); + });*/ + + + return _this; + } + + _createClass(DropDown, [{ + key: "fixed", + get: function get() { + return this._fixed; + }, + set: function set(value) { + if (value) document.body.appendChild(this.menu); + this._fixed = value; + } + }, { + key: "hide", + value: function hide() { + return this.setVisible(false); + } + }, { + key: "show", + value: function show() { + return this.setVisible(true); + } + }, { + key: "getOffset", + value: function getOffset() { + var el = this; + var _x = 0; + var _y = 0; + + while (!isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) { + _x += el.offsetLeft - el.scrollLeft; + _y += el.offsetTop - el.scrollTop; + el = el.offsetParent; + } + + _x += window.pageXOffset; + _y += window.pageYOffset; + return { + top: _y, + left: _x, + width: this.clientWidth, + height: this.clientHeight + }; + } + }, { + key: "data", + set: function set(value) { + // console.log("DD", value); + _set(_getPrototypeOf(DropDown.prototype), "data", value, this, true); // console.log("VV", this._uiBindings, this._dataBindings); + + } + }, { + key: "setVisible", + value: function setVisible(visible) { + this.visible = visible; + + if (!this.fixed) { + if (visible) { + this.menu.classList.add(this.cssClass + "-menu-visible"); + this.classList.add(this.cssClass + "-visible"); + } else { + this.menu.classList.remove(this.cssClass + "-menu-visible"); + this.classList.remove(this.cssClass + "-visible"); + } + } else { + if (visible) { + var rect = this.getBoundingClientRect(); + var menuWidth = this.menu.clientWidth; + var menuHeight = this.menu.clientHeight; + + if (menuWidth > document.body.clientWidth) { + menuWidth = document.body.clientWidth - 10; + this.menu.style.width = menuWidth + "px"; + } + + var startX = rect.left + (rect.width / 2 - menuWidth / 2); + + if (this.direction == "up") { + // var menuTop = rect.top - this.arrow.clientHeight - this.menu.clientHeight; + var menuTop = rect.top - this.menu.clientHeight; + + if (menuTop < 0) { + menuTop = 5; // this.menu.style.height = (rect.top - this.arrow.clientHeight ) + "px"; + + this.menu.style.height = rect.top + "px"; + this.menu.classList.add(this.cssClass + "-menu-oversized"); + } else this.menu.classList.remove(this.cssClass + "-menu-oversized"); //this.arrow.classList.remove(this.customClass + "-arrow-down"); + //this.arrow.classList.add(this.customClass + "-arrow-up"); + //this.arrow.style.top = ( rect.top - this.arrow.clientHeight ) + "px"; + + + this.menu.style.top = menuTop + "px"; + } else { + //var menuTop = rect.top + rect.height + this.arrow.clientHeight; + var menuTop = rect.top + rect.height; //this.arrow.classList.remove(this.customClass + "-arrow-up"); + //this.arrow.classList.add(this.customClass + "-arrow-down"); + //this.arrow.style.top = ( rect.top + rect.height ) + "px"; + + this.menu.style.top = menuTop + "px"; + + if (menuTop + menuHeight > document.body.clientHeight) { + this.menu.style.height = document.body.clientHeight - menuTop + "px"; + this.menu.classList.add(this.cssClass + "-menu-oversized"); + } else { + this.menu.classList.remove(this.cssClass + "-menu-oversized"); + } + } + + if (startX < 0) startX = 5;else if (startX + menuWidth > document.body.clientWidth) startX = document.body.clientWidth - menuWidth - 5; //this.arrow.style.left = (rect.left + (rect.width/2 - this.arrow.clientWidth/2)) + "px"; + + this.menu.style.left = startX + "px"; //this.arrow.classList.add(this.customClass + "-arrow-visible"); + + this.menu.classList.add(this.cssClass + "-menu-visible"); + this.classList.add(this.cssClass + "-visible"); + } else { + //this.arrow.classList.remove(this.customClass + "-arrow-visible"); + this.menu.classList.remove(this.cssClass + "-menu-visible"); + this.classList.remove(this.cssClass + "-visible"); + } + } + + this._emit("visible", { + visible: visible + }); + + return this; + } + }]); + + return DropDown; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],23:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Grid, _IUIElement); + + var _super = _createSuper(Grid); + + function Grid() { + var _this; + + _classCallCheck(this, Grid); + + _this = _super.call(this, { + index: "iid", + layout: { + content: { + field: "name", + formatter: null + }, + title: { + field: "content", + formatter: null + }, + footer: { + field: "footer", + formatter: null + } + } + }); + + _this._register("add"); + + _this._register("layout"); + + _this._register("contextmenu"); + + _this.windows = []; + return _this; + } + + _createClass(Grid, [{ + key: "create", + value: function create() { + for (var i = 0; i < this.children.length; i++) { + this.add(this.children[i]); + } + } + }, { + key: "setGridLayout", + value: function setGridLayout(style) { + this.style.grid = style; + + this._emit("layout", style, this); + + return this; + } + }, { + key: "add", + value: function add(win) { + var self = this; + win.setAttribute("draggable", true); + win.addEventListener("dragstart", function (e) { + e.dataTransfer.effectAllowed = 'move'; + self._dragItem = this; + this.classList.add(self.cssClass + '-window-drag'); + }); + win.addEventListener("dragover", function (e) { + if (self._dragItem) { + e.preventDefault(); + this.classList.add(self.cssClass + '-window-over'); + e.dataTransfer.dropEffect = 'move'; // See the section on the DataTransfer object. + } + }); + win.addEventListener("dragleave", function (e) { + if (e.preventDefault) e.preventDefault(); + this.classList.remove(self.cssClass + "-window-over"); + }); + win.addEventListener("dragend", function (e) { + this.classList.remove(self.cssClass + '-window-drag'); + self._dragItem = null; + }); + win.addEventListener("drop", function (e) { + self._dragItem.classList.remove(self.cssClass + "-window-drag"); + + e.currentTarget.classList.remove(self.cssClass + "-window-over"); + + for (var i = 0; i < self.children.length; i++) { + if (self.children[i] == self._dragItem) { + self.insertBefore(self._dragItem, e.currentTarget.nextSibling); + break; + } else if (self.children[i] == e.currentTarget) { + self.insertBefore(self._dragItem, e.currentTarget); + break; + } + } + + self._dragItem = null; + }); + win.addEventListener("contextmenu", function (e) { + self.selected = win; + + self._emit("contextmenu", { + win: win + }); + }); + win.on("close", function () { + self.remove(win); + }); + } + }, { + key: "addOld", + value: function addOld(item) { + var self = this; + var li = item; //document.createElement("li"); + //li.setAttribute("data-id", item[this.index]); + + li.setAttribute("draggable", true); + li.addEventListener("dragstart", function (e) { + e.dataTransfer.effectAllowed = 'move'; + self._dragItem = this; + this.classList.add(self.cssClass + '-window-drag'); + }); + li.addEventListener("dragover", function (e) { + if (self._dragItem) { + e.preventDefault(); + this.classList.add(self.cssClass + '-window-over'); + e.dataTransfer.dropEffect = 'move'; // See the section on the DataTransfer object. + } + }); + li.addEventListener("dragleave", function (e) { + if (e.preventDefault) e.preventDefault(); + this.classList.remove(self.cssClass + "-window-over"); + }); + li.addEventListener("dragend", function (e) { + this.classList.remove(self.cssClass + '-window-drag'); + self._dragItem = null; + }); + li.addEventListener("drop", function (e) { + self._dragItem.classList.remove(self.cssClass + "-window-drag"); + + e.currentTarget.classList.remove(self.cssClass + "-window-over"); + + for (var i = 0; i < self.children.length; i++) { + if (self.children[i] == self._dragItem) { + self.insertBefore(self._dragItem, e.currentTarget.nextSibling); + break; + } else if (self.children[i] == e.currentTarget) { + self.insertBefore(self._dragItem, e.currentTarget); + break; + } + } + + self._dragItem = null; + }); + li.addEventListener("contextmenu", function (e) { + self.selected = win; + + self._emit("contextmenu", item, win, this, e); + }); + var win = iui(li).window({ + draggable: false, + title: this.layout.title.formatter ? this.layout.title.formatter(item[this.layout.title.field], item) : item[this.layout.title.field] + }); + var body = this.layout.content.formatter ? this.layout.content.formatter(item[this.layout.content.field], item, win, this) : item[this.layout.content.field]; + if (body instanceof HTMLElement) win.body.appendChild(body);else win.body.innerHTML = body; + var footer = this.layout.footer.formatter ? this.layout.footer.formatter(item[this.layout.footer.field], item, win, this) : item[this.layout.footer.field]; + + if (footer != null) { + var fe = document.createElement("div"); + fe.className = "window-footer"; + if (footer instanceof HTMLElement) fe.appendChild(footer);else fe.innerHTML = footer; + win.appendChild(fe); + } + + win.on("close", function () { + self.remove(win); + }); + this.appendChild(li); + win.control = item; + this.windows.push(win); + + this._emit("add", item, win, this); + + return this; //win._updateSize(); + } + }, { + key: "remove", + value: function remove(win) { + win.destroy(); + this.removeChild(win); + } + }, { + key: "clear", + value: function clear() { + while (this.children.length > 0) { + this.removeChild(this.children[0]); + } + } + }]); + + return Grid; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],24:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Input, _IUIElement); + + var _super = _createSuper(Input); + + function Input() { + var _this; + + _classCallCheck(this, Input); + + _this = _super.call(this, { + formatter: function formatter(x) { + return x; + } + }); + + _this._register("input"); + + _this._register("change"); + + return _this; + } + + _createClass(Input, [{ + key: "_checkValidity", + value: function _checkValidity() { + if (this.validate != null) { + try { + var valid = this.validate.apply(this); + + if (!valid) { + this.setAttribute("invalid", ""); + this.classList.add(this.cssClass + "-invalid"); + return false; + } else { + this.removeAttribute("invalid"); + this.classList.remove(this.cssClass + "-invalid"); + return true; + } + } catch (e) { + console.log("Validation Error", e); + return false; + } + } + + return true; + } + }, { + key: "caption", + get: function get() { + return this.getAttribute("caption"); // this._span.innerHTML; + }, + set: function set(value) { + this.setAttribute("caption", value); + this._span.innerHTML = value; + } + }, { + key: "create", + value: function create() { + var _this2 = this; + + this.isAuto = this.hasAttribute("auto"); + this.field = this.getAttribute("field"); + + if (this.field != null) { + this.setAttribute(":data", "d['".concat(this.field, "']")); + this.setAttribute("async:revert", "d['".concat(this.field, "'] = await this.getData()")); + } + + this._span = document.createElement("span"); + this._span.innerHTML = this.getAttribute("caption"); + this._input = document.createElement("input"); + this._input.placeholder = " "; + var self = this; + + this._input.addEventListener("input", function () { + if (self._checkValidity() && self.isAuto) _this2.revert(); //self.data[self.field] = self.value; + }); + + this._input.addEventListener("change", function () { + self._emit("change", { + value: self.value + }); + }); + + this.type = this.hasAttribute("type") ? this.getAttribute("type").toLowerCase() : "text"; + this.accept = this.getAttribute("accept"); + this.appendChild(this._input); + this.appendChild(this._span); + + if (this.type == "password") { + this._eye = document.createElement("div"); + this._eye.className = this.cssClass + "-eye"; + + this._eye.addEventListener("mousedown", function () { + self._input.type = "text"; + + self._eye.classList.add(self.cssClass + "-eye-active"); + }); + + this._eye.addEventListener("mouseup", function () { + self._input.type = "password"; + + self._eye.classList.remove(self.cssClass + "-eye-active"); + }); + + this.appendChild(this._eye); + } + } + }, { + key: "updateAttributes", + value: function () { + var _updateAttributes = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(deep, parentData) { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _get(_getPrototypeOf(Input.prototype), "updateAttributes", this).call(this, deep, parentData); + + case 2: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function updateAttributes(_x, _x2) { + return _updateAttributes.apply(this, arguments); + } + + return updateAttributes; + }() + }, { + key: "type", + get: function get() { + return this._input.type; + }, + set: function set(value) { + this._input.type = value; + } + }, { + key: "accept", + get: function get() { + return this._input.accept; + }, + set: function set(value) { + this._input.accept = value; + } + }, { + key: "disabled", + get: function get() { + return this._input.disabled; + }, + set: function set(value) { + if (value) this.setAttribute("disabled", "disabled");else this.removeAttribute("disabled"); + this._input.disabled = value; + } + }, { + key: "enabled", + get: function get() { + return !this._input.disabled; + }, + set: function set(value) { + this.disabled = !value; + } + }, { + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(value) { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return _get(_getPrototypeOf(Input.prototype), "setData", this).call(this, value); + + case 2: + if (this.type == "checkbox") this._input.checked = value;else if (this.type == "date") this._input.value = value != null ? value.toISOString().slice(0, 10) : value;else if (this.type == null || this.type == "text" || this.type == "search" || this.type == "password") this._input.value = value == null ? '' : value;else this._input.value = value; + if (this._checkValidity() && this.isAuto) this.revert(); + /* + await super.setData(value); + if (value != null && this.field != null) + this.value = value[this.field]; + else if (this.field != null) + this.value = null; + */ + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function setData(_x3) { + return _setData.apply(this, arguments); + } + + return setData; + }() // modified(name, value) { + // if (name == this.field) { + // this.value = value; + // } + // } + + }, { + key: "getData", + value: function () { + var _getData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + if (!(this.type == "checkbox")) { + _context3.next = 4; + break; + } + + return _context3.abrupt("return", this._input.checked); + + case 4: + if (!(this.type == "date")) { + _context3.next = 8; + break; + } + + return _context3.abrupt("return", new Date(this._input.value)); + + case 8: + if (!(this.type == "file")) { + _context3.next = 16; + break; + } + + _context3.t0 = Uint8Array; + _context3.next = 12; + return this._input.files[0].arrayBuffer(); + + case 12: + _context3.t1 = _context3.sent; + return _context3.abrupt("return", new _context3.t0(_context3.t1)); + + case 16: + return _context3.abrupt("return", this._input.value); + + case 17: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function getData() { + return _getData.apply(this, arguments); + } + + return getData; + }() + }, { + key: "data", + get: function get() { + var _this3 = this; + + if (this.type == "checkbox") return this._input.checked;else if (this.type == "date") return new Date(this._input.value);else if (this.type == "file") { + return new Promise(function (resolve) { + _this3._input.files[0].arrayBuffer().then(function (x) { + resolve(new Uint8Array(x)); + }); + }); + } else return this._input.value; + } + /* + get data() { + if (this.type == "checkbox") + return this._input.checked; + else if (this.type == "date") + return new Date(this._input.value); + else if (this.type == "file") + { + } + else + return this._input.value; + } + */ + // set value(value) { + // if (this.type == "checkbox") + // this._input.checked = value; + // else if (this.type == "date") + // this._input.value = value != null ? value.toISOString().slice(0, 10) : value; + // else if (this.type == null || this.type == "text") + // this._input.value = value == null ? '' : value; + // else + // this._input.value = value; + // this._checkValidity(); + // } + + }]); + + return Input; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],25:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +var _Link = _interopRequireDefault(require("../Router/Link.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Location, _IUIElement); + + var _super = _createSuper(Location); + + function Location() { + _classCallCheck(this, Location); + + return _super.call(this); + } + + _createClass(Location, [{ + key: "create", + value: function create() { + var self = this; + window.router.on("route", function (e) { + self.textContent = ''; // clear everything + + var html = ""; + var route = e.route; + var current = document.createElement("div"); + current.innerHTML = route.caption; + self.append(current); + + while (route = route.parent) { + var sep = document.createElement("span"); + self.prepend(sep); + var link = new _Link["default"](); + link.link = route.link; + link.innerHTML = route.caption; + self.prepend(link); + } + }); + } + }]); + + return Location; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"../Router/Link.js":12}],26:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Login, _IUIElement); + + var _super = _createSuper(Login); + + function Login() { + var _this; + + _classCallCheck(this, Login); + + _this = _super.call(this); + var template = "
\n\n
\n
\n\n \n\n\n \n\n
\n \n \n \n
\n\n
\n
\n \n
\n
"; + _this.innerHTML = template; + _this._message = _this.querySelector("div[name='message']"); + _this._usernameText = _this.querySelector("span[name='spnUsername']"); + _this._passwordText = _this.querySelector("span[name='spnPassword']"); + _this._rememberText = _this.querySelector("label[name='labelRemember']"); + _this._username = _this.querySelector("input[name='txtUsername']"); + _this._password = _this.querySelector("input[name='txtPassword']"); + _this._remember = _this.querySelector("input[name='remember']"); + _this._login = _this.querySelector("button[name='login']"); + + var self = _assertThisInitialized(_this); + + _this._password.addEventListener("keydown", function (e) { + if (e.keyCode == 13) self.login(); + }); + + if (_this.hasAttribute("message")) { + _this._message.innerHTML = _this.getAttribute("message"); + } + + if (_this.hasAttribute("username")) { + _this._usernameText.innerHTML = _this.getAttribute("username"); + } + + if (_this.hasAttribute("password")) { + _this._passwordText.innerHTML = _this.getAttribute("password"); + } + + if (_this.hasAttribute("remember")) { + _this._rememberText.innerHTML = _this.getAttribute("remember"); + } + + if (_this.hasAttribute("login")) { + _this._login.innerHTML = _this.getAttribute("login"); + } + + var username = _this.username; // window.localStorage.getItem("iui.login.username"); + + var password = _this.password; // window.localStorage.getItem("iui.login.password"); + + if (username != "") { + _this._username.value = username; + _this._password.value = password; + _this._remember.checked = true; + } + + _this._login.addEventListener("click", function () { + return _this.login(); + }); + + _this._register("login"); + + _this._register("logout"); + + return _this; + } + + _createClass(Login, [{ + key: "login", + value: function login() { + var username = this._username.value; + var password = this._password.value; + if (username == "" || password == "") return; + + if (this._remember.checked) { + this.username = username; + this.password = password; //window.localStorage.setItem("iui.login.username", username); + //window.localStorage.setItem("iui.login.password", password); + } else { + window.localStorage.removeItem("iui.login.username"); + window.localStorage.removeItem("iui.login.password"); + } + + this._emit("login", { + username: username, + password: password + }); + } + }, { + key: "username", + get: function get() { + return window.localStorage.getItem("iui.login.username"); + }, + set: function set(value) { + return window.localStorage.setItem("iui.login.username", value); + } + }, { + key: "password", + get: function get() { + return window.localStorage.getItem("iui.login.password"); + }, + set: function set(value) { + return window.localStorage.setItem("iui.login.password", value); + } + }, { + key: "token", + get: function get() { + return window.localStorage.getItem("iui.login.token"); + }, + set: function set(value) { + return window.localStorage.setItem("iui.login.token", value); + } + }, { + key: "message", + get: function get() { + return this._message.innerHTML; + }, + set: function set(value) { + this._message.innerHTML = value; + } + }, { + key: "logout", + value: function logout() { + window.localStorage.removeItem("iui.login.username"); + window.localStorage.removeItem("iui.login.password"); + window.localStorage.removeItem("iui.login.token"); + this._username.value = ""; + this._password.value = ""; + this._remember.checked = false; + + this._emit("logout"); + } + }, { + key: "created", + value: function created() {//if (this.hasAttribute("auto")) { + // let username = this.username;// window.localStorage.getItem("iui.login.username"); + // let password = this.password;// window.localStorage.getItem("iui.login.password"); + // if (this.username != "") { + // this._emit("login", { username, password }); + // } + //} + } + }]); + + return Login; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],27:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUI = require("../Core/IUI.js"); + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _Background = _interopRequireDefault(require("./Background.js")); + +var _DropDown = _interopRequireDefault(require("./DropDown.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var Menu = /*#__PURE__*/function (_IUIElement) { + _inherits(Menu, _IUIElement); + + var _super = _createSuper(Menu); + + function Menu(props) { + var _this; + + _classCallCheck(this, Menu); + + _this = _super.call(this, _IUI.IUI.extend(props, { + index: "iid", + layout: { + field: "name", + formatter: null + }, + visible: false, + "static": false, + "target-class": "selected" + })); + + _this._register("visible"); + + _this._register("select"); + + _IUI.IUI._menus.push(_assertThisInitialized(_this)); + + return _this; + } // clear() { + // this.innerHTML = ""; + // this._uiBindings = null; + // } + + + _createClass(Menu, [{ + key: "hide", + value: function hide() { + return this.setVisible(false); + } //show(x, y, element) { + // return this.setVisible(true, x, y, element); + //} + + }, { + key: "show", + value: function show(event) { + event.preventDefault(); + var el = event.currentTarget; + var x = event.pageX; + var y = event.pageY; + this.setVisible(true, x, y, el); + } + }, { + key: "showModal", + value: function () { + var _showModal = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(element) { + var width; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _get(_getPrototypeOf(Menu.prototype), "setData", this).call(this, element.data); + + case 2: + if (!this.background) { + this.background = document.getElementById("iui_app_background"); + + if (!this.background) { + this.background = new _Background["default"](); // document.createElement("div"); + + this.background.id = "iui_app_background"; + document.body.insertAdjacentElement("afterBegin", this.background); + } + } + + this.background.show(); + this.classList.add(this.cssClass + "-modal"); + this.classList.add(this.cssClass + "-visible"); + width = window.innerWidth * 0.8; + this.style.width = width + "px"; + this.style.top = window.pageYOffset + window.innerHeight / 2 - this.offsetHeight / 2 + "px"; // (document.body.clientHeight / 2 - this.clientHeight / 2) + "px"; + + this.style.left = window.pageXOffset + window.innerWidth / 2 - this.offsetWidth / 2 + "px"; //(document.body.clientWidth / 2 - width / 2) + "px"; + + this.visible = true; + + this._emit("visible", { + visible: true + }); + + return _context.abrupt("return", this); + + case 13: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function showModal(_x) { + return _showModal.apply(this, arguments); + } + + return showModal; + }() + }, { + key: "setVisible", + value: function () { + var _setVisible = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(visible, x, y, element) { + var rect; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + this.visible = visible; + + if (this.target) { + if (this["target-class"] != null && this["target-class"] != "") this.target.classList.remove(this["target-class"]); + this.target = null; + } + + if (!visible) { + _context2.next = 18; + break; + } + + if (!element) { + _context2.next = 8; + break; + } + + _context2.next = 6; + return this.setData(element.data); + + case 6: + this.target = element; + if (this["target-class"] != null && this["target-class"] != "") this.target.classList.add(this["target-class"]); + + case 8: + this._pass = true; + + if (!(_IUI.IUI.responsive && !this["static"])) { + _context2.next = 11; + break; + } + + return _context2.abrupt("return", this.showModal()); + + case 11: + this.classList.remove(this.cssClass + "-modal"); + rect = this.getBoundingClientRect(); + + if (y != null) { + if (y + rect.height > document.documentElement.clientHeight) this.style.top = document.documentElement.clientHeight - rect.height + "px";else this.style.top = y + "px"; + } + + this.classList.add(this.cssClass + "-visible"); + + if (x != null) { + if (x + rect.width > document.body.scrollWidth) this.style.left = document.body.scrollWidth - rect.width + "px"; //else if (x < 0) + // this.style.left = "0px"; + else this.style.left = x + "px"; + } + + _context2.next = 20; + break; + + case 18: + this.classList.remove(this.cssClass + "-visible"); + if (this.background) this.background.hide(); //await super.setData({});// = {}; + + case 20: + this._emit("visible", { + visible: visible + }); + + return _context2.abrupt("return", this); + + case 22: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function setVisible(_x2, _x3, _x4, _x5) { + return _setVisible.apply(this, arguments); + } + + return setVisible; + }() + }]); + + return Menu; +}(_IUIElement2["default"]); + +exports["default"] = Menu; +; + +_IUI.IUI.module(Menu); + +_IUI.IUI.responsive = false; +window.addEventListener("load", function () { + var handler = function handler(e) { + if (e.target.id == "iui_app_background" && _IUI.IUI.responsive) { + for (var i = 0; i < _IUI.IUI._menus.length; i++) { + if (_IUI.IUI._menus[i] instanceof Menu) _IUI.IUI._menus[i].setVisible(false); + } + + e.preventDefault(); + return; + } + + for (var i = 0; i < _IUI.IUI._menus.length; i++) { + if (_IUI.IUI._menus[i].visible) { + var x = e.target; + var m = _IUI.IUI._menus[i]; + + if (m instanceof Menu) { + if (m._pass) { + m._pass = false; + continue; + } else if (m.visible) if (!m.contains(e.target)) m.setVisible(false); + } else if (m instanceof _DropDown["default"]) { + if (!(m.contains(e.target) || m.menu.contains(e.target))) m.setVisible(false); + } + } + } + }; + + document.body.addEventListener("click", handler); + document.body.addEventListener("touchstart", handler); +}); + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"./Background.js":16,"./DropDown.js":22}],28:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +var _Link = _interopRequireDefault(require("../Router/Link.js")); + +var _Check = _interopRequireDefault(require("./Check.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Navbar, _IUIElement); + + var _super = _createSuper(Navbar); + + function Navbar() { + var _this; + + _classCallCheck(this, Navbar); + + _this = _super.call(this); + _this._list = []; + return _this; + } + + _createClass(Navbar, [{ + key: "search_old", + value: function search_old(text) { + for (var i = 0; i < this._container.children.length; i++) { + var el = this._container.children[i]; + + if (el.title.toLowerCase().includes(text)) { + el.text.innerHTML = el.title.replace(new RegExp(text, 'gi'), function (str) { + return "".concat(str, ""); + }); + el.style.display = ""; + el.removeAttribute("hidden"); // make parents visible + + var level = parseInt(el.getAttribute("data-level")); + + for (var j = i - 1; j >= 0; j--) { + var previous = this._container.children[j]; + var pLevel = parseInt(previous.getAttribute("data-level")); + + if (pLevel < level) { + previous.removeAttribute("hidden"); + previous.style.display = ""; + if (previous.expand) previous.expand.checked = true; + level = pLevel; + } + } + } else { + el.style.display = "none"; + } + } + } + }, { + key: "search", + value: function search(text, within) { + var menu = within == null ? this._container : within.menu; + + for (var i = 0; i < menu.children.length; i++) { + var item = menu.children[i]; + var link = item.link; + + if (link.title.toLowerCase().includes(text)) { + link.text.innerHTML = link.title.replace(new RegExp(text, 'gi'), function (str) { + return "".concat(str, ""); + }); + item.style.display = ""; //if (within != null) + // within.removeAttribute("collapsed"); + // make parents visible + + var parent = within; + + while (parent != null && parent != this) { + parent.expand.checked = true; + parent.removeAttribute("collapsed"); + parent.style.display = ""; + parent = parent.parentElement.parentElement; + } + } else { + item.style.display = "none"; + } + + if (item.menu != null) this.search(text, item); + } + } + }, { + key: "expand_old", + value: function expand_old(link, value) { + var next = link; // = link.nextElementSibling; + + var level = parseInt(link.getAttribute("data-level")); // save + //window.localStorage.setItem("iui.navbar/" + link.link, value); + + if (link.expand && link.expand.checked != value) link.expand.checked = value; + + while (next = next.nextElementSibling) { + if (parseInt(next.getAttribute("data-level")) > level) { + if (value) next.removeAttribute("hidden");else next.setAttribute("hidden", ""); + if (next.expand) next.expand.checked = value; + } else break; + } + } + }, { + key: "expand", + value: function expand(item, value) { + if (value) item.removeAttribute("collapsed");else item.setAttribute("collapsed", ""); + item.expand.checked = value; + } + }, { + key: "collapsed", + get: function get() { + return this.hasAttribute("collapsed"); + } + }, { + key: "auto", + get: function get() { + return this.hasAttribute("auto"); + } + }, { + key: "build", + value: function build() { + var _this2 = this; + + this.innerHTML = ""; + var roots = router.routes.filter(function (x) { + return x.parent == null; + }); + var self = this; + this._search = document.createElement("input"); + this._search.type = "search"; + this._search.className = this.cssClass + "-search textbox"; + + this._search.addEventListener("input", function (x) { + self.search(_this2._search.value); + }); + + this.appendChild(this._search); + this._container = document.createElement("div"); + this._container.className = this.cssClass + "-container"; + this.appendChild(this._container); + var collapsed = this.collapsed; + var auto = this.auto; + + var filterRoutes = function filterRoutes(routes) { + return routes.filter(function (r) { + if (r.hasAttribute("private")) return false; + + if (_this2["private"] instanceof Function) { + try { + if (_this2["private"](r)) { + return false; + } + } catch (ex) { + console.log(ex); + debugger; + } + + return true; + } + + return true; + }); + }; + + var appendRoutes = function appendRoutes(routes, level, container) { + var _loop = function _loop() { + var item = document.createElement("div"); + item.className = _this2.cssClass + "-item"; + var link = new _Link["default"](); // document.createElement("i-link"); + + item.setAttribute("level", level); + link.link = routes[i].link; + link.title = routes[i].caption; + if (routes[i].icon != null) link.innerHTML = ""; + link.text = document.createElement("span"); + link.text.innerHTML = link.title; + link.appendChild(link.text); + item.link = link; + item.appendChild(link); + container.appendChild(item); + + self._list.push(item); + + var subRoutes = filterRoutes(routes[i].routes); + + if (subRoutes.length > 0) { + // append plus + item.expand = new _Check["default"]({ + cssClass: _this2.cssClass + "-check" + }); // document.createElement("i-check"); + + item.expand.checked = _this2.collapsed ? false : true; + item.expand.checked = !collapsed; + if (collapsed) item.setAttribute("collapsed", ""); + link.appendChild(item.expand); + item.menu = document.createElement("div"); + item.menu.className = _this2.cssClass + "-menu"; + item.appendChild(item.menu); + item.expand.on("click", function (e) { + self.expand(item, item.expand.checked); + e.stopPropagation(); + }); + + if (auto) { + item.addEventListener("mouseenter", function () { + return self.expand(item, true); + }); + item.addEventListener("mouseleave", function () { + return self.expand(item, false); + }); + } + + appendRoutes(subRoutes, level + 1, item.menu); + } + }; + + for (var i = 0; i < routes.length; i++) { + _loop(); + } + }; + + appendRoutes(filterRoutes(roots), 0, this._container); + } + }, { + key: "created", + value: function created() { + var _this3 = this; + + if (!this.hasAttribute("manual")) window.router.on("created", function () { + return _this3.build(); + }); + window.router.on("navigate", function (e) { + for (var i = 0; i < _this3._list.length; i++) { + var el = _this3._list[i]; + if (el.link.link == e.base) el.setAttribute("selected", "");else el.removeAttribute("selected"); + } + }); + } + }]); + + return Navbar; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"../Router/Link.js":12,"./Check.js":18}],29:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUI = require("../Core/IUI.js"); + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _Menu = _interopRequireDefault(require("../UI/Menu.js")); + +var _Layout = _interopRequireDefault(require("../Data/Layout.js")); + +var _Repeat = _interopRequireDefault(require("../Data/Repeat.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Select, _IUIElement); + + var _super = _createSuper(Select); + + function Select() { + var _this; + + _classCallCheck(this, Select); + + _this = _super.call(this, { + visible: false, + searchlist: false, + hasArrow: true, + //hasAdd: false, + updateTextBox: true, + query: function query(x) { + return null; + }, + //_formatter: (x) => x, + _autocomplete: false, + cssClass: 'select' + }); + + _this._register("select"); + + _this._register("input"); + + _this._register("add"); + + return _this; + } + + _createClass(Select, [{ + key: "disconnectedCallback", + value: function disconnectedCallback() { + //console.log("Select removed", this); + if (!this.searchlist && this.menu) app.removeChild(this.menu); + } + }, { + key: "connectedCallback", + value: function connectedCallback() { + _get(_getPrototypeOf(Select.prototype), "connectedCallback", this).call(this); + + if (!this.searchlist && this.menu) app.appendChild(this.menu); + } + }, { + key: "autocomplete", + get: function get() { + return this._autocomplete; + } // get formatter() { + // return this._formatter; + // } + // set formatter(value) { + // this._formatter = value; + // } + + }, { + key: "_checkValidity", + value: function _checkValidity() { + if (this.validate != null) { + try { + var valid = this.validate.apply(this); + + if (!valid) { + this.setAttribute("invalid", ""); + this.classList.add(this.cssClass + "-invalid"); + return false; + } else { + this.removeAttribute("invalid"); + this.classList.remove(this.cssClass + "-invalid"); + return true; + } + } catch (ex) { + console.log("Validation Error", ex); + return false; + } + } + + return true; + } + }, { + key: "hasAdd", + get: function get() { + return this.hasAttribute("add"); + }, + set: function set(value) { + if (value) this.setAttribute("add", "add");else this.removeAttribute("add"); + } + }, { + key: "create", + value: function () { + var _create = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var self, layout; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + this.isAuto = this.hasAttribute("auto"); + this.field = this.getAttribute("field"); + + if (this.field != null) { + this.setAttribute(":data", "d['".concat(this.field, "']")); + this.setAttribute(":revert", "d['".concat(this.field, "'] = this.data")); + } + + this._autocomplete = this.hasAttribute("autocomplete"); //this.hasAdd = this.hasAttribute("add") || this.hasAdd; + + self = this; //if (this._autocomplete) + // this.cssClass += "-autocomplete"; + + this.repeat = new _Repeat["default"](); + this.repeat.cssClass = "select-menu-repeat"; //this.repeat.innerHTML = this.innerHTML; + + this.repeat.setAttribute(":data", "d[1]"); + this.counter = document.createElement("div"); + this.counter.className = this.cssClass + "-counter"; + this.counter.innerHTML = "${d[0]}"; + this.menu = new _Menu["default"]({ + cssClass: this.cssClass + "-menu", + "target-class": "" + }); + this.menu.on("click", /*#__PURE__*/function () { + var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(e) { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!(e.target != self.textbox && e.target != self.counter && e.target !== self.menu)) { + _context.next = 5; + break; + } + + _context.next = 3; + return self.setData(e.target.data); + + case 3: + self._emit("input", { + value: e.target.data + }); + + self.hide(); + + case 5: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + return function (_x) { + return _ref.apply(this, arguments); + }; + }()).on("visible", function (x) { + if (!x.visible) self.hide(); + }); + + if (this._autocomplete) { + this.textbox = document.createElement("input"); + this.textbox.type = "search"; + this.textbox.className = this.cssClass + "-textbox"; + if (this.placeholder) this.textbox.placeholder = this.placeholder; + this.textbox.addEventListener("keyup", function (e) { + if (e.keyCode != 13) { + self._query(0, self.textbox.value); + } + }); + this.textbox.addEventListener("search", function (e) {// console.log(e); + }); + this.menu.appendChild(this.textbox); + } // get collection + + + layout = _Layout["default"].get(this, "div", true, true); //debugger; + + if (layout != null && layout.label != undefined && layout.menu != undefined) { + this.label = layout.label.node; + this.repeat.appendChild(layout.menu.node); + } else if (layout != null && layout["null"] != null) { + this.label = layout["null"].node; + this.repeat.appendChild(layout["null"].node.cloneNode(true)); + } else { + this.label = document.createElement("div"); + this.repeat.innerHTML = this.innerHTML; + } // clear everything else + //this.innerHTML = ""; + + + this.label.className = this.cssClass + "-label"; + this.appendChild(this.label); + this.label.addEventListener("click", function (e) { + self.show(); + }); + this.menu.appendChild(this.repeat); + this.menu.appendChild(this.counter); + + if (this.hasArrow) { + this.arrow = document.createElement("div"); + this.arrow.className = this.cssClass + "-arrow"; + this.appendChild(this.arrow); + this.arrow.addEventListener("click", function (e) { + if (self.visible) self.hide();else self.show(); + }); + } + + if (this.hasAdd) { + this._add_button = document.createElement("div"); + this._add_button.className = this.cssClass + "-add"; + this.appendChild(this._add_button); + + this._add_button.addEventListener("click", function (e) { + self._emit("add", { + value: self.data + }); + }); + } + + if (!this.searchlist) { + _context2.next = 27; + break; + } + + this.appendChild(this.menu); + _context2.next = 34; + break; + + case 27: + app.appendChild(this.menu); + + if (!app.loaded) { + _context2.next = 34; + break; + } + + _context2.next = 31; + return this.menu.create(); + + case 31: + _IUI.IUI.bind(this.menu, this, "menu"); + + _context2.next = 34; + return _IUI.IUI.create(this.menu); + + case 34: + this.addEventListener("click", function (e) { + if (e.target == self.textbox) self.show(); + }); + + case 35: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function create() { + return _create.apply(this, arguments); + } + + return create; + }() + }, { + key: "disabled", + get: function get() { + return this.hasAttribute("disabled"); + }, + set: function set(value) { + if (this._autocomplete) { + this.textbox.disabled = value; + } + + if (value) { + this.setAttribute("disabled", value); + } else { + this.removeAttribute("disabled"); + } + } + /* + set(item) { + if (this.autocomplete != undefined) { + if (item != null) + this.textbox.value = this.layout.text.formatter ? this.layout.text.formatter(item[this.layout.text.field], item) : item[this.layout.text.field]; + else + this.textbox.value = ""; + } else { + if (item != null) + this.label.innerHTML = this.layout.text.formatter ? this.layout.text.formatter(item[this.layout.text.field], item) : item[this.layout.text.field]; + else + this.label.innerHTML = ""; + } + this.selected = item; + this._emit("select", item); + } + */ + + }, { + key: "show", + value: function show() { + this.setVisible(true); //this.textbox.focus(); + } + }, { + key: "hide", + value: function hide() { + this.setVisible(false); //this.textbox.focus(); + } + }, { + key: "clear", + value: function clear() { + if (this.autocomplete !== undefined) this.textbox.value = ""; //else + // this.label.innerHTML = ""; + //this.menu.clear(); + + this.response.start = 0; + this.selected = null; + } + }, { + key: "_query", + value: function () { + var _query2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var self, text, res; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + if (!this._autocomplete) { + _context3.next = 3; + break; + } + + if (!this.disabled) { + _context3.next = 3; + break; + } + + return _context3.abrupt("return"); + + case 3: + self = this; + text = this._autocomplete ? this.textbox.value : null; + res = this.query(0, text); + + if (!(res instanceof Promise)) { + _context3.next = 10; + break; + } + + _context3.next = 9; + return res; + + case 9: + res = _context3.sent; + + case 10: + if (!(res[1].length == 0)) { + _context3.next = 13; + break; + } + + _context3.next = 13; + return self.setData(null); + + case 13: + _context3.next = 15; + return this.menu.setData(res); + + case 15: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function _query() { + return _query2.apply(this, arguments); + } + + return _query; + }() + }, { + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(value) { + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return _get(_getPrototypeOf(Select.prototype), "setData", this).call(this, value); + + case 2: + try { + //let text = this.formatter(value); + // this.label.innerHTML = text == null ? "" : text; + this._emit("select", { + value: value + }); + } catch (ex) { + //console.log(ex); + this._emit("select", { + value: value + }); + } //this._checkValidity(); + + + if (this._checkValidity() && this.isAuto) this.revert(); + + case 4: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function setData(_x2) { + return _setData.apply(this, arguments); + } + + return setData; + }() + }, { + key: "setVisible", + value: function setVisible(visible) { + var _this2 = this; + + if (visible == this.visible) return; //console.log("SLCT: SetVisible", visible); + + if (visible) { + this._query(0); // show menu + + + var rect = this.getBoundingClientRect(); + this.menu.style.width = this.clientWidth - this._computeMenuOuterWidth() + "px"; + this.menu.style.paddingTop = rect.height + "px"; + this.menu.setVisible(true, rect.left, rect.top); //, this.menu); + + this.visible = true; + this.classList.add(this.cssClass + "-visible"); + if (this._autocomplete) setTimeout(function () { + _this2.textbox.focus(); + }, 100); + } else { + this.visible = false; + this.classList.remove(this.cssClass + "-visible"); + this.menu.hide(); + } //this.textbox.focus(); + + } + }, { + key: "_computeMenuOuterWidth", + value: function _computeMenuOuterWidth() { + return this.menu.offsetWidth - this.menu.clientWidth; + /* + var style = window.getComputedStyle(this.menu.el, null); + var paddingLeft = style.getPropertyValue('padding-left'); + var paddingRight = style.getPropertyValue('padding-right'); + var borderLeft = style.getPropertyValue('border-left'); + var borderRight = style.getPropertyValue('border-right'); + paddingLeft = parseInt(paddingLeft.substr(0, paddingLeft.length - 2)); + paddingRight = parseInt(paddingRight.substr(0, paddingRight.length - 2)); + borderLeft = parseInt(borderLeft.substr(0, borderLeft.length - 2)); + borderRight = parseInt(borderRight.substr(0, borderRight.length - 2)); + return paddingLeft + paddingRight + borderLeft + borderRight; + */ + } + }]); + + return Select; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"../Data/Layout.js":8,"../Data/Repeat.js":10,"../UI/Menu.js":27}],30:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUI = require("../Core/IUI.js"); + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Tab, _IUIElement); + + var _super = _createSuper(Tab); + + function Tab(properties) { + _classCallCheck(this, Tab); + + return _super.call(this, properties); + } + + _createClass(Tab, [{ + key: "create", + value: function create() {} + }, { + key: "caption", + get: function get() { + return this.getAttribute("caption"); + } + }, { + key: "selected", + get: function get() { + return this.hasAttribute("selected"); // == "1" || selected == "yes" || selected == "true"); + } + }]); + + return Tab; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],31:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +var _Layout = _interopRequireDefault(require("../Data/Layout.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Table, _IUIElement); + + var _super = _createSuper(Table); + + function Table() { + var _this; + + _classCallCheck(this, Table); + + _this = _super.call(this, { + indexer: function indexer(x) { + var _x$instance$id, _x$instance; + + return (_x$instance$id = (_x$instance = x.instance) === null || _x$instance === void 0 ? void 0 : _x$instance.id) !== null && _x$instance$id !== void 0 ? _x$instance$id : x.id; + }, + parents_getter: function parents_getter(x) { + var _x$instance2; + + return (_x$instance2 = x.instance) === null || _x$instance2 === void 0 ? void 0 : _x$instance2.attributes.item("parents"); + }, + children_getter: function children_getter(x) { + var _x$instance3; + + return (_x$instance3 = x.instance) === null || _x$instance3 === void 0 ? void 0 : _x$instance3.attributes.item("children"); + }, + parents_changed: function parents_changed(x, p) { + return false; + }, + _long_press_x: 0, + _long_press_y: 0, + updateOnModification: true, + last_query: function last_query() { + return true; + } + }); + + var self = _assertThisInitialized(_this); + + _this.list = []; + + _this._register("click"); + + _this._register("rowdblclick"); + + _this._register("contextmenu"); + + _this._register("expand"); + + _this._register("enter"); + + _this._register("leave"); + + _this._register("touch"); //window.addEventListener("resize", function(e){ + // self.updateSize(); + //}); + + + _this._resizing = false; + _this._resizeX = 0; + return _this; + } + + _createClass(Table, [{ + key: "layout", + get: function get() { + return this._layout; + }, + set: function set(value) { + var _this2 = this; + + this._layout = value; + if (!this._created) return; + var self = this; + this.header.innerHTML = ""; + var row = this.header.insertRow(); + + var _loop = function _loop() { + var column = value[i]; + var cell = row.insertCell(); + if (column.width && column.width.substring(column.width.length - 1) == "%") width = parseInt(column.width.substring(0, column.width.length - 1)) / 100 * _this2.clientWidth + "px";else width = column.width; + cell.style.width = width; //cell.setAttribute("data-width", column.width); + + var hWrap = document.createElement("div"); + hWrap.className = _this2.cssClass + "-header-wrap"; + var resizer = document.createElement("div"); + resizer.className = _this2.cssClass + "-resizer"; + resizer.addEventListener("mousedown", function (e) { + self.updateSize(); //corssbrowser mouse pointer values + + self._resizeX = e.pageX || e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); + self._resizingColumnWidth = cell.clientWidth; + self._resizingTableWidth = self.table.clientWidth; + self._resizing = true; + self._resizingColumn = cell; // self.headers.indexOf(cell); + + document.onselectstart = function () { + return false; + }; + }); + + if (column.type && column.type == "search") { + var input = document.createElement("input"); + input.type = "search"; + input.className = _this2.cssClass + "-header-input"; + input.placeholder = column.name; + input.id = self.id + "_" + column.field; + input.addEventListener("keyup", function () { + self.search(column, input.value); + }); + hWrap.appendChild(input); + } else if (column.type && column.type == "select") { + // filter out list + column.filter = []; + var select = document.createElement("div"); + select.id = self.id + "_" + column.field; + select.className = self.cssClass + "-header-select"; + select.innerHTML = column.name; + select.setAttribute("data-dir", "normal"); + menu = document.createElement("div"); + menu.className = self.cssClass + "-header-menu"; + select.addEventListener("click", function (e) { + if (select.getAttribute("data-dir") == "down") self.sort(column, true);else self.sort(column, false); + }); + tip = document.createElement("div"); + tip.className = self.cssClass + "-filter-menu"; + menu.appendChild(tip); + menu.addEventListener("click", function (evt) { + if (evt.target != menu) return; + + if (tip.style.display == "none") { + var items = self.list.distinct(column.field); + tip.innerHTML = ""; + var filters = []; + + for (var i = 0; i < items.length; i++) { + var item = items[i]; + var fc = document.createElement("input"); + fc.type = "checkbox"; + fc.checked = column.filter.indexOf(item) > -1 ? false : true; // add to filters list + + filters.push({ + el: fc, + text: item + }); // add to field.filter to be rendered by the grid + + fc.addEventListener("click", function () { + column.filter = []; + filters.forEach(function (filter) { + if (!filter.checked) column.filter.push(filter.text); + }); + + self._applyFilter(); + }); + var fi = document.createElement("label"); + fi.className = self.cssClass + "-filter-menu-item"; + fi.innerHTML = column.formatter ? column.formatter(item, fi) : item; + tip.appendChild(fc); + tip.appendChild(fi); + tip.appendChild(document.createElement("br")); + } + + tip.style.display = "block"; + } else { + tip.style.display = "none"; + } + }); + hWrap.appendChild(select); + hWrap.appendChild(menu); + } else { + var text = document.createElement("div"); + text.className = self.cssClass + "-header-text"; + text.innerHTML = column.name; + text.setAttribute("data-dir", "normal"); //var sort = ne("div"); + //sort.className = "grid-header-sort"; + + hWrap.appendChild(text); //hWrap.appendChild(resizer); + //hWrap.appendChild(sort); + + text.addEventListener("click", function (e) { + if (text.getAttribute("data-dir") == "down") self.sort(column, true);else self.sort(column, false); + }); + } + + hWrap.appendChild(resizer); + cell.appendChild(hWrap); + }; + + for (var i = 0; i < value.length; i++) { + var width; + var menu; + var tip; + + _loop(); + } + } + }, { + key: "create", + value: function create() { + var self = this; // get layout + + this._layout = _Layout["default"].get(this, "td", true); + this.table = document.createElement("table"); + this.table.className = this.cssClass + "-body"; + this.appendChild(this.table); + this.body = this.table.createTBody(); + this.header = this.table.createTHead(); + this.header.className = this.cssClass + "-header"; + this.body.addEventListener("mousedown", function (e) { + if (self.multiselect) { + self._boxStartX = e.pageX; + self._boxStartY = e.pageY; + self._multiselecting = true; + self.selectBox.classList.add(self.cssClass + "-select-box-visible"); + } + }); + this.selectBox = document.createElement("div"); + this.selectBox.className = this.cssClass + "-select-box"; + this.appendChild(this.selectBox); + this.body.addEventListener("mousemove", function (e) { + if (self._multiselecting || self._multideselecting) { + self._boxEndX = e.pageX; + self._boxEndY = e.pageY; + + if (e.movementY > 0) { + self._multiselecting = true; + self._multideselecting = false; + } else if (e.movementY < 0) { + self._multiselecting = false; + self._multideselecting = true; + } + + if (self._boxEndX > self._boxStartX) { + self.selectBox.style.left = self._boxStartX + "px"; + self.selectBox.style.width = self._boxEndX - self._boxStartX + "px"; + } else { + self.selectBox.style.left = self._boxEndX + "px"; + self.selectBox.style.width = self._boxStartX - self._boxEndX + "px"; + } + + if (self._boxEndY > self._boxStartY) { + self.selectBox.style.top = self._boxStartY + "px"; + self.selectBox.style.height = self._boxEndY - self._boxStartY + "px"; + } else { + self.selectBox.style.top = self._boxEndY + "px"; + self.selectBox.style.height = self._boxStartY - self._boxEndY + "px"; + } // now lets look for all rows within this range + + + var rect = self.body.getBoundingClientRect(); + var offset = { + top: rect.top + document.body.scrollTop, + left: rect.left + document.body.scrollLeft + }; + var by, sy; + + if (self._boxStartY > self._boxEndY) { + by = self._boxStartY - offset.top; + sy = self._boxEndY - offset.top; + } else { + by = self._boxEndY - offset.top; + sy = self._boxStartY - offset.top; + } + + var selected = []; + + for (var i = 0; i < self.body.rows.length; i++) { + var top = self.body.rows[i].offsetTop; + var bottom = top + self.body.rows[i].offsetHeight; + + if ((top > sy || bottom > sy) && (top < by || bottom < by)) { + selected.push(self.body.rows[i]); + self.body.rows[i].classList.add(self.cssClass + "-row-selected"); + } else { + self.body.rows[i].classList.remove(self.cssClass + "-row-selected"); + } + } + + for (var i = 0; i < selected.length; i++) { + self._selectChildren(selected[i], true); + } + } + }); + document.body.addEventListener("mouseup", function (e) { + if (self._multiselecting || self._multideselecting) { + self._multiselecting = false; + self._multideselecting = false; + self.selectBox.classList.remove(self.cssClass + "-select-box-visible"); + self.selectBox.style.width = "0px"; + self.selectBox.style.height = "0px"; + } + }); + document.addEventListener('mouseup', function () { + self._resizing = false; + + document.onselectstart = function () { + return true; + }; + }); + document.addEventListener('mousemove', function (e) { + if (self._resizing) { + var x = e.pageX || e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); //var y = e.pageY || e.clientY + (document.documentElement.scrollTop ? + // document.documentElement.scrollTop : + // document.body.scrollTop); + + var col = self._resizingColumn; + var tw, cw; + + if (document.dir == "rtl") { + tw = self._resizingTableWidth - (x - self._resizeX); + cw = self._resizingColumnWidth - (x - self._resizeX); + } else { + tw = self._resizingTableWidth + (x - self._resizeX); + cw = self._resizingColumnWidth + (x - self._resizeX); + } // must have limits + + + if (cw > 20) { + /* + tw = 0; + for(var i = 0; i < self.headers.length; i++) + { + if (i != self.resizingColumn) + tw += self.headers[i].clientWidth; + //self.headers[self.resizingColumn]; + } + */ + //tw += cw; + self.header.style.width = tw + "px"; + self.table.style.width = tw + "px"; + col.style.width = cw + "px"; //dummy.style.width = cw + "px";// col.style.width; + } + } + }); // load data + //if (this.data) + // this.load(this.data); + //this.updateSize(); + + this._created = true; + if (this._layout) this.layout = this._layout; + } + }, { + key: "updateSize", + value: function updateSize() { + var totalWidth = 0; + + for (var i = 0; i < this.table.tHead.rows[0].cells.length; i++) { + var header = this.table.tHead.rows[0].cells[i]; + var width = header.clientWidth + "px"; + + if (width == "0px") { + width = this.headers[i].getAttribute("data-width"); + if (width.substring(width.length - 1) == "%") width = parseInt(width.substring(0, width.length - 1)) / 100 * this.clientWidth + "px"; + } + + if (header.style.display != "none") totalWidth += parseInt(width.substr(0, width.length - 2)); + header.style.width = width; + } + + if (this.clientWidth > 0) { + this.body.style.width = this.table.tHead.clientWidth + "px"; + this.table.tHead.style.width = this.table.tHead.clientWidth + "px"; + } else { + this.table.style.width = totalWidth + "px"; + } + } + }, { + key: "sort", + value: function sort(column, desc) { + if (this.tree) return; //let column = this.layout[columnIndex]; + + if (column.sorter) { + this.list.sort(column.sorter); + } else { + this.list.sort(function (a, b) { + if (typeof a[column.field] == "number" || a[column.field] instanceof Date) return a[column.field] - b[column.field];else return a[column.field].toString().localeCompare(b[column.field]); + }); + } + + if (desc) this.list.reverse(); + + for (var i = 0; i < this.list.length; i++) { + var tr = this.getRows(this.indexer(this.list[i]))[0]; + this.body.insertAdjacentElement("beforeEnd", tr); + } + + for (var i = 0; i < this.layout.length; i++) { + var th = this.table.tHead.rows[0].cells[i]; + var txt = th.getElementsByClassName(this.cssClass + "-header-text")[0]; + if (column !== this.layout[i]) txt.setAttribute("data-dir", "normal");else if (desc) txt.setAttribute("data-dir", "up");else txt.setAttribute("data-dir", "down"); + } + } + }, { + key: "setRowVisible", + value: function setRowVisible(row, visible) { + var level = parseInt(row.getAttribute("data-level")); + + if (visible) { + row.classList.remove(this.cssClass + "-row-hidden"); + row.classList.remove(this.cssClass + "-row-selected"); // make sure parent is visible + + for (var i = row.rowIndex - 2; i >= 0; i--) { + var lev = parseInt(this.body.rows[i].getAttribute("data-level")); + if (lev > level) break;else if (lev < level) { + this.setRowVisible(this.body.rows[i], true); + break; + } + } + } else { + row.classList.add(this.cssClass + "-row-hidden"); // make sure children are visible + + for (var i = row.rowIndex; i < this.body.rows.length; i++) { + var lev = parseInt(this.body.rows[i].getAttribute("data-level")); + if (lev <= level) break; + this.body.rows[i].classList.add(this.cssClass + "-row-hidden"); + } + } + } + }, { + key: "expand", + value: function expand(row, visible) { + var button = row.getElementsByClassName(this.cssClass + "-tree")[0]; + button.setAttribute("data-expand", visible ? 1 : 0); + var level = parseInt(row.getAttribute("data-level")); + + for (var i = row.rowIndex; i < this.body.rows.length; i++) { + var lev = parseInt(this.body.rows[i].getAttribute("data-level")); + if (lev <= level) break; + + if (!visible) { + button = this.body.rows[i].getElementsByClassName(this.cssClass + "-tree"); + if (button.length > 0) button[0].setAttribute("data-expand", 0); + this.body.rows[i].classList.add(this.cssClass + "-row-hidden"); + } else if (lev == level + 1) this.body.rows[i].classList.remove(this.cssClass + "-row-hidden"); + } //this.updateSize(); + + } + }, { + key: "filter", + value: function filter(queryFunction) { + if (queryFunction) { + this.last_query = queryFunction; + + for (var i = 0; i < this.body.rows.length; i++) { + var item = this.get(parseInt(this.body.rows[i].getAttribute("data-id"))); + var visible = queryFunction(item); + this.setRowVisible(this.body.rows[i], visible); + } + } // restore default view + else { + this.last_query = function () { + return true; + }; // view all + + + for (var i = 0; i < this.body.rows.length; i++) { + this.body.rows[i].classList.remove(this.cssClass + "-row-hidden"); + } // hide non-expanded + + + for (var i = 0; i < this.body.rows.length; i++) { + var row = this.body.rows[i]; + var level = parseInt(row.getAttribute("data-level")); + var button = row.getElementsByClassName(this.cssClass + "-tree"); + + if (button.length > 0) { + // hide ? + if (button[0].getAttribute("data-expand") == '0') { + for (i = i + 1; i < this.body.rows.length; i++) { + var subRow = this.body.rows[i]; + var l = parseInt(subRow.getAttribute("data-level")); + if (l > level) subRow.classList.add(this.cssClass + "-row-hidden");else { + i--; + break; + } + } + } + } + } + } + } + }, { + key: "_selectChildren", + value: function _selectChildren(row, value) { + var level = parseInt(row.getAttribute("data-level")); + + for (var i = row.rowIndex; i < this.body.rows.length; i++) { + var subRow = this.body.rows[i]; + var l = parseInt(subRow.getAttribute("data-level")); + + if (l > level) { + if (value) subRow.classList.add(this.cssClass + "-row-selected");else subRow.classList.remove(this.cssClass + "-row-selected"); + } else { + break; + } + } + } + }, { + key: "_select", + value: function _select(row, item) { + var multiple = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var context = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + if (this.multiselect) { + var checked = row.classList.contains(this.cssClass + "-row-selected"); // implement Microsoft Windows Explorer behaivor + + if (context) { + multiple = checked || multiple; + checked = !checked; + } + + if (multiple) { + var rows = this.getRows(this.indexer(item)); + if (checked) for (var i = 0; i < rows.length; i++) { + rows[i].classList.remove(this.cssClass + "-row-selected"); + + this._selectChildren(rows[i], false); + } else for (var i = 0; i < rows.length; i++) { + rows[i].classList.add(this.cssClass + "-row-selected"); + + this._selectChildren(rows[i], true); + } + } else { + for (var i = 0; i < this.body.rows.length; i++) { + this.body.rows[i].classList.remove(this.cssClass + "-row-selected"); + } + + row.classList.add(this.cssClass + "-row-selected"); + + this._selectChildren(row, true); + } + } else { + for (var i = 0; i < this.body.rows.length; i++) { + if (this.body.rows[i] == row) row.classList.add(this.cssClass + "-row-selected");else this.body.rows[i].classList.remove(this.cssClass + "-row-selected"); + } + + this._selected = item; + } + } + }, { + key: "selected", + get: function get() { + if (this.multiselect) { + var rt = []; + + for (var i = 0; i < this.body.rows.length; i++) { + if (this.body.rows[i].classList.contains(this.cssClass + "-row-selected")) { + var item = this.get(this.body.rows[i].getAttribute("data-id")); + if (rt.indexOf(item) < 0) rt.push(item); + } + } + + return rt; + } else return this._selected; + } + }, { + key: "_applyFilter", + value: function _applyFilter() { + for (var i = 0; i < this.list.length; i++) { + var item = this.list[i]; + el = document.getElementById(this.id + "_" + this.indexer(item), this.body); // visible by default + + el.style.display = ""; + + for (var j = 0; j < this.layout.length; j++) { + var column = this.layout[j]; + if (column.filter) column.filter.forEach(function (filter) { + if (item[column.field] == filter) { + // hide this one + el.style.display = "none"; + } + }); + } + } + } + }, { + key: "get", + value: function get(id) { + for (var i = 0; i < this.list.length; i++) { + if (this.indexer(this.list[i]) == id) return this.list[i]; + } + + return null; + } + }, { + key: "setColumnVisible", + value: function setColumnVisible(index, visible) { + var display = visible ? "table-cell" : "none"; + var columnWidth = this.headers[index].clientWidth; + + for (var i = 0; i < this.table.rows.length; i++) { + this.table.rows[i].cells[index].style.display = display; + } + + this.headers[index].style.display = display; // shrink the table + + if (display == "none") {//this.header.width = (this.header.clientWidth - columnWidth) + "px"; + } //this.updateSize(); + + } + }, { + key: "containsAny", + value: function containsAny(items) { + if (items == null) return false; + + for (var i = 0; i < items.length; i++) { + if (this.list.indexOf(items[i]) > -1) return true; + } + + return false; + } + }, { + key: "_createTreeButton", + value: function _createTreeButton(row, dynamicLoading, item) { + var self = this; + var button = document.createElement("div"); + button.className = this.cssClass + "-tree"; + button.setAttribute("data-expand", dynamicLoading ? 2 : 0); + button.addEventListener("click", function () { + var eState = this.getAttribute("data-expand"); + + if (eState == '2') { + var ev = { + button: button, + item: item, + row: row, + table: self, + success: function success() { + self.expand(this.button.parentNode.parentNode, 1); + }, + failure: function failure(errorMsg) { + this.setAttribute("data-expand", 2); + } + }; + this.setAttribute("data-expand", 3); // raise event + + self._emit("expand", ev); + } else if (eState == "0") { + self.expand(this.parentNode.parentNode, true); + } else if (eState == "1") { + self.expand(this.parentNode.parentNode, false); + } + }); + row.cells[0].insertAdjacentElement("afterbegin", button); + } + }, { + key: "add", + value: function add(item, dynamicLoading) //fast) + { + this.list.push(item); + var self = this; + var parents = this.parents_getter(item); + var newRow; + + if (this.containsAny(parents)) { + for (var i = 0; i < parents.length; i++) { + var parent = parents[i]; + var inListParents = this.getRows(this.indexer(parent)); + + for (var j = 0; j < inListParents.length; j++) { + var parentRow = inListParents[j]; // add expand button to parent + + var treeButton = parentRow.getElementsByClassName(this.cssClass + "-tree", parentRow); + + if (treeButton.length == 0) { + this._createTreeButton(parentRow); + + newRow = this._addRow(item, parseInt(parentRow.getAttribute("data-level")) + 1, false, parentRow.rowIndex); + } else { + newRow = this._addRow(item, parseInt(parentRow.getAttribute("data-level")) + 1, treeButton[0].getAttribute("data-expand") == '1', parentRow.rowIndex); + } + } // perhaps parent row depends on children + + + this.update(parent); + } + } else { + newRow = this._addRow(item, 0, true); + } + + if (dynamicLoading) this._createTreeButton(newRow, true, item); // @TODO: fix this since modified event is removed + + if (item.on) if (this.updateOnModification) item.on("modified", function (propertyName) { + //console.log("render", propertyName, item); + self.update(item, propertyName); + }); //if (!fast) + // self.layout.forEach(function(field){ + // if (field.type && field.type == "select") + //{ + // calculate distinct + //} + //}); + //this.updateSize(); + + return self; + } + }, { + key: "_findIndexes", + value: function _findIndexes(propertyIndex) { + var rt = []; + + for (var i = 0; i < this.layout.length; i++) { + if (this.layout[i].field == propertyIndex || this.layout[i].field == "_any") rt.push(i); + } + + return rt; + } + }, { + key: "_addRow", + value: function _addRow(item, level, visible, index) { + var _this3 = this; + + var self = this; // add item + + var tr = self.body.insertRow(index); + tr.setAttribute("data-id", this.indexer(item)); + tr.setAttribute("data-level", level); + if (visible) tr.className = this.cssClass + "-row";else tr.className = this.cssClass + "-row " + this.cssClass + "-row-hidden"; + + var _loop2 = function _loop2() { + var column = _this3.layout[i]; + var cl = column.node.cloneNode(true); // tr.insertCell(); + //this._make_bindings(cl) + + _IUI.IUI.bind(cl, _this3, "table"); + + tr.appendChild(cl); + if (cl.dataMap != null) cl.dataMap.render(item).then(function () { + return self._renderElement(cl, cl.data); + });else { + cl.data = item; + + _this3._renderElement(cl, cl.data); + } //if (column.formatter) + //{ + // var rt = column.formatter(item[column.field], item, cl); + // if (rt instanceof Element) + // { + // cl.appendChild(rt); + // } + // else + // cl.innerHTML=rt; + //} + //else + // cl.innerHTML=item[column.field]; + + cl.style.display = _this3.table.tHead.rows[0].cells[i].style.display; + }; + + for (var i = 0; i < this.layout.length; i++) { + _loop2(); + } + + tr.addEventListener("click", function (e) { + self._select(tr, item, e.ctrlKey); + + self._emit("click", { + data: item, + row: tr, + event: e + }); + }); + tr.addEventListener("dblclick", function (e) { + self._select(tr, item, e.ctrlKey); + + self._emit("rowdblclick", { + data: item, + row: tr, + event: e + }); + }); + tr.addEventListener("contextmenu", function (e) { + self._select(tr, item, e.ctrlKey, true); + + self._emit("contextmenu", { + data: item, + row: tr, + event: e + }); + }); + tr.addEventListener("mouseleave", function (e) { + //if (self._multideselecting) + // tr.classList.remove(self.cssClass + "-row-selected"); + self._emit("leave", { + data: item, + row: tr, + event: e + }); + }); + tr.addEventListener("mouseenter", function (e) { + //if (self._multiselecting) + // tr.classList.add(self.cssClass + "-row-selected"); + //self._select(tr, item, true); + self._emit("enter", { + data: item, + row: tr, + event: e + }); + }); + tr.addEventListener("touchstart", function (e) { + self._tx = e.touches[0].clientX; + self._ty = e.touches[0].clientY; + self._long_press_item = item; + self._long_press_x = e.touches[0].clientX; + self._long_press_y = e.touches[0].clientY; + if (self._long_press_timeout) clearTimeout(self._long_press_timeout); + self._long_press_timeout = setTimeout(function () { + if (self._long_press_item) { + self._select(tr, self._long_press_item); + + self._emit("contextmenu", { + data: self._long_press_item, + event: e, + row: tr + }); + + self._long_press_timeout = null; + self._long_press_item = null; + } + }, 600); + }); + this.addEventListener("touchmove", function (e) { + if (Math.abs(e.touches[0].clientX - self._long_press_x) > 10 || Math.abs(e.touches[0].clientY - self._long_press_y) > 10) { + self._long_press_item = null; + } + }); + tr.addEventListener("touchend", function (e) { + var tx = e.changedTouches[0].clientX; + var ty = e.changedTouches[0].clientY; + + if (Math.abs(tx - self._tx) < 10 && Math.abs(ty - self._ty) < 10) { + self._select(tr, item); + + self._emit("touch", { + data: item, + event: e, + row: tr + }); + } + + if (self._long_press_timeout) clearTimeout(self._long_press_timeout);else e.preventDefault(); + self._long_press_item = null; + self._long_press_timeout = null; + }); + return tr; + } + }, { + key: "getRows", + value: function getRows(id) { + var rt = []; + + for (var i = 0; i < this.body.rows.length; i++) { + if (this.body.rows[i].getAttribute("data-id") == id) rt.push(this.body.rows[i]); + } + + return rt; + } + }, { + key: "toJSON", + value: function toJSON(level) { + //if (!level) + // level = 3; + var headers = ["#"]; + var list = []; // make header + + for (var i = 0; i < this.layout.length; i++) { + if (!(this.layout[i].noPrint || this.layout[i].noExport) && this.headers[i].style.display != "none") { + headers.push(this.layout[i].name); + } + } + + var index = 1; // build table + + for (var i = 0; i < this.body.rows.length; i++) { + var row = this.body.rows[i]; + var rowLevel = parseInt(row.getAttribute("data-level")); + + if (level) { + if (rowLevel > level) continue; + } else if (row.classList.contains(this.cssClass + "-row-hidden")) { + continue; + } + + var item = [rowLevel, index++]; + + for (var j = 0; j < this.layout.length; j++) { + if (!(this.layout[j].noPrint || this.layout[j].noExport) && this.headers[j].style.display != "none") { + var text = ""; + + for (var k = 0; k < row.cells[j].childNodes.length; k++) { + if (row.cells[j].childNodes[k].nodeType == 3) { + text = row.cells[j].childNodes[k].data; + break; + } + } + + item.push(text); //row.cells[j].innerHTML); + } + } + + list.push(item); + } + + return { + headers: headers, + data: list + }; + } + }, { + key: "toTable", + value: function toTable(level) { + // create table + var tbl = document.createElement("table"); + var header = tbl.createTHead(); + var body = tbl.createTBody(); + var tr = header.insertRow(); // make header + + for (var i = 0; i < this.layout.length; i++) { + if (!this.layout[i].noPrint && this.headers[i].style.display != "none") { + var th = tr.insertCell(); + th.innerHTML = this.layout[i].name; + } + } // build table + + + for (var i = 0; i < this.body.rows.length; i++) { + var row = this.body.rows[i]; + + if (level) { + if (parseInt(row.getAttribute("data-level")) > level) continue; + } else if (row.classList.contains(this.cssClass + "-row-hidden")) { + continue; + } + + tr = body.insertRow(); + tr.classList.add("level-" + (parseInt(row.getAttribute("data-level")) + 1)); + + for (var j = 0; j < this.layout.length; j++) { + if (!this.layout[j].noPrint && this.headers[j].style.display != "none") { + var td = tr.insertCell(); + td.innerHTML = row.cells[j].innerHTML; + } + } + } + + return tbl; + } + }, { + key: "_removeRow", + value: function _removeRow(row) { + var level = parseInt(row.getAttribute("data-level")); + var nextIndex = row.rowIndex; // zero-indexed (dummy header included, so it's 1-indexed') + // remove all children + + while (nextIndex < this.body.rows.length) { + var r = this.body.rows[nextIndex]; + var l = parseInt(r.getAttribute("data-level")); + if (l <= level) break; + this.body.rows.deleteRow(nextIndex++); + } // get parent row + + + var parentRow = this._getParentRow(row); // remove row itself + + + this.body.deleteRow(row.rowIndex - 1); // remove expand button from parent if it has no more children + + if (parentRow) { + // last item ? means has no children + if (parentRow.rowIndex == this.body.rows.length || parseInt(this.body.rows[parentRow.rowIndex].getAttribute("data-level")) <= parseInt(parentRow.getAttribute("data-level"))) { + // remove expand button + var button = parentRow.getElementsByClassName(this.cssClass + "-tree"); + if (button.length > 0) button[0].parentNode.removeChild(button[0]); + } // render parent (in case formatter depends on children) + //var parent = this.get(parseInt(parentRow.getAttribute("data-id"))); + //this._renderRow(parentRow, parent); + + } + } + }, { + key: "_getById", + value: function _getById(id) { + for (var i = 0; i < this.list.length; i++) { + if (this.indexer(this.list[i]) == id) return this.list[i]; + } + + return null; // this; + } + }, { + key: "remove", + value: function remove(item) { + if (typeof item == "string" || typeof item == "number") item = this._getById(item); + if (item == null) return; + var rows = this.getRows(this.indexer(item)); // remove all occurrences + + for (var i = 0; i < rows.length; i++) { + this._removeRow(rows[i]); + } + + var i = this.list.indexOf(item); + this.list.splice(i, 1); + return this; + } + }, { + key: "clear", + value: function clear() { + while (this.body.rows.length > 0) { + this.body.deleteRow(0); + } + + this.list = []; + return this; + } //_renderRow(row, item, propertyName) + //{ + // if (propertyName) + // { + // var indexes = this._findIndexes(propertyName); + // for(var i = 0; i < indexes.length; i++) + // { + // var expand = null; + // if (indexes[i] == 0) + // { + // expand = row.cells[0].getElementsByClassName(this.cssClass + "-tree"); + // expand = expand.length > 0 ? expand[0] : null; + // } + // if (this.layout[indexes[i]].formatter) + // { + // var rt = this.layout[indexes[i]].formatter(item[propertyName], item, row.cells[indexes[i]]); + // if (rt == null) + // { + // // do nothing + // expand = false; + // } + // else if (rt instanceof Element) + // { + // row.cells[indexes[i]].innerHTML = ""; + // row.cells[indexes[i]].appendChild(rt); + // } + // else + // row.cells[indexes[i]].innerHTML=rt; + // } + // else + // row.cells[indexes[i]].innerHTML=item[propertyName]; + // if (expand) + // row.cells[0].insertAdjacentElement("afterbegin", expand); + // } + // } + // else + // { + // var expand = row.cells[0].getElementsByClassName(this.cssClass + "-tree"); + // expand = expand.length > 0 ? expand[0] : null; + // for(var i = 0; i < this.layout.length; i++) + // { + // var column = this.layout[i]; + // if (column.formatter) + // { + // var rt = column.formatter(item[column.field], item, row.cells[i]); + // if (rt instanceof Element) + // { + // row.cells[i].innerHTML = ""; + // row.cells[i].appendChild(rt); + // } + // else + // row.cells[i].innerHTML=rt; + // } + // else + // row.cells[i].innerHTML=item[column.field]; + // } + // if (expand) + // row.cells[0].insertAdjacentElement("afterbegin", expand); + // } + //} + + }, { + key: "_getParentRow", + value: function _getParentRow(row) { + var level = parseInt(row.getAttribute("data-level")); + + for (var i = row.rowIndex - 2; i >= 0; i--) { + if (parseInt(this.body.rows[i].getAttribute("data-level")) < level) return this.body.rows[i]; + } + } + }, { + key: "_renderItem", + value: function _renderItem(item) { + var propertyName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var rows = this.getRows(this.indexer(item)); + var removedRows = []; + var self = this; + var parentsChanged = this.parents_changed(item, propertyName); + + if (propertyName == null || parentsChanged) { + var notModifiedParents = []; // remove from parents + + var parents = this.parents_getter(item); + + for (var i = 0; i < rows.length; i++) { + var row = rows[i]; + var level = parseInt(row.getAttribute("data-level")); // get parent row + + var parentRow = this._getParentRow(row); + + if (parentRow) { + // parent found + var parent = this.get(parseInt(parentRow.getAttribute("data-id"))); + + if (parents == null || parents.indexOf(parent) == -1) { + // remove this node + this._removeRow(row); + + removedRows.push(row); + } else notModifiedParents.push(parent); + } + } // add to new parents + + + if (parents != null) { + for (var i = 0; i < parents.length; i++) { + var parent = parents[i]; + + if (notModifiedParents.indexOf(parent) == -1 && this.list.indexOf(parent) > -1) { + // add new row + var inListParents = this.getRows(this.indexer(parent)); + + for (var j = 0; j < inListParents.length; j++) { + var parentRow = inListParents[j]; + var treeButton = parentRow.getElementsByClassName(this.cssClass + "-tree", parentRow); + + if (treeButton.length == 0) { + this._createTreeButton(parentRow); + + this._addRow(item, parseInt(parentRow.getAttribute("data-level")) + 1, false, parentRow.rowIndex); + } else { + this._addRow(item, parseInt(parentRow.getAttribute("data-level")) + 1, treeButton[0].getAttribute("data-expand") == '1', parentRow.rowIndex); + } + } + } + } + } + } else {// render parent (in case formatter depends on children) + //for(var i = 0; i < rows.length; i++) + //{ + // var parentRow = this._getParentRow(rows[i]); + // if (parentRow) + // { + // var parent = this.get(parseInt(parentRow.getAttribute("data-id"))); + // this._renderRow(parentRow, parent, propertyName); + // } + //} + } // render the non-removed rows. + //for(var i = 0; i < rows.length; i++) + // if (removedRows.indexOf(rows[i]) == -1) + // this._renderRow(rows[i], item, propertyName); + + } + }, { + key: "update", + value: function update(item, propertyName) { + if (item) this._renderItem(item, propertyName);else { + for (var i = 0; i < this.list.length; i++) { + this._renderItem(this.list[i]); + } + } + return this; + } + }, { + key: "setData", + value: function () { + var _setData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(value) { + var self, loadFunction, i; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _get(_getPrototypeOf(Table.prototype), "setData", this).call(this, value); + + case 2: + this.clear(); + + if (this.tree) { + self = this; + + loadFunction = function loadFunction(items, level) { + for (var i = 0; i < items.length; i++) { + var item = items[i]; + self.list.push(item); + + var row = self._addRow(item, level, level == 0); + + if (item.children && item.children.length > 0) { + self._createTreeButton(row); // load children + + + loadFunction(item.children, level + 1); + } + } + }; // recursively load items + + + loadFunction(value, 0); + } else { + for (i = 0; i < value.length; i++) { + this.add(value[i]); + } + } + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function setData(_x) { + return _setData.apply(this, arguments); + } + + return setData; + }() + }]); + + return Table; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"../Data/Layout.js":8}],32:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _Tab = _interopRequireDefault(require("./Tab.js")); + +var _IUI = require("../Core/IUI.js"); + +var _Check = _interopRequireDefault(require("./Check.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var _default = _IUI.IUI.module( /*#__PURE__*/function (_IUIElement) { + _inherits(Tabs, _IUIElement); + + var _super = _createSuper(Tabs); + + function Tabs() { + _classCallCheck(this, Tabs); + + return _super.call(this, { + selected: null, + list: [], + _y: 0, + _x: 0, + auto: true + }); + } + + _createClass(Tabs, [{ + key: "create", + value: function create() { + var self = this; + + this._register("select"); + + this._bar = document.createElement("div"); + + this._bar.classList.add(this.cssClass + "-bar"); + + this._ext = document.createElement("span"); + this._ext.className = this.cssClass + "-bar-ext"; + + this._bar.appendChild(this._ext); //this.insertAdjacentElement("afterBegin", this._bar); + + + this._body = document.createElement("div"); + this._body.className = this.cssClass + "-body"; + this.appendChild(this._bar); + this.appendChild(this._body); + var items = []; // this.getElementsByClassName("tab"); + + for (var i = 0; i < this.children.length; i++) { + if (this.children[i] instanceof _Tab["default"]) items.push(this.children[i]); + } + + this._observer = new ResizeObserver(function (x) { + self._body.style.height = x[0].target.offsetHeight + "px"; // x[0].contentRect.height + "px"; + }); + items.map(function (x) { + return self.add(x); + }); + this.addEventListener("touchstart", function (e) { + var x = e.target; + + do { + if (x == self) break; + var sy = window.getComputedStyle(x)["overflow-x"]; + if (x.scrollWidth > x.clientWidth && (sy == "scroll" || sy == "auto")) return; + } while (x = x.parentElement); + + self._x = e.originalEvent ? e.originalEvent.touches[0].clientX : e.touches[0].clientX; + self._y = e.originalEvent ? e.originalEvent.touches[0].clientY : e.touches[0].clientY; + }, { + passive: true + }); + this.addEventListener("touchmove", function (e) { + if (!self._x || !self._y) { + return; + } + + var xUp = e.originalEvent ? e.originalEvent.touches[0].clientX : e.touches[0].clientX; + var yUp = e.originalEvent ? e.originalEvent.touches[0].clientY : e.touches[0].clientY; + var xDiff = document.dir == "rtl" ? xUp - self._x : self._x - xUp; + var yDiff = self._y - yUp; + var index = self.list.indexOf(self.selected); + + if (Math.abs(xDiff) > Math.abs(yDiff)) { + /*most significant*/ + if (xDiff > 0) { + if (index < self.list.length - 1) { + self.select(self.list[index + 1]); //self.selected.scrollIntoView(); + } + /* left swipe */ + + } else { + if (index > 0) self.select(self.list[index - 1]); + /* right swipe */ + } + } else { + if (yDiff > 0) { + /* up swipe */ + } else { + /* down swipe */ + } + } + /* reset values */ + + + self._x = null; + self._y = null; + }, { + passive: true + }); + } + }, { + key: "created", + value: function created() {//this._updateSize(); + } + }, { + key: "add", + value: function add(item) { + var label = new _Check["default"](); // document.createElement("i-check"); + + label.innerHTML = item.caption; + + this._ext.insertAdjacentElement("beforebegin", label); + + label.className = this.cssClass + "-button"; + item.classList.add(this.cssClass + "-content"); + label.content = item; + item.label = label; + + this._body.append(item); + + this.list.push(item); + var self = this; + label.on("check", function (v) { + //if (v && !self._neglect) + self.select(item); + }); + if (item.selected) this.select(item); + return this; + } //_updateSize() { + // for (var i = 0; i < this._body.children.length; i++) { + // if (this._body.clientHeight < this._body.children[i].offsetHeight) { + // this._body.style.height = this._body.children[i].offsetHeight + "px"; + // } + // } + //} + + }, { + key: "select", + value: function select(item) { + var tab; + if (item instanceof _Tab["default"]) tab = item;else if (typeof o === 'string' || o instanceof String) for (var i = 0; i < this.list.length; i++) { + if (this.list[i].id == item) { + tab = item; + break; + } else if (!isNaN(item)) tab = this.list[i]; + } //this._neglect = true; + + var self = this; + this.list.forEach(function (i) { + if (i == tab) tab.label.check(true); // set(true, false); + else { + i.classList.remove(self.cssClass + "-content-active"); + i.label.check(false); // set(false, false); + } + }); //this._neglect = false; + + tab.classList.add(this.cssClass + "-content-active"); + if (this.selected != null) this._observer.unobserve(this.selected); + this.selected = tab; + + this._observer.observe(this.selected); + + if (document.dir == "rtl") this._bar.scrollLeft = tab.label.offsetLeft + tab.label.clientWidth;else this._bar.scrollLeft = tab.label.offsetLeft - tab.label.clientWidth; + + this._emit("select", tab); + + return this; + } + }]); + + return Tabs; +}(_IUIElement2["default"])); + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4,"./Check.js":18,"./Tab.js":30}],33:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IUIElement2 = _interopRequireDefault(require("../Core/IUIElement.js")); + +var _IUI = require("../Core/IUI.js"); + +var _class, _temp; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +var _default = _IUI.IUI.module((_temp = _class = /*#__PURE__*/function (_IUIElement) { + _inherits(IUIWindow, _IUIElement); + + var _super = _createSuper(IUIWindow); + + function IUIWindow() { + var _this; + + _classCallCheck(this, IUIWindow); + + _this = _super.call(this, { + closeable: true, + draggable: false, + focus: false + }); + + _this._register("resize"); + + _this._register("move"); + + _this._register("close"); + + _this._uid = "d:" + Math.random().toString(36).substring(2); + return _this; + } + + _createClass(IUIWindow, [{ + key: "create", + value: function create() { + var self = this; + this.tabIndex = 0; // create header + + this._header = document.createElement("div"); + this._header.className = this.cssClass + "-header"; + if (this.draggable) this._header.setAttribute("draggable", true); + var f = this.getElementsByClassName(this.cssClass + "-footer"); + this._footer = f.length > 0 ? f[0] : null; + var b = this.getElementsByClassName(this.cssClass + "-body"); //this.body = b.length > 0 ? b[0]: null; + + if (b.length == 0) { + this._body = document.createElement("div"); + this._body.className = this.cssClass + "-body"; + + while (this.children.length > (this._footer == null ? 0 : 1)) { + this._body.appendChild(this.children[0]); + } + + this.insertAdjacentElement("afterBegin", this._body); + } else this._body = b[0]; + + if (this.icon) { + this._icon = document.createElement("div"); + this._icon.className = this.cssClass + "-icon"; //this._icon.src = this.icon; + + this._icon.style.setProperty("--icon", "url('".concat(this.icon, "')")); + + this._header.appendChild(this._icon); + } + + this._caption = document.createElement("div"); + this._caption.className = this.cssClass + "-caption"; + this._caption.innerHTML = this.caption; + this._subtitle = document.createElement("div"); + this._subtitle.className = this.cssClass + "-subtitle"; + this._subtitle.innerHTML = this.subtitle; + this._tools = document.createElement("div"); + this._tools.className = this.cssClass + "-tools"; + + this._header.appendChild(this._caption); + + this._header.appendChild(this._subtitle); + + this._header.appendChild(this._tools); + + if (this.closeable) { + this._close = document.createElement("div"); + this._close.className = this.cssClass + "-tools-close button"; + + this._close.addEventListener("click", function () { + self._emit("close"); + }); + } //this.addEventListener("mousedown", function (e) { + // self.setFocus(true); + //}); + + + this.insertAdjacentElement("afterBegin", this._header); + } + }, { + key: "setHeaderVisible", + value: function setHeaderVisible(value) { + this._header.style.display = value ? "" : "none"; //this._updateSize(); + } + }, { + key: "setCloseVisible", + value: function setCloseVisible(value) { + if (this.closeable) this._close.style.display = value ? "" : "none"; + } + }, { + key: "icon", + get: function get() { + return this.getAttribute("icon"); + } + /* + setFocus(v) { + this.focus = v; + var self = this; + if (v) { + this.classList.add(this.cssClass + "-active"); + return; + var last = IUI._nav_list[IUI._nav_list.length - 1]; + if (last && last != this) { + last.classList.remove(this.cssClass + "-active"); + last.focus = false; + } + if (last != this) { + if (window.location.hash != "#" + this._uid) { + IUI._nav_ignore = true; + window.location.hash = this._uid; + //window.location.replace("#" + this._uid); + } + } + var i = IUI._nav_list.indexOf(this); + if (i > -1) + IUI._nav_list.splice(i, 1); + IUI._nav_list.push(this); + } + else { + var last = IUI._nav_list[IUI._nav_list.length - 1]; + if (last == this) { + IUI._nav_list.pop(); + last = IUI._nav_list.pop(); + IUI._nav_list.push(this); + if (last) { + last.classList.add(this.cssClass + "-active"); + last.focus = true; + IUI._nav_list.push(last); + if (window.location.hash != "#" + last._uid) { + IUI._nav_ignore = true; + window.location.hash = last._uid; + //window.location.replace("#" + last._uid); + } + } + else { + if (window.location.hash != "#") { + IUI._nav_ignore = true; + var x = window.scrollX; + var y = window.scrollY; + window.location.hash = "#"; + window.scrollTo(x, y); + //window.location.replace("#"); + } + } + } + this.classList.remove(this.cssClass + "-active"); + } + return this; + } + */ + + }, { + key: "show", + value: function show() { + //this.setFocus(true); + return this; + } + }, { + key: "move", + value: function move(x, y) { + this.style.left = x + "px"; + this.style.top = y + "px"; + + this._emit("move", x, y); + + return this; + } + }, { + key: "resize", + value: function resize(width, height) { + this.style.width = width + "px"; + this.style.height = height + "px"; + + this._updateSize(); + + this._emit("resize", this.clientWidth, this.clientHeight); + + return this; + } + }, { + key: "_updateSize", + value: function _updateSize() { + if (_IUI.IUI.responsive) return; + + if (this._body) { + if (this.clientWidth < this._body.scrollWidth) this.style.width = this._body.scrollWidth + 1 + "px"; + + if (this._footer) { + if (this.clientWidth < this._footer.offsetWidth) this.style.width = this._footer.offsetWidth + "px"; + if (this.clientHeight < this._header.offsetHeight + this._body.scrollHeight + this._footer.offsetHeight) this.style.height = this._header.offsetHeight + this._body.scrollHeight + this._footer.offsetHeight + "px"; + } else { + if (this.clientHeight < this._header.offsetHeight + this._body.scrollHeight) this.style.height = this._header.offsetHeight + this._body.scrollHeight + 1 + "px"; + } + } // handle windows exceeding document size + + + if (this.clientHeight > document.body.clientHeight) { + this.style.height = document.body.clientHeight + "px"; + if (this._footer) this._body.style.height = this.clientHeight - this._footer.clientHeight - this._header.clientHeight + "px";else this._body.style.height = this.clientHeight - this._header.clientHeight + "px"; + } + + if (this.clientWidth > document.body.clientWidth) this.style.width = document.body.clientWidth + 1 + "px"; + } + }, { + key: "caption", + get: function get() { + return this.getAttribute("caption"); + }, + set: function set(value) { + this._caption.innerHTML = value; + this.setAttribute("caption", value); + } + }, { + key: "subtitle", + get: function get() { + return this.getAttribute("subtitle"); + }, + set: function set(value) { + this._subtitle.innerHTML = value; + this.setAttribute("subtitle", value); + } + }]); + + return IUIWindow; +}(_IUIElement2["default"]), _defineProperty(_class, "moduleName", "window"), _temp)); +/* +IUI._nav_list = []; + +window.addEventListener("hashchange", function(e){ + + if (IUI._nav_ignore) + { + IUI._nav_ignore = false; + return; + } + + if (IUI.responsive) + { + var oldHash = e.oldURL.split("#"); + if (oldHash.length == 2) + { + var hash = oldHash[1]; + var dialogs = IUI.registry.filter(function(o){ return ( o instanceof IUIWindow); }); + dialogs.forEach(function(dlg){ + if (dlg._uid == hash) + dlg.hide(); + }); + } + } + + var newHash = e.newURL.split("#"); + if (newHash.length == 2) + { + var hash = newHash[1]; + + if (hash == "") + { + var dialogs = IUI.registry.filter(function(o){ return ( o instanceof IUIDialog); }); + dialogs.forEach(function(d){ + d.hide(); + }); + + IUI._nav_list = []; + + return; + } + + var dialogs = IUI.registry.filter(function(o){ return ( o instanceof IUIWindow); }); + + dialogs.forEach(function(dlg){ + if (dlg._uid == hash) + dlg.setFocus(true); + }); + } +}); +*/ + + +exports["default"] = _default; + +},{"../Core/IUI.js":3,"../Core/IUIElement.js":4}],34:[function(require,module,exports){ +"use strict"; + +var _IUI = require("./Core/IUI.js"); + +require("./Core/IUIElement.js"); + +require("./Core/App.js"); + +require("./Router/Router.js"); + +require("./Router/Route.js"); + +require("./Router/Link.js"); + +require("./Router/Target.js"); + +require("./Data/Repeat.js"); + +require("./Data/Include.js"); + +require("./Data/Form.js"); + +require("./UI/Login.js"); + +require("./UI/Window.js"); + +require("./UI/Dialog.js"); + +require("./UI/Input.js"); + +require("./UI/Tab.js"); + +require("./UI/Tabs.js"); + +require("./UI/Table.js"); + +require("./UI/Check.js"); + +require("./UI/Button.js"); + +require("./UI/Navbar.js"); + +require("./UI/DateTimePicker.js"); + +require("./Data/Layout.js"); + +require("./Data/Field.js"); + +require("./UI/Background.js"); + +require("./UI/Menu.js"); + +require("./Data/TableRow.js"); + +require("./UI/Select.js"); + +require("./UI/DropDown.js"); + +require("./UI/Grid.js"); + +require("./UI/Location.js"); + +require("./UI/CodePreview.js"); + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +window.addEventListener("beforeprint", function (e) { + var viewRoute = router.current.viewRoute; + viewRoute.style.height = "auto"; + router.style.height = viewRoute.clientHeight + "px"; +}); +window.addEventListener("afterprint", function (e) { + var viewRoute = router.current.viewRoute; + viewRoute.style.height = ""; + router.style.height = ""; +}); +window.addEventListener("load", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _IUI.IUI.create(document.body); + + case 2: + _context.next = 4; + return _IUI.IUI.created(document.body); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee); +}))); +window.iui = _IUI.iui; + +},{"./Core/App.js":1,"./Core/IUI.js":3,"./Core/IUIElement.js":4,"./Data/Field.js":5,"./Data/Form.js":6,"./Data/Include.js":7,"./Data/Layout.js":8,"./Data/Repeat.js":10,"./Data/TableRow.js":11,"./Router/Link.js":12,"./Router/Route.js":13,"./Router/Router.js":14,"./Router/Target.js":15,"./UI/Background.js":16,"./UI/Button.js":17,"./UI/Check.js":18,"./UI/CodePreview.js":19,"./UI/DateTimePicker.js":20,"./UI/Dialog.js":21,"./UI/DropDown.js":22,"./UI/Grid.js":23,"./UI/Input.js":24,"./UI/Location.js":25,"./UI/Login.js":26,"./UI/Menu.js":27,"./UI/Navbar.js":28,"./UI/Select.js":29,"./UI/Tab.js":30,"./UI/Table.js":31,"./UI/Tabs.js":32,"./UI/Window.js":33}]},{},[34]); diff --git a/docs/index.html b/docs/index.html index 2d265a4..dd7014c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,20 +7,19 @@ - - - - - + + + + + - - + @@ -86,6 +85,10 @@ + + + + @@ -96,13 +99,14 @@ - + - - + + + + - diff --git a/docs/js/docs.js b/docs/js/docs.js index 783be1f..a974cd5 100644 --- a/docs/js/docs.js +++ b/docs/js/docs.js @@ -11,6 +11,6 @@ async function load(route, skip=false) { let content = await fetch(link); if (content.status != 200) return "Not found " + content.url; - var md = marked(await content.text()); + var md = marked.parse(await content.text()); return skip ? "
" + md + "
" : md; } \ No newline at end of file diff --git a/docs/md/components/iui-element.md b/docs/md/components/iui-element.md new file mode 100644 index 0000000..6ee0c68 --- /dev/null +++ b/docs/md/components/iui-element.md @@ -0,0 +1,24 @@ +# IUI Element + +*IUIElement* is the base class for all IUI components, it extends the HTMLElement, adds more functionality and define itself as a customElement in the browser. + +IuI Widgets tags start with `` to differentiate them from the built in html tags. + +# Initialization Process + +When the document is loaded or new HTML is inserted in the document, IUI process of initialization start which consists of + +1- IUI.create(rootElement) + create is called on every IUI element in the tree, asking these elements to create themselves, in this phase an element can add more children to itself. (**IUIElement**) + +1- IUI.bind(rootElement) + IUI.bind ensures that all executable attributes starting with : are compiled and tested for data binding. + Any property that is used by the `d` variable will be a candidate for binding, which means IUI will handle any modification on that property. (**IUIElement** and **HTMLElement**) + +3- IUI.created(rootElement) + Notify every IUI element that the create and bind process has ended. (**IUIElement**) + +4- IUI.render(element) + Render invokes the data binding functions and sets the element text nodes and attributes to the value returned by the binding functions. The process is recursive to all children in the element tree (**IUIElement** and **HTMLElement**) + +The rootElement is the first `` in the document when its loaded. diff --git a/docs/md/components/repeat.md b/docs/md/components/repeat.md new file mode 100644 index 0000000..5db2c0a --- /dev/null +++ b/docs/md/components/repeat.md @@ -0,0 +1,14 @@ +# I-Repeat + +`` performs a an iteration on an array and builds elements according to the given list + + + + +
${d}
+
+
+ +if the iteration on a specific element is needed, *repeat* attribute must be added to the element. + +*Note* each element in the iteration has an index property diff --git a/docs/md/getting-started/scope.md b/docs/md/getting-started/scope.md new file mode 100644 index 0000000..c5c1243 --- /dev/null +++ b/docs/md/getting-started/scope.md @@ -0,0 +1,13 @@ +# Scope Variables + +Scope variables are provided during the rendering process to the scripts and declarative rendering functions. + +These variables propagate from an element to its children and could be altered or overwritten by any element in the tree so the children of that element receive a new value for these variables. + + + +
+
Date: ${now.toDateString()}
+
Time: ${now.toTimeString()}
+
+
\ No newline at end of file diff --git a/docs/android-chrome-192x192.png b/docs/site/android-chrome-192x192.png similarity index 100% rename from docs/android-chrome-192x192.png rename to docs/site/android-chrome-192x192.png diff --git a/docs/android-chrome-512x512.png b/docs/site/android-chrome-512x512.png similarity index 100% rename from docs/android-chrome-512x512.png rename to docs/site/android-chrome-512x512.png diff --git a/docs/apple-touch-icon.png b/docs/site/apple-touch-icon.png similarity index 100% rename from docs/apple-touch-icon.png rename to docs/site/apple-touch-icon.png diff --git a/docs/browserconfig.xml b/docs/site/browserconfig.xml similarity index 100% rename from docs/browserconfig.xml rename to docs/site/browserconfig.xml diff --git a/docs/favicon-16x16.png b/docs/site/favicon-16x16.png similarity index 100% rename from docs/favicon-16x16.png rename to docs/site/favicon-16x16.png diff --git a/docs/favicon-32x32.png b/docs/site/favicon-32x32.png similarity index 100% rename from docs/favicon-32x32.png rename to docs/site/favicon-32x32.png diff --git a/docs/favicon.ico b/docs/site/favicon.ico similarity index 100% rename from docs/favicon.ico rename to docs/site/favicon.ico diff --git a/docs/mstile-150x150.png b/docs/site/mstile-150x150.png similarity index 100% rename from docs/mstile-150x150.png rename to docs/site/mstile-150x150.png diff --git a/docs/safari-pinned-tab.svg b/docs/site/safari-pinned-tab.svg similarity index 100% rename from docs/safari-pinned-tab.svg rename to docs/site/safari-pinned-tab.svg diff --git a/docs/site.webmanifest b/docs/site/site.webmanifest similarity index 100% rename from docs/site.webmanifest rename to docs/site/site.webmanifest diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2226b63 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3322 @@ +{ + "name": "@esiur/iui", + "version": "1.1.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/cli": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.16.0.tgz", + "integrity": "sha512-WLrM42vKX/4atIoQB+eb0ovUof53UUvecb4qGjU2PDDWRiZr50ZpiV8NpcLo7iSxeGYrRG0Mqembsa+UrTAV6Q==", + "dev": true, + "requires": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + } + }, + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/compat-data": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz", + "integrity": "sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==", + "dev": true + }, + "@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", + "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", + "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz", + "integrity": "sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz", + "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", + "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz", + "integrity": "sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", + "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz", + "integrity": "sha512-MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-wrap-function": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz", + "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helpers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.0.tgz", + "integrity": "sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ==", + "dev": true, + "requires": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.16.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.2.tgz", + "integrity": "sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", + "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", + "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.0.tgz", + "integrity": "sha512-nyYmIo7ZqKsY6P4lnVmBlxp9B3a96CscbLotlsNuktMHahkDwoPYEjXrZHU0Tj844Z9f1IthVxQln57mhkcExw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz", + "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz", + "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz", + "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz", + "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz", + "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz", + "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", + "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz", + "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", + "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz", + "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz", + "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz", + "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz", + "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz", + "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz", + "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", + "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz", + "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz", + "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz", + "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz", + "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz", + "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz", + "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz", + "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz", + "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz", + "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz", + "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz", + "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz", + "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz", + "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", + "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.16.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz", + "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz", + "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", + "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz", + "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz", + "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.0.tgz", + "integrity": "sha512-XgnQEm1CevKROPx+udOi/8f8TiGhrUWiHiaUCIp47tE0tpFDjzXNTZc9E5CmCwxNjXTWEVqvRfWZYOTFvMa/ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz", + "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz", + "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz", + "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz", + "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz", + "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz", + "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz", + "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz", + "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz", + "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz", + "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/preset-env": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.0.tgz", + "integrity": "sha512-cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-async-generator-functions": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-class-static-block": "^7.16.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.0", + "@babel/plugin-proposal-export-namespace-from": "^7.16.0", + "@babel/plugin-proposal-json-strings": "^7.16.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-object-rest-spread": "^7.16.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.0", + "@babel/plugin-transform-async-to-generator": "^7.16.0", + "@babel/plugin-transform-block-scoped-functions": "^7.16.0", + "@babel/plugin-transform-block-scoping": "^7.16.0", + "@babel/plugin-transform-classes": "^7.16.0", + "@babel/plugin-transform-computed-properties": "^7.16.0", + "@babel/plugin-transform-destructuring": "^7.16.0", + "@babel/plugin-transform-dotall-regex": "^7.16.0", + "@babel/plugin-transform-duplicate-keys": "^7.16.0", + "@babel/plugin-transform-exponentiation-operator": "^7.16.0", + "@babel/plugin-transform-for-of": "^7.16.0", + "@babel/plugin-transform-function-name": "^7.16.0", + "@babel/plugin-transform-literals": "^7.16.0", + "@babel/plugin-transform-member-expression-literals": "^7.16.0", + "@babel/plugin-transform-modules-amd": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/plugin-transform-modules-systemjs": "^7.16.0", + "@babel/plugin-transform-modules-umd": "^7.16.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", + "@babel/plugin-transform-new-target": "^7.16.0", + "@babel/plugin-transform-object-super": "^7.16.0", + "@babel/plugin-transform-parameters": "^7.16.0", + "@babel/plugin-transform-property-literals": "^7.16.0", + "@babel/plugin-transform-regenerator": "^7.16.0", + "@babel/plugin-transform-reserved-words": "^7.16.0", + "@babel/plugin-transform-shorthand-properties": "^7.16.0", + "@babel/plugin-transform-spread": "^7.16.0", + "@babel/plugin-transform-sticky-regex": "^7.16.0", + "@babel/plugin-transform-template-literals": "^7.16.0", + "@babel/plugin-transform-typeof-symbol": "^7.16.0", + "@babel/plugin-transform-unicode-escapes": "^7.16.0", + "@babel/plugin-transform-unicode-regex": "^7.16.0", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.0", + "babel-plugin-polyfill-corejs2": "^0.2.3", + "babel-plugin-polyfill-corejs3": "^0.3.0", + "babel-plugin-polyfill-regenerator": "^0.2.3", + "core-js-compat": "^3.19.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.0.tgz", + "integrity": "sha512-Nht8L0O8YCktmsDV6FqFue7vQLRx3Hb0B37lS5y0jDRqRxlBG4wIJHnf9/bgSE2UyipKFA01YtS+npRdTWBUyw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/traverse": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.0.tgz", + "integrity": "sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + }, + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz", + "integrity": "sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.4", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.3.0.tgz", + "integrity": "sha512-JLwi9vloVdXLjzACL80j24bG6/T1gYxwowG44dg6HN/7aTPdyPbJJidf6ajoA3RPHHtW0j9KMrSOLpIZpAnPpg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.4", + "core-js-compat": "^3.18.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz", + "integrity": "sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.4" + } + }, + "babelify": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", + "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "requires": { + "resolve": "^1.17.0" + } + }, + "browserify": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^3.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.2.1", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "^1.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum-object": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.5.tgz", + "integrity": "sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001271", + "electron-to-chromium": "^1.3.878", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cached-path-relative": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", + "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caniuse-lite": { + "version": "1.0.30001274", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001274.tgz", + "integrity": "sha512-+Nkvv0fHyhISkiMIjnyjmf5YJcQ1IQHZN6U9TLUMroWR38FNwpsC51Gb68yueafX1V6ifOisInSgP9WJFS13ew==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + } + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-js-compat": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.0.tgz", + "integrity": "sha512-R09rKZ56ccGBebjTLZHvzDxhz93YPT37gBm6qUhnwj3Kt7aCjjZWD1injyNbyeFHxNKfeZBSyds6O9n3MKq1sw==", + "dev": true, + "requires": { + "browserslist": "^4.17.5", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "electron-to-chromium": { + "version": "1.3.886", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.886.tgz", + "integrity": "sha512-+vYdeBosI63VkCtNWnEVFjgNd/IZwvnsWkKyPtWAvrhA+XfByKoBJcbsMgudVU/bUcGAF9Xp3aXn96voWlc3oQ==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "requires": { + "source-map": "~0.5.3" + } + }, + "insert-module-globals": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "requires": { + "minimist": "^1.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "requires": { + "acorn-node": "^1.2.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "requires": { + "process": "~0.11.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 8326988..a5c8351 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,16 @@ "test": "test" }, "dependencies": {}, - "devDependencies": {}, + "devDependencies": { + "@babel/cli": "^7.16.0", + "@babel/core": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "babelify": "^10.0.0", + "browserify": "^17.0.0" + }, "scripts": { + "build": "browserify src/iui.js -t babelify --outfile build/iui.js", + "prepublish": "browserify src/iui.js -t babelify --outfile build/iui.js", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { diff --git a/src/Core/App.js b/src/Core/App.js index f927179..2149881 100644 --- a/src/Core/App.js +++ b/src/Core/App.js @@ -1,9 +1,11 @@ import IUIElement from "../Core/IUIElement.js"; import { IUI } from "../Core/IUI.js"; +import RefsCollection from "./RefsCollection.js"; export default IUI.module(class App extends IUIElement { constructor() { super(); + this.refs = new RefsCollection(this); } create() { @@ -11,8 +13,14 @@ export default IUI.module(class App extends IUIElement { window.app = this; } + created() { - IUI.bind(this, this, "/"); + + IUI.bind(this, this, "/", {app: this, refs: this.refs}); + + // update referencing + this.refs._build(); + //IUIElement._make_bindings(this); this.render(); this._emit("load", { app: this }); diff --git a/src/Core/Binding.js b/src/Core/Binding.js index f177c62..3902dd0 100644 --- a/src/Core/Binding.js +++ b/src/Core/Binding.js @@ -20,7 +20,7 @@ export const AttributeBindingDestination = { const AsyncFunction = Object.getPrototypeOf(async function () { }).constructor; export class Binding { - static create(nodeOrAttributeOrIUIElement) { + static create(nodeOrAttributeOrIUIElement, scope) { var code, isAsync, type, attrType, attrKey, func, script; //if (nodeOrAttributeOrIUIElement.created) @@ -100,11 +100,17 @@ export class Binding { // test the function + let scopeKeys = Object.keys(scope); + let scopeValues = Object.values(scope); + try { + let args = ["data", "d", "context", "_test", + ...scopeKeys] + if (isAsync) - func = new AsyncFunction("data", "d", "context", "_test", code); + func = new AsyncFunction(...args, code); else - func = new Function("data", "d", "context", "_test", code); + func = new Function(...args, code); } catch (ex) { console.log("Test failed: " + ex, code); @@ -113,7 +119,7 @@ export class Binding { let rt = new Binding(); - Object.assign(rt, { isAsync, type, attrType, attrKey, func, target: nodeOrAttributeOrIUIElement, checked: false, script }); + Object.assign(rt, { isAsync, type, attrType, attrKey, func, target: nodeOrAttributeOrIUIElement, checked: false, script, scopeKeys, scopeValues }); return rt; } @@ -144,7 +150,9 @@ export class Binding { let proxy = new Proxy(map, detector); try { - let d = this.func.apply(thisArg, [proxy, proxy, {}, true]); + let d = this.func.apply(thisArg, [proxy, proxy, {}, true + , ...this.scopeKeys]); + this.map = map; return d; } @@ -158,9 +166,9 @@ export class Binding { if (!this.checked) this._findMap(thisArg); - let context = {}; - var rt = this.func.apply(thisArg, [data, data, context, false]); + var rt = this.func.apply(thisArg, [data, data, context, false, + ...this.scopeValues]); //console.log(rt); if (rt instanceof Promise) @@ -231,9 +239,12 @@ export class Binding { try { if (this.type === BindingType.IUIElement) { - let d = this.func.apply(this.target, [data, data]); - if (d instanceof Promise) - d = await d; + //let d = this.func.apply(this.target, [data, data]); + //if (d instanceof Promise) + // d = await d; + + let d = await this._execute(this.target, data); + await this.target.setData(d); } else if (this.type === BindingType.TextNode) { @@ -277,8 +288,10 @@ export class Binding { if (window?.app?.loaded) { await IUI.create(targetElement); + IUI.bind(targetElement, true, "content", targetElement.__i_bindings?.scope); + // update references + targetElement.__i_bindings?.scope?.refs?._build(); await IUI.created(targetElement); - IUI.bind(targetElement, targetElement, "content"); await IUI.render(targetElement, targetElement._data, true); } //await IUI.updateTree(targetElement); diff --git a/src/Core/BindingList.js b/src/Core/BindingList.js new file mode 100644 index 0000000..472220d --- /dev/null +++ b/src/Core/BindingList.js @@ -0,0 +1,21 @@ + +export default class BindingList extends Array { + + constructor(target, scope) { + super(); + this.target = target; + this.scope = scope; + } + + getArgumentsNames(){ + if (this.scope == null) + return []; + + let rt; + for (var i in this.scope.length) + rt.push(i); + return rt; + } + + +} \ No newline at end of file diff --git a/src/Core/IUI.js b/src/Core/IUI.js index 9106143..75c55aa 100644 --- a/src/Core/IUI.js +++ b/src/Core/IUI.js @@ -1,6 +1,7 @@ import IUIElement from "./IUIElement.js"; import { Binding, BindingType } from "./Binding.js"; //import Route from '../Router/Route.js'; +import BindingList from "./BindingList.js"; export class IUI { @@ -124,13 +125,13 @@ export class IUI { return objectClass; } - static extend(properties, defaults, force) + static extend(properties, defaults, overwrite) { if (properties == null) properties = defaults; else for(var i in defaults) - if (force) + if (overwrite) properties[i] = defaults[i]; else if (properties[i] === undefined) properties[i] = defaults[i]; @@ -138,38 +139,55 @@ export class IUI { } - static bind(element, rootElement, sourcePath){ + static bind(element, skipAttributes, sourcePath, scope) { // ::Attribute - // : Field + // : Field // async:: Async Attribute // async: Async Field // @ Event // skip element ? if (element.hasAttribute("skip") + || element.hasAttribute("i-skip") || element instanceof HTMLTemplateElement) return; // tags to skip //if (element instanceof HTMLScriptElement ) //return; - - if (rootElement == null) - rootElement = element; let bindings; - - if (element != rootElement) - { - element.view = rootElement.view; - element.route = rootElement.route; + + + if (scope == null) + scope = {}; + + // get refs before they get overwritten + //let refs = scope?.refs; + + // some element extended or overwritten the binding arguments + if (element.scope != null) + IUI.extend(scope, element.scope, true); + + bindings = new BindingList(element, scope); + + if (skipAttributes) + { + // copy attributes bindings + if (element.__i_bindings != null) + for(var i = 0; i < element.__i_bindings.length; i++) + if (element.__i_bindings[i].type != BindingType.TextNode) + bindings.push(element.__i_bindings[i]); + } + else + { - bindings = []; // compile attributes for (var i = 0; i < element.attributes.length; i++) { - let b = Binding.create(element.attributes[i]); + let b = Binding.create(element.attributes[i], + bindings.scope); if (b != null) { if (b.type == BindingType.HTMLElementDataAttribute @@ -182,37 +200,50 @@ export class IUI { } } + // add reference - if (element.hasAttribute("ref")) { - rootElement.refs[el.getAttribute("ref")] = element; - } + // if (element.hasAttribute("ref")) { + // let ref = element.getAttribute("ref"); + // if (refs[ref] == null) + // refs[ref] = element; + // else if (refs[ref] == element){ + // // do nothing + // } + // else if (refs[ref] instanceof Array){ + // refs[ref].push(element); + // } else { + // var firstRef = refs[ref]; + // refs[ref] =[firstRef, element]; + // } + // } } - else - { - // remove previous text node bindings - bindings = element.bindings == null ? [] : element.bindings.filter(x=> x.type != BindingType.TextNode); - element.refs = {}; - } + + + + // get new refs (scope might been overwritten) + //refs = scope?.refs; // compile nodes for (var i = 0; i < element.childNodes.length; i++) { let el = element.childNodes[i]; if (el instanceof IUIElement) { // @TODO: check if the IUI element handles the binding - IUI.bind(el, rootElement, sourcePath); + IUI.bind(el, false, sourcePath, scope); } else if (el instanceof HTMLElement) { - IUI.bind(el, rootElement, sourcePath); + IUI.bind(el, false, sourcePath, scope); } else if (el instanceof Text) { - let b = Binding.create(el); + let b = Binding.create(el, bindings.scope); if (b != null) bindings.push(b); } else if (el instanceof HTMLScriptElement) { // this because HTML parser don't evaluate script tag - let func = new Function("//# sourceURL=iui://" + sourcePath + "-" + Math.round(Math.random() * 10000) + "\r\n return " + el.text.trim()); + /// let func = new Function("//# sourceURL=iui://" + sourcePath + "-" + Math.round(Math.random() * 10000) + "\r\n return " + el.text.trim()); + let func = new Function("//# sourceURL=iui://" + sourcePath + "-" + Math.round(Math.random() * 10000) + "\r\n" + el.text.trim()); + let rt = func.call(el.parentElement); if (typeof (rt) === "object") { @@ -222,24 +253,25 @@ export class IUI { } } - element.bindings = bindings; - + element.__i_bindings = bindings; } static async render(element, data, textNodesOnly = false) { - if (!element.bindings) { + if (!element.__i_bindings) { return; } + let bindings = element.__i_bindings; + if (textNodesOnly) { - for (var i = 0; i < element.bindings.length; i++) - if (element.bindings[i].type == BindingType.TextNode) - await element.bindings[i].render(data); + for (var i = 0; i < bindings.length; i++) + if (bindings[i].type == BindingType.TextNode) + await bindings[i].render(data); } else { // render attributes & text nodes - for (var i = 0; i < element.bindings.length; i++) - await element.bindings[i].render(data); + for (var i = 0; i < bindings.length; i++) + await bindings[i].render(data); } // render children diff --git a/src/Core/IUIElement.js b/src/Core/IUIElement.js index 16a16dc..01531ec 100644 --- a/src/Core/IUIElement.js +++ b/src/Core/IUIElement.js @@ -41,7 +41,6 @@ export default class IUIElement extends HTMLElement { async render() { await IUI.render(this, this._data); - //await IUIElement._renderElement(this, this._data); } _getParentData() { @@ -57,22 +56,15 @@ export default class IUIElement extends HTMLElement { async setData(value) { this._data = value; this._emit("data", {data: value}); - await IUIElement._renderElement(this, value); + await IUI.render(this, value); } + get data() { return this._data; } async revert(){ - //if (this.revertMap != null) - //{ - //if (data == undefined) - // await this.revertMap.render(this._getParentData()); - //else - // await this.revertMap.render(data); - // revert parents - let e = this; do { @@ -81,7 +73,6 @@ export default class IUIElement extends HTMLElement { if (e.revertMap != null) await e.revertMap.render(p?.data); } while (e = p); - //} } async update(data) { @@ -101,51 +92,17 @@ export default class IUIElement extends HTMLElement { } } - static async _renderElement(element, data) { - if (!element.bindings) { - return; - } - - // render attributes & text nodes - for (var i = 0; i < element.bindings.length; i++) - await element.bindings[i].render(data); - - // render children - for (var i = 0; i < element.children.length; i++) { - let e = element.children[i]; - if (e instanceof IUIElement) - // @TODO should check if the element depends on parent or not - if (e.dataMap != null) { - // if map function failed to call setData, we will render without it - if (!(await e.dataMap.render(data))) - await e.render(); - } - else - await e.setData(data); - else { - if (e.dataMap != null) - await e.dataMap.render(data); - else - e.data = data; - - //let data = e.mapData(data); - await IUIElement._renderElement(e, e.data); - } - } + // bindings arguments + get scope(){ + return null; } - // this meant to be inherited modified() { } - get data() { - return this._data; - } - connectedCallback() { - if (this.hasAttribute("css-class")) { this.classList.add(this.getAttribute("css-class")); @@ -182,8 +139,6 @@ export default class IUIElement extends HTMLElement { } destroy() { - - console.log("Destroy", this); IUI.registry.splice(IUI.registry.indexOf(this), 1); if (this.parentNode) this.parentNode.removeChild(this); @@ -191,67 +146,6 @@ export default class IUIElement extends HTMLElement { - static _make_bindings(element, isRoot = false) { - - // ::Attribute - // : Field - // async:: Async Attribute - // async: Async Field - // @ Event - - - // skip element ? - if (element.hasAttribute("skip")) - return; - - // tags to skip - if (element instanceof HTMLScriptElement - || element instanceof HTMLTemplateElement) - return; - - let bindings = []; - - - if (!isRoot) - { - // compile attributes - for (var i = 0; i < element.attributes.length; i++) { - - let b = Binding.create(element.attributes[i]); - - if (b != null) { - if (b.type == BindingType.HTMLElementDataAttribute - || b.type == BindingType.IUIElementDataAttribute) - element.dataMap = b; - else if (b.type == BindingType.RevertAttribute) - element.revertMap = b; - else - bindings.push(b); - } - } - } - - // compile nodes - for (var i = 0; i < element.childNodes.length; i++) { - let e = element.childNodes[i]; - if (e instanceof IUIElement) { - // @TODO: check if the IUI element handles the binding - IUIElement._make_bindings(e); - } - else if (e instanceof HTMLElement) { - IUIElement._make_bindings(e); - } - else if (e instanceof Text) { - let b = Binding.create(e); - if (b != null) - bindings.push(b); - } - } - - element.bindings = bindings; - } - - _emit(event, values) { //var args = Array.prototype.slice.call(arguments, 1); var e = new CustomEvent(event, values); @@ -304,13 +198,13 @@ export default class IUIElement extends HTMLElement { } } - off(event, fn) { - this.removeEventListener(event, fn); + off(event, func) { + this.removeEventListener(event, func); return this; } - on(event, fn) { - this.addEventListener(event, fn, false); + on(event, func) { + this.addEventListener(event, func, false); return this; } } \ No newline at end of file diff --git a/src/Core/RefsCollection.js b/src/Core/RefsCollection.js new file mode 100644 index 0000000..1b0eaf2 --- /dev/null +++ b/src/Core/RefsCollection.js @@ -0,0 +1,46 @@ + +export default class RefsCollection +{ + + constructor(rootElement){ + this._rootElement = rootElement; + } + + _build(element) { + + if (element == undefined) + element = this._rootElement; + + for(var i in this) + if (i != "_rootElement" && i != "_build") + delete this[i]; + + for(var i = 0; i < element.children.length; i++) + { + let child = element.children[i]; + + if (child.hasAttribute("ref")) + { + let ref = child.getAttribute("ref"); + if (this[ref] == null) + this[ref] = child; + else if (this[ref] == child){ + // do nothing + } + else if (this[ref] instanceof Array){ + this[ref].push(child); + } else { + var firstRef = this[ref]; + this[ref] =[firstRef, child]; + } + + } + + if (child.refs != undefined) + // opt out if the element handles referencing + break; + else + this._build(child); + } + } +} \ No newline at end of file diff --git a/src/Data/Include.js b/src/Data/Include.js index 4708711..a041ccf 100644 --- a/src/Data/Include.js +++ b/src/Data/Include.js @@ -1,12 +1,13 @@ import IUIElement from "../Core/IUIElement.js"; import { IUI } from "../Core/IUI.js"; +import RefsCollection from "../Core/RefsCollection.js"; export default IUI.module(class Include extends IUIElement { constructor() { super(); - this.refs = {}; + this.refs = new RefsCollection(); } get src(){ @@ -18,6 +19,11 @@ export default IUI.module(class Include extends IUIElement this._load(value); } + + get scope() { + return {view: this, refs: this.refs}; + } + async _load(url) { if (this._loading) @@ -42,8 +48,11 @@ export default IUI.module(class Include extends IUIElement if (window?.app?.loaded) { await IUI.create(this); + IUI.bind(this, true, "include:" + src, + IUI.extend(this._i__bindings.scope, this.scope, true)); + + this.refs._build(); await IUI.created(this); - IUI.bind(this, this, "include:" + src); await IUI.render(this, this._data, true); } @@ -99,4 +108,8 @@ export default IUI.module(class Include extends IUIElement await this._load(this.getAttribute("src")); } + async created() { + this.refs._build(); + } + }); \ No newline at end of file diff --git a/src/Data/Repeat.js b/src/Data/Repeat.js index 46fb194..9e32979 100644 --- a/src/Data/Repeat.js +++ b/src/Data/Repeat.js @@ -22,7 +22,7 @@ export default IUI.module(class Repeat extends IUIElement ////////////// /// Create /// ////////////// - + if (this._created) debugger; @@ -53,11 +53,11 @@ export default IUI.module(class Repeat extends IUIElement } - var newElements = this.querySelectorAll("*"); - for (var i = 0; i < newElements.length; i++) - newElements[i].repeat = this; + // var newElements = this.querySelectorAll("*"); + // for (var i = 0; i < newElements.length; i++) + // newElements[i].repeat = this; - var self = this; + // var self = this; /* this._repeatModified = function(propertyName, value) @@ -104,31 +104,6 @@ export default IUI.module(class Repeat extends IUIElement return this._data.length; } - _assign(node, index) { - - // update fields - - // this so we won't mess with i-include view - if (node.view == undefined) - node.view = this.view; - - node.rotue = this.route; - node.index = index; - - // update references - if (node.hasAttribute("ref")) - { - let ref = node.getAttribute("ref"); - // create new array - if (!(this.view.refs[ref] instanceof Array)) - this.view.refs[ref] = []; - this.view.refs[ref][index] = node; - } - - //Object.assign(node, customFields); - for (var i = 0; i < node.children.length; i++) - this._assign(node.children[i], index); - } async setData(value) { @@ -141,18 +116,14 @@ export default IUI.module(class Repeat extends IUIElement return false; } - //console.log("RPT: SetData", value); this._busy = true; - // var id = Math.random(); - - //console.log("SetData " + this.getAttribute("ref") + " " + id, value); - //console.trace(); + // clear this.clear(); - if (value instanceof Structure) - value = value.toPairs(); + if (value?.toArray instanceof Function) + value = value.toArray(); else if (value == null || !(value instanceof Array || value instanceof Int32Array)) value = []; @@ -163,100 +134,24 @@ export default IUI.module(class Repeat extends IUIElement for (let i = 0; i < value.length; i++) { - ///console.log("ST1"); - //let content = this.template.content.cloneNode(true); - //let nodes = content.childNodes; - let e = this._repeatNode.cloneNode(true); this.list.push(e); + await IUI.create(e); - //console.log("ST2"); - - - // Create node - if (e instanceof IUIElement) - await e.create(); + IUI.bind(e, false, "repeat", + IUI.extend(this.__i_bindings?.scope, + {index: i, repeat: this}, true)); - // console.log("ST3"); - // Create children - //console.log("Create repeat " + i, this, e); - - await IUI.create(e); - - //console.log("Created repeat " + i, this, e); - - - //console.log("ST4"); - - //this._make_bindings(e) - IUI.bind(e, this, "repeat"); this._container.insertBefore(e, this._beforeNode); + + // update referencing + this.__i_bindings?.scope?.refs?._build(); - this._assign(e, i);// { view: this.view, route: this.route, index: i }); - - - //console.log("ST5"); - - if (e instanceof IUIElement) { - // @TODO should check if the element depends on parent or not - if (e.dataMap != null) { - // if map function failed to call setData, we will render without it - if (!(await e.dataMap.render(value[i]))) - await e.render(); - } - else{ - await e.setData(value[i]); - // console.log("ST6.1"); - } - } - else { - if (e.dataMap != null) - await e.dataMap.render(value[i]); - else - e.data = value[i]; - - // console.log("ST6.2", e); - await this._renderElement(e, e.data); - // console.log("ST6.3"); - } - - // if (node.dataMap != null) { - // await node.dataMap.render(value[i]); - // this._renderElement(node, node.data); - // } - // else { - - // node.data = value[i]; - // this._renderElement(node, node.data); - // } - - /* - - var newElements = content.querySelectorAll("*"); - - while (nodes.length > 0) { - let n = nodes[0]; - //n.index = i; - if (n instanceof HTMLElement) - n.setAttribute(":data", `d[${i}]`); - this._container.appendChild(n); - } - - // this has to be called after appending the child otherwise node will be HTMLElement and not IUIElement , bug maybe in webkit ? - for (var j = 0; j < newElements.length; j++) { - let el = newElements[j]; - - // set route for all elements - el.index = i; - el.view = this; - el.route = this.route; - //newElements[j].route = this.route; - if (el instanceof IUIElement) - el.create(); - } - */ + await IUI.created(e); + + await IUI.render(e, value[i], false); } diff --git a/src/Router/Route.js b/src/Router/Route.js index 4fb6825..cf9a76b 100644 --- a/src/Router/Route.js +++ b/src/Router/Route.js @@ -1,6 +1,7 @@ import IUIElement from "../Core/IUIElement.js"; import { IUI } from "../Core/IUI.js"; import Router from "./Router.js"; +import RefsCollection from "../Core/RefsCollection.js"; export default IUI.module(class Route extends IUIElement { @@ -8,7 +9,7 @@ export default IUI.module(class Route extends IUIElement { super(); this.routes = []; - this.refs = {}; + this.refs = new RefsCollection(this); this._register("show"); this._register("hide"); @@ -21,6 +22,10 @@ export default IUI.module(class Route extends IUIElement { return await super.setData(value); } + get scope(){ + return {route: this, view: this}; + } + _updateLinks() { for (var i = 0; i < this.children.length; i++) { if (this.children[i] instanceof Route) { @@ -111,9 +116,9 @@ export default IUI.module(class Route extends IUIElement { if (window?.app?.loaded) { await IUI.create(this); + IUI.bind(this, true, "route:" + src, this.scope); + this.refs._build(); await IUI.created(this); - IUI.bind(this, this, "route:" + src); - await IUI.render(this, this._data, true); } @@ -152,7 +157,7 @@ export default IUI.module(class Route extends IUIElement { created() { - + this.refs._build(); } set(value) { diff --git a/src/UI/CodePreview.js b/src/UI/CodePreview.js index 6504c0d..426ec34 100644 --- a/src/UI/CodePreview.js +++ b/src/UI/CodePreview.js @@ -1,9 +1,11 @@ import IUIElement from "../Core/IUIElement.js"; import { IUI } from "../Core/IUI.js"; +import RefsCollection from "../Core/RefsCollection.js"; export default IUI.module(class CodePreview extends IUIElement { - constructor(properties) { + constructor() { super(); + this.refs = new RefsCollection(this); } async create() { @@ -30,7 +32,7 @@ export default IUI.module(class CodePreview extends IUIElement { let self = this; this.editor.addEventListener("input", function() { self._code = self.editor.innerText.trim(); - self.update(); + self.updatePreview(); }, false); this.preview = document.createElement("div"); @@ -44,11 +46,18 @@ export default IUI.module(class CodePreview extends IUIElement { this.append(this.content); this.field = this.getAttribute("field"); - await this.update(); + //await this.updatePreview(); } - - async update() { + async created(){ + await this.updatePreview(); + } + + get scope(){ + return {view: this, refs: this.refs}; + } + + async updatePreview() { if (this._updating) return; @@ -56,10 +65,15 @@ export default IUI.module(class CodePreview extends IUIElement { this._updating = true; this.preview.innerHTML = this._code; - await IUI.create(this.preview); - await IUI.created(this.preview); - IUI.bind(this.preview, this.preview, "preview"); - await IUI.render(this.preview, this._data, true); + + if (window.app?.loaded) + { + await IUI.create(this.preview); + await IUI.created(this.preview); + IUI.bind(this.preview, true, "preview", this.scope); + this.refs._build(); + await IUI.render(this.preview, this._data, true); + } this._updating = false; } diff --git a/src/UI/Select.js b/src/UI/Select.js index 21e01a8..71c39fe 100644 --- a/src/UI/Select.js +++ b/src/UI/Select.js @@ -223,7 +223,7 @@ export default IUI.module(class Select extends IUIElement { ///console.log("Append", this.menu); await this.menu.create(); - IUI.bind(this.menu, this, "menu"); + IUI.bind(this.menu, false, "menu"); await IUI.create(this.menu); //this._make_bindings(this.menu); diff --git a/src/UI/Table.js b/src/UI/Table.js index a139d99..40dc7ab 100644 --- a/src/UI/Table.js +++ b/src/UI/Table.js @@ -909,7 +909,8 @@ export default IUI.module(class Table extends IUIElement { //this._make_bindings(cl) - IUI.bind(cl, this, "table"); + IUI.bind(cl, false, "table", + IUI.extend(this.__i_bindings, {index: i}, true)); tr.appendChild(cl);