![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/formeditor/v0.0.1/absol/ |
Upload File : |
/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 12); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var absol_src_HTML5_Dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); var Acore = new absol_src_HTML5_Dom__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]({ creator: Object.assign({}, absol_src_HTML5_Dom__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].ShareInstance.creator) }); /* harmony default export */ __webpack_exports__["a"] = (Acore); /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXTERNAL MODULE: ./node_modules/absol/src/HTML5/Element.js var Element = __webpack_require__(6); // CONCATENATED MODULE: ./node_modules/absol/src/HTML5/JSPath.js function JSPath(props) { this.path = props.path; } /** * * @param {Element} element * @returns {Boolean} */ JSPath.prototype.match = function (element, query) { if (query.id) { if (!element.getAttribute || element.getAttribute('id') != query.id) return false; } if (query.tagName) { var matchTag = false; if (element._azar_extendTags && element._azar_extendTags[query.tagName]) matchTag = true; matchTag = matchTag || ((element.tagName || '').toUpperCase() == query.tagName.toUpperCase()); if (!matchTag) return false; } if (query.classList) for (var i = 0; i < query.classList.length; ++i) { if (!element.classList || !element.classList.contains(query.classList[i])) return false; } if (query.attributes) { for (var key in query.attributes) { var value; if (element.attr) { value = element.attr(key); if (value != query.attributes[key]) return false; } else if (element.getAttribute) { value = element.getAttribute(key); if (value != query.attributes[key]) return false; } } } return true; }; /** * Warning : still fail in some testcase */ JSPath.prototype.findFirst = function (root, onFound) { var queue = [{ e: root, i: 0 }]; var current; while (queue.length > 0) { current = queue.shift(); var isMathed = false; var currentElt = current.e; var currentI = current.i; if (this.match(currentElt, this.path[currentI])) { if (this.path[currentI].childCombinate) { var trackI = currentI; var trackElement = currentElt; var isTrackMatch = true; while (isTrackMatch && trackI > 0 && this.path[trackI].childCombinate) { if (!trackElement.parentNode || !this.match(trackElement.parentNode, this.path[trackI - 1])) { isTrackMatch = false; } else{ trackElement = trackElement.parentNode; trackI--; } } if (isTrackMatch) isMathed = true; } else { isMathed = true; } } if (isMathed && currentI + 1 == this.path.length) { if (!onFound || (onFound && onFound(currentElt))) return currentElt; } if (currentElt.childNodes) { var l = currentElt.childNodes.length; for (var i = 0; i < l; ++i) { if (currentElt.childNodes[i].tagName) queue.push({ e: currentElt.childNodes[i], i: currentI + (isMathed && currentI + 1 < this.path.length ? 1 : 0) }); } } } return undefined; }; JSPath.prototype.findAll = function (root, onFound) { var res = []; var queue = [{ e: root, i: 0 }]; var current; while (queue.length > 0) { current = queue.shift(); var isMathed = false; var currentElt = current.e; var currentI = current.i; if (this.match(currentElt, this.path[currentI])) { if (this.path[currentI].childCombinate) { var trackI = currentI; var trackElement = currentElt; var isTrackMatch = true; while (isTrackMatch && trackI > 0 && this.path[trackI].childCombinate) { if (!trackElement.parentNode || !this.match(trackElement.parentNode, this.path[trackI - 1])) { isTrackMatch = false; } else{ trackElement = trackElement.parentNode; trackI--; } } if (isTrackMatch) isMathed = true; } else { isMathed = true; } } if (isMathed && currentI + 1 == this.path.length) { if (!onFound || (onFound && onFound(currentElt))) res.push(currentElt); } if (currentElt.childNodes) { var l = currentElt.childNodes.length; for (var i = 0; i < l; ++i) { if (currentElt.childNodes[i].tagName) queue.push({ e: currentElt.childNodes[i], i: currentI + (isMathed && currentI + 1 < this.path.length ? 1 : 0) }); } } } return res; }; JSPath.__tagRegex = /((([^\s\>\(])|(\([^\)]*\)))+)|(\>)/g; JSPath.__tagNameRegex = /^[a-zA-Z0-9\-\_]+/i; JSPath.__classRegex = /\.[a-zA-Z0-9\-\_]+/g; JSPath.__idRegex = /\#[a-zA-Z0-9\-\_]+/i; JSPath.__attrRegex = /\[\s*([a-zA-Z-0-9\-]+)\s*\=\"\s*(((\\.)|([^\"]))+)\"\s*\]/g; JSPath.__attrParseRegex = /\[\s*([a-zA-Z-0-9\-]+)\s*\=\"\s*(((\\.)|([^\"]))+)\"\s*\]/i; JSPath.parseQuery = function (s) { var tag = {}; var classList = s.match(this.__classRegex); var idList = s.match(this.__idRegex); var tagList = s.match(this.__tagNameRegex); var attributeList = s.match(this.__attrRegex); if (idList && idList.length > 0) { tag.id = idList[0].substring(1); } if (tagList && tagList.length > 0) { tag.tagName = tagList[0].trim(); } if (classList && classList.length > 0) { tag.classList = classList.map(function (s) { return s.substring(1) }); } var attrParseRegex = this.__attrParseRegex; if (attributeList && attributeList.length > 0) { tag.attributes = attributeList.reduce(function (ac, s) { var tokens = s.match(attrParseRegex); var key = tokens[1]; var value = tokens[2]; ac[key] = value; return ac; }, {}); } return tag; }; /** * @param {String} text * @returns {JSPath} */ JSPath.compileJSPath = function (text) { var tagTexts = text.match(this.__tagRegex)||['']; var path = []; var childCombinate = false; for (var i = 0; i < tagTexts.length; ++i) { var s = tagTexts[i]; if (s == '>') { childCombinate = true; } else { var tag = this.parseQuery(s); tag.childCombinate = childCombinate; path.push(tag); childCombinate = false; } } return new JSPath({ path: path }); }; /* harmony default export */ var HTML5_JSPath = (JSPath); // EXTERNAL MODULE: ./node_modules/absol/src/HTML5/OOP.js var OOP = __webpack_require__(2); // CONCATENATED MODULE: ./node_modules/absol/src/String/getFunctionName.js /** * * @param {Function} func */ function getFunctionName(func) { var ret = func.toString(); ret = ret.substr('function '.length); ret = ret.substr(0, ret.indexOf('(')); return ret; } // CONCATENATED MODULE: ./node_modules/absol/src/HTML5/Dom.js function Dom(option) { option = option || {}; this.creator = option.creator || {}; this.creator.__svg__ = function () { var temp = document.createElement('div'); temp.innerHTML = '<svg version="1.1" xmlns="http://www.w3.org/2000/svg"></svg>'; var element = temp.childNodes[0]; var prototypes = Object.getOwnPropertyDescriptors(Element["a" /* default */].prototype); Object.defineProperties(element, prototypes); Element["a" /* default */].call(element); return element; }; Object.defineProperty(this.creator, 'svg', { set: function () { console.error(new Error()); }, get: function () { return this.__svg__; } }); this.$ = this.selectAttacth.bind(this); this._ = this.create.bind(this); this.buildDom = this._; this.defaultTag = 'div'; } Dom.prototype.fromCode = function (code) { code = code.trim().replace(/>\s+</gm, '><'); var temTag = 'div'; if (code.startsWith('<td')) temTag = 'tr'; if (code.startsWith('<tr')) temTag = 'tbody'; var tempDiv = document.createElement(temTag); tempDiv.innerHTML = code; var element = tempDiv.childNodes[0]; var prototypes = Object.getOwnPropertyDescriptors(Element["a" /* default */].prototype); Object.defineProperties(element, prototypes); Element["a" /* default */].call(element); return element; }; /** * DFS * @param {string} query * @param {Element} root * @param {function} onFound - return true to stop find */ Dom.prototype.selectAttacth = function (query, root, onFound) { var res; if (Dom.isDomNode(query)) res = query; else res = this.select(query, root, onFound); if (res) this.attach(res); return res; }; /** * DFS * @param {string} query * @param {Element} root * @param {function} onFound - return true to stop find */ Dom.prototype.select = function (query, root, onFound) { root = root || document.documentElement; var matcher = HTML5_JSPath.compileJSPath(query); return matcher.findFirst(root, onFound); }; /** * * @param {Element} element */ Dom.prototype.attach = function (element) { if (typeof element.attr == 'function') return; var prototypes = Object.getOwnPropertyDescriptors(Element["a" /* default */].prototype); Object.defineProperties(element, prototypes); Element["a" /* default */].call(element); }; Dom.prototype.makeNewElement = function (tagName) { return document.createElement(tagName); }; Dom.prototype.makeNewTextNode = function (data) { return document.createTextNode(data); }; /** * * @param {Object} option * @returns {Element} */ Dom.prototype.create = function (option, isInherited) { var res; var prototype; var property; var attribute; if (Dom.isDomNode(option)) { res = option; option = {}; isInherited = true; } else if (typeof option == 'string') { option = option.trim(); if (option[0] == '<') { option = option.trim(); res = this.fromCode(option); option = {}; } else { var queryObj = HTML5_JSPath.parseQuery(option); option = {}; option.tag = queryObj.tagName || this.defaultTag; if (queryObj.classList && queryObj.classList.length > 0) option.class = queryObj.classList; if (queryObj.id) option.id = queryObj.id; if (queryObj.attributes) option.attr = queryObj.attributes; if (!this.creator[option.tag]) { res = this.makeNewElement(option.tag); option.data && Object.assign(res, option.data); } else { res = this.creator[option.tag](option.data); res._azar_extendTags = res._azar_extendTags || {}; res._azar_extendTags[option.tag] = true; prototype = this.creator[option.tag].prototype; property = this.creator[option.tag].property; attribute = this.creator[option.tag].attribute; } } } else { option = option || {}; if (typeof (option.text) == 'string') {//is textNode return this.makeNewTextNode(option.text); } else { option.tag = option.tag || this.defaultTag; if (!this.creator[option.tag]) { res = this.makeNewElement(option.tag); option.data && Object.assign(res, option.data); } else { res = this.creator[option.tag](option.data); res._azar_extendTags = res._azar_extendTags || {}; res._azar_extendTags[option.tag] = true; prototype = this.creator[option.tag].prototype; property = this.creator[option.tag].property; attribute = this.creator[option.tag].attribute; } } } this.attach(res); if (property) { Object.defineProperties(res, property); } if (prototype) { OOP["a" /* default */].extends(res, prototype); } if (attribute) { res.defineAttributes(attribute); } option.attr && res.attr(option.attr); option.extendEvent && res.defineEvent(option.extendEvent); option.on && res.on(option.on); option.once && res.once(option.once); option.class && res.addClass(option.class); option.style && res.addStyle(option.style); option.id && res.attr('id', option.id); if (!isInherited) res.init(option.props); //todo:attach option if (option.child) { option.child = option.child instanceof Array ? option.child : [option.child]; for (var i = 0; i < option.child.length; ++i) { res.addChild(this.create(option.child[i])); } } return res; }; Dom.prototype.install = function (arg0, arg1) { var _this = this; if (arguments.length == 1) { if (arg0.creator && arg0.create && arg0.select) { // is a dom core var creator = arg0.creator; Object.keys(creator).forEach(function (key) { if (key.startsWith('_') || key.startsWith('$')) return; var func = creator[key]; if (typeof (func) == 'function') if (_this.creator[key] != func) _this.creator[key] = func; }); } else if (typeof (arg0) == 'function') { var name = getFunctionName(arg0) || arg0.name; if (name) { this.creator[name.toLowerCase()] = arg0; } else { console.error('No ident name of creator function', arg0); } } else if (typeof arg0 == 'object') { Object.keys(arg0).forEach(function (key) { if (key.startsWith('_') || key.startsWith('$')) return; var func = arg0[key]; if (typeof (func) == 'function') if (_this.creator[key] != func) _this.creator[key] = func; }); } else if (arg0 instanceof Array) { arg0.forEach(function (func) { var name = getFunctionName(func) || func.name; if (name) { _this.creator[name.toLowerCase()] = func; } }); } else { console.error('Unknow data', arg0); } } else if (arguments.length == 2) { if (arg0 instanceof Array) { arg0.forEach(function (key) { if (key.match(arg0)) { var func = arg1[key]; if (typeof (func) == 'function') if (_this.create[key] != func) _this.create[key] = func; } }); } else if (arg0 instanceof RegExp) { Object.keys(arg1).forEach(function (key) { if (key.match(arg0)) { var func = arg1[key]; if (typeof (func) == 'function') if (_this.create[key] != func) _this.create[key] = func; } }); } else if (typeof (arg0) == 'string' && arg0.length > 0) { if (typeof (arg1) == 'function') { this.creator[arg0] = arg1; } else { console.error('arg1 is not a function'); } } } else { console.error('Invalid param'); } return this; }; /** * * @param {*} o * @returns {Boolean} */ Dom.isDomNode = function (o) { return ( typeof Node === "object" ? o instanceof Node : o && typeof o === "object" && typeof o.nodeType === "number" && typeof o.nodeName === "string" ); }; /** * @param {HTMLElement} element */ Dom.activeFullScreen = function (element) { if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if (element.webkitRequestFullscreen) { element.webkitRequestFullscreen(Element["a" /* default */].ALLOW_KEYBOARD_INPUT); } else if (element.msRequestFullscreen) { element.msRequestFullscreen(); } }; Dom.deactiveFullScreen = function () { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } }; Dom.isFullScreen = function () { var fullScreenElement = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement; return !!fullScreenElement; }; /** * @param {HTMLElement} element * @returns {ClientRect} */ Dom.traceOutBoundingClientRect = function (current) { var screenSize = Dom.getScreenSize(); var left = 0; var right = screenSize.width; var top = 0; var bottom = screenSize.height; while (current) { var ox = Element["a" /* default */].prototype.getComputedStyleValue.call(current, 'overflow-x') != "visible"; var oy = Element["a" /* default */].prototype.getComputedStyleValue.call(current, 'overflow-y') != "visible"; var isHtml = current.tagName.toLowerCase() == 'html'; if (ox || oy || isHtml) { var bound = current.getBoundingClientRect(); if (ox || isHtml) { left = Math.max(left, bound.left); right = Math.min(right, bound.right); } if (oy || isHtml) { top = Math.max(top, bound.top); bottom = Math.min(bottom, bound.bottom); } } if (isHtml) break; current = current.parentElement; } return { left: left, right: right, top: top, bottom: bottom, width: right - left, height: bottom - top }; }; Dom.fontFaceIsLoaded = function (fontFace, timeout) { timeout = timeout || 0; var element = this.ShareInstance._({ tag: 'span', style: { visibility: 'hidden', position: 'fixed', top: '-9999px', left: '-9999px', 'font-size': '256px' }, props: { innerHTML: "Test string long long long" } }); element.addTo(document.body); return element.afterAttached().then(function () { var lastOffsetWidth = element.getBoundingClientRect().width; element.addStyle('font-family', fontFace); return new Promise(function (resolve, reject) { function check(remainTime) { if (remainTime < 0) { resolve(false); element.selfRemove(); } else requestAnimationFrame(function () { var currentOffsetWidth = element.getBoundingClientRect().width; if (currentOffsetWidth != lastOffsetWidth) { resolve(true); element.selfRemove(); } else check(remainTime - 10); }, 10); } check(timeout); }); }); }; Dom.getScreenSize = function () { var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; return { WIDTH: width, HEIGHT: height, width: width, height: height }; }; Dom.waitImageLoaded = function (img) { var isLoaded = true; if (!img.complete) { isLoaded = false; } if (img.naturalWidth === 0) { isLoaded = false; } if (isLoaded) return Promise.resolve(); return new Promise(function (rs) { if (img.addEventListener) { img.addEventListener('load', rs, false); } else { img.attachEvent('onload', rs, false); } setTimeout(5000, rs); }); // No other way of checking: assume it’s ok. }; Dom.imageToCanvas = function (element) { if (typeof element == 'string') { element = Dom.ShareInstance.$(element); } if (element.tagName.toLowerCase() == 'img') { var preRender = Dom.ShareInstance._('div'); preRender.addStyle({ position: 'fixed', top: '0', left: '0', zIndex: '-10000', opacity: '0' }).addTo(document.body); var canvas = document.createElement("canvas"); preRender.addChild(canvas); return Dom.waitImageLoaded(element).then(function () { canvas.width = element.width; canvas.height = element.height; var context = canvas.getContext("2d"); context.drawImage(element, 0, 0); preRender.selfRemove(); return canvas; }); } else { throw new Error("Element must be image"); } }; Dom.ShareInstance = new Dom(); Dom.scrollWidthPromise; Dom.documentReady = new Promise(function (resolve) { if (document.body) { resolve(); } else { window.addEventListener("load", resolve); } }); Dom.getScrollSize = function () { if (!Dom.scrollWidthPromise) Dom.scrollWidthPromise = new Promise(function (resolve) { function prerender() { var parent = Dom.ShareInstance._({ style: { 'z-index': '-100', opacity: '0', width: '100px', height: '100px', overflow: 'scroll', top: '0', left: '0', 'box-sizing': 'content-box', position: 'fixed' } }) .addTo(document.body); var child = Dom.ShareInstance._({ style: { width: '100%', height: '100%' } }).addTo(parent); requestAnimationFrame(function () { var parentBound = parent.getBoundingClientRect(); var childBound = child.getBoundingClientRect(); resolve({ width: parentBound.width - childBound.width, height: parentBound.height - childBound.height }); parent.selfRemove(); }); } Dom.documentReady.then(prerender); }); return Dom.scrollWidthPromise; }; Dom.lastResizeTime = 0; Dom.ResizeSystemElts = []; Dom.ResizeSystemCacheElts = undefined; Dom.removeResizeSystemTrash = function () { Dom.ResizeSystemElts = Dom.ResizeSystemElts.filter(function (element) { return Element["a" /* default */].prototype.isDescendantOf.call(element, document.body); }); }; Dom.addToResizeSystem = function (element) { for (var i = 0; i < Dom.ResizeSystemElts.length; ++i) if (Element["a" /* default */].prototype.isDescendantOf.call(element, Dom.ResizeSystemElts[i])) { return false; } Dom.ResizeSystemElts = Dom.ResizeSystemElts.filter(function (e) { return !Element["a" /* default */].prototype.isDescendantOf.call(e, element); }); Dom.ResizeSystemElts.push(element); return true; }; Dom.updateResizeSystem = function () { var now = new Date().getTime(); if (now - 100 > Dom.lastResizeTime) { Dom.removeResizeSystemTrash(); Dom.ResizeSystemCacheElts = undefined; } Dom.lastResizeTime = now; function visitor(child) { if (typeof child.requestUpdateSize == 'function') { child.requestUpdateSize(); return true; } else if (typeof child.updateSize == 'function') { child.updateSize(); return true; } else if (typeof child.onresize == 'function') { child.onresize(); return true; } } if (Dom.ResizeSystemCacheElts === undefined) { Dom.ResizeSystemCacheElts = []; Dom.ResizeSystemElts.forEach(function (e) { Dom.ShareInstance.$('', e, function (child) { if (visitor(child)) Dom.ResizeSystemCacheElts.push(child); }); }); } else { Dom.ResizeSystemCacheElts.forEach(visitor); } }; window.addEventListener('resize', Dom.updateResizeSystem); /*** * if this element is attached, error event will be fired * @returns {HTMLElement} * */ Dom.ShareInstance.creator.attachhook = function () { var res = Dom.ShareInstance._({ tag: 'img', class: 'absol-attachhook', style: { display: 'none' }, attr: { src: '' } }); return res; }; /* harmony default export */ var HTML5_Dom = __webpack_exports__["a"] = (Dom); /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; var OOP = {}; /** * @param {Object} object * @param {Sttring} key * @param {Function} method */ OOP.overideMethod = function (object, key, method) { if (object[key] === undefined) object[key] = method; else { var _superMethod = object[key]; object[key] = (function (_superMethod, method) { return function () { var _super = this.super; this.super = _superMethod; var result = method.apply(this, arguments); this.super = _super; return result; }; })(_superMethod, method); } }; OOP.extends = function (object, prototype) { // do not use setter, getter for (var key in prototype) { if (key != 'constructor' && (typeof prototype[key] == 'function')) OOP.overideMethod(object, key, prototype[key]); } }; OOP.inherit = function (child, parent) { // do not use setter, getter Object.keys(parent).forEach(function (key) { if (key != 'constructor' && (typeof parent[key] == 'function')) { var superMethod = parent[key]; var currentMethod = child[key]; if (!currentMethod) child[key] = superMethod; else { child[key] = function () { var _super = this.super; this.super = superMethod; var result = currentMethod.apply(this, arguments); this.super = _super; return result; }; } } }); }; OOP.drillProperty = function (topObject, botObject, keyTop, keyBot) { if (typeof (keyTop) == 'string') { keyBot = keyBot || keyTop; Object.defineProperty(topObject, keyTop, { set: function (value) { botObject[keyBot] = value; }, get: function () { return botObject[keyBot]; } }); } else { if (keyTop instanceof Array) { for (var i = 0; i < keyTop.length; ++i) { OOP.drillProperty(topObject, botObject, keyTop[i], keyTop[i]); } } else { for (var key in keyTop) { OOP.drillProperty(topObject, botObject, key, keyTop[key]); } } } }; OOP.bindFunctions = function (_this, handlers) { var res = {}; for (var key in handlers) { res[key] = handlers[key].bind(_this); } return res; }; OOP.inheritCreator = function (parent, child) { var i; if (child.property) { if (parent.property) { for (i in parent.property) { if (!child.property[i]) child.property[i] = parent.property[i]; } } } for (i in parent.prototype) { if (!child.prototype[i]) { child.prototype[i] = parent.prototype[i]; } else { child.prototype[i] = (function (superFunction, childFunction) { return function () { var _super = this.super; this.super = superFunction; var result = childFunction.apply(this, arguments); this.super = _super; return result; }; })(parent.prototype[i], child.prototype[i]); } } }; /* harmony default export */ __webpack_exports__["a"] = (OOP); /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; function EventEmitter() { this._azar_extendEvents = this._azar_extendEvents || { supported: {}, prioritize: {}, nonprioritize: {} }; this.__azar_force = !(typeof Node === "object" ? this instanceof Node : this && typeof this === "object" && typeof this.nodeType === "number" && typeof this.nodeName === "string"); } EventEmitter.prototype.defineEvent = function (name) { if (name instanceof Array) { for (var i = 0; i < name.length; ++i) this._azar_extendEvents.supported[name[i]] = true; } else this._azar_extendEvents.supported[name] = true; return this; }; EventEmitter.prototype.isSupportedEvent = function (name) { return this.__azar_force || !!this._azar_extendEvents.supported[name]; }; EventEmitter.prototype.emit = function (eventName, data) { this.fire.apply(this, arguments); }; EventEmitter.prototype.fire = function (eventName, data) { var others = Array.prototype.slice.call(arguments, 1); if (this.isSupportedEvent(eventName)) { var listenerList; var i; if (this._azar_extendEvents.prioritize[eventName]) { listenerList = this._azar_extendEvents.prioritize[eventName].slice(); for (i = 0; i < listenerList.length; ++i) { try { listenerList[i].wrappedCallback.apply(this, others); } catch (e) { console.error(e); } } } if (this._azar_extendEvents.nonprioritize[eventName]) { listenerList = this._azar_extendEvents.nonprioritize[eventName].slice(); for (i = 0; i < listenerList.length; ++i) { try { listenerList[i].wrappedCallback.apply(this, others); } catch (e) { console.error(e); } } } } else { if (this.dispatchEvent) { var event = new Event(eventName); data && Object.assign(event, data); this.dispatchEvent(event); } else throw new Error("Not support event " + eventName); } return this; }; EventEmitter.prototype.eventEmittorOnWithTime = function (isOnce, arg0, arg1, arg2) { if (typeof arg0 == 'object') { for (var key in arg0) { this.eventEmittorOnWithTime(isOnce, key, arg0[key]); } return this; } else { if (typeof arg1 == 'object') { return this.eventEmittorOnWithTime(isOnce, arg0, arg1.callback, arg1.cap); } else { var eventArr = this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] || []; var eventIndex = -1; for (var i = 0; i < eventArr.length; ++i) { if (eventArr[i].wrappedCallback == arg1) { eventIndex = i; break; } } if (eventIndex < 0) { var event = { isOnce: isOnce, eventName: arg0, callback: arg1, cap: !!arg2 }; //wrappedCallback will be call if (isOnce) { event.wrappedCallback = function (data) { event.callback.call(this, data); this.off(event.eventName, event.wrappedCallback, event.cap); }; } else { event.wrappedCallback = event.callback; } if (!this.isSupportedEvent(arg0)) { if (this.addEventListener) { this.addEventListener(arg0, event.wrappedCallback, !!arg2); } else { this.attachEvent('on' + arg0, arg1, !!arg2); } } eventArr.push(event); this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] = eventArr; } else { console.warn("dupplicate event"); } } return this; } }; EventEmitter.prototype.on = function (arg0, arg1, arg2) { this.eventEmittorOnWithTime(false, arg0, arg1, arg2); return this; }; EventEmitter.prototype.once = function (arg0, arg1, arg2) { this.eventEmittorOnWithTime(true, arg0, arg1, arg2); return this; }; EventEmitter.prototype.off = function (arg0, arg1, arg2) { if (typeof arg0 == 'object') { for (var key in arg0) { this.off(key, arg0[key]); } return this; } else { if (typeof arg1 == 'object') { return this.off(arg0, arg1.callback, arg1.cap); } else { var eventArr = this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] || []; var newEventArray = []; for (var i = 0; i < eventArr.length; ++i) { var event = eventArr[i]; if (event.wrappedCallback == arg1) { //Dont add to newEventArray if (this.isSupportedEvent(arg0)) { } else { if (this.removeEventListener) { this.removeEventListener(event.eventName, event.wrappedCallback, !!event.call); } else { this.detachEvent('on' + event.eventName, event.wrappedCallback, !!event.call); } } } else { newEventArray.push(event); } } this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] = newEventArray; return this; } } }; EventEmitter.isMouseRight = function (event) { var isRightMB = false; if ("which" in event) // Gecko (Firefox), WebKit (Safari/Chrome) & Opera isRightMB = event.which == 3; else if ("button" in event) // IE, Opera isRightMB = event.button == 2; return isRightMB; }; EventEmitter.hitElement = function (element, event) { var current = event.target; while (current) { if (current == element) return true; current = current.parentElement; } return false; }; EventEmitter.copyEvent = function (event, props) { var result = {}; Object.assign(result, event); for (var key in result) { if (typeof result[key] == 'function') { result[key] = result[key].bind(event); } } if (props) Object.assign(result, props); return result; }; EventEmitter.eventProperties = ["altKey", "bubbles", "button", "buttons", "cancelBubble", "cancelable", "clientX", "clientY", "composed", "ctrlKey", "currentTarget", "defaultPrevented", "deltaMode", "deltaX", "deltaY", "deltaZ", "detail", "eventPhase", "explicitOriginalTarget", "isTrusted", "layerX", "layerY", "metaKey", "movementX", "movementY", "mozInputSource", "mozPressure", "offsetX", "offsetY", "originalTarget", "pageX", "pageY", "rangeOffset", "rangeParent", "region", "relatedTarget", "returnValue", "screenX", "screenY", "shiftKey", "srcElement", "target", "timeStamp", "type", "deltaMode", "deltaX", "deltaY", "deltaZ"]; /* harmony default export */ __webpack_exports__["a"] = (EventEmitter); /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ // css base code, injected by the css-loader module.exports = function (useSourceMap) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = cssWithMappingToString(item, useSourceMap); if (item[2]) { return '@media ' + item[2] + '{' + content + '}'; } else { return content; } }).join(''); }; // import a list of modules into the list list.i = function (modules, mediaQuery) { if (typeof modules === 'string') { modules = [[null, modules, '']]; } var alreadyImportedModules = {}; for (var i = 0; i < this.length; i++) { var id = this[i][0]; if (id != null) { alreadyImportedModules[id] = true; } } for (i = 0; i < modules.length; i++) { var item = modules[i]; // skip already imported module // this implementation is not 100% perfect for weird media query combinations // when a module is imported multiple times with different media queries. // I hope this will never occur (Hey this way we have smaller bundles) if (item[0] == null || !alreadyImportedModules[item[0]]) { if (mediaQuery && !item[2]) { item[2] = mediaQuery; } else if (mediaQuery) { item[2] = '(' + item[2] + ') and (' + mediaQuery + ')'; } list.push(item); } } }; return list; }; function cssWithMappingToString(item, useSourceMap) { var content = item[1] || ''; var cssMapping = item[3]; if (!cssMapping) { return content; } if (useSourceMap && typeof btoa === 'function') { var sourceMapping = toComment(cssMapping); var sourceURLs = cssMapping.sources.map(function (source) { return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'; }); return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); } return [content].join('\n'); } // Adapted from convert-source-map (MIT) function toComment(sourceMap) { // eslint-disable-next-line no-undef var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; return '/*# ' + data + ' */'; } /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ var stylesInDom = {}; var memoize = function (fn) { var memo; return function () { if (typeof memo === "undefined") memo = fn.apply(this, arguments); return memo; }; }; var isOldIE = memoize(function () { // Test for IE <= 9 as proposed by Browserhacks // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 // Tests for existence of standard globals is to allow style-loader // to operate correctly into non-standard environments // @see https://github.com/webpack-contrib/style-loader/issues/177 return window && document && document.all && !window.atob; }); var getTarget = function (target, parent) { if (parent){ return parent.querySelector(target); } return document.querySelector(target); }; var getElement = (function (fn) { var memo = {}; return function(target, parent) { // If passing function in options, then use it for resolve "head" element. // Useful for Shadow Root style i.e // { // insertInto: function () { return document.querySelector("#foo").shadowRoot } // } if (typeof target === 'function') { return target(); } if (typeof memo[target] === "undefined") { var styleTarget = getTarget.call(this, target, parent); // Special case to return head of iframe instead of iframe itself if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { try { // This will throw an exception if access to iframe is blocked // due to cross-origin restrictions styleTarget = styleTarget.contentDocument.head; } catch(e) { styleTarget = null; } } memo[target] = styleTarget; } return memo[target] }; })(); var singleton = null; var singletonCounter = 0; var stylesInsertedAtTop = []; var fixUrls = __webpack_require__(15); module.exports = function(list, options) { if (typeof DEBUG !== "undefined" && DEBUG) { if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment"); } options = options || {}; options.attrs = typeof options.attrs === "object" ? options.attrs : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style> // tags it will allow on a page if (!options.singleton && typeof options.singleton !== "boolean") options.singleton = isOldIE(); // By default, add <style> tags to the <head> element if (!options.insertInto) options.insertInto = "head"; // By default, add <style> tags to the bottom of the target if (!options.insertAt) options.insertAt = "bottom"; var styles = listToStyles(list, options); addStylesToDom(styles, options); return function update (newList) { var mayRemove = []; for (var i = 0; i < styles.length; i++) { var item = styles[i]; var domStyle = stylesInDom[item.id]; domStyle.refs--; mayRemove.push(domStyle); } if(newList) { var newStyles = listToStyles(newList, options); addStylesToDom(newStyles, options); } for (var i = 0; i < mayRemove.length; i++) { var domStyle = mayRemove[i]; if(domStyle.refs === 0) { for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j](); delete stylesInDom[domStyle.id]; } } }; }; function addStylesToDom (styles, options) { for (var i = 0; i < styles.length; i++) { var item = styles[i]; var domStyle = stylesInDom[item.id]; if(domStyle) { domStyle.refs++; for(var j = 0; j < domStyle.parts.length; j++) { domStyle.parts[j](item.parts[j]); } for(; j < item.parts.length; j++) { domStyle.parts.push(addStyle(item.parts[j], options)); } } else { var parts = []; for(var j = 0; j < item.parts.length; j++) { parts.push(addStyle(item.parts[j], options)); } stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts}; } } } function listToStyles (list, options) { var styles = []; var newStyles = {}; for (var i = 0; i < list.length; i++) { var item = list[i]; var id = options.base ? item[0] + options.base : item[0]; var css = item[1]; var media = item[2]; var sourceMap = item[3]; var part = {css: css, media: media, sourceMap: sourceMap}; if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]}); else newStyles[id].parts.push(part); } return styles; } function insertStyleElement (options, style) { var target = getElement(options.insertInto) if (!target) { throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid."); } var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1]; if (options.insertAt === "top") { if (!lastStyleElementInsertedAtTop) { target.insertBefore(style, target.firstChild); } else if (lastStyleElementInsertedAtTop.nextSibling) { target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling); } else { target.appendChild(style); } stylesInsertedAtTop.push(style); } else if (options.insertAt === "bottom") { target.appendChild(style); } else if (typeof options.insertAt === "object" && options.insertAt.before) { var nextSibling = getElement(options.insertAt.before, target); target.insertBefore(style, nextSibling); } else { throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n"); } } function removeStyleElement (style) { if (style.parentNode === null) return false; style.parentNode.removeChild(style); var idx = stylesInsertedAtTop.indexOf(style); if(idx >= 0) { stylesInsertedAtTop.splice(idx, 1); } } function createStyleElement (options) { var style = document.createElement("style"); if(options.attrs.type === undefined) { options.attrs.type = "text/css"; } if(options.attrs.nonce === undefined) { var nonce = getNonce(); if (nonce) { options.attrs.nonce = nonce; } } addAttrs(style, options.attrs); insertStyleElement(options, style); return style; } function createLinkElement (options) { var link = document.createElement("link"); if(options.attrs.type === undefined) { options.attrs.type = "text/css"; } options.attrs.rel = "stylesheet"; addAttrs(link, options.attrs); insertStyleElement(options, link); return link; } function addAttrs (el, attrs) { Object.keys(attrs).forEach(function (key) { el.setAttribute(key, attrs[key]); }); } function getNonce() { if (false) {} return __webpack_require__.nc; } function addStyle (obj, options) { var style, update, remove, result; // If a transform function was defined, run it on the css if (options.transform && obj.css) { result = typeof options.transform === 'function' ? options.transform(obj.css) : options.transform.default(obj.css); if (result) { // If transform returns a value, use that instead of the original css. // This allows running runtime transformations on the css. obj.css = result; } else { // If the transform function returns a falsy value, don't add this css. // This allows conditional loading of css return function() { // noop }; } } if (options.singleton) { var styleIndex = singletonCounter++; style = singleton || (singleton = createStyleElement(options)); update = applyToSingletonTag.bind(null, style, styleIndex, false); remove = applyToSingletonTag.bind(null, style, styleIndex, true); } else if ( obj.sourceMap && typeof URL === "function" && typeof URL.createObjectURL === "function" && typeof URL.revokeObjectURL === "function" && typeof Blob === "function" && typeof btoa === "function" ) { style = createLinkElement(options); update = updateLink.bind(null, style, options); remove = function () { removeStyleElement(style); if(style.href) URL.revokeObjectURL(style.href); }; } else { style = createStyleElement(options); update = applyToTag.bind(null, style); remove = function () { removeStyleElement(style); }; } update(obj); return function updateStyle (newObj) { if (newObj) { if ( newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap ) { return; } update(obj = newObj); } else { remove(); } }; } var replaceText = (function () { var textStore = []; return function (index, replacement) { textStore[index] = replacement; return textStore.filter(Boolean).join('\n'); }; })(); function applyToSingletonTag (style, index, remove, obj) { var css = remove ? "" : obj.css; if (style.styleSheet) { style.styleSheet.cssText = replaceText(index, css); } else { var cssNode = document.createTextNode(css); var childNodes = style.childNodes; if (childNodes[index]) style.removeChild(childNodes[index]); if (childNodes.length) { style.insertBefore(cssNode, childNodes[index]); } else { style.appendChild(cssNode); } } } function applyToTag (style, obj) { var css = obj.css; var media = obj.media; if(media) { style.setAttribute("media", media) } if(style.styleSheet) { style.styleSheet.cssText = css; } else { while(style.firstChild) { style.removeChild(style.firstChild); } style.appendChild(document.createTextNode(css)); } } function updateLink (link, options, obj) { var css = obj.css; var sourceMap = obj.sourceMap; /* If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled and there is no publicPath defined then lets turn convertToAbsoluteUrls on by default. Otherwise default to the convertToAbsoluteUrls option directly */ var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap; if (options.convertToAbsoluteUrls || autoFixUrls) { css = fixUrls(css); } if (sourceMap) { // http://stackoverflow.com/a/26603875 css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */"; } var blob = new Blob([css], { type: "text/css" }); var oldSrc = link.href; link.href = URL.createObjectURL(blob); if(oldSrc) URL.revokeObjectURL(oldSrc); } /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var _EventEmitter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); /* harmony import */ var _Detector_BrowserDetector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); /* harmony import */ var _String_stringFormat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7); function Element() { _EventEmitter__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].call(this); this._azar_extendAttributes = this._azar_extendAttributes || {}; } Object.defineProperties(Element.prototype, Object.getOwnPropertyDescriptors(_EventEmitter__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].prototype)); Element.prototype.init = function (props) { Object.assign(this, props || {}); }; /** * @typedef {Object} AttributeDefiner * @property {Function} set * @property {Function} get * @property {Function} remove * * @param {String} key * @param {AttributeDefiner} def */ Element.prototype.defineAttribute = function (key, def) { this._azar_extendAttributes[key] = def; }; Element.prototype.defineAttributes = function (defs) { for (var key in defs) { this.defineAttribute(key, defs[key]); } }; Element.prototype.attr = function () { if (arguments.length == 1) { if (typeof (arguments[0]) == 'string') { if (this._azar_extendAttributes[arguments[0]]) { return this._azar_extendAttributes[arguments[0]].get.call(this); } else return this.getAttribute(arguments[0]); } else { for (var key in arguments[0]) { this.attr(key, arguments[0][key]); } } } else { if (arguments.length == 2) { if (arguments[1] === null || arguments[1] === undefined) { if (this._azar_extendAttributes[arguments[0]]) { this._azar_extendAttributes[arguments[0]].remove.call(this, arguments[1]); } else this.removeAttribute(arguments[0]); } else { if (this._azar_extendAttributes[arguments[0]]) { this._azar_extendAttributes[arguments[0]].set.call(this, arguments[1]); } else { this.setAttribute(arguments[0], arguments[1]); } } } } return this; }; Element.prototype.addStyle = function (arg0, arg1) { if (typeof arg0 == 'string') this.style[Object(_String_stringFormat__WEBPACK_IMPORTED_MODULE_2__[/* kebabCaseToCamelCase */ "a"])(arg0)] = arg1; else { for (var key in arg0) this.addStyle(key, arg0[key]); } return this; }; Element.prototype.removeStyle = function (arg0) { var key; if (typeof arg0 == 'string') { key = Object(_String_stringFormat__WEBPACK_IMPORTED_MODULE_2__[/* kebabCaseToCamelCase */ "a"])(arg0); this.style[key] = null; delete this.style[key]; } else { if (typeof arg0 instanceof Array) { for (var i = 0; i < arg0.length; ++i) this.removeStyle(arg0[i]); } else { for (key in arg0) this.removeStyle(key); } } return this; }; Element.prototype.addChild = function (child) { if (child instanceof Array) { for (var i = 0; i < child.length; ++i) this.appendChild(child[i]); } else this.appendChild(child); return this; }; Element.prototype.addTo = function (parent) { if (parent && parent.appendChild) { if (parent.addChild) parent.addChild(this); else parent.appendChild(this); } else throw Error("Can not append to " + parent + "!"); return this; }; Element.prototype.selfRemove = function () { if (this.parentElement) this.parentElement.removeChild(this); return this; }; Element.prototype.selfReplace = function (newNode) { if (this.parentElement) this.parentElement.replaceChild(newNode, this); return this; }; Element.prototype.clearChild = function () { while (this.firstChild) { this.removeChild(this.firstChild); } return this; }; /** * * @param {string} className * @returns {Boolean} */ Element.prototype.containsClass = function (className) { if (className instanceof Array) { for (var i = 0; i < className.length; ++i) if (!this.classList.containsClass(className[i])) return false; return true; } else return this.classList.contains(className); }; /** * * @param {string} className * @returns {Element} */ Element.prototype.addClass = function (className) { if (className instanceof Array) { for (var i = 0; i < className.length; ++i) this.classList.add(className[i]); } else this.classList.add(className); return this; }; /** * * @param {string} className * @returns {Element} */ Element.prototype.removeClass = function (className) { if (className instanceof Array) { for (var i = 0; i < className.length; ++i) this.classList.remove(className[i]); } else this.classList.remove(className); return this; }; Element.prototype.getComputedStyleValue = function (key) { return window.getComputedStyle(this).getPropertyValue(key); }; Element.prototype.getFontSize = function () { return parseFloat(this.getComputedStyleValue('font-size').replace('px', '')); }; Element.prototype.findChildAfter = function (obj) { var r = 0; for (var i = 0; i < this.childNodes.length; ++i) { if (obj == this.childNodes[i]) { r = i + 1; break; } } if (this.childNodes[r]) return this.childNodes[r]; return undefined; }; Element.prototype.findChildBefore = function (obj) { var r = 0; for (var i = 0; i < this.childNodes.length; ++i) { if (obj == this.childNodes[i]) { r = i - 1; break; } } if (this.childNodes[r]) return this.childNodes[r]; return undefined; }; Element.prototype.addChildBefore = function (newItem, bf) { this.insertBefore(newItem, bf); return this; }; Element.prototype.addChildAfter = function (newItem, at) { var bf = this.findChildAfter(at); if (bf) return this.addChildBefore(newItem, bf); return this.addChild(newItem); }; /** * @returns {DOMRect} */ Element.prototype.getBoundingRecursiveRect = function (depth) { if (depth === undefined) depth = 10000; var current, next; var oo = 1000000; var ac = { left: oo, right: -oo, top: oo, bottom: -oo, width: 0, height: 0 }; var stacks = [{ e: this, d: 0 }]; while (stacks.length > 0) { current = stacks.pop(); if (current.e.getBoundingClientRect) { var cRect = current.e.getBoundingClientRect(); if (!cRect || !(cRect.width || cRect.height || cRect.left || cRect.right)) continue; ac.left = Math.min(ac.left, cRect.left); ac.top = Math.min(ac.top, cRect.top); ac.bottom = Math.max(ac.bottom, cRect.bottom); ac.right = Math.max(ac.right, cRect.right); ac.height = ac.bottom - ac.top; ac.width = ac.right - ac.left; var childNodes = current.e.childNodes; if (childNodes && childNodes.length > 0 && current.d < depth) { for (var i = 0; i < childNodes.length; ++i) { next = { e: childNodes[i], d: current.d + 1 }; stacks.push(next); } } } } return ac; }; Element.prototype.isDescendantOf = function (parent) { var child = this; while (child) { if (child == parent) return true; child = child.parentNode; } return false; }; /*************************** **********************/ Element.prototype.getCSSRules = function () { var sheets = document.styleSheets; var ret = []; this.matches = this.matches || this.webkitMatchesSelector || this.mozMatchesSelector || this.msMatchesSelector || this.oMatchesSelector; for (var i in sheets) { if (sheets[i].href) continue;//because can not access var rules = sheets[i].rules || sheets[i].cssRules; for (var r in rules) { if (this.matches(rules[r].selectorText)) { ret.push(rules[r]); } } } return ret; }; /*** * WARNING: this function may be unsafe */ Element.prototype.afterAttached = function (frameTimeOut) { if (!frameTimeOut) frameTimeOut = 25; // var tracer = new Error(); var current = this; return new Promise(function (resolve, reject) { var delayTime = 0; function trace() { if (frameTimeOut < 0) { // reject(tracer); // if (absol.BUILD && absol.BUILD.version == "DEBUG") // console.warn("Element not attached", trace); } else { frameTimeOut--; while (true) { if (current == document.body) { resolve(); return; } else { if (current.parentNode) { current = current.parentNode; } else { if (delayTime < 25) delayTime += 1; else if (delayTime < 100) { delayTime += 5; } else if (delayTime < 1000) { delayTime += 10; } setTimeout(trace, delayTime); return; } } } } } setTimeout(trace, 0); }); }; /*** * WARNING: this function may be unsafe */ Element.prototype.afterDisplayed = function (requestTimesOut) { if (!requestTimesOut) requestTimesOut = 24 * 3600 * 33; // var tracer = new Error(); var current = this; return new Promise(function (resolve, reject) { function trace() { if (requestTimesOut < 0) { // reject(tracer); // if (absol.BUILD && absol.BUILD.version == "DEBUG") // console.warn("Element not displayed", trace); } else { requestTimesOut--; var bound = current.getBoundingClientRect(); if (bound.width > 0 || bound.height > 0) { resolve(); } else { setTimeout(trace, 33); return; } } } trace(); }); }; !(function () { var origin = Element.prototype.on; if (_Detector_BrowserDetector__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].isSafari && !_Detector_BrowserDetector__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].isMobile) { Element.prototype.on = function () { if (!this.isSupportedEvent('mouseleave') && arguments[0] == 'mouseleave') { this.defineEvent('mouseleave'); var mouseLeaveEventHandler = function (event) { var bound = this.getBoundingClientRect(); var ok = false; ok |= event.clientX < bound.left + 1; ok |= event.clientX >= bound.right - 1; ok |= event.clientY < bound.top + 1; ok |= event.clientY >= bound.bottom - 1; if (ok) this.emit('mouseleave', event); }; this.addEventListener('mouseleave', mouseLeaveEventHandler, true); } origin.apply(this, arguments); return this; }; } if (_Detector_BrowserDetector__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].isFirefox) { Element.prototype.on = function () { if (!this.isSupportedEvent('wheel') && arguments[0] == 'wheel') { this.defineEvent('wheel'); var wheelEventHandler = function (oldEvent) { //clone event to avoid some lib fix it var event = oldEvent.absolEvent; if (!event) { event = Object.assign({}, oldEvent); for (var i = 0; i < Element.eventProperties.length; ++i) { var key = Element.eventProperties[i]; if (typeof (event[key]) == 'function') { event[key] = event[key].bind(oldEvent); } } event.preventDefault = function () { oldEvent.preventDefault(); }; if (!event.mozFixWheelScale) { event.mozDeltaY = oldEvent.deltaY; event.mozFixWheelScale = true; Object.defineProperty(event, 'deltaY', { get: function () { return this.mozDeltaY * 100 / 3; } }); } oldEvent.absolEvent = event; } this.emit('wheel', event); }; this.addEventListener('wheel', wheelEventHandler); } origin.apply(this, arguments); return this; }; } }()); Element.eventProperties = ["altKey", "bubbles", "button", "buttons", "cancelBubble", "cancelable", "clientX", "clientY", "composed", "ctrlKey", "currentTarget", "defaultPrevented", "deltaMode", "deltaX", "deltaY", "deltaZ", "detail", "eventPhase", "explicitOriginalTarget", "isTrusted", "layerX", "layerY", "metaKey", "movementX", "movementY", "mozInputSource", "mozPressure", "offsetX", "offsetY", "originalTarget", "pageX", "pageY", "rangeOffset", "rangeParent", "region", "relatedTarget", "returnValue", "screenX", "screenY", "shiftKey", "srcElement", "target", "timeStamp", "type", "deltaMode", "deltaX", "deltaY", "deltaZ"]; /* harmony default export */ __webpack_exports__["a"] = (Element); /***/ }), /* 7 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* unused harmony export wrapToLines */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return nonAccentVietnamese; }); /* unused harmony export pascalCaseToCamelCase */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return kebabCaseToCamelCase; }); /* unused harmony export underScoreToCamelCase */ /* unused harmony export camelCaseToPascalCase */ /* unused harmony export underScoreToPascalCase */ /* unused harmony export kebabCaseToPascalCase */ /* unused harmony export pascalCaseToKebabCase */ /* unused harmony export camelCaseToKebabCase */ /* unused harmony export underScoreToKebabCase */ /* unused harmony export pascalCaseToUnderScore */ /* unused harmony export pascalCaseToUpperUnderScore */ /* unused harmony export camelCaseToUnderScore */ /* unused harmony export camelCaseToUpperUnderScore */ /* unused harmony export kebabCaseToUnderScore */ /* unused harmony export kebabCaseToUpperUnderScore */ /** * * @param {String} s * @param {Number} maxLength */ function wrapToLines(s, maxLength) { var res = []; var currentWord = ''; var currentLine = ''; for (var i = 0; i < s.length; ++i) { if (s[i].match(/\s/)) { if (currentWord.length + currentLine.length >= maxLength) { if (currentLine.length > 0) { res.push(currentLine.trim()); currentLine = ''; currentWord = currentWord.trimLeft() + s[i]; } else { currentLine = currentLine + currentWord; res.push(currentLine.trim()); currentLine = ''; currentWord = ''; } } else { currentLine = currentLine + currentWord; currentWord = s[i]; } } else { currentWord = currentWord + s[i]; } } currentLine = (currentLine + currentWord).trim(); if (currentLine.length > 0) res.push(currentLine); return res; } function nonAccentVietnamese(s) { return s.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a") .replace(/À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ/g, "A") .replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e") .replace(/È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ/g, "E") .replace(/ì|í|ị|ỉ|ĩ/g, "i") .replace(/Ì|Í|Ị|Ỉ|Ĩ/g, "I") .replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, "o") .replace(/Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ/g, "O") .replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, "u") .replace(/Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ/g, "U") .replace(/ỳ|ý|ỵ|ỷ|ỹ/g, "y") .replace(/Ỳ|Ý|Ỵ|Ỷ|Ỹ/g, "Y") .replace(/đ/g, "d") .replace(/Đ/g, "D") .replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g, "") .replace(/\u02C6|\u0306|\u031B/g, ""); } /** * * @param {String} s * @returns {String} */ function pascalCaseToCamelCase(s) { return s.substr(0, 1).toLowerCase() + s.substr(1); } /** * * @param {String} s * @returns {String} */ function kebabCaseToCamelCase(s) { return s.replace(/-+([^-])/g, function (full, c) { return c.toUpperCase(); }); } /** * * @param {String} s * @returns {String} */ function underScoreToCamelCase(s) { return s.replace(/(_+)?([^_]+)/g, function (full, underscore, word) { if (underscore) { if (word) { return word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase(); } else return ''; } else { return word.toLowerCase(); }; }); } /** * * @param {String} s * @returns {String} */ function camelCaseToPascalCase(s) { return s.substr(0, 1).toUpperCase() + s.substr(1); } /** * * @param {String} s * @returns {String} */ function underScoreToPascalCase(s) { return s.replace(/(_+|^)?([^_]+)/g, function (full, underscore, word) { return word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase(); }); } /** * * @param {String} s * @returns {String} */ function kebabCaseToPascalCase(s) { return s.replace(/(-+|^)([^-])/g, function (full, u, c) { return c.toUpperCase(); }); } /** * * @param {String} s * @returns {String} */ function pascalCaseToKebabCase(s) { return s.replace(/[A-Z][^A-Z]*/g, function (full, index) { if (index == 0) return full.toLowerCase(); return '-' + full.toLowerCase() }); } /** * * @param {String} s * @returns {String} */ function camelCaseToKebabCase(s) { return s.replace(/(^|[A-Z])[^A-Z]*/g, function (full, index) { if (index == 0) return full.toLowerCase(); return '-' + full.toLowerCase() }); } /** * * @param {String} s * @returns {String} */ function underScoreToKebabCase(s) { return s.replace(/(^|_+)([^_]+)/g, function (full, score, word, index) { if (index == 0) return word.toLowerCase(); return '-' + word.toLowerCase() }); } /** * * @param {String} s * @returns {String} */ function pascalCaseToUnderScore(s) { return s.replace(/[A-Z][^A-Z]*/g, function (full, index) { if (index == 0) return full.toLowerCase(); return '_' + full.toLowerCase() }); } /** * * @param {String} s * @returns {String} */ function pascalCaseToUpperUnderScore(s) { return s.replace(/[A-Z][^A-Z]*/g, function (full, index) { if (index == 0) return full.toUpperCase(); return '_' + full.toUpperCase() }); } /** * * @param {String} s * @returns {String} */ function camelCaseToUnderScore(s) { return s.replace(/(^|[A-Z])[^A-Z]*/g, function (full, index) { if (index == 0) return full.toLowerCase(); return '_' + full.toLowerCase() }); } /** * * @param {String} s * @returns {String} */ function camelCaseToUpperUnderScore(s) { return s.replace(/(^|[A-Z])[^A-Z]*/g, function (full, index) { if (index == 0) return full.toUpperCase(); return '_' + full.toUpperCase() }); } /** * * @param {String} s * @returns {String} */ function kebabCaseToUnderScore(s) { return s.replace(/(-+|^)([^-]+)/g, function (full, u, word, index) { if (index == 0) return word.toLowerCase(); return '_' + word.toLowerCase() }); } /** * * @param {String} s * @returns {String} */ function kebabCaseToUpperUnderScore(s) { return s.replace(/(-+|^)([^-]+)/g, function (full, u, word, index) { if (index == 0) return word.toUpperCase(); return '_' + word.toUpperCase() }); } String.nonAccentVietnamese = nonAccentVietnamese; String.prototype.nonAccentVietnamese = function () { return String.nonAccentVietnamese(this); }; /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _ACore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var absol_src_HTML5_Dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); var _ = _ACore__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]._; var $ = _ACore__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].$; var originSetTimeout = setTimeout; var originClearTimeout = setTimeout; var originSetInterval = setInterval; var originClearInterval = clearInterval; var pendingTimeout = 0; var pendingInterval = 0; var timeoutDict = {}; var intervalDict = {}; function DebugTask() { var res = _({ class: 'absol-debug-task', child: [ { child: [{ tag: 'span', class: 'absol-debug-task-name', child: { text: 'settimeout ' } }, { tag: 'span', class: ['absol-debug-task-value', 'settimeout'], child: { text: '0' } }] }, { child: [{ tag: 'span', class: 'absol-debug-task-name', child: { text: 'setintervel ' } }, { tag: 'span', class: ['absol-debug-task-value', 'setinterval'], child: { text: '0' } }, ] }, { child: [{ tag: 'span', class: 'absol-debug-task-name', child: { text: 'Work ' } }, { tag: 'span', class: ['absol-debug-task-value', 'work'], child: { text: '0%' } }, ] } ] }); res._timeout = 0; res._interval = 0; res._work = 0; res.$setTimeOutValue = $('.absol-debug-task-value.settimeout', res); res.$setIntervalValue = $('.absol-debug-task-value.setinterval', res); res.$setWorkValue = $('.absol-debug-task-value.work', res); return res; } DebugTask.property = {}; DebugTask.property.timeout = { set: function (value) { this._timeout = value; this.$setTimeOutValue.innerHTML = value + ''; }, get: function () { return this._timeout; } }; DebugTask.property.interval = { set: function (value) { this._interval = value; this.$setIntervalValue.innerHTML = value + ''; }, get: function () { return this._interval; } }; DebugTask.property.work = { set: function (value) { this._work = value; value = (value * 100).toFixed(1); this.$setWorkValue.innerHTML = value + '%'; }, get: function () { return this._work; } }; DebugTask.start = function () { if (DebugTask.started) return; if (!DebugTask.$view) { DebugTask.$view = _('debugtask'); } var times = []; originSetInterval(function(){ var now = performance.now(); while (times.length > 0 && times[0].end < now - 2000) { times.shift(); } if (times.length == 0) DebugTask.$view.work = 0; },3000); global.setTimeout = function () { var args = Array.prototype.map.call(arguments, function (x) { return x; }); var originCallback = arguments[0]; if (typeof originCallback == 'undefined') return; if (typeof originCallback == 'string') { originCallback = new Function(originCallback); } args[0] = function () { var ret; try { var now = performance.now(); while (times.length > 0 && times[0].end < now - 1000) { times.shift(); } ret = originCallback.apply(null, arguments); var now1 = performance.now(); var long = now1 - now; times.push({ long:long, start:now, end:now1 }); var sTime = 0; for (var i = 0; i< times.length; ++i ){ sTime+= times[i].long; } DebugTask.$view.work = sTime/(Math.max(now1 - times[0].start, 1000)); } catch (e) { console.error(e); } if (timeoutDict[timeoutId]) { pendingTimeout--; delete timeoutDict[timeoutId]; DebugTask.$view.timeout = pendingTimeout; } return ret; } var timeoutId = originSetTimeout.apply(global, args) pendingTimeout++; timeoutDict[timeoutId] = true; DebugTask.$view.timeout = pendingTimeout; return timeoutId; } global.clearTimeout = function (timeoutId) { var args = Array.prototype.map.call(arguments, function (x) { return x; }); if (timeoutDict[timeoutId]) { pendingTimeout--; delete timeoutDict[timeoutId]; DebugTask.$view.timeout = pendingTimeout; } return originClearTimeout.apply(global, args); }; global.setInterval = function () { var args = Array.prototype.map.call(arguments, function (x) { return x; }); var originCallback = arguments[0]; if (typeof originCallback == 'undefined') return; if (typeof originCallback == 'string') { originCallback = new Function(originCallback); } args[0] = function () { var ret; try { var now = performance.now(); while (times.length > 0 && times[0].end < now - 1000) { times.shift(); } ret = originCallback.apply(null, arguments); var now1 = performance.now(); var long = now1 - now; times.push({ long:long, start:now, end:now1 }); var sTime = 0; for (var i = 0; i< times.length; ++i ){ sTime+= times[i].long; } DebugTask.$view.work = sTime/(Math.max(now1 - times[0].start, 1000)); } catch (e) { console.error(e); } return ret; } var intervalId = originSetInterval.apply(global, args) pendingInterval++; intervalDict[intervalId] = true; DebugTask.$view.interval = pendingInterval; return intervalId; } global.clearInterval = function (intervalId) { var args = Array.prototype.map.call(arguments, function (x) { return x; }); if (intervalDict[intervalId]) { pendingInterval--; delete intervalDict[intervalId]; DebugTask.$view.interval = pendingInterval; } return originClearInterval.apply(global, args); }; absol_src_HTML5_Dom__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].documentReady.then(function () { DebugTask.$view.addTo(document.body); }); }; _ACore__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].install('debugtask', DebugTask); /* harmony default export */ __webpack_exports__["a"] = (DebugTask); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10))) /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _BrowserRules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11); /* harmony import */ var _BrowserRules__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_BrowserRules__WEBPACK_IMPORTED_MODULE_0__); /** * * @param {BrowserRules} rulesheet */ function BrowserDetector(rulesheet) { this.au = global.navigator ? (navigator.userAgent || '') : ''; this.rulesheet = rulesheet; this.os = this.detectByRules(this.rulesheet.os); this.device = this.detectByRules(this.rulesheet.device); this.engine = this.detectByRules(this.rulesheet.engine); this.browser = this.detectByRules(this.rulesheet.browser); this.isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1; this.isCococ = navigator.userAgent.toLowerCase().indexOf('coc_coc_browser') >= 1; this.isSafari = !this.isCococ && navigator.userAgent.toLowerCase().indexOf('safari') > -1 && navigator.userAgent.toLowerCase().indexOf('win') < 0 &&navigator.userAgent.toLowerCase().indexOf('android')<0; this.isMobile = navigator.userAgent.indexOf('KFFOWI') > -1 || navigator.userAgent.toLowerCase().indexOf('mobile') > -1; } BrowserDetector.prototype.detectByRules = function (rules) { var result = {}; for (var i = 0; i < rules.length; ++i) { var os = rules[i]; var type = os[0]; var rgx = os[1]; if (typeof (rgx) == 'function') { rgx = rgx(this.au.toLowerCase()); } if (Object.prototype.toString.call(rgx).indexOf('RegExp')) { var matched = this.au.toLowerCase().match(rgx); if (matched) { result.type = type; if (matched[1]) { result.version = matched[1]; } break; } } else if (typeof (rgx) == 'string') { if (this.au.toLowerCase().indexOf(rgx) >= 0) { result.type = type; } } } return result; }; /* harmony default export */ __webpack_exports__["a"] = (new BrowserDetector(_BrowserRules__WEBPACK_IMPORTED_MODULE_0___default.a)); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10))) /***/ }), /* 10 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { const external = global.external; const re_msie = /\b(?:msie |ie |trident\/[0-9].*rv[ :])([0-9.]+)/; const re_blackberry_10 = /\bbb10\b.+?\bversion\/([\d.]+)/; const re_blackberry_6_7 = /\bblackberry\b.+\bversion\/([\d.]+)/; const re_blackberry_4_5 = /\bblackberry\d+\/([\d.]+)/; const NA_VERSION = "-1"; const DEVICES = [ ["nokia", function (ua) { // nokia/-1 if (ua.indexOf("nokia ") !== -1) { return /\bnokia ([0-9]+)?/; } else { return /\bnokia([a-z0-9]+)?/; } }], //Android WP ["samsung", function (ua) { if (ua.indexOf("samsung") !== -1) { return /\bsamsung(?:[ \-](?:sgh|gt|sm))?-([a-z0-9]+)/; } else { return /\b(?:sgh|sch|gt|sm)-([a-z0-9]+)/; } }], ["wp", function (ua) { return ua.indexOf("windows phone ") !== -1 || ua.indexOf("xblwp") !== -1 || ua.indexOf("zunewp") !== -1 || ua.indexOf("windows ce") !== -1; }], ["pc", "windows"], ["ipad", "ipad"], // ipod iphone ["ipod", "ipod"], ["iphone", /\biphone\b|\biph(\d)/], ["mac", "macintosh"], ["mi", /\bmi[ \-]?([a-z0-9 ]+(?= build|\)))/], ["hongmi", /\bhm[ \-]?([a-z0-9]+)/], ["aliyun", /\baliyunos\b(?:[\-](\d+))?/], ["meizu", function (ua) { return ua.indexOf("meizu") >= 0 ? /\bmeizu[\/ ]([a-z0-9]+)\b/ : /\bm([0-9cx]{1,4})\b/; }], ["nexus", /\bnexus ([0-9s.]+)/], ["huawei", function (ua) { const re_mediapad = /\bmediapad (.+?)(?= build\/huaweimediapad\b)/; if (ua.indexOf("huawei-huawei") !== -1) { return /\bhuawei\-huawei\-([a-z0-9\-]+)/; } else if (re_mediapad.test(ua)) { return re_mediapad; } else { return /\bhuawei[ _\-]?([a-z0-9]+)/; } }], ["lenovo", function (ua) { if (ua.indexOf("lenovo-lenovo") !== -1) { return /\blenovo\-lenovo[ \-]([a-z0-9]+)/; } else { return /\blenovo[ \-]?([a-z0-9]+)/; } }], ["zte", function (ua) { if (/\bzte\-[tu]/.test(ua)) { return /\bzte-[tu][ _\-]?([a-su-z0-9\+]+)/; } else { return /\bzte[ _\-]?([a-su-z0-9\+]+)/; } }], ["vivo", /\bvivo(?: ([a-z0-9]+))?/], ["htc", function (ua) { if (/\bhtc[a-z0-9 _\-]+(?= build\b)/.test(ua)) { return /\bhtc[ _\-]?([a-z0-9 ]+(?= build))/; } else { return /\bhtc[ _\-]?([a-z0-9 ]+)/; } }], ["oppo", /\boppo[_ ]([a-z0-9]+)/], ["konka", /\bkonka[_\-]([a-z0-9]+)/], ["sonyericsson", /\bmt([a-z0-9]+)/], ["coolpad", /\bcoolpad[_ ]?([a-z0-9]+)/], ["lg", /\blg[\-]([a-z0-9]+)/], ["android", /\bandroid\b|\badr\b/], ["blackberry", function (ua) { if (ua.indexOf("blackberry") >= 0) { return /\bblackberry\s?(\d+)/; } return "bb10"; }], ]; const OS = [ ["wp", function (ua) { if (ua.indexOf("windows phone ") !== -1) { return /\bwindows phone (?:os )?([0-9.]+)/; } else if (ua.indexOf("xblwp") !== -1) { return /\bxblwp([0-9.]+)/; } else if (ua.indexOf("zunewp") !== -1) { return /\bzunewp([0-9.]+)/; } return "windows phone"; }], ["windows", /\bwindows nt ([0-9.]+)/], ["macosx", /\bmac os x ([0-9._]+)/], ["ios", function (ua) { if (/\bcpu(?: iphone)? os /.test(ua)) { return /\bcpu(?: iphone)? os ([0-9._]+)/; } else if (ua.indexOf("iph os ") !== -1) { return /\biph os ([0-9_]+)/; } else { return /\bios\b/; } }], ["yunos", /\baliyunos ([0-9.]+)/], ["android", function (ua) { if (ua.indexOf("android") >= 0) { return /\bandroid[ \/-]?([0-9.x]+)?/; } else if (ua.indexOf("adr") >= 0) { if (ua.indexOf("mqqbrowser") >= 0) { return /\badr[ ]\(linux; u; ([0-9.]+)?/; } else { return /\badr(?:[ ]([0-9.]+))?/; } } return "android"; //return /\b(?:android|\badr)(?:[\/\- ](?:\(linux; u; )?)?([0-9.x]+)?/; }], ["chromeos", /\bcros i686 ([0-9.]+)/], ["linux", "linux"], ["windowsce", /\bwindows ce(?: ([0-9.]+))?/], ["symbian", /\bsymbian(?:os)?\/([0-9.]+)/], ["blackberry", function (ua) { const m = ua.match(re_blackberry_10) || ua.match(re_blackberry_6_7) || ua.match(re_blackberry_4_5); return m ? { version: m[1] } : "blackberry"; }], ['ie', /\rv\:\/([0-9.]+)/] ]; const ENGINE = [ ["edgehtml", /edge\/([0-9.]+)/], ["trident", re_msie], ["blink", function () { return "chrome" in global && "CSS" in global && /\bapplewebkit[\/]?([0-9.+]+)/; }], ["webkit", /\bapplewebkit[\/]?([0-9.+]+)/], ["gecko", function (ua) { const match = ua.match(/\brv:([\d\w.]+).*\bgecko\/(\d+)/); if (match) { return { version: match[1] + "." + match[2], }; } }], ["presto", /\bpresto\/([0-9.]+)/], ["androidwebkit", /\bandroidwebkit\/([0-9.]+)/], ["coolpadwebkit", /\bcoolpadwebkit\/([0-9.]+)/], ["u2", /\bu2\/([0-9.]+)/], ["u3", /\bu3\/([0-9.]+)/], ]; const BROWSER = [ ['coccoc', /coc\_coc\_browser\/([0-9.]+)/], // Microsoft Edge Browser, Default browser in Windows 10. ["edge", /edge\/([0-9.]+)/], ["chrome-edge", /chrome.+edg\/([0-9.]+)/], // Sogou. ["sogou", function (ua) { if (ua.indexOf("sogoumobilebrowser") >= 0) { return /sogoumobilebrowser\/([0-9.]+)/; } else if (ua.indexOf("sogoumse") >= 0) { return true; } return / se ([0-9.x]+)/; }], // Maxthon ["maxthon", function () { try { if (external && (external.mxVersion || external.max_version)) { return { version: external.mxVersion || external.max_version, }; } } catch (ex) { /* */ } return /\b(?:maxthon|mxbrowser)(?:[ \/]([0-9.]+))?/; }], ["micromessenger", /\bmicromessenger\/([\d.]+)/], ["qq", /\bm?qqbrowser\/([0-9.]+)/], ["green", "greenbrowser"], ["tt", /\btencenttraveler ([0-9.]+)/], ["liebao", function (ua) { if (ua.indexOf("liebaofast") >= 0) { return /\bliebaofast\/([0-9.]+)/; } if (ua.indexOf("lbbrowser") === -1) { return false; } var version; try { if (external && external.LiebaoGetVersion) { version = external.LiebaoGetVersion(); } } catch (ex) { /* */ } return { version: version || NA_VERSION, }; }], ["tao", /\btaobrowser\/([0-9.]+)/], ["coolnovo", /\bcoolnovo\/([0-9.]+)/], ["saayaa", "saayaa"], ["baidu", /\b(?:ba?idubrowser|baiduhd)[ \/]([0-9.x]+)/], ["ie", re_msie], ["mi", /\bmiuibrowser\/([0-9.]+)/], ["opera", function (ua) { const re_opera_old = /\bopera.+version\/([0-9.ab]+)/; const re_opera_new = /\bopr\/([0-9.]+)/; return re_opera_old.test(ua) ? re_opera_old : re_opera_new; }], ["oupeng", /\boupeng\/([0-9.]+)/], ["yandex", /yabrowser\/([0-9.]+)/], ["ali-ap", function (ua) { if (ua.indexOf("aliapp") > 0) { return /\baliapp\(ap\/([0-9.]+)\)/; } else { return /\balipayclient\/([0-9.]+)\b/; } }], ["ali-ap-pd", /\baliapp\(ap-pd\/([0-9.]+)\)/], ["ali-am", /\baliapp\(am\/([0-9.]+)\)/], ["ali-tb", /\baliapp\(tb\/([0-9.]+)\)/], ["ali-tb-pd", /\baliapp\(tb-pd\/([0-9.]+)\)/], ["ali-tm", /\baliapp\(tm\/([0-9.]+)\)/], ["ali-tm-pd", /\baliapp\(tm-pd\/([0-9.]+)\)/], ["uc", function (ua) { if (ua.indexOf("ucbrowser/") >= 0) { return /\bucbrowser\/([0-9.]+)/; } else if (ua.indexOf("ubrowser/") >= 0) { return /\bubrowser\/([0-9.]+)/; } else if (/\buc\/[0-9]/.test(ua)) { return /\buc\/([0-9.]+)/; } else if (ua.indexOf("ucweb") >= 0) { // `ucweb/2.0` is compony info. // `UCWEB8.7.2.214/145/800` is browser info. return /\bucweb([0-9.]+)?/; } else { return /\b(?:ucbrowser|uc)\b/; } }], ["baiduboxapp", function (ua) { var back = 0; var a; if (/ baiduboxapp\//i.test(ua)) { a = /([\d+.]+)_(?:diordna|enohpi)_/.exec(ua); if (a) { a = a[1].split("."); back = a.reverse().join("."); } else if ((a = /baiduboxapp\/([\d+.]+)/.exec(ua))) { back = a[1]; } return { version: back, }; } return false; }, ], ["oppobrowser", /\boppobrowser\/([0-9.]+)/], ["chrome", / (?:chrome|crios|crmo)\/([0-9.]+)/], // Android safari ["android", function (ua) { if (ua.indexOf("android") === -1) { return; } return /\bversion\/([0-9.]+(?: beta)?)/; }], ["blackberry", function (ua) { const m = ua.match(re_blackberry_10) || ua.match(re_blackberry_6_7) || ua.match(re_blackberry_4_5); return m ? { version: m[1] } : "blackberry"; }], ["safari", /\bversion\/([0-9.]+(?: beta)?)(?: mobile(?:\/[a-z0-9]+)?)? safari\//], // Safari, WebView ["webview", /\bcpu(?: iphone)? os (?:[0-9._]+).+\bapplewebkit\b/], ["firefox", /\bfirefox\/([0-9.ab]+)/], ["nokia", /\bnokiabrowser\/([0-9.]+)/] ]; module.exports = { device: DEVICES, os: OS, browser: BROWSER, engine: ENGINE, re_msie: re_msie, }; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(10))) /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(100); /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(14); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".as-center-table {\r\n display: table;\r\n}\r\n\r\n.as-center-cell {\r\n display: table-cell;\r\n}\r\n\r\n.as-relative-layout {\r\n position: relative;\r\n}\r\n\r\n.as-relative-layout>.as-relative-anchor-box {\r\n position: absolute;\r\n z-index: 1;\r\n}\r\n\r\n\r\n.as-relative-anchor-box {\r\n pointer-events: none;\r\n}\r\n\r\n\r\n\r\n/*\r\n width: auto | set\r\n left: set\r\n right: unset,\r\n*/\r\n.as-relative-layout>.as-relative-anchor-box.as-halign-left {\r\n left: 0;\r\n}\r\n\r\n/*\r\n width: auto | set\r\n right: set\r\n left: unset,\r\n*/\r\n.as-relative-layout>.as-relative-anchor-box.as-halign-right {\r\n right: 0;\r\n}\r\n\r\n/*\r\n left: unset\r\n right: unset\r\n width: auto | set\r\n warning: inner element should be set text-align to default to prevent error \r\n*/\r\n.as-relative-layout>.as-relative-anchor-box.as-halign-center {\r\n left: 0;\r\n right: 0;\r\n text-align: center;\r\n}\r\n\r\n/*\r\n left: set\r\n right: set\r\n width: unset\r\n*/\r\n.as-relative-layout>.as-relative-anchor-box.as-halign-fixed {\r\n left: 0;\r\n right: 0;\r\n}\r\n\r\n.as-relative-layout>.as-relative-anchor-box.as-halign-fixed>.as-base-component,\r\n.as-relative-layout>.as-relative-anchor-box.as-halign-fixed>.as-center-table,\r\n.as-relative-layout>.as-relative-anchor-box.as-halign-fixed>.as-center-table>.as-center-cell>.as-base-component {\r\n width: 100%;\r\n}\r\n\r\n\r\n\r\n.as-relative-layout>.as-relative-anchor-box.as-halign-center>.as-base-component {\r\n display: inline-block;\r\n}\r\n\r\n/*\r\n top: set\r\n height: auto | set\r\n bottom: unset\r\n*/\r\n.as-relative-layout>.as-relative-anchor-box.as-valign-top {\r\n top: 0;\r\n}\r\n\r\n\r\n/*\r\n bottom: set\r\n height: auto | set\r\n top: unset\r\n*/\r\n.as-relative-layout>.as-relative-anchor-box.as-valign-bottom {\r\n bottom: 0;\r\n}\r\n\r\n/*\r\n bottom: set\r\n height: unset\r\n top: set\r\n*/\r\n.as-relative-layout>.as-relative-anchor-box.as-valign-fixed {\r\n bottom: 0;\r\n top: 0\r\n}\r\n\r\n.as-relative-layout>.as-relative-anchor-box.as-valign-fixed>* {\r\n height: 100%;\r\n}\r\n\r\n\r\n.as-relative-layout>.as-relative-anchor-box.as-valign-center {\r\n top: 0;\r\n bottom: 0;\r\n}\r\n\r\n.as-relative-layout>.as-relative-anchor-box.as-valign-center>.as-center-table {\r\n height: 100%;\r\n}\r\n\r\n.as-relative-layout>.as-relative-anchor-box.as-valign-center>.as-center-table>.as-center-cell {\r\n vertical-align: middle;\r\n}\r\n\r\n\r\n.as-relative-layout>.as-relative-anchor-box.as-valign-center.as-halign-center>.as-center-table {\r\n width: 100%;\r\n}\r\n\r\n\r\n\r\n.as-base-component {\r\n pointer-events: all;\r\n box-sizing: border-box;\r\n}", ""]); /***/ }), /* 15 */ /***/ (function(module, exports) { /** * When source maps are enabled, `style-loader` uses a link element with a data-uri to * embed the css on the page. This breaks all relative urls because now they are relative to a * bundle instead of the current page. * * One solution is to only use full urls, but that may be impossible. * * Instead, this function "fixes" the relative urls to be absolute according to the current page location. * * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command. * */ module.exports = function (css) { // get current location var location = typeof window !== "undefined" && window.location; if (!location) { throw new Error("fixUrls requires window.location"); } // blank or null? if (!css || typeof css !== "string") { return css; } var baseUrl = location.protocol + "//" + location.host; var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/"); // convert each url(...) /* This regular expression is just a way to recursively match brackets within a string. /url\s*\( = Match on the word "url" with any whitespace after it and then a parens ( = Start a capturing group (?: = Start a non-capturing group [^)(] = Match anything that isn't a parentheses | = OR \( = Match a start parentheses (?: = Start another non-capturing groups [^)(]+ = Match anything that isn't a parentheses | = OR \( = Match a start parentheses [^)(]* = Match anything that isn't a parentheses \) = Match a end parentheses ) = End Group *\) = Match anything and then a close parens ) = Close non-capturing group * = Match anything ) = Close capturing group \) = Match a close parens /gi = Get all matches, not the first. Be case insensitive. */ var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) { // strip quotes (if they exist) var unquotedOrigUrl = origUrl .trim() .replace(/^"(.*)"$/, function(o, $1){ return $1; }) .replace(/^'(.*)'$/, function(o, $1){ return $1; }); // already a full url? no change if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(unquotedOrigUrl)) { return fullMatch; } // convert the url to a full url var newUrl; if (unquotedOrigUrl.indexOf("//") === 0) { //TODO: should we add protocol? newUrl = unquotedOrigUrl; } else if (unquotedOrigUrl.indexOf("/") === 0) { // path should be relative to the base url newUrl = baseUrl + unquotedOrigUrl; // already starts with '/' } else { // path should be relative to current directory newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './' } // send back the fixed url(...) return "url(" + JSON.stringify(newUrl) + ")"; }); // send back the fixed css return fixedCss; }; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(17); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".as-layout-editor {\r\n position: relative;\r\n box-sizing: border-box;\r\n}\r\n\r\n\r\n.as-layout-editor-v-align-line,\r\n.as-layout-editor-h-align-line {\r\n position: absolute;\r\n\r\n}\r\n\r\n\r\n.as-layout-editor-h-align-line {\r\n left: 0;\r\n right: 0;\r\n border-top: dashed 1px rgba(59, 154, 209, 0.753);\r\n}\r\n\r\n.as-layout-editor-v-align-line {\r\n top: 0;\r\n bottom: 0;\r\n border-left: dashed 1px rgba(59, 154, 209, 0.753);\r\n}\r\n\r\n\r\n.as-layout-editor-layout-contaner>.as-relative-layout {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.as-layout-editor-background,\r\n.as-layout-editor-layout-contaner,\r\n.as-layout-editor-forceground {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n overflow: hidden;\r\n}\r\n\r\n.as-layout-editor-background {\r\n z-index: 0;\r\n}\r\n\r\n.as-layout-editor-layout-contaner {\r\n z-index: 1;\r\n}\r\n\r\n.as-layout-editor-forceground {\r\n z-index: 2;\r\n}\r\n\r\n\r\n.as-layout-editor-hrule-container {\r\n position: absolute;\r\n bottom: 100%;\r\n left: 0;\r\n right: 0;\r\n}\r\n\r\n.as-layout-editor-vrule-container {\r\n position: absolute;\r\n right: 100%;\r\n top: 0;\r\n bottom: 0;\r\n}\r\n\r\n.as-layout-editor-vrule-container>.as-vruler {\r\n height: 100%;\r\n}\r\n\r\n.as-layout-editor-new-component-menu-trigger {\r\n position: absolute;\r\n width: 1.5em;\r\n height: 1.5em;\r\n top: -1.5em;\r\n left: -1.5em;\r\n}", ""]); /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(19); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, "button.absol-button {\r\n text-align: left;\r\n background-color: #ebebeb;\r\n border: solid 1px #c0c0c0;\r\n border-radius: 0.2em;\r\n font-size: 1em;\r\n overflow: hidden;\r\n height: 2em;\r\n}\r\n\r\n.absol-icon-button {\r\n text-align: left;\r\n padding: 0;\r\n margin: 0;\r\n background-color: #ebebeb;\r\n border: solid 1px #c0c0c0;\r\n border-radius: 0.2em;\r\n font-size: 1em;\r\n overflow: hidden;\r\n line-height: 2em;\r\n box-sizing: content-box;\r\n height: 2em;\r\n white-space: nowrap; \r\n \r\n}\r\n\r\n.absol-icon-button,\r\n.absol-icon-button *{\r\n -webkit-user-select: none; /* Chrome 49+ */\r\n -moz-user-select: none; /* Firefox 43+ */\r\n -ms-user-select: none; /* No support yet */\r\n user-select: none;\r\n}\r\n\r\n\r\n.absol-icon-button:hover {\r\n background-color: rgb(213, 213, 213);\r\n}\r\n\r\n.absol-icon-button:active {\r\n -webkit-box-shadow: inset 0 0.2em 0.25em rgba(0, 0, 0, 0.125);\r\n box-shadow: inset 0 0.2em 0.25em rgba(0, 0, 0, 0.125);\r\n}\r\n\r\n.absol-icon-button:focus {\r\n outline: none;\r\n}\r\n\r\n.absol-icon-button-icon-container {\r\n display: inline-block;\r\n vertical-align: middle;\r\n width: 2em;\r\n height: 2em;\r\n text-align: center;\r\n background-color: rgba(0, 0, 0, 0.0893617021);\r\n line-height: inherit;\r\n box-sizing: border-box;\r\n}\r\n\r\n.absol-icon-button-icon-container>i {\r\n font-size: 1em;\r\n color: rgb(146, 146, 146);\r\n line-height: inherit;\r\n}\r\n\r\n.absol-icon-button-icon-container>svg {\r\n width: 1em;\r\n height: 1em;\r\n}\r\n\r\n.absol-icon-button-text-container:empty,\r\n.absol-icon-button-icon-container:empty {\r\n display: none;\r\n}\r\n\r\n.absol-icon-button-text-container {\r\n border-left: solid 1px #c0c0c0;\r\n display: inline-block;\r\n vertical-align: middle;\r\n height: 2em;\r\n box-sizing: border-box;\r\n line-height: 2em;\r\n text-align: center;\r\n}\r\n\r\n.absol-icon-button-text-container>span,\r\n.absol-icon-button-text-container>div {\r\n font-size: 1em;\r\n text-align: center;\r\n margin-left: 0.7em;\r\n margin-right: 0.7em;\r\n line-height: inherit;\r\n}\r\n\r\n.absol-icon-button.primary,\r\n.absol-button.primary {\r\n border-color: #357ebd;\r\n background-color: #428bca;\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.primary .absol-icon-button-icon-container>i {\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.primary .absol-icon-button-text-container {\r\n border-left-color: #357ebd;\r\n}\r\n\r\n.absol-icon-button.success,\r\n.absol-button.success {\r\n border-color: #398439;\r\n background-color: #47a447;\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.success .absol-icon-button-icon-container>i {\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.success .absol-icon-button-text-container {\r\n border-left-color: #398439;\r\n}\r\n\r\n.absol-icon-button.warning,\r\n.absol-button.warning {\r\n background-color: #ed9c28;\r\n border-color: #d58512;\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.warning .absol-icon-button-icon-container>i {\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.warning .absol-icon-button-text-container {\r\n border-left-color: #d58512;\r\n}\r\n\r\n.absol-icon-button.danger,\r\n.absol-button.danger {\r\n background-color: #d2322d;\r\n border-color: #ac2925;\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.danger .absol-icon-button-icon-container>i {\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.danger .absol-icon-button-text-container {\r\n border-left-color: #ac2925;\r\n}\r\n\r\n.absol-icon-button.info,\r\n.absol-button.info {\r\n background-color: #5bc0de;\r\n border-color: #46b8da;\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.info .absol-icon-button-icon-container>i {\r\n color: white;\r\n}\r\n\r\n.absol-icon-button.info .absol-icon-button-text-container {\r\n border-left-color: #46b8da;\r\n}", ""]); /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(21); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-vscroller {\r\n position: relative;\r\n overflow-x: hidden;\r\n}\r\n\r\n\r\n.absol-vscroller.disabled>.absol-vscroller-viewport {\r\n overflow-y: visible;\r\n margin-right: 0px;\r\n min-width: 100%;\r\n}\r\n\r\n.absol-vscroller.disabled {\r\n overflow: visible;\r\n overflow-x: visible;\r\n\r\n}\r\n\r\n\r\n.absol-vscroller-viewport {\r\n overflow-y: scroll;\r\n box-sizing: content-box;\r\n\r\n}\r\n\r\n.absol-vscroller>.absol-vscroller-viewport {\r\n max-height: 100%;\r\n}\r\n\r\n.absol-vscroller.limited-height>.absol-vscroller-viewport {\r\n max-height: inherit;\r\n}\r\n\r\n\r\n/************ hscroller ***********/\r\n.absol-hscroller {\r\n position: relative;\r\n overflow-y: hidden;\r\n}\r\n\r\n.absol-hscroller.disabled {\r\n overflow: visible;\r\n overflow-y: visible;\r\n}\r\n\r\n.absol-hscroller-viewport {\r\n overflow-x: scroll;\r\n box-sizing: content-box;\r\n min-height: calc(100% + 17px);\r\n}\r\n\r\n.absol-hscroller.disabled>.absol-hscroller-viewport {\r\n overflow-x: visible;\r\n margin-bottom: 0px;\r\n}\r\n\r\n\r\n.absol-hscroller>.absol-hscroller-viewport {\r\n max-width: 100%;\r\n}\r\n\r\n\r\n/********** scroll bar *********************/\r\n.absol-scrollbar-container {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 10;\r\n}\r\n\r\n.absol-scrollbar-container.vertical {\r\n top: 0;\r\n width: 7px;\r\n}\r\n\r\n.absol-scrollbar-container.horizontal {\r\n height: 7px;\r\n left: 0;\r\n}\r\n\r\n.absol-scrollbar-container> .absol-scrollbar{\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.absol-scrollbar-container.vertical>.absol-scrollbar>.absol-scrollbar-button {\r\n left: 1px;\r\n right: 1px;\r\n top: 0;\r\n}\r\n\r\n.absol-scrollbar-container.horizontal>.absol-scrollbar>.absol-scrollbar-button {\r\n top: 1px;\r\n bottom: 1px;\r\n left: 0;\r\n}\r\n\r\n.absol-scrollbar {\r\n position: relative;\r\n background: transparent;\r\n}\r\n\r\n.absol-scrollbar-button {\r\n position: absolute;\r\n background-color: rgba(0, 0, 0, 0.45);\r\n border-radius: 2px;\r\n}\r\n\r\n\r\n.absol-scrollbar.absol-hidden {\r\n visibility: hidden;\r\n}", ""]); /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(23); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-search-text-input {\r\n position: relative;\r\n height: 2em;\r\n border-radius: 0.3em;\r\n border: solid 1px #a9a9a9;\r\n font-size: 14px;\r\n}\r\n\r\n.absol-search-text-input.focus {\r\n outline: solid 1px rgba(30, 30, 255, 0.4);\r\n}\r\n\r\n.absol-search-text-input-container {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n right: 2em;\r\n}\r\n\r\n.absol-search-text-button-container {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n width: 2em;\r\n bottom: 0em;\r\n}\r\n\r\n.absol-search-text-button-container button {\r\n width: 100%;\r\n height: 100%;\r\n outline: none;\r\n border: none;\r\n background: transparent;\r\n padding: 0;\r\n font-size: 1em;\r\n}\r\n\r\n.absol-search-text-button-container button>svg {\r\n height: 1.14285714286em;\r\n width: 1.14285714286em;\r\n fill: rgb(132, 132, 132);\r\n}\r\n\r\n.absol-search-text-input-container input {\r\n width: 100%;\r\n height: 100%;\r\n font-size: 1em;\r\n box-sizing: border-box;\r\n outline: none;\r\n border: none;\r\n background-color: transparent;\r\n padding-left: 0.6em;\r\n}\r\n\r\n.absol-search-text-input:not(.searching) svg.times{\r\n display: none;\r\n}\r\n\r\n.absol-search-text-input.searching svg.find{\r\n display: none;\r\n}", ""]); /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(25); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-select-table-render-space {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: -1000;\r\n visibility: hidden;\r\n font-size: 14px;\r\n}\r\n\r\n.absol-select-table {\r\n border: solid 1px #a9a9a9;\r\n min-width: 26em;\r\n overflow: hidden;\r\n}\r\n\r\n.absol-select-table-header {\r\n display: block;\r\n position: relative;\r\n box-sizing: content-box;\r\n height: 2.2857142857em;\r\n}\r\n\r\n.absol-select-table-searchtextinput-container {\r\n position: absolute;\r\n left: 0.14285714285em;\r\n top: 0.14285714285em;\r\n height: 2em;\r\n right: 10em;\r\n /* background-color: cyan; */\r\n}\r\n\r\n.absol-select-table.disable-move-all .absol-select-table-buttons-container {\r\n display: none;\r\n}\r\n\r\n.absol-select-table.disable-move-all .absol-select-table-searchtextinput-container {\r\n right: 0.14285714285em !important;\r\n}\r\n\r\n.absol-select-table-buttons-container {\r\n position: absolute;\r\n right: 0.14285714285em;\r\n top: 0.14285714285em;\r\n width: 10.7142857143em;\r\n height: 2em;\r\n white-space: nowrap;\r\n}\r\n\r\n.absol-select-table-buttons-container>button {\r\n height: 2em;\r\n font-size: 1em;\r\n background-color: transparent;\r\n border: none;\r\n padding: 0 0.5em;\r\n margin: 0;\r\n text-decoration: underline;\r\n cursor: pointer;\r\n}\r\n\r\n.absol-select-table-buttons-container>button:focus {\r\n outline: none;\r\n}\r\n\r\n.absol-select-table-buttons-container>button:hover {\r\n color: #a9a9a9;\r\n}\r\n\r\n.absol-select-table-buttons-container>button:active {\r\n color: #a9a9ff;\r\n}\r\n\r\n.absol-select-table-body {\r\n margin: 0.14285714285em;\r\n white-space: nowrap;\r\n}\r\n\r\n.absol-select-table-items-scroller {\r\n width: 50%;\r\n display: inline-block;\r\n box-sizing: border-box;\r\n vertical-align: top;\r\n}\r\n\r\n.absol-select-table-items-scroller .absol-scroll-button {\r\n background-color: rgba(1, 1, 30, 0.1);\r\n}\r\n\r\n.absol-select-table-items-scroller .absol-scroll-bar-v-container {\r\n width: 0.69em;\r\n}\r\n\r\n.absol-select-table-selected-search-items-container,\r\n.absol-select-table-nonselected-search-items-container,\r\n.absol-select-table.searching .absol-select-table-selected-items-container,\r\n.absol-select-table.searching .absol-select-table-nonselected-items-container {\r\n display: none;\r\n}\r\n\r\n.absol-select-table.searching .absol-select-table-selected-search-items-container,\r\n.absol-select-table.searching .absol-select-table-nonselected-search-items-container {\r\n display: block;\r\n padding-right: 0.7em;\r\n}\r\n\r\n.absol-select-table-nonselected-items-container,\r\n.absol-select-table-selected-items-container {\r\n padding-right: 0.7em;\r\n}\r\n\r\n.absol-select-table-nonselected-items-container>.absol-select-table-item,\r\n.absol-select-table-selected-items-container>.absol-select-table-item,\r\n.absol-select-table-nonselected-search-items-container>.absol-select-table-item,\r\n.absol-select-table-selected-search-items-container>.absol-select-table-item {\r\n margin: 0.14285714285em;\r\n}\r\n\r\n.absol-select-table-item {\r\n display: block;\r\n line-height: 2em;\r\n min-height: 2em;\r\n position: relative;\r\n background-color: rgba(169, 169, 169, 0.05);\r\n border: solid 1px rgb(235, 235, 235);\r\n border-radius: 0.2em;\r\n overflow: hidden;\r\n -webkit-user-select: none;\r\n /* Safari 3.1+ */\r\n -moz-user-select: none;\r\n /* Firefox 2+ */\r\n -ms-user-select: none;\r\n /* IE 10+ */\r\n user-select: none;\r\n /* Standard syntax */\r\n padding-left: 0.69em;\r\n padding-right: 1.8em;\r\n box-sizing: border-box;\r\n}\r\n\r\n.absol-select-table-item:hover {\r\n background-color: rgba(169, 169, 169, 0.1);\r\n}\r\n\r\n.absol-select-table-item-right-container {\r\n right: 0.3em;\r\n bottom: 0.3em;\r\n top: 0.3em;\r\n padding: 0.2em;\r\n width: 1.4em;\r\n position: absolute;\r\n border-radius: 0.2em;\r\n box-sizing: border-box;\r\n ;\r\n}\r\n\r\n.absol-select-table-item-right-container:hover {\r\n background-color: rgba(169, 169, 169, 0.3);\r\n}\r\n\r\nspan.absol-select-table-item-text {\r\n white-space: normal;\r\n \r\n}\r\n\r\n.absol-select-table-item-right-container-table{\r\n display: table;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n.absol-select-table-item-right-container-cell{\r\n display: table-cell;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-select-table-item-right-container svg {\r\n width: 1em;\r\n height: 1em;\r\n display: none;\r\n}\r\n\r\n/* clearfix\r\n.absol-select-table-none-nonselected-items-container::after,\r\n.absol-select-table-none-selected-items-container::after {\r\n content: \"\";\r\n display:table;\r\n clear: both;\r\n} */\r\n\r\n.absol-select-table-selected-items-container .absol-select-table-item-right-container svg.sub-icon,\r\n.absol-select-table-selected-search-items-container .absol-select-table-item-right-container svg.sub-icon {\r\n display: block;\r\n stroke: rgb(243, 61, 61);\r\n fill: rgb(226, 100, 100);\r\n}\r\n\r\n.absol-select-table-nonselected-items-container .absol-select-table-item-right-container svg.add-icon,\r\n.absol-select-table-nonselected-search-items-container .absol-select-table-item-right-container svg.add-icon {\r\n display: block;\r\n fill: rgb(100, 226, 167);\r\n stroke: rgb(61, 185, 243);\r\n}\r\n\r\n.absol-select-table.portrait {}", ""]); /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(27); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-ico {\r\n width: 1em;\r\n height: 1em;\r\n}\r\n\r\n.absol-button {\r\n white-space: normal;\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n}\r\n\r\n.absol-dropdown {\r\n position: relative;\r\n}\r\n\r\n.absol-dropdown-content {\r\n z-index: 1;\r\n position: absolute;\r\n left: 0;\r\n top: 100%;\r\n}\r\n\r\n.absol-dropdown.top>.absol-dropdown-content {\r\n top: auto;\r\n bottom: 100%;\r\n}\r\n\r\n.absol-dropdown.overlap-left>.absol-dropdown-content {\r\n left: auto;\r\n right: 0;\r\n}\r\n\r\n.absol-dropright {\r\n position: relative;\r\n}\r\n\r\n.absol-dropright-content {\r\n z-index: 1;\r\n position: absolute;\r\n left: 100%;\r\n top: 0;\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n}\r\n\r\n.absol-drop-hidden>.absol-dropdown-content,\r\n.absol-drop-hidden>.absol-dropright-content {\r\n visibility: hidden;\r\n}\r\n\r\n\r\n\r\n.absol-hmenu {\r\n display: inline-block;\r\n background-color: rgb(252, 252, 255);\r\n /* background-color: rgb(33, 33, 33); */\r\n\r\n}\r\n\r\n.absol-hmenu>.absol-dropdown {\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-hmenu-button:hover,\r\n.absol-hmenu .absol-hmenu-button-hover {\r\n\r\n background-color: rgb(175, 175, 175);\r\n}\r\n\r\n.absol-hmenu-button {\r\n padding-left: 1em;\r\n padding-right: 1em;\r\n}\r\n\r\n.absol-hmenu-button:focus {\r\n outline: none;\r\n}\r\n\r\n.absol-hmenu-button,\r\n.absol-vmenu-button {\r\n color: rgb(55, 55, 55);\r\n height: 100%;\r\n background-color: transparent;\r\n font-size: 1em;\r\n border: none;\r\n padding: 0;\r\n margin: 0;\r\n outline: none;\r\n}\r\n\r\n.absol-hmenu-button {\r\n padding-left: 1em;\r\n padding-right: 1em;\r\n}\r\n\r\n.absol-vmenu {}\r\n\r\n.absol-hmenu .absol-dropdown-content,\r\n.absol-hmenu .absol-dropright-content {\r\n padding-top: 0.4em;\r\n padding-bottom: 0.4em;\r\n background-color: rgb(252, 252, 255);\r\n -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n}\r\n\r\n.absol-vmenu-button {\r\n text-align: left;\r\n padding-left: 0.5em;\r\n padding-right: 2em;\r\n height: 1.8em;\r\n line-height: 1.8em;\r\n white-space: nowrap;\r\n position: relative;\r\n}\r\n\r\nimg.absol-vmenu-button-icon {\r\n opacity: 0;\r\n display: none;\r\n}\r\n\r\nimg.absol-vmenu-button-icon[src] {\r\n display: block;\r\n}\r\n\r\n.absol-vmenu-button-ext-icon-container {\r\n display: inline-block;\r\n width: 1.2em;\r\n height: 1.2em;\r\n vertical-align: middle;\r\n margin-right: 0.3em;\r\n}\r\n\r\n.absol-vmenu-button-ext-icon-container>span,\r\n.absol-vmenu-button-ext-icon-container>i {\r\n font-size: 1.2em;\r\n line-height: 1;\r\n display: block;\r\n}\r\n\r\n\r\n\r\n.absol-vmenu-button-text,\r\n.absol-vmenu-button-key {\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-vmenu-button-key {\r\n font-style: italic;\r\n text-align: right;\r\n margin-left: 1em;\r\n}\r\n\r\n.absol-vmenu-arrow-container {\r\n position: absolute;\r\n right: 0.2em;\r\n top: 0.3em;\r\n bottom: 0.3em;\r\n}\r\n\r\n.absol-vmenu-arrow {\r\n display: block;\r\n font-size: 1em;\r\n line-height: 1.2em;\r\n}\r\n\r\n.absol-menu-item-disable .absol-vmenu-arrow {\r\n display: none;\r\n}\r\n\r\n.absol-vmenu-button:hover,\r\n.absol-vmenu .absol-vmenu-button-hover {\r\n background-color: rgb(214, 214, 217);\r\n}\r\n\r\n.absol-menu-item-disable .absol-vmenu-button:hover,\r\n.absol-menu-item-disable .absol-vmenu .absol-vmenu-button-hover,\r\n.absol-menu-item-disable .absol-hmenu-button:hover,\r\n.absol-menu-item-disable .absol-hmenu .absol-hmenu-button-hover {\r\n background-color: transparent;\r\n}\r\n\r\n.absol-vmenu-line {\r\n text-align: center;\r\n padding: 0.2em 1em;\r\n}\r\n\r\n.absol-vmenu-line>div {\r\n height: 1px;\r\n background-color: rgb(97, 97, 97);\r\n}\r\n\r\n.absol-menu-item-disable {}\r\n\r\n.absol-menu-item-disable button {\r\n color: rgb(155, 155, 159);\r\n}\r\n\r\n.dark .absol-menu-item-disable button {\r\n color: rgb(100, 100, 100);\r\n}\r\n\r\n.dark .absol-vmenu-button:hover,\r\n.dark .absol-vmenu .absol-vmenu-button-hover {\r\n background-color: rgb(9, 71, 113);\r\n}\r\n\r\n\r\n.dark .absol-hmenu .absol-dropdown-content,\r\n.dark .absol-hmenu .absol-dropright-content {\r\n background-color: rgb(37, 37, 38);\r\n}\r\n\r\n\r\n.dark .absol-hmenu-button,\r\n.dark .absol-vmenu-button {\r\n color: rgb(200, 200, 200);\r\n\r\n}\r\n\r\n\r\n.dark .absol-hmenu-button:hover,\r\n.dark .absol-hmenu .absol-hmenu-button-hover {\r\n background-color: rgb(80, 80, 80);\r\n}\r\n\r\n\r\n.dark .absol-hmenu {\r\n background-color: rgb(33, 33, 33);\r\n}\r\n\r\n/*standard-alone*/\r\n.absol-vmenu-button.standard-alone {\r\n height: 2em;\r\n border-radius: 0.3em;\r\n border: solid rgb(169, 169, 170) 1px;\r\n outline: none;\r\n}", ""]); /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(29); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-context-menu-hook {\r\n position: absolute;\r\n z-index: -100000;\r\n width: 14px;\r\n height: 14px;\r\n top: 0;\r\n opacity: 0;\r\n resize: none;\r\n cursor: default;\r\n}\r\n\r\n.absol-context-hinge-fixed-container {\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n z-index: 1000;\r\n}\r\n\r\n.absol-context-hinge {\r\n position: relative;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.absol-context-hinge>.absol-context-menu {\r\n position: absolute;\r\n top: -10000px;\r\n left: -10000px;\r\n visibility: hidden;\r\n z-index: 55;\r\n display: inline-block;\r\n\r\n}\r\n\r\n.absol-context-hinge .absol-vmenu,\r\n.absol-context-hinge .absol-hmenu {\r\n padding-top: 0.4em;\r\n padding-bottom: 0.4em;\r\n /* background-color: rgb(37, 37, 38);\r\n -webkit-box-shadow: 2px 2px 9px 0px rgba(7, 7, 7, 1);\r\n -moz-box-shadow: 2px 2px 9px 0px rgb(7, 7, 7, 1);\r\n box-shadow: 2px 2px 9px 0px rgba(7, 7, 7, 1); */\r\n color: black;\r\n background-color: rgb(252, 252, 255);\r\n -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n}\r\n\r\n.absol-context-hinge.dark .absol-hmenu,\r\n.absol-context-hinge.dark .absol-vmenu,\r\n.dark .absol-context-hinge .absol-hmenu,\r\n.dark .absol-context-hinge .absol-vmenu {\r\n background-color: rgb(37, 37, 38);\r\n}", ""]); /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(31); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-modal {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n box-sizing: border-box;\r\n z-index: 1000;\r\n}\r\n\r\n.absol-modal-hidden {\r\n visibility: hidden;\r\n}\r\n\r\n.absol-modal-hcenter {\r\n display: table;\r\n text-align: center;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.absol-modal-vcenter {\r\n display: table-cell;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-modal-container {\r\n display: inline-block;\r\n text-align: initial;\r\n}", ""]); /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(33); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".vmedia-no-show {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 1;\r\n height: 1;\r\n z-index: -100000;\r\n opacity: 0;\r\n}\r\n\r\n.vmedia-no-select,\r\n.vmedia-no-select * {\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n}\r\n\r\ncoccocgrammar {\r\n display: none;\r\n}\r\n\r\n.vmedia-media-input {\r\n box-sizing: border-box;\r\n border: solid 1px rgba(0, 0, 0, 0.1)\r\n}\r\n\r\n\r\n.vmedia-media-input-text-container {\r\n position: relative;\r\n min-height: 2.5em;\r\n}\r\n\r\n.vmedia-media-input-text-container-editor:focus {\r\n outline: none;\r\n}\r\n\r\n.vmedia-media-input-text-container-editor img {\r\n display: none;\r\n}\r\n\r\n.vmedia-media-input-text-container-editor * {\r\n font-family: inherit;\r\n font-size: inherit;\r\n font-weight: inherit;\r\n text-decoration: inherit;\r\n color: inherit;\r\n background: none;\r\n padding: 0;\r\n margin: 0;\r\n white-space: pre;\r\n}\r\n\r\n.vmedia-media-input-text-container-editor {\r\n min-height: 2em;\r\n padding-left: 0.5em;\r\n padding-top: 0.25em;\r\n padding-bottom: 0.25em;\r\n margin-right: 0.5em;\r\n box-sizing: border-box;\r\n max-height: 6.66666666em;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n}\r\n\r\n.vmedia-media-input-imagepreview-container {\r\n white-space: normal;\r\n}\r\n\r\n.vmedia-media-input:not(.dragover) .vmedia-media-input-dropover {\r\n display: none;\r\n}\r\n\r\n.vmedia-media-input-dropover {\r\n display: inline-block;\r\n width: 7em;\r\n height: 7em;\r\n}\r\n\r\n.vmedia-media-input-dropover>svg {\r\n width: 7em;\r\n height: 7em;\r\n}\r\n\r\n.vmedia-media-input-imagepreview-container .vmedia-media-input-filepreview,\r\n.vmedia-media-input-imagepreview-container .vmedia-media-input-imagepreview {\r\n margin: 0.3em;\r\n vertical-align: middle;\r\n}\r\n\r\n.vmedia-media-input-filepreview,\r\n.vmedia-media-input-imagepreview {\r\n position: relative;\r\n display: inline-block;\r\n}\r\n\r\n.vmedia-media-input-imagepreview img {\r\n height: 2.5em;\r\n width: auto;\r\n}\r\n\r\n.vmedia-media-input-filepreview svg.attachment {\r\n height: 2em;\r\n width: 2em;\r\n}\r\n\r\n.vmedia-media-input-filepreview svg.times,\r\n.vmedia-media-input-imagepreview svg.times {\r\n position: absolute;\r\n top: 0.1em;\r\n right: 0.1em;\r\n width: 1em;\r\n height: 1em;\r\n fill: rgba(69, 69, 69, 0.6);\r\n}\r\n\r\n.vmedia-media-input-filepreview svg.times:hover,\r\n.vmedia-media-input-imagepreview svg.times:hover {\r\n fill: rgba(144, 144, 144, 0.6);\r\n}\r\n\r\n.vmedia-media-input-filepreview svg.times:active,\r\n.vmedia-media-input-imagepreview svg.times:active {\r\n fill: rgba(220, 220, 240, 0.6);\r\n}\r\n\r\n.vmedia-media-input-plug-button-container {\r\n position: absolute;\r\n left: 0.25em;\r\n bottom: 0.25em;\r\n top: 0.25em;\r\n}\r\n\r\n.vmedia-media-input-plug-button-container svg {\r\n height: 1.5em;\r\n width: 1.5em;\r\n vertical-align: middle;\r\n transition: transform .22s cubic-bezier(.5, 0, .4, 1);\r\n}\r\n\r\n\r\n.vmedia-media-input-plug-button-container svg path {\r\n fill: rgba(66, 133, 244, 0.7);\r\n transition: fill .22s cubic-bezier(.5, 0, .4, 1);\r\n}\r\n\r\n.vmedia-media-input.show-plugin .vmedia-media-input-plug-button svg path {\r\n fill: rgba(134, 142, 153, 0.75);\r\n}\r\n\r\n\r\n\r\n.vmedia-media-input-plug-button {\r\n padding: 0;\r\n height: 100%;\r\n width: 2em;\r\n border: none;\r\n background: transparent;\r\n outline: none;\r\n\r\n}\r\n\r\n\r\n.vmedia-media-input-plugin-content-container {\r\n position: absolute;\r\n bottom: calc(1px + 100%);\r\n opacity: 1;\r\n transition: opacity .22s cubic-bezier(.5, 0, .4, 1);\r\n background-color: white;\r\n box-sizing: border-box;\r\n border: solid 1px rgba(0, 0, 0, 0.1);\r\n z-index: 20;\r\n background: white;\r\n}\r\n\r\n.vmedia-media-input-plugin-content-container:empty{\r\n display: none;\r\n}\r\n\r\n\r\n\r\n.vmedia-media-input-tool-container {\r\n position: relative;\r\n display: block;\r\n height: 1.5em;\r\n /* background: red; */\r\n}\r\n\r\n\r\n\r\n.vmedia-media-input-tool-container-left {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n}\r\n\r\n.vmedia-media-input-tool-container-right {\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n}\r\n\r\n.vmedia-media-input-tool-container button {\r\n width: 2.5em;\r\n height: 100%;\r\n font-size: 1em;\r\n margin-left: 0.1em;\r\n margin-right: 0.1em;\r\n border: none;\r\n background-color: transparent;\r\n border-radius: 0.4em;\r\n}\r\n\r\n.vmedia-media-input-text-container-editor {\r\n scrollbar-width: thin;\r\n}\r\n\r\n.vmedia-media-input-text-container-editor::-webkit-scrollbar {\r\n width: 7px;\r\n}\r\n\r\n\r\n\r\n.vmedia-media-input-text-container-editor::-webkit-scrollbar-track {\r\n background: rgb(240, 240, 240);\r\n}\r\n\r\n.vmedia-media-input-text-container-editor::-webkit-scrollbar-thumb {\r\n background: rgb(205, 205, 205);\r\n}\r\n\r\n.vmedia-media-input-tool-container button svg {\r\n height: 1.25em;\r\n width: 1.25em;\r\n}\r\n\r\n.vmedia-media-input-tool-container button:hover {\r\n background-color: rgba(91, 192, 222, 0.1);\r\n}\r\n\r\n.vmedia-media-input-tool-container button:active {\r\n background-color: rgba(91, 192, 222, 0.4);\r\n}\r\n\r\n.vmedia-media-input-tool-container button svg.send {\r\n fill: rgba(66, 133, 244, 0.7);\r\n}\r\n\r\n.vmedia-media-input-tool-container button svg.add-file,\r\n.vmedia-media-input-tool-container button svg.add-image {\r\n fill: rgba(66, 66, 66, 0.5);\r\n}\r\n\r\n.vmedia-media-input-tool-container button .mdi{\r\n font-size:1.2em; \r\n}\r\n\r\n.vmedia-media-input-tool-container button:focus {\r\n outline: none;\r\n}\r\n\r\n.vmedia-media-input-tool-container button{\r\n vertical-align: middle;\r\n}\r\n\r\n.vmedia-media-input-plugin-content-container.blur{\r\n visibility: hidden;\r\n}", ""]); /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(35); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-resizablelayout{\r\n position: relative;\r\n}\r\n\r\n.absol-resizablelayout.debug *,\r\n.absol-resizablelayout.debug\r\n{\r\n background-color: rgba(100, 100, 100, 0.1); \r\n}\r\n\r\n.absol-resizablelayout-cell{\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n}", ""]); /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(37); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-autocomplete-input {\r\n display: inline-block;\r\n position: relative;\r\n box-sizing: border-box;\r\n border: solid 1px #d6d6d6;\r\n}\r\n\r\n.absol-autocomplete-input.absol-disabled {\r\n pointer-events: none;\r\n color: rgb(84, 84, 84);\r\n background-color: rgb(235, 235, 228);\r\n}\r\n\r\n.absol-autocomplete-input>input {\r\n min-width: 100%;\r\n min-height: 100%;\r\n box-sizing: border-box;\r\n background-color: transparent;\r\n border: none;\r\n}\r\n\r\n\r\n.absol-autocomplete-input-dropdown {\r\n position: absolute;\r\n left: 0;\r\n top: 100%;\r\n min-width: 100%;\r\n z-index: 1005;\r\n border: solid 1px rgb(169, 169, 169);\r\n box-sizing: border-box;\r\n background-color: white;\r\n}\r\n\r\n.absol-autocomplete-input-dropdown.top {\r\n top: auto;\r\n bottom: 100%;\r\n}\r\n\r\n.absol-autocomplete-input-item {\r\n height: 30px;\r\n}\r\n\r\n.absol-autocomplete-input-item:hover {\r\n background-color: rgb(169, 169, 169, 0.18605);\r\n cursor: pointer;\r\n}\r\n\r\n.absol-autocomplete-input-item.active,\r\n.absol-autocomplete-input-item.active:hover {\r\n background-color: rgb(169, 169, 169, 0.37209);\r\n}\r\n\r\n.absol-autocomplete-input-item-text {\r\n line-height: 30px;\r\n margin-left: 5px;\r\n margin-right: 5px;\r\n}", ""]); /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(39); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-selectlist {}\r\n\r\n.absol-selectlist .absol-selectlist-item:hover {\r\n background-color: #efefef;\r\n}\r\n\r\n.absol-selectlist .absol-selectlist-item {\r\n height: 20px;\r\n font-size: 14px;\r\n font-family: inherit;\r\n cursor: pointer;\r\n\r\n}\r\n\r\n.absol-selectlist-item.selected {\r\n background-color: #dfdfdf;\r\n}\r\n\r\n.absol-selectlist-item>span {\r\n line-height: 20px;\r\n white-space: pre;\r\n padding-left: 7px;\r\n padding-right: 7px;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n}\r\n\r\n.absol-selectlist-item {\r\n position: relative;\r\n}\r\n\r\n.absol-selectlist-item-desc-container {\r\n position: absolute;\r\n right: 0.3em;\r\n top: 0;\r\n bottom: 0;\r\n}\r\n\r\n.absol-selectlist-item-desc {\r\n font-style: italic;\r\n line-height: 20px;\r\n white-space: nowrap;\r\n margin-left: 1em;\r\n color: rgb(37, 37, 37);\r\n}\r\n\r\n.absol-selectlist-item-desc:empty{\r\n display: none;\r\n}\r\n\r\n", ""]); /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(41); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-selectmenu.absol-hidden {\r\n display: none !important;\r\n}\r\n\r\n.absol-selectmenu-render-space {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n z-index: -1000;\r\n visibility: hidden;\r\n font-size: 14px;\r\n}\r\n\r\n.absol-selectmenu-render-space>div {\r\n display: inline-block;\r\n}\r\n\r\n\r\n\r\n.absol-selectmenu.disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.absol-selectmenu.disabled .absol-selectmenu-dropdown-box {\r\n display: none;\r\n}\r\n\r\n.absol-selectmenu.disabled {\r\n background-color: #ebebe4;\r\n}\r\n\r\n\r\n.absol-selectmenu {\r\n display: inline-block;\r\n position: relative;\r\n height: 30px;\r\n min-width: 30px;\r\n border: solid 1px #d6d6d6;\r\n border-radius: 2px;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n font-size: 14px;\r\n}\r\n\r\n/* .absol-selectmenu:hover {\r\n border: solid 1px black;\r\n} */\r\n\r\n.absol-selectmenu-btn {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n width: 30px;\r\n border: none;\r\n background: transparent;\r\n z-index: 2;\r\n pointer-events: none;\r\n}\r\n\r\n.absol-selectmenu-btn:focus {\r\n outline: none;\r\n}\r\n\r\n.absol-selectmenu-btn svg.dropdown {\r\n width: 10px;\r\n height: 10px;\r\n fill: #929292;\r\n}\r\n\r\n.absol-selectmenu:hover svg.dropdown {\r\n width: 10px;\r\n height: 10px;\r\n fill: black;\r\n}\r\n\r\n.absol-selectmenu-holder-item {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n top: 4px;\r\n bottom: 4px;\r\n /*1px for border*/\r\n}\r\n\r\n.absol-selectmenu-dropdown-box {\r\n position: absolute;\r\n left: -1px;\r\n top: 100%;\r\n border: solid 1px rgb(169, 169, 169);\r\n box-sizing: border-box;\r\n background-color: white;\r\n z-index: 3;\r\n min-width: calc(100% + 2px);\r\n z-index: 1000;\r\n}\r\n\r\n.absol-selectmenu:not(.focus) .absol-selectmenu-dropdown-box {\r\n display: none;\r\n}\r\n\r\n\r\n\r\n.absol-selectmenu-dropdown-box.up {\r\n top: auto;\r\n bottom: 100%;\r\n}\r\n\r\n.absol-selectmenu .absol-selectlist-item span {\r\n padding-right: 28px;\r\n}\r\n\r\n.absol-selectmenu .absol-scroll-button {\r\n background-color: rgba(0, 0, 0, 0.1);\r\n border-radius: 3px;\r\n}\r\n\r\n.absol-selectmenu .absol-scroll-button:hover {\r\n background-color: rgba(0, 0, 0, 0.2);\r\n}\r\n\r\n.absol-scroll-bar-v-container {\r\n width: 10px;\r\n}\r\n\r\n.absol-selectmenu .absol-search-text-input {\r\n margin: 4px;\r\n}\r\n\r\n.absol-selectmenu-render-space .absol-selectlist-item span {\r\n padding-right: 0;\r\n}\r\n\r\n\r\n\r\n.absol-selectmenu .absol-selectlist-item-desc-container {\r\n right: 40px;\r\n}", ""]); /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(43); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-tree-list {}\r\n\r\n.absol-tree-list-item {}\r\n\r\n.absol-tree-list-item-parent:hover {\r\n background: #efefef;\r\n cursor: pointer;\r\n}\r\n\r\n.absol-tree-list-item-parent {\r\n padding-left: 0.3em;\r\n padding-right: 0.6em;\r\n position: relative;\r\n}\r\n\r\n.absol-tree-list-item.active>.absol-tree-list-item-parent {\r\n background: #dfdfdf;\r\n}\r\n\r\n.absol-tree-list-item-parent>span {\r\n line-height: 20px;\r\n white-space: nowrap;\r\n}\r\n\r\n.absol-tree-list-item-child {}\r\n\r\n.absol-tree-list-item>.absol-tree-list-item-child:empty {\r\n display: none;\r\n}\r\n\r\n.absol-tree-list-item-desc-container {\r\n right: 0.3em;\r\n top: 0;\r\n bottom: 0;\r\n position: absolute;\r\n}\r\n\r\n.absol-tree-list-item-desc {\r\n font-style: italic;\r\n line-height: 20px;\r\n white-space: nowrap;\r\n margin-left: 1em;\r\n color: rgb(37, 37, 37);\r\n}\r\n\r\n.absol-tree-list-item-desc:empty {\r\n display: none;\r\n}", ""]); /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(45); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-selecttreemenu .absol-tree-list-item-desc-container{\r\n right: 30px;\r\n}\r\n\r\n\r\n.absol-selectmenu-holder-item .absol-tree-list-item-parent:hover {\r\n background-color: transparent;\r\n}", ""]); /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(47); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-selectbox-item {\r\n display: inline-block;\r\n position: relative;\r\n height: 20px;\r\n border-radius: 2px;\r\n overflow: hidden;\r\n background-color: #5bc0de;\r\n border-color: #46b8da;\r\n font-size: 14px;\r\n vertical-align: top;\r\n white-space: normal;\r\n}\r\n\r\n.absol-selectbox {\r\n position: relative;\r\n min-height: 30px;\r\n min-width: 40px;\r\n border: solid 1px #d6d6d6;\r\n border-radius: 3px;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n padding-right: 20px;\r\n}\r\n\r\n.absol-selectbox {\r\n white-space: normal;\r\n}\r\n\r\n.absol-selectbox .absol-selectbox-item {\r\n margin: 2px;\r\n}\r\n\r\n.absol-selectbox-item-text {\r\n height: 20px;\r\n padding-right: 25px;\r\n color: white;\r\n padding-left: 5px;\r\n}\r\n\r\n.absol-selectbox-item-text:hover {\r\n background-color: rgba(0, 0, 0, 0.0893617021);\r\n}\r\n\r\n.absol-selectbox-item-text span {\r\n line-height: 20px;\r\n white-space: nowrap;\r\n}\r\n\r\n.absol-selectbox-item-close {\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 20px;\r\n font-size: 10px;\r\n text-align: center;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n cursor: pointer;\r\n background-color: rgba(0, 0, 0, 0.0893617021);\r\n}\r\n\r\n.absol-selectbox-item-close span {\r\n font-size: 10px;\r\n color: white;\r\n line-height: 20px;\r\n}\r\n\r\n.absol-selectbox {\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-selectbox .absol-search-text-input {\r\n margin: 4px;\r\n}\r\n\r\n.absol-selectbox:not(.focus) .absol-selectmenu-dropdown-box {\r\n display: none;\r\n}\r\n\r\n\r\n\r\n.absol-selectbox .absol-selectlist-item.selected {\r\n display: none;\r\n}", ""]); /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(49); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-radio {\r\n display: inline;\r\n cursor: pointer;\r\n}\r\n\r\n.absol-radio input {\r\n display: none;\r\n}\r\n\r\n.absol-radio label {\r\n white-space: pre;\r\n cursor: inherit;\r\n vertical-align: middle;\r\n margin: 0;\r\n}\r\n\r\n.absol-radio>svg {\r\n display: inline-block;\r\n vertical-align: middle;\r\n width: 18px;\r\n height: 18px;\r\n}\r\n\r\n.absol-radio>svg .bound {\r\n stroke: #929292;\r\n fill: white;\r\n}\r\n\r\n.absol-radio:hover>svg .bound {\r\n fill: #d6d6d6;\r\n stroke: black;\r\n}\r\n\r\n/* \r\n.absol-radio>svg .bound {\r\n fill: none;\r\n} */\r\n\r\n.absol-radio-icon .border {}\r\n\r\n.absol-radio .dot {\r\n transition: opacity 0.07s;\r\n opacity: 0;\r\n fill: #606060;\r\n}\r\n\r\n.absol-radio:hover .dot {\r\n transition: opacity 0.07s;\r\n opacity: 0;\r\n fill: black;\r\n}\r\n\r\n.absol-radio.checked .dot {\r\n opacity: 1;\r\n transition: opacity 0.1s;\r\n}\r\n\r\n.absol-radio:not(.right) .absol-radio-icon-right {\r\n display: none;\r\n}\r\n\r\n.absol-radio:not(.right) label {\r\n padding-left: 5px;\r\n}\r\n\r\n.absol-radio.right label {\r\n padding-right: 5px;\r\n}\r\n\r\n.absol-radio.right .absol-radio-icon-left {\r\n display: none;\r\n}\r\n\r\n.absol-radio.disabled {\r\n cursor: default;\r\n}\r\n\r\n.absol-radio.disabled:hover .dot,\r\n.absol-radio.disabled .dot {\r\n fill: #929292;\r\n}\r\n\r\n.absol-radio.disabled .bound,\r\n.absol-radio.disabled:hover .bound {\r\n stroke: #929292;\r\n fill: #ebebe4;\r\n}\r\n\r\n\r\n.absol-radio .standar-alone {\r\n display: inline-block;\r\n}", ""]); /***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(51); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 2.2em;\r\n height: 1.2em;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.absol-switch-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #ccc;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n border-radius: 0.6em;\r\n}\r\n\r\n.absol-switch-slider:before {\r\n position: absolute;\r\n content: \"\";\r\n height: 1em;\r\n width: 1em;\r\n left: 0.1em;\r\n bottom: 0.1em;\r\n background-color: white;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n border-radius: 0.5em;\r\n}\r\n\r\ninput:checked+.absol-switch-slider {\r\n background-color: #2196F3;\r\n}\r\n\r\ninput:focus+.absol-switch-slider {\r\n box-shadow: 0 0 1px #2196F3;\r\n}\r\n\r\ninput:checked+.absol-switch-slider:before {\r\n -webkit-transform: translateX(1em);\r\n -ms-transform: translateX(1em);\r\n transform: translateX(1em);\r\n}\r\n\r\n/* Rounded absol-switch-sliders */\r\n.absol-switch.square .absol-switch-slider {\r\n border-radius: 0;\r\n}\r\n\r\n.absol-switch.square .absol-switch-slider:before {\r\n border-radius: 0;\r\n}\r\n\r\n.absol-switch.disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.absol-switch.disabled .absol-switch-slider:before{\r\n background-color: rgb(234, 234, 234);\r\n}\r\n\r\n.absol-switch.disabled input:checked+.absol-switch-slider {\r\n background-color: rgb(141, 188, 226);\r\n}\r\n\r\n.absol-switch.disabled .absol-switch-slider {\r\n background-color: rgb(171, 171, 171);\r\n}\r\n\r\n", ""]); /***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(53); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, "\r\n.absol-checkbox {\r\n display: inline;\r\n cursor: pointer;\r\n}\r\n\r\n.absol-checkbox input {\r\n display: none;\r\n}\r\n\r\n.absol-checkbox label {\r\n white-space: pre;\r\n cursor: inherit;\r\n vertical-align: middle;\r\n margin: 0;\r\n}\r\n\r\n.absol-checkbox>svg {\r\n display: inline-block;\r\n vertical-align: middle;\r\n width: 18px;\r\n height: 18px;\r\n}\r\n\r\n.absol-checkbox>svg .bound {\r\n stroke: #929292;\r\n fill: white;\r\n}\r\n\r\n.absol-checkbox:hover>svg .bound {\r\n fill: #d6d6d6;\r\n stroke: black;\r\n}\r\n\r\n/* \r\n.absol-checkbox>svg .bound {\r\n fill: none;\r\n} */\r\n\r\n.absol-checkbox-icon .border {}\r\n\r\n.absol-checkbox .tick {\r\n transition: opacity 0.07s;\r\n opacity: 0;\r\n fill: #606060;\r\n}\r\n\r\n.absol-checkbox:hover .tick {\r\n transition: opacity 0.07s;\r\n opacity: 0;\r\n fill: black;\r\n}\r\n\r\n.absol-checkbox.checked .tick {\r\n opacity: 1;\r\n transition: opacity 0.1s;\r\n}\r\n\r\n.absol-checkbox:not(.right) .absol-checkbox-icon-right {\r\n display: none;\r\n}\r\n\r\n.absol-checkbox:not(.right) label {\r\n padding-left: 5px;\r\n}\r\n\r\n.absol-checkbox.right label {\r\n padding-right: 5px;\r\n}\r\n\r\n.absol-checkbox.right .absol-checkbox-icon-left {\r\n display: none;\r\n}\r\n\r\n.absol-checkbox.disabled {\r\n cursor: default;\r\n}\r\n\r\n.absol-checkbox.disabled:hover .tick,\r\n.absol-checkbox.disabled .tick {\r\n fill: #929292;\r\n}\r\n\r\n.absol-checkbox.disabled .bound,\r\n.absol-checkbox.disabled:hover .bound {\r\n stroke: #929292;\r\n fill: #ebebe4;\r\n}\r\n", ""]); /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(55); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, "\r\n.absol-editabe-text {\r\n display: inline;\r\n}\r\n\r\n.absol-editabe-text span {\r\n font-style: inherit;\r\n font-size: inherit;\r\n white-space: pre;\r\n}\r\n\r\n.absol-editabe-text-higne {\r\n display: inline-block;\r\n position: relative;\r\n width: 0px;\r\n height: 0ox;\r\n}\r\n\r\n.absol-editabe-text-higne input {\r\n position: absolute;\r\n display: none;\r\n border: none;\r\n top: -2;\r\n left: -2;\r\n padding-top: 0px;\r\n padding-left: 2px;\r\n padding-bottom: 4px;\r\n margin: 0;\r\n background: transparent;\r\n outline: none;\r\n font-style: inherit;\r\n font-size: inherit;\r\n}\r\n\r\n.absol-editabe-text.editing .absol-editabe-text-higne input {\r\n display: block;\r\n}\r\n\r\n.absol-editabe-text.editing span {\r\n visibility: hidden;\r\n}\r\n\r\n.absol-editabe-text.editing {\r\n -webkit-box-shadow: 0px 0px 2px 0px rgba(33, 77, 255, 1);\r\n -moz-box-shadow: 0px 0px 2px 0px rgba(33, 77, 255, 1);\r\n box-shadow: 0px 0px 2px 0px rgba(33, 77, 255, 1);\r\n border-radius: 0.17em;\r\n}\r\n", ""]); /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(57); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-width-height-resizer {\r\n position: relative;\r\n box-sizing: border-box;\r\n}\r\n\r\n.absol-width-height-resizer-anchor-bot-right {\r\n cursor: nwse-resize;\r\n position: absolute;\r\n z-index: 1;\r\n right: 0;\r\n bottom: 0;\r\n height: 13px;\r\n width: 13px;\r\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAQUlEQVQoz2NgIBGkpaX9Z2IgA9BWU1pa2n+S/UGSZnRFBDVhU4BXEy4bcGrC5ySsmgj5AUMTMZ4mOehhmhjJ0QkA9TYwPsqIBKMAAAAASUVORK5CYII=');\r\n}\r\n\r\n.absol-width-height-resizer-anchor-bot-left {\r\n cursor: nesw-resize;\r\n position: absolute;\r\n z-index: 1;\r\n left: 0;\r\n bottom: 0;\r\n height: 13px;\r\n width: 13px;\r\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABCSURBVChTY0hLS/vPQCJggtIkAco0keRMZMVEa0RXSJRGbIoIaoQpIMlGZEmiNRJSiFUjNkGCGrGaRAAwkq6JgQEAnaEwPtyU/MEAAAAASUVORK5CYII=');\r\n}\r\n\r\n.absol-width-height-resizer-anchor-top-right {\r\n cursor: nesw-resize;\r\n position: absolute;\r\n z-index: 1;\r\n right: 0;\r\n top: 0;\r\n height: 13px;\r\n width: 13px;\r\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABMSURBVChTY0xLS/vPQGsAsoQJygYDdFuJdgUhjTgNwqcQpyYQwKURryYQwKaAoCYQwGUjQYCskGhNIABTTJImGABpQolcYgEZmhgYAEPpMD56IPESAAAAAElFTkSuQmCC')\r\n}\r\n\r\n.absol-width-height-resizer-anchor-top-left {\r\n cursor: nwse-resize;\r\n position: absolute;\r\n z-index: 1;\r\n top: 0;\r\n left: 0;\r\n height: 13px;\r\n width: 13px;\r\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABNSURBVChTnZFbCgAgCAStw3r/GxQLClaSj/kJckcFBzMvqtKRprwHd6OncRRwN7GfKQFoIS0Ar/gVQGmCYkMpAWgwLYBSWHCPG9GQiDbsRTA+Srvt5gAAAABJRU5ErkJggg==');\r\n}\r\n\r\n.absol-width-height-resizer-content {\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n}\r\n\r\n/* .absol-width-height-resizer */", ""]); /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(59); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-follower{\r\n position: relative;\r\n}\r\n\r\n.absol-follower-content-container{\r\n position: absolute;\r\n left: -10000px;\r\n top: -10000px;\r\n z-index: -1000;\r\n}\r\n\r\n.absol-follower.following .absol-follower-content-container{\r\n z-index: 100;\r\n}", ""]); /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(61); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-tooltip {\r\n margin: 0;\r\n position: relative;\r\n box-sizing: border-box;\r\n display: inline-block;\r\n}\r\n\r\n.absol-tooltip-content {\r\n display: inline-block;\r\n border-radius: 0.25rem;\r\n background-color: gray;\r\n padding: 0.25rem 0.5rem;\r\n}\r\n\r\n\r\n.absol-tooltip-arrow {\r\n width: 0;\r\n height: 0;\r\n position: absolute;\r\n box-sizing: content-box;\r\n}\r\n\r\n.absol-tooltip.top .absol-tooltip-arrow {\r\n border-left: 0.4rem solid transparent;\r\n border-right: 0.3rem solid transparent;\r\n\r\n border-top: 0.3rem solid gray;\r\n bottom: 0;\r\n left: calc(50% - 0.3rem);\r\n}\r\n\r\n\r\n\r\n.absol-tooltip.top .absol-tooltip-content {\r\n margin-bottom: 0.3rem;\r\n} \r\n\r\n\r\n.absol-tooltip.bottom .absol-tooltip-arrow {\r\n border-left: 0.3rem solid transparent;\r\n border-right: 0.4rem solid transparent;\r\n border-bottom: 0.3rem solid gray;\r\n\r\n top: 0;\r\n left: calc(50% - 0.3rem);\r\n}\r\n\r\n.absol-tooltip.bottom .absol-tooltip-content {\r\n margin-top: 0.3rem;\r\n}\r\n\r\n\r\n\r\n.absol-tooltip.left .absol-tooltip-arrow {\r\n border-top: 0.3rem solid transparent;\r\n border-bottom: 0.4rem solid transparent;\r\n border-left: 0.4rem solid gray;\r\n\r\n right: 0;\r\n top: calc(50% - 0.3rem);\r\n}\r\n\r\n.absol-tooltip.left .absol-tooltip-content {\r\n margin-right: 0.4rem;\r\n}\r\n\r\n\r\n.absol-tooltip.right .absol-tooltip-arrow {\r\n border-top: 0.4rem solid transparent;\r\n border-bottom: 0.4rem solid transparent;\r\n border-right: 0.4rem solid gray;\r\n\r\n left: 0;\r\n top: calc(50% - 0.3rem);\r\n}\r\n\r\n.absol-tooltip.right .absol-tooltip-content {\r\n margin-left: 0.4rem;\r\n}\r\n\r\n\r\n.absol-tooltip-root{\r\n position: relative;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.absol-tooltip-root-holder{\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n}", ""]); /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(63); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-tabbar {\r\n white-space: normal;\r\n height: 2em;\r\n white-space: nowrap;\r\n}\r\n\r\n.absol-tabbar .absol-tabbar-button {\r\n height: 100%;\r\n}\r\n\r\n.absol-tabbar .absol-scrollbar-container {\r\n height: 5px;\r\n}\r\n\r\n.absol-tabbar .absol-scrollbar-button {\r\n opacity: 0;\r\n transition: opacity 0.2s;\r\n}\r\n\r\n.absol-tabbar:hover .absol-scrollbar-button {\r\n opacity: 1;\r\n}\r\n\r\n.absol-tabbar .absol-scrollbar-button {\r\n background-color: rgba(196, 196, 196, 0.1)\r\n}\r\n\r\n.absol-tabbar .absol-scrollbar-button:active {\r\n background-color: rgba(255, 255, 255, 0.3)\r\n}\r\n\r\n\r\n\r\n.absol-tabbar-button {\r\n padding-left: 1em;\r\n padding-right: 1em;\r\n background-color: rgb(45, 45, 45);\r\n color: rgb(200, 200, 200);\r\n margin-right: 1px;\r\n border: none;\r\n outline: none;\r\n}\r\n\r\n.absol-tabbar .absol-tabbar-button-active {\r\n background-color: rgb(30, 30, 30);\r\n color: rgb(250, 250, 252);\r\n}\r\n\r\n.absol-tabbar-button-text,\r\n.absol-tabbar-button-close {\r\n display: inline;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-tabbar-button .absol-tabbar-button-close {\r\n margin-left: 1em;\r\n visibility: hidden;\r\n color: rgb(190, 190, 190);\r\n font-size: 1em\r\n}\r\n\r\n.absol-tabbar-button:hover .absol-tabbar-button-close,\r\n.absol-tabbar-button-active .absol-tabbar-button-close {\r\n visibility: visible;\r\n color: red;\r\n}\r\n\r\n.absol-button-range {}\r\n\r\n\r\n.absol-tabview {\r\n position: relative;\r\n}\r\n\r\n\r\n.absol-tabview-container {\r\n position: absolute;\r\n top: 2em;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n overflow: auto;\r\n}\r\n\r\n\r\n\r\n.absol-tabview-container.absol-tabview-container-hidden {\r\n z-index: -9999;\r\n visibility: hidden;\r\n opacity: 0;\r\n}\r\n\r\n\r\n.absol-tabview-container>div,\r\n.absol-tabview-container>pre {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.absol-tabview-container>pre {\r\n margin: 0;\r\n}\r\n\r\n.absol-tabview .absol-tabbar-button {\r\n border-radius: 10px 10px 0 0;\r\n height: 34px;\r\n box-sizing: border-box;\r\n border: solid 1px #ccc;\r\n background-color: white;\r\n color: black;\r\n padding-left:14px;\r\n padding-right: 5px; \r\n margin-right:5px; \r\n}\r\n\r\n.absol-tabview .absol-tabbar {\r\n height: 34px;\r\n overflow-y: hidden;\r\n border-bottom: 1px solid #ccc;\r\n box-sizing: border-box;\r\n}\r\n\r\n.absol-tabview .absol-tabbar-button-active {\r\n background-color: #5bc0de;\r\n border-color: #46b8da;\r\n color: white;\r\n}\r\n\r\n.absol-tabview .absol-tabbar-button-close{\r\n color:rgb(170, 170, 170);\r\n line-height: 30px;\r\n margin-left: 14px; \r\n font-size: 20px;\r\n}\r\n\r\n.absol-tabview .absol-tabbar-button-close:hover{\r\n color:red;\r\n}\r\n\r\n\r\n\r\n\r\n/************** Mini version - like window form ***********************/\r\n\r\n.absol-tabview.xp-tiny .absol-tabbar {\r\n height: 22px;\r\n border-bottom: none;\r\n}\r\n\r\n.absol-tabview.xp-tiny .absol-tabbar-button {\r\n height: 20px;\r\n padding-left: 5px;\r\n padding-right: 5px;\r\n border-radius: 0;\r\n margin: 0;\r\n vertical-align: bottom;\r\n margin-top: 2px;\r\n background-color: rgb(242, 242, 242);\r\n color: black;\r\n position: relative;\r\n}\r\n\r\n.absol-tabview.xp-tiny::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 18px;\r\n z-index: 0;\r\n left: 0;\r\n right: 0;\r\n height: 4px;\r\n border-bottom: solid 1px #ccc;\r\n}\r\n\r\n.absol-tabview.xp-tiny .absol-tabbar-button.absol-tabbar-button-active {\r\n height: 22px;\r\n margin-top: 0;\r\n background-color: white;\r\n border-top-color: #ccc;\r\n border-left-color: #ccc;\r\n border-right-color: #ccc;\r\n border-bottom-color: white;\r\n}\r\n\r\n\r\n\r\n.absol-hscroller.absol-tabbar.disabled .absol-scrollbar-container {\r\n visibility: hidden;\r\n}\r\n\r\n.absol-tabview.absol-tabview.xp-tiny .absol-tabbar-button-close {\r\n line-height: 18px;\r\n}\r\n\r\n.absol-tabview.xp-tiny .absol-tabbar-button-close.mdi.mdi-close {\r\n display: none;\r\n}\r\n\r\n.absol-tabview.xp-tiny .absol-tabview-container {\r\n top: 22px;\r\n}\r\n\r\n.absol-tabview.xp-tiny .absol-tab-frame {\r\n border-left: solid 1px #ccc;\r\n border-right: solid 1px #ccc;\r\n border-bottom: solid 1px #ccc;\r\n}", ""]); /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(65); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-page-selector{\r\n white-space: normal;\r\n}\r\n\r\n.absol-page-selector > ul{\r\n margin-bottom: 0px;\r\n margin-top: 0;\r\n}\r\n\r\n.page-number-buttons{\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n.page-number-input > label{\r\n font-weight: 100;\r\n}\r\n\r\n.page-number-buttons > li.page-previous, \r\n.page-number-buttons > li.page-next,\r\n.page-number-buttons > li.page-first,\r\n.page-number-buttons > li.page-last\r\n{\r\n display: inline-block;\r\n height: 30px;\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n text-align: center;\r\n transition: all .3s linear;\r\n background-color: transparent;\r\n cursor: pointer;\r\n}\r\n\r\n.page-number-buttons > li.page-number{\r\n display: inline-block;\r\n height: 30px;\r\n width: 40px;\r\n text-align: center;\r\n transition: all .3s linear;\r\n background-color: transparent;\r\n cursor: pointer;\r\n}\r\n\r\n\r\n.page-number-buttons > li.page-number.active{\r\n box-shadow: 0 2px 5px 0 rgba(0,0,0,.16), 0 2px 10px 0 rgba(0,0,0,.12);\r\n background-color: #4285f4;\r\n border-radius:2px; \r\n \r\n}\r\n\r\n.page-number-buttons > li.page-number.active > a{\r\n\tcolor: white;\r\n \r\n}\r\n\r\n.page-number-buttons > li> a{\r\n line-height: 30px;\r\n text-decoration:none;\r\n}\r\n\r\n.page-number-buttons > li:not(.active):hover{\r\n background-color: #eee;\r\n\r\n}\r\n\r\n.absol-page-selector .page-number-input{\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-page-selector .page-number-input input[type=\"text\"]{\r\n width: 3em;\r\n margin-left: 5px; \r\n margin-right: 10px;\r\n text-align: center;\r\n height: 26px;\r\n border: none;\r\n border: solid 1px #ccc; \r\n border-radius: 2px;\r\n\r\n}", ""]); /***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(67); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-bscroller {\r\n overflow: auto;\r\n scrollbar-width: thin;\r\n scrollbar-color: rgba(151, 151, 151, 0.4) rgba(220, 220, 220, 0.4);\r\n\r\n}\r\n\r\n\r\n.absol-bscroller::-webkit-scrollbar {\r\n width: 6px;\r\n height: 6px;\r\n}\r\n\r\n.absol-bscroller::-webkit-scrollbar-track {\r\n background: rgb(220, 220, 220, 0.4);\r\n}\r\n\r\n.absol-bscroller::-webkit-scrollbar-thumb {\r\n background: rgb(182, 182, 182, 0.4);\r\n}\r\n\r\n.absol-bscroller::-webkit-scrollbar-thumb:hover {\r\n background: rgb(32, 32, 32, 0.4);\r\n}\r\n\r\n.absol-bscroller::-webkit-scrollbar-thumb:active {\r\n background: rgb(13, 13, 13, 0.6);\r\n}\r\n\r\n.absol-bscroller.dark,\r\n.dark .absol-bscroller {\r\n scrollbar-color: rgba(104, 104, 104, 0.4) rgba(35, 35, 35, 0.4);\r\n}\r\n\r\n\r\n.absol-bscroller.dark::-webkit-scrollbar-track,\r\n.dark .absol-bscroller::-webkit-scrollbar-track {\r\n background: rgb(35, 35, 35, 0.4);\r\n}\r\n\r\n.absol-bscroller.dark::-webkit-scrollbar-thumb,\r\n.dark .absol-bscroller::-webkit-scrollbar-thumb {\r\n background: rgb(73, 73, 73, 0.4);\r\n}\r\n\r\n.absol-bscroller.dark::-webkit-scrollbar-thumb:hover,\r\n.dark .absol-bscroller::-webkit-scrollbar-thumb:hover {\r\n background: rgb(223, 223, 223, 0.4);\r\n}\r\n\r\n.absol-bscroller.dark::-webkit-scrollbar-thumb:active,\r\n.dark .absol-bscroller::-webkit-scrollbar-thumb:active {\r\n background: rgb(242, 242, 242, 0.6);\r\n}", ""]); /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(69); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-search-list {\r\n padding-top: 2.5em;\r\n position: relative;\r\n border: solid 1px #a9a9a9;\r\n box-sizing: border-box;\r\n}\r\n\r\n.absol-search-list-search-input-container {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n height: 2.5em;\r\n border-bottom: solid 1px #a9a9a9;\r\n\r\n}\r\n\r\n\r\n.absol-search-list-search-input-container input[type=\"text\"] {\r\n font-size: 1em;\r\n box-sizing: border-box;\r\n width: calc(100% - 1em);\r\n height: 1.5em;\r\n margin: 0.5em;\r\n}\r\n\r\n.absol-search-list-contents {\r\n height: 100%;\r\n box-sizing: border-box;\r\n background: white;\r\n}\r\n\r\n.absol-search-list-item {\r\n cursor: pointer;\r\n}\r\n\r\n.absol-search-list-item.default {\r\n line-height: 2em;\r\n padding-left: 1em;\r\n padding-right: 1em;\r\n}\r\n\r\n.absol-search-list-item:hover {\r\n background-color: rgba(169, 169, 169, 0.1);\r\n}\r\n\r\n.absol-search-list-item.active {\r\n background-color: rgba(169, 169, 169, 0.4);\r\n}", ""]); /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(71); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-static-tabbar {\r\n position: relative;\r\n}\r\n\r\n.absol-static-tabbar-button {\r\n height: 2em;\r\n background-color: transparent;\r\n border: none;\r\n font-size: 1em;\r\n padding-left: 0.5em;\r\n padding-right: 0.5em;\r\n color: rgb(104, 104, 104);\r\n}\r\n\r\n.absol-static-tabbar-button:hover {\r\n color: rgb(30, 30, 55);\r\n}\r\n\r\n.absol-static-tabbar-button.active {\r\n color: black;\r\n}\r\n\r\n.absol-static-tabbar-button:focus {\r\n outline: none;\r\n}\r\n\r\n.absol-static-tabbar-button>span {\r\n font-size: 0.7em;\r\n}\r\n\r\n.absol-static-tabbar-hline {\r\n border-bottom: solid 1px rgb(127, 127, 128);\r\n height: 100%;\r\n}\r\n\r\n.absol-static-tabbar-active-box {\r\n position: absolute;\r\n bottom: 0;\r\n top: 0;\r\n left: 0;\r\n width: 0;\r\n transition: left 0.15s, width 0.15s;\r\n padding-left: 0.5em;\r\n padding-right: 0.5em;\r\n box-sizing: border-box;\r\n /* z-index: 1; */\r\n}\r\n\r\n.absol-static-tabbar.dark .absol-static-tabbar-hline{\r\n border-bottom-color: white;\r\n}\r\n\r\n.absol-static-tabbar.dark .absol-static-tabbar-button.active{\r\n color: white;\r\n}\r\n\r\n.absol-static-tabbar.dark .absol-static-tabbar-button {\r\n color: rgb(204, 204, 204);\r\n}", ""]); /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(73); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-exp-node {\r\n height: 2em;\r\n text-align: left;\r\n background-color: transparent;\r\n border: none;\r\n outline: none;\r\n white-space: nowrap;\r\n font-size: inherit;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n position: relative;\r\n color: rgb(33, 33, 34);\r\n}\r\n\r\n.absol-exp-node .toggler-ico {\r\n width: 0.7em;\r\n height: 0.7em;\r\n margin-right: 0.35em;\r\n}\r\n\r\n.absol-exp-node .toggler-ico path {\r\n fill: rgb(104, 104, 104);\r\n}\r\n\r\n.absol-exp-node.status-removable .toggler-ico,\r\n.absol-exp-node.status-modified .toggler-ico {\r\n display: none;\r\n}\r\n\r\n.absol-exp-node:not(.status-open) .toggle-open {\r\n display: none;\r\n}\r\n\r\n.absol-exp-node:not(.status-close) .toggle-close {\r\n display: none;\r\n}\r\n\r\n\r\n\r\n.absol-exp-node:hover .remove-ico {\r\n visibility: visible;\r\n}\r\n\r\n\r\n\r\n.absol-exp-node.status-removable .remove-ico,\r\n.absol-exp-node.status-modified .remove-ico {\r\n display: inline-block;\r\n}\r\n\r\n.absol-exp-node.status-removable .remove-ico .modified {\r\n visibility: hidden;\r\n}\r\n\r\n.absol-exp-node.status-modified .remove-ico .close {\r\n visibility: hidden;\r\n}\r\n\r\n.absol-exp-node.status-modified .remove-ico:hover .close {\r\n visibility: visible;\r\n}\r\n\r\n.absol-exp-node.status-modified .remove-ico:hover .modified {\r\n visibility: hidden;\r\n}\r\n\r\n\r\n.absol-exp-node .remove-ico {\r\n width: 0.9em;\r\n height: 0.9em;\r\n display: none;\r\n visibility: hidden;\r\n margin-left: -0.3em;\r\n margin-right: 0.45em;\r\n}\r\n\r\n.absol-exp-node .remove-ico .close,\r\n.absol-exp-node .remove-ico .modified {\r\n fill: rgb(169, 169, 169);\r\n stroke: none;\r\n}\r\n\r\n\r\n.absol-exp-node.has-status {\r\n padding-right: 2.5em;\r\n}\r\n\r\n.absol-exp-node>div,\r\n.absol-exp-node>svg {\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n\r\n.absol-exp-node .editing input {\r\n color: khaki;\r\n padding-top: 2px;\r\n padding-bottom: 2px;\r\n}\r\n\r\n.absol-exp-node:hover {\r\n background-color: rgb(169, 169, 172, 0.1);\r\n}\r\n\r\n.absol-exp-node:focus,\r\n.absol-exp-node.active:focus {\r\n background-color: rgba(20, 185, 235, 0.3);\r\n}\r\n\r\n.absol-exp-node.active {\r\n background-color: rgb(169, 169, 172, 0.2);\r\n\r\n}\r\n\r\n\r\n\r\n.absol-exp-node-name {\r\n /* -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none; */\r\n user-select: none;\r\n vertical-align: middle;\r\n color: black;\r\n margin-left: 0.5em;\r\n}\r\n\r\n.absol-exp-node-desc {\r\n color: rgb(104, 104, 104);\r\n margin-left: 0.5em;\r\n font-size: 0.85em;\r\n}\r\n\r\n.absol-exp-node-desc:empty {\r\n margin-left: 0;\r\n}\r\n\r\n\r\n.absol-exp-node-expand-icon {\r\n display: inline-block;\r\n vertical-align: middle;\r\n margin-right: 0.2em;\r\n height: 0.5em;\r\n width: 0.5em;\r\n}\r\n\r\nimg.absol-exp-node-ext-icon {\r\n display: none;\r\n}\r\n\r\n.absol-exp-node-ext-icon,\r\n.absol-exp-node-ext-icon>img {\r\n display: inline-block;\r\n vertical-align: middle;\r\n width: 1.5em;\r\n height: 1.5em;\r\n}\r\n\r\ndiv.absol-exp-node-ext-icon:empty {\r\n display: none;\r\n}\r\n\r\ndiv.absol-exp-node-ext-icon {\r\n text-align: center;\r\n}\r\n\r\n.absol-exp-node-ext-icon>.mdi,\r\n.absol-exp-node-ext-icon>span .absol-exp-node-ext-icon>svg {\r\n line-height: 1em;\r\n font-size: 1.5em;\r\n}\r\n\r\nimg.absol-exp-node-ext-icon[src] {\r\n display: inline-block;\r\n}\r\n\r\n\r\n.absol-exp-tree>.absol-exp-node {\r\n width: 100%;\r\n display: block;\r\n}\r\n\r\n.absol-exp-tree.hide-children>.absol-exp-items {\r\n display: none;\r\n}\r\n\r\n\r\n.dark .toggler-ico path {\r\n fill: rgb(169, 169, 169);\r\n}\r\n\r\n\r\n.dark .absol-exp-node-name {\r\n color: rgb(204, 204, 204);\r\n}\r\n\r\n.dark .absol-exp-node-desc {\r\n color: rgb(169, 169, 170);\r\n}\r\n\r\n.dark .absol-exp-node {\r\n color: rgb(169, 169, 170);\r\n}", ""]); /***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(75); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-table-vscroller {\r\n position: relative;\r\n}\r\n\r\n.absol-table-vscroller-head {\r\n position: absolute;\r\n z-index: 2;\r\n width: 300px;\r\n height: 20px;\r\n top: 0;\r\n left: 0;\r\n}\r\n\r\n.absol-table-vscroller-head-line{\r\n position: absolute;\r\n left: 0;\r\n z-index: 3;\r\n pointer-events: none;\r\n border-bottom:solid 2px rgb(169, 169, 170); \r\n width: 100%;\r\n}\r\n\r\n.absol-table-vscroller.scroll-v .absol-table-vscroller-head-line{\r\n width: calc(100% - 7px);\r\n}\r\n\r\n.absol-table-vscroller-viewport {\r\n max-height: 100%;\r\n padding-bottom: 1px;\r\n padding-top: 1px;\r\n}", ""]); /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(77); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-table-scroller {\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n.absol-table-scroller-viewport {\r\n max-width: 100%;\r\n max-height: 100%;\r\n}\r\n\r\n.absol-table-scroller-fixed-viewport {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n z-index: 10;\r\n overflow: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.absol-table-scroller-fixed-viewport>table>thead,\r\n.absol-table-scroller-fixed-viewport>table {\r\n border-top-color: transparent !important;\r\n /*firefox bug*/\r\n}\r\n\r\n.absol-table-scroller-fixed-hidden {\r\n visibility: hidden !important;\r\n opacity: 0 !important;\r\n border-color: transparent !important;\r\n\r\n}\r\n\r\n.absol-table-scroller-header-hscroller {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 6px;\r\n z-index: 9;\r\n overflow: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.absol-table-scroller-header-hscroller-viewport {\r\n max-width: 100%;\r\n overflow-x: scroll;\r\n}\r\n\r\n.absol-table-scroller-header-hscroller-viewport table {\r\n table-layout: fixed;\r\n}\r\n\r\n\r\n.absol-table-scroller-left-vscroller {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 6px;\r\n z-index: 7;\r\n width: 200px;\r\n overflow-x: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.absol-table-scroller-left-vscroller-viewport {\r\n max-height: 100%;\r\n overflow-y: scroll;\r\n min-width: calc(100% + 19px);\r\n overflow-x: hidden;\r\n}\r\n\r\n\r\n.absol-table-scroller-head-line,\r\n.absol-table-scroller-left-line {\r\n z-index: 30;\r\n pointer-events: none;\r\n position: absolute;\r\n}\r\n\r\n.absol-table-scroller-head-line {\r\n left: 0;\r\n width: calc(100% - 6px);\r\n border-bottom: solid 2px rgb(169, 169, 170);\r\n width: 100%;\r\n}\r\n\r\n.absol-table-scroller-left-line {\r\n top: 0;\r\n border-right: solid 2px rgb(169, 169, 170);\r\n height: calc(100% - 6px);\r\n height: 100%;\r\n}\r\n\r\n\r\n.absol-table-scroller.scroll-v .absol-table-scroller-head-line{\r\n width: calc(100% - 6px);\r\n}\r\n\r\n.absol-table-scroller.scroll-h .absol-table-scroller-left-line{\r\n height: calc(100% - 6px);\r\n}", ""]); /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(79); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-quick-path {\r\n height: 1.5em;\r\n position: relative;\r\n box-sizing: border-box;\r\n user-select: none;\r\n -webkit-user-select: none;\r\n -ms-user-select: none;\r\n -moz-user-select: none;\r\n}\r\n\r\n.absol-quick-path button {\r\n outline: none;\r\n color: rgb(69, 69, 69);\r\n}\r\n\r\n.absol-quick-path button:hover {\r\n color: black;\r\n}\r\n\r\n.absol-quick-path .toggler-ico path {\r\n fill: rgb(104, 104, 104);\r\n}\r\n\r\n.dark .absol-quick-path button {\r\n color: rgb(200, 200, 200);\r\n}\r\n\r\n\r\n.dark .absol-quick-path button:hover {\r\n color: white;\r\n}\r\n\r\n.dark .absol-quick-path .toggler-ico path {\r\n fill: rgb(169, 169, 169);\r\n}\r\n\r\n\r\n.absol-quick-path-btn {\r\n font-size: 1em;\r\n padding: 0;\r\n border: none;\r\n background: transparent;\r\n padding-right: 0.3em;\r\n}\r\n\r\n.absol-quick-path-btn:focus span {\r\n text-decoration: underline;\r\n}\r\n\r\n.absol-quick-path-btn-ext-ico {\r\n width: 1em;\r\n height: 1em;\r\n vertical-align: middle;\r\n margin-right: 0.3em;\r\n display: none;\r\n}\r\n\r\n.absol-quick-path-btn-ext-ico[src] {\r\n display: inline;\r\n}\r\n\r\n.absol-quick-path-btn .toggler-ico {\r\n height: 0.7em;\r\n width: 0.7em;\r\n}\r\n\r\n.absol-quick-path-btn.toggle svg .toggle-close {\r\n display: none;\r\n}\r\n\r\n.absol-quick-path-btn:not(.toggle) svg .toggle-open {\r\n display: none;\r\n}\r\n\r\n.absol-quick-path-btn .toggler-ico path {\r\n fill: rgb(104, 104, 104);\r\n}\r\n\r\n.absol-quick-path-dropdown {\r\n position: absolute;\r\n z-index: 2;\r\n -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\r\n background-color: rgb(252, 252, 255);\r\n box-sizing: border-box;\r\n}\r\n\r\n.dark .absol-quick-path-dropdown {\r\n background-color: rgb(37, 37, 38)\r\n}\r\n\r\n\r\n.absol-quick-path-dropdown .absol-vmenu-button-key {\r\n display: none;\r\n}\r\n\r\n.absol-quick-path-dropdown .absol-vmenu-button {\r\n min-width: unset;\r\n}", ""]); /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(81); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-drop-panel-head {\r\n height: 2.75em;\r\n line-height: 2.75em;\r\n -webkit-box-shadow: 0px 3px 4px -3px rgba(0, 0, 0, 0.75);\r\n -moz-box-shadow: 0px 3px 4px -3px rgba(0, 0, 0, 0.75);\r\n box-shadow: 0px 3px 4px -3px rgba(0, 0, 0, 0.75);\r\n background-color: rgba(240, 240, 242);\r\n color: black;\r\n}\r\n\r\n.absol-drop-panel-head .toggler-ico path {\r\n fill: rgb(104, 104, 104);\r\n}\r\n\r\n\r\n.dark .absol-drop-panel-head {\r\n background-color: rgba(54, 54, 56);\r\n color: rgb(204, 204, 204);\r\n}\r\n\r\n.absol-drop-panel.show .absol-drop-panel-body {\r\n height:auto;\r\n}\r\n\r\n.absol-drop-panel-body {\r\n transition: height 0.2s;\r\n height: 0;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n}\r\n\r\n\r\n.absol-drop-panel.show>.absol-drop-panel-head .toggle-close{\r\n display: none;\r\n}\r\n\r\n.absol-drop-panel:not(.show)>.absol-drop-panel-head .toggle-open{\r\n display: none;\r\n}\r\n\r\n", ""]); /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(83); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-draggable-vstack {\r\n position: relative;\r\n}\r\n\r\n.absol-draggable-vstack .drag-zone {}\r\n\r\n.absol-draggable-vstack>.dragging {\r\n opacity: 0.2 !important;\r\n}\r\n\r\n.absol-draggable-vstack-child-container.dragging {\r\n opacity: 0.2 !important;\r\n}\r\n\r\n.absol-draggable-vstack-clone-container {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n user-select: none;\r\n -moz-user-select: none;\r\n -webkit-user-select: none;\r\n -ms-user-select: none;\r\n z-index: 100;\r\n pointer-events: all;\r\n opacity: 0.5;\r\n background: white;\r\n}\r\n\r\n.absol-draggable-vstack-clone-container * {\r\n pointer-events: none !important;\r\n}\r\n\r\n.absol-draggable-vstack-clone-container.home-going {\r\n transition: top 0.2s;\r\n}\r\n\r\n.absol-draggable-vstack-dest-line {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n border-top: solid 3px rgb(74, 174, 233);\r\n border-bottom: solid 3px rgb(74, 174, 233);\r\n z-index: 99;\r\n transition: top 0.1s;\r\n}\r\n", ""]); /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(85); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-chrome-calendar {\r\n display: inline-block;\r\n font-family: Arial;\r\n font-size: 14px;\r\n padding: 0.6em;\r\n border: solid 1px rgb(191, 191, 191);\r\n box-shadow: 1px 1px 2px rgb(240, 240, 240);\r\n z-index: 100;\r\n touch-action: manipulation;\r\n user-select: none;\r\n background-color: rgb(255, 255, 255);\r\n white-space: initial;\r\n}\r\n\r\n\r\n.absol-chrome-calendar-header {\r\n white-space: nowrap;\r\n position: relative;\r\n}\r\n\r\n\r\n.absol-chrome-calendar-title {\r\n display: inline-block;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-chrome-calendar-header-buttons {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n}\r\n\r\n.absol-chrome-calendar-header-buttons>button {\r\n font-size: 1em;\r\n width: 1.5em;\r\n height: 1.5em;\r\n padding: 0;\r\n border-radius: 0.2em;\r\n border: solid 1px rgb(167, 167, 167);\r\n background: linear-gradient(rgb(240, 240, 240), rgb(233, 233, 233), rgb(223, 223, 223));\r\n cursor: pointer;\r\n outline: none;\r\n box-shadow: 1px 1px 2px #aaa;\r\n color: rgb(110, 110, 110);\r\n}\r\n\r\n.absol-chrome-calendar-header-buttons>button:nth-child(2) {\r\n margin-left: 0.2em;\r\n margin-right: 0.2em;\r\n}\r\n\r\n\r\n.absol-chrome-calendar-header-buttons>button:active {\r\n box-shadow: 0px 0px 2px #aaa;\r\n\r\n}\r\n\r\n.absol-chrome-calendar-title {\r\n cursor: pointer;\r\n}\r\n\r\n.absol-chrome-calendar-title>span {\r\n line-height: 1.5em;\r\n}\r\n\r\n.absol-chrome-calendar-instance {\r\n margin-top: 1em;\r\n border: solid 1px rgb(190, 190, 190);\r\n width: 14em;\r\n position: relative;\r\n height: calc(8.4em + 3px);\r\n overflow: hidden;\r\n /*border*/\r\n}\r\n\r\n.absol-chrome-calendar-dayofweek {\r\n background-color: rgb(241, 241, 241);\r\n height: 1.2em;\r\n white-space: nowrap;\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n z-index: 10;\r\n}\r\n\r\n.absol-chrome-calendar-dayofweek>div {\r\n text-align: center;\r\n line-height: 1.2;\r\n display: inline-block;\r\n width: 14.2857142857%;\r\n border-bottom: solid 1px rgb(191, 191, 191);\r\n box-sizing: border-box;\r\n}\r\n\r\n.absol-chrome-calendar-month-animation-container {\r\n position: absolute;\r\n transition: top 0.2s;\r\n}\r\n\r\n.absol-chrome-calendar-month-animation-container.old {\r\n z-index: 7;\r\n /* background: red; */\r\n}\r\n\r\n.absol-chrome-calendar-month-animation-container.new {\r\n z-index: 8;\r\n /* background: blue; */\r\n}\r\n\r\n.absol-chrome-calendar-month-animation-container>.absol-chrome-calendar-month {\r\n width: 100%;\r\n height: 100%;\r\n margin-top: -1px;\r\n}\r\n\r\n\r\n.absol-chrome-calendar-month {\r\n display: table;\r\n width: 100%;\r\n margin-top: 1.2em;\r\n background-color: white;\r\n /*for header*/\r\n}\r\n\r\n.absol-chrome-calendar-week-in-mounth {\r\n display: table-row;\r\n height: 1.2em;\r\n}\r\n\r\n.absol-chrome-calendar-week-in-mounth>div {\r\n display: table-cell;\r\n text-align: right;\r\n padding-right: 0.4em;\r\n cursor: pointer;\r\n}\r\n\r\n.absol-chrome-calendar-week-in-mounth>div:hover {\r\n background-color: rgb(224, 245, 256);\r\n}\r\n\r\n\r\n.absol-chrome-calendar-not-in-month {\r\n color: rgb(190, 190, 190);\r\n}\r\n\r\n.absol-chrome-calendar-today {\r\n border: inset 1px rgb(191, 191, 191);\r\n box-sizing: border-box;\r\n}\r\n\r\n.absol-chrome-calendar-selected {\r\n background-color: rgb(188, 205, 236);\r\n}\r\n\r\n.absol-chrome-calendar-years {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n\r\n.absol-chrome-calendar:not(.view-year) .absol-chrome-calendar-years {\r\n /* display: none; */\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n z-index: -10000;\r\n opacity: 0;\r\n visibility: hidden;\r\n}\r\n\r\n.absol-chrome-calendar.view-year .absol-chrome-calendar-instance {\r\n border-color: rgb(77, 114, 254)\r\n}\r\n\r\n.absol-chrome-calendar:not(.view-month) .absol-chrome-calendar-month,\r\n.absol-chrome-calendar:not(.view-month) .absol-chrome-calendar-dayofweek {\r\n display: none;\r\n}\r\n\r\n.absol-chrome-calendar:not(.view-month) .absol-chrome-calendar-title {\r\n color: rgb(191, 191, 191);\r\n}\r\n\r\n\r\n.absol-chrome-calendar-year {\r\n overflow: hidden;\r\n}\r\n\r\n\r\n.absol-chrome-calendar-year-head {\r\n background-color: rgb(241, 241, 241);\r\n border-bottom: solid 1px rgb(191, 191, 191);\r\n height: 1.5em;\r\n text-align: center;\r\n line-height: 1.5em;\r\n}\r\n\r\n\r\n.absol-chrome-calendar-year:last-child .absol-chrome-calendar-year-head {\r\n border-bottom: solid 1px rgb(191, 191, 191);\r\n}\r\n\r\n.absol-chrome-calendar-year.start-opening .absol-chrome-calendar-year-mounths,\r\n.absol-chrome-calendar-year.closing .absol-chrome-calendar-year-mounths {\r\n margin-bottom: -6em;\r\n transition: margin-bottom linear 0.1s;\r\n}\r\n\r\n.absol-chrome-calendar-year.opening .absol-chrome-calendar-year-mounths,\r\n.absol-chrome-calendar-year.start-closing .absol-chrome-calendar-year-mounths {\r\n margin-bottom: 0;\r\n transition: margin-bottom linear 0.1s;\r\n\r\n}\r\n\r\n.absol-chrome-calendar-year-mounths {\r\n width: 100%;\r\n display: table;\r\n height: 6em;\r\n border-bottom: solid 1px rgb(191, 191, 191);\r\n}\r\n\r\n.absol-chrome-calendar-year-row-months {\r\n display: table-row;\r\n}\r\n\r\n.absol-chrome-calendar-year-month {\r\n text-align: center;\r\n display: table-cell;\r\n vertical-align: middle;\r\n}\r\n\r\n.absol-chrome-calendar-year-month:hover {\r\n background-color: rgb(224, 245, 256);\r\n}\r\n\r\n\r\n\r\n\r\n.absol-chrome-calendar-years:hover .absol-scrollbar {\r\n opacity: 1;\r\n\r\n}\r\n\r\n.absol-chrome-calendar-years .absol-scrollbar {\r\n background-color: rgba(169, 169, 172, 0.2);\r\n opacity: 0;\r\n transition: opacity 0.2s;\r\n}\r\n\r\n.absol-chrome-calendar-date-disabled {\r\n color: rgb(240, 230, 230);\r\n pointer-events: none;\r\n cursor: not-allowed;\r\n}\r\n\r\nbutton.absol-chrome-calendar-button-disabled {\r\n color: rgb(220, 210, 210);\r\n pointer-events: none;\r\n box-shadow: none;\r\n cursor: not-allowed;\r\n}", ""]); /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(87); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-calendar-input {\r\n font-size: 14px;\r\n width: 7em;\r\n height: 2em;\r\n box-sizing: content-box;\r\n display: inline-block;\r\n vertical-align: middle;\r\n border: solid 1px #d6d6d6;\r\n border-radius: 0.2em;\r\n}\r\n\r\n.absol-calendar-input>input {\r\n text-align: center;\r\n width: 100%;\r\n height: 100%;\r\n outline: none;\r\n cursor: pointer;\r\n border: none;\r\n background: transparent;\r\n}\r\n\r\n.absol-calendar-input>input:hover,\r\n.absol-calendar-input>input:focus {\r\n color: red;\r\n}\r\n\r\n.absol-calendar-input.absol-disabled {\r\n pointer-events: none;\r\n}\r\n\r\n.absol-calendar-input.absol-disabled input {\r\n color: rgb(169, 169, 171);\r\n}", ""]); /***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(89); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 89 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".absol-debug-task {\r\n position: fixed;\r\n right: 10px;\r\n bottom: 10px;\r\n z-index: 999999;\r\n border-radius: 4px;\r\n background: rgba(169, 169, 171, 0.3);\r\n border: solid 1px rgba(21, 21, 214, 0.5);\r\n min-width: 45px;\r\n min-height: 30px;\r\n font-size: 12px;\r\n padding: 5px;\r\n pointer-events: none;\r\n}\r\n\r\n.absol-debug-task-name{\r\n color: darkcyan;\r\n}\r\n\r\n.absol-debug-task-value{\r\n color: rgb(159, 8, 197);\r\n}", ""]); /***/ }), /* 90 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(91); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 91 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".as-resize-box {\r\n position: absolute;\r\n z-index: 1;\r\n box-sizing: border-box;\r\n opacity: 0.5;\r\n\r\n}\r\n\r\n.as-resize-box-body {\r\n margin: -1px;\r\n width: calc(100% + 2px);\r\n height: calc(100% + 2px);\r\n position: relative;\r\n box-sizing: border-box;\r\n border: solid 2px rgb(32, 150, 218);\r\n cursor: move;\r\n}\r\n\r\n\r\n.as-resize-box-dot {\r\n position: absolute;\r\n width: 0.4em;\r\n height: 0.4em;\r\n background: rgb(32, 150, 218);\r\n}\r\n\r\n.as-resize-box-dot.left-top {\r\n top: calc(-0.2em - 1px);\r\n left: calc(-0.2em - 1px);\r\n cursor: nw-resize;\r\n}\r\n\r\n.as-resize-box-dot.left-bottom {\r\n bottom: calc(-0.2em - 1px);\r\n left: calc(-0.2em - 1px);\r\n cursor: sw-resize;\r\n}\r\n\r\n.as-resize-box-dot.left {\r\n top: calc(50% - 0.2em);\r\n left: calc(-0.2em - 1px);\r\n cursor: w-resize;\r\n}\r\n\r\n.as-resize-box-dot.top {\r\n top: calc(-0.2em - 1px);\r\n left: calc(50% - 0.2em);\r\n cursor: n-resize;\r\n}\r\n\r\n.as-resize-box-dot.bottom {\r\n bottom: calc(-0.2em - 1px);\r\n left: calc(50% - 0.2em);\r\n cursor: s-resize;\r\n}\r\n\r\n.as-resize-box-dot.right-top {\r\n top: calc(-0.2em - 1px);\r\n right: calc(-0.2em - 1px);\r\n cursor: ne-resize;\r\n}\r\n\r\n.as-resize-box-dot.right-bottom {\r\n bottom: calc(-0.2em - 1px);\r\n right: calc(-0.2em - 1px);\r\n cursor: se-resize;\r\n}\r\n\r\n\r\n.as-resize-box-dot.right {\r\n top: calc(50% - 0.2em);\r\n right: calc(-0.2em - 1px);\r\n cursor: e-resize;\r\n}\r\n\r\n.as-resize-box-overiding .as-resize-box-dot,\r\n.as-resize-box-overiding .as-resize-box-body {\r\n cursor: unset;\r\n}\r\n\r\n.as-resize-box-overiding.body {\r\n cursor: move;\r\n}\r\n\r\n\r\n.as-resize-box-overiding.left-top {\r\n cursor: nw-resize;\r\n}\r\n\r\n.as-resize-box-overiding.left-bottom {\r\n cursor: sw-resize;\r\n}\r\n\r\n.as-resize-box-overiding.left {\r\n cursor: w-resize;\r\n}\r\n\r\n.as-resize-box-overiding.top {\r\n cursor: n-resize;\r\n}\r\n\r\n.as-resize-box-overiding.bottom {\r\n cursor: s-resize;\r\n}\r\n\r\n.as-resize-box-overiding.right-top {\r\n cursor: ne-resize;\r\n}\r\n\r\n.as-resize-box-overiding.right-bottom {\r\n cursor: se-resize;\r\n}\r\n\r\n\r\n.as-resize-box-overiding.right {\r\n cursor: e-resize;\r\n}\r\n\r\nbody.as-resize-box-overiding-overide.right {\r\n cursor: e-resize;\r\n}", ""]); /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(93); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 93 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".as-hline {\r\n position: absolute;\r\n pointer-events: none;\r\n opacity: 0.5;\r\n\r\n}\r\n\r\n.as-hline-body {\r\n position: relative;\r\n border-top: solid 2px rgb(55, 180, 159);\r\n box-sizing: border-box;\r\n width: 100%;\r\n margin-top: -1px;\r\n margin-bottom: -1px; \r\n\r\n}\r\n\r\n.as-hline-dot {\r\n position: absolute;\r\n top: calc(-0.2em - 1px);\r\n height: 0.4em;\r\n width: 0.4em;\r\n background-color: rgb(55, 180, 159);\r\n}\r\n\r\n\r\n.as-hline-dot.left {\r\n left: -0.2em;\r\n}\r\n\r\n\r\n.as-hline-dot.right {\r\n right: -0.2em;\r\n}", ""]); /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(95); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 95 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, ".as-vline {\r\n position: absolute;\r\n pointer-events: none;\r\n opacity: 0.5;\r\n\r\n}\r\n\r\n.as-vline-body {\r\n position: relative;\r\n border-left: solid 2px rgb(55, 180, 159);\r\n box-sizing: border-box;\r\n height: 100%;\r\n margin-left: -1px;\r\n margin-right: -1px;\r\n\r\n}\r\n\r\n.as-vline-dot {\r\n position: absolute;\r\n left: calc(-0.2em - 1px);\r\n height: 0.4em;\r\n width: 0.4em;\r\n background-color: rgb(55, 180, 159);\r\n}\r\n\r\n\r\n.as-vline-dot.top {\r\n top: -0.2em;\r\n}\r\n\r\n\r\n.as-vline-dot.bottom {\r\n bottom: -0.2em;\r\n}", ""]); /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(97); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, "/*margin for border size*/\r\n.as-hruler {\r\n position: relative;\r\n height: 1.5em;\r\n border: solid 1px black;\r\n margin: -1px;\r\n overflow: hidden;\r\n font-family: courier, \"courier new\", monospace;\r\n}\r\n\r\n\r\n.as-hruler-line {\r\n position: absolute;\r\n bottom: 0;\r\n height: 25%;\r\n border-left: solid 1px rgb(17, 48, 43);\r\n\r\n}\r\n\r\n.as-hruler-line.major {\r\n height: 50%;\r\n border-left: solid 1px rgb(5, 20, 18);\r\n}\r\n\r\n.as-hruler-major-number{\r\n position: absolute;\r\n text-align: center;\r\n width: 5em;\r\n pointer-events: none;\r\n font-size: 0.7em;\r\n bottom: 52%;\r\n} ", ""]); /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { var content = __webpack_require__(99); if(typeof content === 'string') content = [[module.i, content, '']]; var transform; var insertInto; var options = {"hmr":true} options.transform = transform options.insertInto = undefined; var update = __webpack_require__(5)(content, options); if(content.locals) module.exports = content.locals; if(false) {} /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__(4)(false); // Module exports.push([module.i, "/*margin for border size*/\r\n.as-vruler {\r\n position: relative;\r\n width: 1.5em;\r\n border: solid 1px black;\r\n margin: -1px;\r\n overflow: hidden;\r\n font-family: courier, \"courier new\", monospace;\r\n}\r\n\r\n\r\n.as-vruler-line {\r\n position: absolute;\r\n right: 0;\r\n width: 25%;\r\n border-top: solid 1px rgb(17, 48, 43);\r\n\r\n}\r\n\r\n.as-vruler-line.major {\r\n width: 50%;\r\n border-top: solid 1px rgb(5, 20, 18);\r\n}\r\n\r\n.as-vruler-major-number {\r\n position: absolute;\r\n text-align: center;\r\n width: 5em;\r\n pointer-events: none;\r\n font-size: 0.7em;\r\n right: calc(52% - 2em);\r\n height: 1em;\r\n transform-origin: center;\r\n \r\n -webkit-transform:rotate(90deg);\r\n -moz-transform:rotate(90deg);\r\n -o-transform: rotate(90deg);\r\n -ms-transform:rotate(90deg);\r\n transform: rotate(-90deg);\r\n}", ""]); /***/ }), /* 100 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./css/base.css var base = __webpack_require__(13); // EXTERNAL MODULE: ./css/layouteditor.css var layouteditor = __webpack_require__(16); // EXTERNAL MODULE: ./node_modules/absol-acomp/ACore.js var ACore = __webpack_require__(0); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/IconButton.js var IconButton_ = ACore["a" /* default */]._; var IconButton_$ = ACore["a" /* default */].$; function IconButton() { var res = IconButton_({ tag: "button", class: ['absol-icon-button'], child: ['.absol-icon-button-icon-container', '.absol-icon-button-text-container'] }); res.$iconContainer = IconButton_$('.absol-icon-button-icon-container', res); res.$textContainer = IconButton_$('.absol-icon-button-text-container', res); res.sync = res.afterAttached(); return res; }; IconButton.prototype.addChild = function (child) { if (child instanceof Array) { child.forEach(function () { this.addChild(child); }.bind(this)); } else { if (!this.$iconContainerChild) { this.$iconContainerChild = child; this.$iconContainer.addChild(child); this.sync = this.sync.then(this.updateTextPosition.bind(this)); } else if (!this.$textContainerChild) { this.$textContainerChild = child; this.$textContainer.addChild(child); this.sync = this.sync.then(this.updateTextPosition.bind(this)); } } return this; }; IconButton.prototype.updateTextPosition = function () { var heightStyle = parseFloat(this.getComputedStyleValue('height').replace('px', '')); var iconContainerHeightStyle = parseFloat(this.$iconContainerChild.getComputedStyleValue('height').replace('px', '')); if (heightStyle - iconContainerHeightStyle > 0) { this.$iconContainer.addStyle({ width: heightStyle + 'px', height: heightStyle + 'px' }); this.addStyle('line-height', heightStyle - 2 + 'px'); this.$textContainer.addStyle({ 'height': heightStyle + 'px', 'line-height': heightStyle + 'px' }); } if (this.$textContainerChild) { var textContainerBound = this.$textContainer.getBoundingClientRect(); var bound = this.getBoundingClientRect(); if (textContainerBound.right < bound.right - 2) { this.$textContainer.addStyle('width', textContainerBound.width + (bound.right - 2 - textContainerBound.right) + 'px'); } } } IconButton.prototype.clearChild = function () { res.$iconContainer.clearChild(); res.$textContainer.clearChild(); this.$textContainerChild = undefined; this.$iconContainerChild = undefined; return this; }; ACore["a" /* default */].creator.iconbutton = IconButton; // EXTERNAL MODULE: ./node_modules/absol-acomp/css/iconbutton.css var iconbutton = __webpack_require__(18); // EXTERNAL MODULE: ./node_modules/absol/src/HTML5/Dom.js + 2 modules var Dom = __webpack_require__(1); // EXTERNAL MODULE: ./node_modules/absol/src/HTML5/OOP.js var OOP = __webpack_require__(2); // EXTERNAL MODULE: ./node_modules/absol/src/HTML5/Element.js var Element = __webpack_require__(6); // CONCATENATED MODULE: ./node_modules/absol/src/Math/int.js /** * * @param {number} x * @param {number} l * @param {number} h * @param {number} L * @param {number} H * @returns {number} */ function map(x, l, h, L, H) { return (x - l) / (h - l) * (H - L) + L; } function sumArr(arr) { var res = 0; for (var i = 0; i < arr.length; ++i) res += arr[i]; return res; } function radianInRange(x, start, end) { if (start > end) return radianInRange(x, end, start); if (x < start) x += (Math.PI * 2) * Math.ceil((start - x) / 2 / Math.PI); if (x > end) x -= (Math.PI * 2) * Math.ceil((x - end) / 2 / Math.PI); return x >= start && x <= end; } function distance(x0, y0, x1, y1) { var dx = x0 - x1; var dy = y0 - y1; return Math.sqrt(dx * dx + dy * dy); } // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Scroller.js var Scroller_ = ACore["a" /* default */]._; var Scroller_$ = ACore["a" /* default */].$; ACore["a" /* default */].$scrollStyle = (function () { var element = Scroller_('style#vscroller-style'); element.innerHTML = [ '.absol-vscroller-viewport{ margin-right: ' + (-17) + 'px; min-width: calc(100% + ' + (17) + 'px);}', '.absol-hscroller-viewport{ margin-bottom: ' + (-17) + 'px; min-height: calc(100% + ' + (17) + 'px);}' ].join('\n'); document.head.appendChild(element); Dom["a" /* default */].getScrollSize().then(function (size) { element.innerHTML = [ '.absol-vscroller-viewport{ margin-right: ' + (-size.width) + 'px; min-width: calc(100% + ' + (size.width) + 'px);}', '.absol-hscroller-viewport{ margin-bottom: ' + (-size.height) + 'px; min-height: calc(100% + ' + (size.height) + 'px);}' ].join('\n'); }); return element; } )(); function VScroller() { var res = Scroller_({ class: 'absol-vscroller', child: ['.absol-vscroller-viewport', { class: ['absol-scrollbar-container', 'vertical'], child: 'vscrollbar' } ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, VScroller.eventHandler); res.$attachHook = Scroller_('attachhook').addTo(res); res.sync = new Promise(function(rs){ res.$attachHook.once('error', function(){ rs(); }); }); res.$attachHook.on('error', function(){ res.requestUpdateSize(); }); res.$vscrollbar = Scroller_$('vscrollbar', res).on('scroll', res.eventHandler.scrollScrollbar); res.$viewport = Scroller_$('.absol-vscroller-viewport', res) .on('scroll', res.eventHandler.scrollViewport); OOP["a" /* default */].extends(res.$viewport, { removeChild: function () { this.super.apply(this, arguments); res.requestUpdateSize(); return res; } }) return res; }; VScroller.prototype.requestUpdateSize = function () { // return; if (this._isRequestingUpdateSize) return this.sync; this._isRequestingUpdateSize = true; this.sync = this.sync.then(function () { this.$vscrollbar.outerHeight = this.$viewport.clientHeight; this.$vscrollbar.innerHeight = this.$viewport.scrollHeight - 2; this.$vscrollbar.innerOffset = this.$viewport.scrollTop; if (this.$vscrollbar.innerHeight <= this.$vscrollbar.outerHeight) { this.$vscrollbar.hidden = true; this.addClass('disabled'); } else { this.removeClass('disabled'); this.$vscrollbar.hidden = false; } this._isRequestingUpdateSize = false; }.bind(this)); return this.sync; }; VScroller.prototype.init = function (props) { this.super(props); this.requestUpdateSize(); }; VScroller.prototype.addChild = function () { var res = this.$viewport.addChild.apply(this.$viewport, arguments); this.requestUpdateSize(); return res; }; VScroller.prototype.clearChild = function () { var res = this.$viewport.clearChild.apply(this.$viewport, arguments); this.requestUpdateSize(); return res; }; VScroller.prototype.addChildBefore = function () { var res = this.$viewport.addChildBefore.apply(this.$viewport, arguments); this.requestUpdateSize(); return res; }; VScroller.prototype.addChildAfter = function () { var res = this.$viewport.addChildAfter.apply(this.$viewport, arguments); this.requestUpdateSize(); return res; }; VScroller.prototype.findChildAfter = function () { return this.$viewport.findChildAfter.apply(this.$viewport, arguments); }; VScroller.prototype.findChildBefore = function () { return this.$viewport.findChildBefore.apply(this.$viewport, arguments); }; VScroller.prototype.removeChild = function () { var res = this.$viewport.removeChild.apply(this.$viewport, arguments); this.requestUpdateSize(); return res; }; VScroller.prototype.scrollInto = function (element, padding, scrollTime, beforFrame, afterFrame) { padding = padding || 0; scrollTime = scrollTime || 0; var frameCount = Math.ceil(scrollTime / 15 + 1); var self = this; function onFrame() { beforFrame && beforFrame(); var elementBound = element.getBoundingClientRect(); var viewportBound = self.$viewport.getBoundingClientRect(); var currentScrollTop = self.$viewport.scrollTop; var newScrollTop = currentScrollTop; if (elementBound.bottom + padding > viewportBound.bottom) { newScrollTop = currentScrollTop + ((elementBound.bottom + padding) - viewportBound.bottom) / (Math.log(frameCount) + 1); } if (elementBound.top - padding < viewportBound.top) { newScrollTop = currentScrollTop - (viewportBound.top - (elementBound.top - padding)) / (Math.log(frameCount) + 1); } if (newScrollTop != currentScrollTop) { self.$viewport.scrollTop = newScrollTop; } afterFrame && afterFrame(); frameCount--; if (frameCount > 0) setTimeout(onFrame, 15) } if (Element["a" /* default */].prototype.isDescendantOf.call(element, this.$viewport)) { onFrame(); } }; VScroller.prototype.scrollBy = function (dy, duration) { duration = duration || 0; var frameCount = Math.ceil(duration / 20); var timeOut = duration/frameCount; var i = 0; var self = this; var start = self.$viewport.scrollTop; var end = start + dy; function onFrame() { self.$viewport.scrollTop = Math.max(map(i, 0, frameCount, start, end), 0); ++i; if (i <= frameCount) setTimeout(onFrame, timeOut); } onFrame(); }; VScroller.eventHandler = {}; VScroller.eventHandler.scrollViewport = function (event) { this.$vscrollbar.outerHeight = this.$viewport.clientHeight; this.$vscrollbar.innerHeight = this.$viewport.scrollHeight; this.$vscrollbar.innerOffset = this.$viewport.scrollTop; }; VScroller.eventHandler.scrollScrollbar = function (event) { this.$viewport.scrollTop = this.$vscrollbar.innerOffset; }; function HScroller() { var res = Scroller_({ class: 'absol-hscroller', child: ['.absol-hscroller-viewport', { class: ['absol-scrollbar-container', 'horizontal'], child: 'hscrollbar' } ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, HScroller.eventHandler); res.sync = res.afterAttached(); res.$hscrollbar = Scroller_$('hscrollbar', res).on('scroll', res.eventHandler.scrollScrollbar); res.$viewport = Scroller_$('.absol-hscroller-viewport', res) .on('scroll', res.eventHandler.scrollViewport); OOP["a" /* default */].extends(res.$viewport, { removeChild: function () { this.super.apply(this, arguments); res.requestUpdateSize(); return res; } }) return res; }; HScroller.eventHandler = {}; HScroller.eventHandler.scrollViewport = function (event) { this.$hscrollbar.outerWidth = this.$viewport.clientWidth; this.$hscrollbar.innerWidth = this.$viewport.scrollWidth; this.$hscrollbar.innerOffset = this.$viewport.scrollLeft; }; HScroller.eventHandler.scrollScrollbar = function (event) { this.$viewport.scrollLeft = this.$hscrollbar.innerOffset; }; Object.assign(HScroller.prototype, VScroller.prototype); HScroller.prototype.requestUpdateSize = function () { // return; if (this._isRequestingUpdateSize) return this.sync; this._isRequestingUpdateSize = true; this.sync = this.sync.then(function () { this.$hscrollbar.outerWidth = this.$viewport.clientWidth; this.$hscrollbar.innerWidth = this.$viewport.scrollWidth - 2; this.$hscrollbar.innerOffset = this.$viewport.scrollLeft; if (this.$hscrollbar.innerWidth <= this.$hscrollbar.outerWidth) { this.$hscrollbar.hidden = true; this.addClass('disabled'); } else { this.removeClass('disabled'); this.$hscrollbar.hidden = false; } this._isRequestingUpdateSize = false; }.bind(this)); return this.sync; }; HScroller.prototype.scrollInto = function (element) { if (Element["a" /* default */].prototype.isDescendantOf.call(element, this.$viewport)) { var elementBound = element.getBoundingClientRect(); var viewportBound = this.$viewport.getBoundingClientRect(); var currentScrollLeft = this.$viewport.scrollLeft; var newScrollLeft = currentScrollLeft; if (elementBound.right > viewportBound.right) { newScrollLeft = currentScrollLeft + (elementBound.right - viewportBound.right); } if (elementBound.left < viewportBound.left) { newScrollLeft = currentScrollLeft - (viewportBound.left - elementBound.left); } if (newScrollLeft != currentScrollLeft) { this.$viewport.scrollLeft = newScrollLeft; } } } function Scrollbar() { var res = Scroller_({ class: ['absol-scrollbar', 'absol-hidden'], extendEvent: 'scroll', child: '.absol-scrollbar-button' }); res.$button = Scroller_$('.absol-scrollbar-button', res); return res; }; Scrollbar.property = {}; Scrollbar.property.hidden = { set: function (value) { value = !!value; if (value != this._hidden) { this._hidden = value; if (value) this.addClass('absol-hidden'); else this.removeClass('absol-hidden'); } }, get: function () { return this.containsClass('absol-hidden') } }; function VScrollbar() { var res = Scroller_({ tag: 'scrollbar', }); var body = Scroller_$(document.body); var top0, innerOffset0; var pointerMoveEventHandler = function (event) { event.preventDefault(); var dy = event.clientY - top0; var newInnerOffset = innerOffset0 + dy * (res.innerHeight / res.outerHeight) * (res.outerHeight / res.getBoundingClientRect().height); if (newInnerOffset + res.outerHeight > res.innerHeight) newInnerOffset = res.innerHeight - res.outerHeight; if (newInnerOffset < 0) newInnerOffset = 0; res.innerOffset = newInnerOffset; //todo event.innerOffset = newInnerOffset; res.emit('scroll', event); }; var finishEventHandler = function (event) { body.off('pointerleave', finishEventHandler); body.off('pointerup', finishEventHandler); body.off('pointermove', pointerMoveEventHandler); }; var pointerDownEventHandler = function (event) { var boundRes = res.getBoundingClientRect(); var boundButton = res.$button.getBoundingClientRect(); top0 = event.clientY; if (event.target == res.$button) { innerOffset0 = res.innerOffset; } else { var newInnerOffset = map(top0 - boundButton.height / 2 - boundRes.top, 0, boundRes.height, 0, res.innerHeight); if (newInnerOffset + res.outerHeight > res.innerHeight) newInnerOffset = res.innerHeight - res.outerHeight; if (newInnerOffset < 0) newInnerOffset = 0; res.innerOffset = newInnerOffset; //todo event.innerOffset = newInnerOffset; innerOffset0 = newInnerOffset; res.emit('scroll', event); } body.on('pointerleave', finishEventHandler); body.on('pointerup', finishEventHandler); body.on('pointermove', pointerMoveEventHandler); }; res.on('pointerdown', pointerDownEventHandler, true); return res; }; VScrollbar.prototype.updateValue = function () { this.$button.addStyle('height', Math.min(this.outerHeight / this.innerHeight, 1) * 100 + '%'); this.$button.addStyle('top', this.innerOffset / this.innerHeight * 100 + '%'); }; VScrollbar.property = { innerOffset: { set: function (value) { value = value || 0; if (this._innerOffset != value) { this._innerOffset = value; this.updateValue(); } }, get: function () { return this._innerOffset || 0; } }, innerHeight: { set: function (value) { value = value || 1; value = Math.max(value, 1); if (this._innerHeight != value) { this._innerHeight = value; this.updateValue(); } }, get: function () { return this._innerHeight || 1; } }, outerHeight: { set: function (value) { value = value || 0; value = Math.max(value, 0); if (this._outerHeight != value) { this._outerHeight = value; this.updateValue(); } }, get: function () { return this._outerHeight || 0; } } }; function HScrollbar() { var res = Scroller_({ tag: 'scrollbar', }); var body = Scroller_$('body'); var left0, innerOffset0; var pointerMoveEventHandler = function (event) { event.preventDefault(); var dy = event.clientX - left0; var newInnerOffset = innerOffset0 + dy * (res.innerWidth / res.outerWidth) * (res.outerWidth / res.getBoundingClientRect().width); if (newInnerOffset + res.outerWidth > res.innerWidth) newInnerOffset = res.innerWidth - res.outerWidth; if (newInnerOffset < 0) newInnerOffset = 0; res.innerOffset = newInnerOffset; //todo event.innerOffset = newInnerOffset; res.emit('scroll', event); }; var finishEventHandler = function (event) { body.off('pointerleave', finishEventHandler); body.off('pointerup', finishEventHandler); body.off('pointermove', pointerMoveEventHandler); }; var pointerDownEventHandler = function (event) { var boundRes = res.getBoundingClientRect(); var boundButton = res.$button.getBoundingClientRect(); left0 = event.clientX; if (event.target == res.$button) { innerOffset0 = res.innerOffset; } else { var newInnerOffset = map(left0 - boundButton.width / 2 - boundRes.left, 0, boundRes.width, 0, res.innerWidth); if (newInnerOffset + res.outerWidth > res.innerWidth) newInnerOffset = res.innerWidth - res.outerWidth; if (newInnerOffset < 0) newInnerOffset = 0; res.innerOffset = newInnerOffset; //todo event.innerOffset = newInnerOffset; innerOffset0 = newInnerOffset; res.emit('scroll', event); } body.on('pointerleave', finishEventHandler); body.on('pointerup', finishEventHandler); body.on('pointermove', pointerMoveEventHandler); }; res.on('pointerdown', pointerDownEventHandler, true); return res; } HScrollbar.prototype.updateValue = function () { this.$button.addStyle('width', Math.min(this.outerWidth / this.innerWidth, 1) * 100 + '%'); this.$button.addStyle('left', this.innerOffset / this.innerWidth * 100 + '%'); }; HScrollbar.property = { innerOffset: { set: function (value) { value = value || 0; if (this._innerOffset != value) { this._innerOffset = value; this.updateValue(); } }, get: function () { return this._innerOffset || 0; } }, innerWidth: { set: function (value) { value = value || 1; value = Math.max(value, 1); if (this._innerWidth != value) { this._innerWidth = value; this.updateValue(); } }, get: function () { return this._innerWidth || 1; } }, outerWidth: { set: function (value) { value = value || 0; value = Math.max(value, 0); if (this._outerWidth != value) { this._outerWidth = value; this.updateValue(); } }, get: function () { return this._outerWidth || 0; } } }; ACore["a" /* default */].creator.vscrollbar = VScrollbar; ACore["a" /* default */].creator.hscrollbar = HScrollbar; ACore["a" /* default */].creator.scrollbar = Scrollbar; ACore["a" /* default */].creator.vscroller = VScroller; ACore["a" /* default */].creator.hscroller = HScroller; // EXTERNAL MODULE: ./node_modules/absol-acomp/css/scroller.css var scroller = __webpack_require__(20); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Searcher.js var Searcher_ = ACore["a" /* default */]._; var Searcher_$ = ACore["a" /* default */].$; ACore["a" /* default */].creator['find-ico'] = function () { var res = Searcher_( '<svg class="find" width="100mm" height="100mm" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">' + ' <g transform="matrix(-1 0 0 1 99.478 -193.73)">' + ' <path d="m62.128 199.18c-18.859 0-34.148 15.289-34.148 34.148 0 5.4138 1.26 10.533 3.5026 15.081 0.6886 1.3965 1.4698 2.7392 2.3357 4.02-1.9962 2.1685-31.467 31.596-31.404 33.295 0.21757 5.8346 4.9404 8.7289 9.464 7.855 1.3264-0.25627 30.938-30.639 31.774-31.529 1.3906 0.89633 2.8508 1.6948 4.3702 2.3848 4.2995 1.9526 9.0756 3.04 14.105 3.04 18.859 0 34.147-15.288 34.147-34.147 3e-6 -18.859-15.288-34.148-34.147-34.148zm0.49444 8.2454a26.067 26.067 0 0 1 26.068 26.067 26.067 26.067 0 0 1-26.068 26.068 26.067 26.067 0 0 1-26.067-26.068 26.067 26.067 0 0 1 26.067-26.067z"/>' + ' </g>' + '</svg>' ); return res; }; ACore["a" /* default */].creator['times-circle-ico'] = function () { var res = Searcher_( '<svg class="times" width="100mm" height="100mm" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">\ <g transform="translate(0,-197)">\ <path d="m49.979 236.2-14.231-14.231-10.696 10.696 14.257 14.257-14.351 14.351 10.737 10.737 14.292-14.292 14.292 14.292 10.761-10.761-14.257-14.257 14.316-14.316-10.725-10.725zm50.021 10.804a50 50 0 0 1-50 50 50 50 0 0 1-50-50 50 50 0 0 1 50-50 50 50 0 0 1 50 50z" />\ </g>\ </svg>' ); return res; }; function SearchTextInput() { var res = Searcher_( { class: 'absol-search-text-input', child: [ { class: 'absol-search-text-input-container', child: { tag: 'input', attr: { placeholder: 'search...' } } }, { class: 'absol-search-text-button-container', child: { tag: 'button', child: ['find-ico', 'times-circle-ico'] } } ] } ); res.defineEvent(['change', 'modify', 'stoptyping']); res.eventHandler = OOP["a" /* default */].bindFunctions(res, SearchTextInput.eventHandler); res.$button = Searcher_$('button', res); res.$input = Searcher_$('input', res); res.$input.on('change', res.eventHandler.inputChange); res.$input.on('keyup', res.eventHandler.inputKeyUp); res.$button.on('click', function (event) { res.$input.value = ''; res.eventHandler.inputKeyUp(event); setTimeout(function () { res.focus(); }, 50); }); return res; }; SearchTextInput.property = { value: { set: function (value) { value = value || ''; this.$input.value = value; this._lastTextModified = value; if (this.value.length > 0) { this.addClass('searching'); } else { this.removeClass('searching'); } }, get: function () { return this.$input.value; } }, placeholder: { set: function (value) { this.$input.attr('placeholder', value); }, get: function () { return this.$placeholder.getAttribute('placeholder'); } } }; SearchTextInput.prototype.focus = function () { this.$input.focus(); }; SearchTextInput.prototype.blur = function () { this.$input.blur(); }; SearchTextInput.eventHandler = {}; SearchTextInput.eventHandler.inputChange = function (event) { event.value = this.value; if (typeof this.onchange == 'function') { this.onchange(event, this); } this.emit('change', event); }; SearchTextInput.eventHandler.inputKeyUp = function (event) { if (this._lastTextModified != this.value) { if (this.value.length > 0) { this.addClass('searching'); } else { this.removeClass('searching'); } event.value = this.value; if (typeof this.onchange == 'function') { this.onchange(event, this); } this.emit('modify', event); if (this._updateTimeOut !== undefined) { clearTimeout(this._updateTimeOut); this._updateTimeOut = undefined; } this._updateTimeOut = setTimeout(function () { this.emit('stoptyping', event); }.bind(this), 500); this._lastTextModified = this.value; } }; ACore["a" /* default */].creator.searchcrosstextinput = function () { var res = Searcher_('searchtextinput', true); return res; }; ACore["a" /* default */].creator.searchtextinput = SearchTextInput; // EXTERNAL MODULE: ./node_modules/absol-acomp/css/searcher.css var searcher = __webpack_require__(22); // EXTERNAL MODULE: ./node_modules/absol/src/HTML5/EventEmitter.js var EventEmitter = __webpack_require__(3); // CONCATENATED MODULE: ./node_modules/absol/src/String/stringMatching.js /** * * @param {String} a * @param {String} b */ function wordLike(a, b) { var m = a.length; var n = b.length; function map(i, j) { return i * (n + 1) + j; } var Q = Array((m + 1) * (n + 1)).fill(0); for (var i = 0; i < m; ++i) for (var j = 0; j < n; ++j) if (a.charAt(i) == b.charAt(j)) { if (Q[map(i + 1, j + 1)]) { if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + 1) Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1; } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1; } else Q[map(i + 1, j + 1)] = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]); return Q[map(m, n)] / Math.max(m, n); } /** * * @param {Array<String>} sq1 * @param {Array<String>} sq2 */ function wordsMatch(sq1, sq2, matchWordPow) { matchWordPow = matchWordPow === undefined ? 1 : matchWordPow; var m = sq1.length; var n = sq2.length; function map(i, j) { return i * (n + 1) + j; } var Q = Array((m + 1) * (n + 1)).fill(0); var e = 0.0; for (var i = 0; i < m; ++i) for (var j = 0; j < n; ++j) { e = Math.pow(wordLike(sq1[i], sq2[j]), matchWordPow); if (Q[map(i + 1, j + 1)]) { if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + e) Q[map(i + 1, j + 1)] = Q[map(i, j)] + e; } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + e; e = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]); if (e > Q[map(i + 1, j + 1)]) Q[map(i + 1, j + 1)] = e; } return Q[map(m, n)]; } function phraseMatch(a, b, matchWordPow) { matchWordPow = matchWordPow || 1; var spliter = /[\s,-\.+?\_]+/; var notEmp = function (e) { return e.length > 0; }; var sq1 = a.toLowerCase().split(spliter).filter(notEmp); var sq2 = b.toLowerCase().split(spliter).filter(notEmp); var wordsMatchScore = wordsMatch(sq1, sq2); var m = sq1.length; var n = sq2.length; return wordsMatchScore / Math.max(Math.min(m, n), 1); }; function phraseLike(a, b, matchWordPow) { matchWordPow = matchWordPow || 1; var spliter = /[\s,-\.+?\_]+/; var notEmp = function (e) { return e.length > 0; }; var sq1 = a.toLowerCase().split(spliter).filter(notEmp); var sq2 = b.toLowerCase().split(spliter).filter(notEmp); var m = sq1.length; var n = sq2.length; var wordsMatchScore = wordsMatch(sq1, sq2); return wordsMatchScore / Math.max(Math.max(m, n), 1); } // EXTERNAL MODULE: ./node_modules/absol/src/String/stringFormat.js var stringFormat = __webpack_require__(7); // CONCATENATED MODULE: ./node_modules/absol/src/HTML5/ElementNS.js function ElementNS() { Element["a" /* default */].call(this); } Object.defineProperties(ElementNS.prototype, Object.getOwnPropertyDescriptors(Element["a" /* default */].prototype)); ElementNS.prototype.attr = function () { if (arguments.length == 1) { if (typeof (arguments[0]) == 'string') { if (this._azar_extendAttributes[arguments[0]]) { return this._azar_extendAttributes[arguments[0]].get.call(this); } else return this.getAttributeNS(null,arguments[0]); } else { for (var key in arguments[0]) { this.attr(key, arguments[0][key]); } } } else { if (arguments.length == 2) { if (arguments[1] === null || arguments[1] === undefined) { if (this._azar_extendAttributes[arguments[0]]) { this._azar_extendAttributes[arguments[0]].remove.call(this, arguments[1]); } else this.removeAttributeNS(null,arguments[0]); } else { if (this._azar_extendAttributes[arguments[0]]) { this._azar_extendAttributes[arguments[0]].set.call(this, arguments[1]); } else{ this.setAttributeNS(null,arguments[0], arguments[1]); } } } } return this; }; /* harmony default export */ var HTML5_ElementNS = (ElementNS); // CONCATENATED MODULE: ./node_modules/absol/src/HTML5/Svg.js function Svg(option) { Dom["a" /* default */].call(this, option); this.defaultTag = 'g'; this.svgNS = "http://www.w3.org/2000/svg"; delete this.buidDom; this.buildSvg = this.create.bind(this); } Object.defineProperties(Svg.prototype, Object.getOwnPropertyDescriptors(Dom["a" /* default */].prototype)); Svg.prototype.fromCode = function (code) { code = code.trim(); var receptacle = document.createElement('div'); var element; var prototypes; if (code.startsWith('<svg')) { receptacle.innerHTML = code; element = receptacle.childNodes[0]; prototypes = Object.getOwnPropertyDescriptors(Element["a" /* default */].prototype); Object.defineProperties(element, prototypes); Element["a" /* default */].call(element); } else { var svgfragment = '<svg version="1.1" xmlns="http://www.w3.org/2000/svg">' + code + '</svg>'; receptacle.innerHTML = '' + svgfragment; element = receptacle.childNodes[0].childNodes[0]; prototypes = Object.getOwnPropertyDescriptors(HTML5_ElementNS.prototype); Object.defineProperties(element, prototypes); HTML5_ElementNS.call(element); } return element; }; Svg.prototype.makeNewElement = function (tagName) { return document.createElementNS(this.svgNS, tagName); }; /** * * @param {Element} element */ Svg.prototype.attach = function (element) { if (typeof element.attr == 'function') return; var prototypes = Object.getOwnPropertyDescriptors(HTML5_ElementNS.prototype); Object.defineProperties(element, prototypes); HTML5_ElementNS.call(element); }; Svg.ShareInstance = new Svg(); Svg.svgToCanvas = function (element) { if (typeof element == 'string') { element = Dom["a" /* default */].ShareInstance.$(element); } if (element && element.tagName == 'svg') { var cssTexts = {}; var depthClone = function (originElt) { var newElt = originElt.cloneNode();//no deep if (!originElt.getAttributeNS) return newElt;//is text node var cssRules = Element["a" /* default */].prototype.getCSSRules.call(originElt); var cssKey = cssRules.reduce(function (ac, rule) { for (var i = 0; i < rule.style.length; ++i) { ac[rule.style[i]] = true; } return ac; }, {}); for (var key in cssKey) { newElt.style[key] = Element["a" /* default */].prototype.getComputedStyleValue.call(originElt, key); } var children = Array.prototype.map.call(originElt.childNodes, depthClone); for (var i = 0; i < children.length; ++i) { newElt.appendChild(children[i]); } return newElt; }; var cloneElement = depthClone(element); var renderSpace = Dom["a" /* default */].ShareInstance._({ style: { // opacity:0, zIndex: -1000, position: 'fixed', top: 0, bottom: 0 } }).addTo(document.body); renderSpace.addChild(cloneElement); var svgCode = renderSpace.innerHTML; renderSpace.clearChild(); var mBlob = new Blob([svgCode], { type: "image/svg+xml;charset=utf-8" }); var src = (URL || webkitURL).createObjectURL(mBlob); var image = Dom["a" /* default */].ShareInstance._('img'); image.attr('src', src) .addTo(renderSpace); var canvas = document.createElement("canvas"); renderSpace.addChild(canvas); return Dom["a" /* default */].waitImageLoaded(image).then(function () { canvas.width = image.width; canvas.height = image.height; var context = canvas.getContext("2d"); context.drawImage(image, 0, 0); renderSpace.selfRemove(); return canvas; }); } else { throw new Error('Element must be svg'); } }; Svg.svgToExportedString = function (element) { if (typeof element == 'string') { element = Dom["a" /* default */].ShareInstance.$(element); } if (element && element.tagName == 'svg') { var cssTexts = {}; var depthClone = function (originElt) { var newElt = originElt.cloneNode();//no deep if (!originElt.getAttributeNS) return newElt;//is text node var cssRules = Element["a" /* default */].prototype.getCSSRules.call(originElt); var cssKey = cssRules.reduce(function (ac, rule) { for (var i = 0; i < rule.style.length; ++i) { ac[rule.style[i]] = true; } return ac; }, {}); for (var key in cssKey) { newElt.style[key] = Element["a" /* default */].prototype.getComputedStyleValue.call(originElt, key); } var children = Array.prototype.map.call(originElt.childNodes, depthClone); for (var i = 0; i < children.length; ++i) { newElt.appendChild(children[i]); } return newElt; }; var cloneElement = depthClone(element); var renderSpace = Dom["a" /* default */].ShareInstance._({ style: { // opacity:0, zIndex: -1000, position: 'fixed', top: 0, bottom: 0 } }).addTo(document.body); renderSpace.addChild(cloneElement); var svgCode = renderSpace.innerHTML; renderSpace.selfRemove(); return svgCode; } else { throw new Error('Element must be svg'); } }; /* harmony default export */ var HTML5_Svg = (Svg); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/BScroller.js var BScroller_ = ACore["a" /* default */]._; var BScroller_$ = ACore["a" /* default */].$; function BScroller(data) { if (data && data.elt) { return BScroller_$(data.elt) } else return BScroller_('.absol-bscroller'); } BScroller.prototype.scrollInto = function (element) { if (Element["a" /* default */].prototype.isDescendantOf.call(element, this)) { var elementBound = element.getBoundingClientRect(); var viewportBound = this.getBoundingClientRect(); var currentScrollTop = this.scrollTop; var newScrollTop = currentScrollTop; if (elementBound.bottom > viewportBound.bottom) { newScrollTop = currentScrollTop + (elementBound.bottom - viewportBound.bottom); } if (elementBound.top < viewportBound.top) { newScrollTop = currentScrollTop - (viewportBound.top - elementBound.top); } if (newScrollTop != currentScrollTop) { this.scrollTop = newScrollTop; } var currentScrollLeft = this.scrollLeft; var newScrollLeft = currentScrollLeft; if (elementBound.right > viewportBound.right) { newScrollLeft = currentScrollLeft + (elementBound.right - viewportBound.right); } if (elementBound.left < viewportBound.left) { newScrollLeft = currentScrollLeft - (viewportBound.left - elementBound.left); } if (newScrollLeft != currentScrollLeft) { this.scrollLeft = newScrollLeft; } } } ACore["a" /* default */].install('bscroller', BScroller); /* harmony default export */ var js_BScroller = (BScroller); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/SelectTable.js var privateDom = new Dom["a" /* default */]().install(ACore["a" /* default */]); var SelectTable_$ = privateDom.$; var SelectTable_ = privateDom._; function SelectTable() { var res = SelectTable_({ class: 'absol-select-table', extendEvent: ['change', 'addall', 'removeall', 'add', 'remove'], child: [ { class: 'absol-select-table-header', child: [ { class: 'absol-select-table-searchtextinput-container', child: 'searchtextinput' }, { class: 'absol-select-table-buttons-container', child: [ { tag: 'button', class: 'add-all', props: { innerHTML: 'Add All' } }, { tag: 'button', class: 'remove-all', props: { innerHTML: 'Remove All' } } ] } ] }, { class: 'absol-select-table-body', child: [ { tag: 'bscroller', attr: { id: 'nonselected' }, class: ['absol-select-table-items-scroller'], child: { child: ['.absol-select-table-nonselected-items-container', '.absol-select-table-nonselected-search-items-container'] } }, { tag: 'bscroller', attr: { id: 'selected' }, class: ['absol-select-table-items-scroller'], child: { child: ['.absol-select-table-selected-items-container', '.absol-select-table-selected-search-items-container'] } } ] } ] }); res.sync = res.afterAttached(); res.eventHandler = OOP["a" /* default */].bindFunctions(res, SelectTable.eventHandler); res.$buttonsContainer = SelectTable_$('.absol-select-table-buttons-container', res); res.$searchContainer = SelectTable_$('.absol-select-table-searchtextinput-container', res); res.$nonselectedItemsContainer = SelectTable_$('.absol-select-table-nonselected-items-container', res); res.$selectedItemsContainer = SelectTable_$('.absol-select-table-selected-items-container', res); res.$nonselectedSearchItemsContainer = SelectTable_$('.absol-select-table-nonselected-search-items-container', res); res.$selectedSearchItemsContainer = SelectTable_$('.absol-select-table-selected-search-items-container', res); res.$removeAllBtn = SelectTable_$('button.remove-all', res).on('click', res.eventHandler.removeAllBtnClick); res.$addAllBtn = SelectTable_$('button.add-all', res).on('click', res.eventHandler.addAllBtnClick); res.$vscrollerSelected = SelectTable_$('bscroller#selected', res) res.$vscrollerNonselected = SelectTable_$('bscroller#nonselected', res); res.$body = SelectTable_$('.absol-select-table-body', res); res.$header = SelectTable_$('.absol-select-table-header', res); res.$searchTextInput = SelectTable_$('searchtextinput', res).on('stoptyping', res.eventHandler.searchTextInputModify); res.$addAllBtn.updateSize = function () { res.updateScroller && res.updateScroller(); }; Dom["a" /* default */].addToResizeSystem(res.$addAllBtn); return res; }; SelectTable.prototype.updateButtonsContainerSize = function () { var rootBound = this.$buttonsContainer.getBoundingClientRect(); var containBound = this.$buttonsContainer.getBoundingRecursiveRect(); var fontSize = this.getFontSize(); this.$buttonsContainer.addStyle('width', (containBound.width + 1) / fontSize + 'em'); this.$searchContainer.addStyle('right', (containBound.width + 5) / fontSize + 'em'); }; SelectTable.prototype.addAll = function () { Array.apply(null, this.$nonselectedItemsContainer.childNodes).forEach(function (e) { e.addTo(this.$selectedItemsContainer); }.bind(this)); this.requestSort(); }; SelectTable.prototype.removeAll = function () { Array.apply(null, this.$selectedItemsContainer.childNodes).forEach(function (e) { e.addTo(this.$nonselectedItemsContainer); }.bind(this)) this.requestSort(); }; SelectTable.prototype.updateScroller = function () { var update = function () { if (this.style.height) { var height = parseFloat(this.getComputedStyleValue('height').replace('px', '')); var headerHeight = parseFloat(this.$header.getComputedStyleValue('height').replace('px', '')); var bodyMargin = parseFloat(this.$body.getComputedStyleValue('margin-top').replace('px', '')); var borderWidth = 1; var availableHeight = height - headerHeight - bodyMargin * 2 - borderWidth * 2; this.$vscrollerNonselected.addStyle('max-height', availableHeight + 'px'); this.$vscrollerSelected.addStyle('max-height', availableHeight + 'px'); } }.bind(this); setTimeout(update, 1); }; SelectTable.prototype.getAllItemElement = function () { var selectedItemElements = Array.apply(null, this.$selectedItemsContainer.childNodes); var nonselectedItemElements = Array.apply(null, this.$nonselectedItemsContainer.childNodes); return selectedItemElements.concat(nonselectedItemElements); }; SelectTable.prototype.init = function (props) { this.super(props); this.sync = this.sync.then(this.updateButtonsContainerSize.bind(this)); }; SelectTable.eventHandler = {}; SelectTable.eventHandler.addAllBtnClick = function (event) { this.addAll(); if (this.searching) { this.eventHandler.searchTextInputModify(event); } this.emit('addall', EventEmitter["a" /* default */].copyEvent(event, {}), this); this.updateScroller(); }; SelectTable.eventHandler.removeAllBtnClick = function (event) { this.removeAll(); if (this.searching) { this.eventHandler.searchTextInputModify(event); } this.emit('removeall', EventEmitter["a" /* default */].copyEvent(event, {}), this); this.updateScroller(); }; SelectTable.prototype._filter = function (items, filterText) { var result = []; if (filterText.length == 1) { result = items.map(function (item) { var res = { item: item, text: typeof item === 'string' ? item : item.text }; return res; }).map(function (it) { it.score = 0; var text = it.text.replace(/((\ )|(\s))+/g, ' ').trim(); it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0; text = Object(stringFormat["b" /* nonAccentVietnamese */])(text); it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0; return it; }); result.sort(function (a, b) { if (b.score - a.score == 0) { if (Object(stringFormat["b" /* nonAccentVietnamese */])(b.text) > Object(stringFormat["b" /* nonAccentVietnamese */])(a.text)) return -1; return 1; } return b.score - a.score; }); result = result.filter(function (x) { return x.score > 0; }); } else { var its = items.map(function (item) { var res = { item: item, text: typeof item === 'string' ? item : item.text }; var text = res.text.replace(/((\ )|(\s))+/g, ' ').trim(); res.score = (phraseMatch(text, filterText) + phraseMatch(Object(stringFormat["b" /* nonAccentVietnamese */])(text), Object(stringFormat["b" /* nonAccentVietnamese */])(filterText))) / 2; if (Object(stringFormat["b" /* nonAccentVietnamese */])(text).replace(/s/g, '').toLowerCase().indexOf(Object(stringFormat["b" /* nonAccentVietnamese */])(filterText).toLowerCase().replace(/s/g, '')) > -1) res.score = 100; return res; }); if (its.length == 0) return; its.sort(function (a, b) { if (b.score - a.score == 0) { if (Object(stringFormat["b" /* nonAccentVietnamese */])(b.text) > Object(stringFormat["b" /* nonAccentVietnamese */])(a.text)) return -1; return 1; } return b.score - a.score; }); var result = its.filter(function (x) { return x.score > 0.5; }); if (result.length == 0) { var bestScore = its[0].score; result = its.filter(function (it) { return it.score + 0.001 >= bestScore; }); } if (result[0].score == 0) result = []; } result = result.map(function (e) { return e.item; }); return result; }; SelectTable.prototype._stringcmp = function (s0, s1) { if (s0 == s1) return 0; if (s0 > s1) return 1; return -1; }; SelectTable.prototype._getString = function (item) { if (typeof item == "string") return item; return item.text; }; SelectTable.prototype._equalArr = function (a, b) { if (a.length != b.length) return false; for (var i = 0; i < a.length; ++i) { if (a[i] != b[i] && a[i].text != b[i].text && a[i].value != b[i].value) return false; } return true; }; SelectTable.prototype._applySort = function (items, sortFlag) { var res = items.slice(); if (sortFlag == 1 || sortFlag === true) { res.sort(function (a, b) { return this._stringcmp(this._getString(a), this._getString(b)) }.bind(this)) } else if (sortFlag == -1) { res.sort(function (a, b) { return - this._stringcmp(this._getString(a), this._getString(b)) }.bind(this)) } else if (typeof sortFlag == 'function') { res.sort(function (a, b) { return sortFlag(a, b) }.bind(this)) } return res; }; SelectTable.prototype.requestSort = function () { if (!this.sorted || this.sorted == 0) return; var selectedItems = this.selectedItems; var selectedItemsNew = this._applySort(selectedItems, this.sorted); if (!this._equalArr(selectedItems, selectedItemsNew)) { this.selectedItems = selectedItemsNew; } var nonselectedItems = this.nonselectedItems; var nonselectedItemsNew = this._applySort(nonselectedItems, this.sorted); if (!this._equalArr(nonselectedItems, nonselectedItemsNew)) { this.nonselectedItems = nonselectedItemsNew; } }; SelectTable.eventHandler.searchTextInputModify = function (event) { var filterText = this.$searchTextInput.value.trim(); if (filterText.length > 0) { var selectedItems = this.selectedItems; var nonselectedItems = this.nonselectedItems; this.selectedSearchItems = selectedItems; this.nonselectedSearchItems = this._filter(nonselectedItems, filterText); this.selectedSearchItems = this._filter(selectedItems, filterText); } else { } this.searching = filterText.length > 0; }; SelectTable.property = {}; SelectTable.property.disableMoveAll = { set: function (value) { if (value) this.addClass('disable-move-all'); else this.removeClass('disable-move-all'); }, get: function () { return this.containsClass('disable-move-all'); } }; SelectTable.property.removeAllText = { set: function (text) { this._removeAllText = text; //todo: update remove all text if (!text) this.$removeAllBtn.addStyle('display', 'none'); else { this.$removeAllBtn.removeStyle('display'); this.$removeAllBtn.innerHTML = this.removeAllText; this.updateButtonsContainerSize(); } }, get: function () { return this._removeAllText || 'Remove All' } }; SelectTable.property.addAllText = { set: function (text) { this._addAllText = text; if (!text) this.$addAllBtn.addStyle('display', 'none'); else { this.$addAllBtn.removeStyle('display'); this.$addAllBtn.innerHTML = this.removeAllText; this.updateButtonsContainerSize(); } }, get: function () { return this._addAllText || 'Add All' } }; SelectTable.property.searching = { set: function (value) { if (value) { this.addClass('searching'); } else { this.removeClass('searching'); } this.updateScroller(); }, get: function () { return this.containsClass('searching'); } }; SelectTable.property.sorted = { set: function (value) { this._sort = value; this.requestSort(); }, get: function () { return this._sort; } }; SelectTable.property.selectedItems = { set: function (items) { this.$selectedItemsContainer.clearChild(); var $nonselectedItemsContainer = this.$nonselectedItemsContainer; var $selectedItemsContainer = this.$selectedItemsContainer; var self = this; if (items instanceof Array) { items.map(function (item) { return SelectTable_({ tag: 'item', props: { data: item }, on: { requestmove: function (event) { if (this.parentElement == $selectedItemsContainer) { this.addTo($nonselectedItemsContainer); self.emit('remove', EventEmitter["a" /* default */].copyEvent(event, { item: item }), self); } else { this.addTo($selectedItemsContainer); self.emit('add', EventEmitter["a" /* default */].copyEvent(event, { item: item }), self); } self.updateScroller(); self.requestSort(); } } }).addTo(this.$selectedItemsContainer); }.bind(this)) } else { // error } this.updateScroller(); this.requestSort(); }, get: function () { return Array.prototype.map.call(this.$selectedItemsContainer.childNodes, function (e) { return e.data; }); } } SelectTable.property.nonselectedItems = { set: function (items) { this.$nonselectedItemsContainer.clearChild(); var $nonselectedItemsContainer = this.$nonselectedItemsContainer; var $selectedItemsContainer = this.$selectedItemsContainer; var self = this; if (items instanceof Array) { items.map(function (item) { return SelectTable_({ tag: 'item', props: { data: item }, on: { requestmove: function (event) { if (this.parentElement == $selectedItemsContainer) { this.addTo($nonselectedItemsContainer); self.emit('remove', EventEmitter["a" /* default */].copyEvent(event, { item: item }), self); } else { this.addTo($selectedItemsContainer); self.emit('add', EventEmitter["a" /* default */].copyEvent(event, { item: item }), self); } self.updateScroller(); self.requestSort(); } } }).addTo(this.$nonselectedItemsContainer); }.bind(this)) } else { // error } this.updateScroller(); this.requestSort(); }, get: function () { return Array.prototype.map.call(this.$nonselectedItemsContainer.childNodes, function (e) { return e.data; }); } }; SelectTable.property.selectedSearchItems = { set: function (items) { this.$selectedSearchItemsContainer.clearChild(); var $nonselectedSearchItemsContainer = this.$nonselectedSearchItemsContainer; var $selectedSearchItemsContainer = this.$selectedSearchItemsContainer; var table = this; if (items instanceof Array) { items.map(function (item) { return SelectTable_({ tag: 'item', props: { data: item }, on: { requestmove: function (event) { if (this.parentElement == $selectedSearchItemsContainer) { this.addTo($nonselectedSearchItemsContainer); table.getAllItemElement().filter(function (itemElement) { if (itemElement.data == this.data) { itemElement.addTo(table.$nonselectedItemsContainer); return true; } return false; }.bind(this)); table.emit('remove', EventEmitter["a" /* default */].copyEvent(event, { item: item }), table); } else { this.addTo($selectedSearchItemsContainer); table.getAllItemElement().filter(function (itemElement) { if (itemElement.data == this.data) { itemElement.addTo(table.$selectedItemsContainer); return true; } return false; }.bind(this)); table.emit('add', EventEmitter["a" /* default */].copyEvent(event, { item: item }), table); } table.updateScroller(); table.requestSort(); } } }).addTo(this.$selectedSearchItemsContainer); }.bind(this)) } else { // error } this.updateScroller(); }, get: function () { return Array.prototype.map.call(this.$selectedSearchItemsContainer.childNodes, function (e) { return e.data; }); } } SelectTable.property.nonselectedSearchItems = { set: function (items) { this.$nonselectedSearchItemsContainer.clearChild(); var $nonselectedSearchItemsContainer = this.$nonselectedSearchItemsContainer; var $selectedSearchItemsContainer = this.$selectedSearchItemsContainer; var table = this; if (items instanceof Array) { items.map(function (item) { return SelectTable_({ tag: 'item', props: { data: item }, on: { requestmove: function (event) { if (this.parentElement == $selectedSearchItemsContainer) { this.addTo($nonselectedSearchItemsContainer); table.getAllItemElement().filter(function (itemElement) { if (itemElement.data == this.data) { itemElement.addTo(table.$nonselectedItemsContainer); return true; } return false; }.bind(this)); table.emit('remove', EventEmitter["a" /* default */].copyEvent(event, { item: item }), table); } else { this.addTo($selectedSearchItemsContainer); table.getAllItemElement().filter(function (itemElement) { if (itemElement.data == this.data) { itemElement.addTo(table.$selectedItemsContainer); return true; } return false; }.bind(this)); table.emit('add', EventEmitter["a" /* default */].copyEvent(event, { item: item }), table); } table.updateScroller(); table.requestSort(); } } }).addTo(this.$nonselectedSearchItemsContainer); }.bind(this)) } else { // error } this.updateScroller(); }, get: function () { return Array.prototype.map.call(this.$nonselectedSearchItemsContainer.childNodes, function (e) { return e.data; }); } }; /* namespace of selecttable */ function Item() { var res = SelectTable_({ extendEvent: ['requestmove'], class: 'absol-select-table-item', child: ['span.absol-select-table-item-text', { class: 'absol-select-table-item-right-container', child: { class: 'absol-select-table-item-right-container-table', child: { class: 'absol-select-table-item-right-container-cell', child: ['addicon', 'subicon'] } } } ] }); res.$text = SelectTable_$('span', res); res.eventHandler = OOP["a" /* default */].bindFunctions(res, Item.eventHandler); res.$rightBtn = SelectTable_$('.absol-select-table-item-right-container', res); res.on('dblclick', res.eventHandler.dblclick); res.$rightBtn.on('click', res.eventHandler.rightBtClick); return res; }; Item.eventHandler = {}; Item.eventHandler.dblclick = function (event) { event.preventDefault(); if (!EventEmitter["a" /* default */].hitElement(this.$rightBtn, event)) this.emit('requestmove', event, this); }; Item.eventHandler.rightBtClick = function (event) { this.emit('requestmove', event, this); }; Item.property = {}; Item.property.data = { set: function (value) { this._data = value; if (value) { var text; if (typeof value == "string") { text = value; } else { text = value.text; } this.$text.innerHTML = text; } }, get: function () { return this._data; } }; Item.property.text = { get: function () { return this._data ? (typeof this._data == 'string' ? this._data : this._data.text) : ''; } }; /** * * <svg width="100mm" height="100mm" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"> <g transform="translate(0,-197)"> <path d="m39.873 198.21v38.668h-38.668v20.252h38.668v38.668h20.253v-38.668h38.668v-20.252h-38.668v-38.668z" style="fill-rule:evenodd;fill:#5fbbc2;stroke-linejoin:round;stroke-width:2.4109;stroke:#002eea"/> </g> </svg> */ function AddIcon() { return HTML5_Svg.ShareInstance.buildSvg( '<svg class="add-icon" width="100mm" height="100mm" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">' + '<g transform="translate(0,-197)">' + '<path d="m39.873 198.21v38.668h-38.668v20.252h38.668v38.668h20.253v-38.668h38.668v-20.252h-38.668v-38.668z" style="fill-rule:evenodd;stroke-linejoin:round;stroke-width:2.4109;" />' + '</g>' + '</svg>' ); }; function SubIcon() { return HTML5_Svg.ShareInstance.buildSvg( '<svg class="sub-icon" width="100mm" height="100mm" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">' + ' <g transform="translate(0,-197)">' + ' <path d="m98.795 236.87v20.253h-97.589v-20.253z" style="fill-rule:evenodd;stroke-linejoin:round;stroke-width:2.411;"/>' + ' </g>' + '</svg>' ); }; privateDom.install({ subicon: SubIcon, addicon: AddIcon, item: Item }); SelectTable.privateDom = privateDom; ACore["a" /* default */].creator.selecttable = SelectTable; /* harmony default export */ var js_SelectTable = (SelectTable); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/selecttable.css var selecttable = __webpack_require__(24); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Menu.js var Menu_ = ACore["a" /* default */]._; var Menu_$ = ACore["a" /* default */].$; function MenuButton() { var res = Menu_({ tag: 'button', class: 'absol-vmenu-button', child: [ { class: 'absol-vmenu-button-ext-icon-container', child: 'img.absol-vmenu-button-icon' }, '.absol-vmenu-button-text', '.absol-vmenu-button-key', { class: 'absol-vmenu-arrow-container', child: 'span.absol-vmenu-arrow' } ] }); res.$text = Menu_$('.absol-vmenu-button-text', res); res.$key = Menu_$('.absol-vmenu-button-key', res); res.$arrow = Menu_$('.absol-vmenu-arrow', res); res.$iconCtn = Menu_$('.absol-vmenu-button-ext-icon-container', res); OOP["a" /* default */].drillProperty(res, res.$text, 'text', 'innerHTML'); OOP["a" /* default */].drillProperty(res, res.$key, 'key', 'innerHTML'); return res; }; MenuButton.property = {}; MenuButton.property.extendClasses = { set: function (value) { var self = this; this.extendClasses.forEach(function (className) { self.removeClass(className); }); this._extendClass = []; if (!value) return; if (typeof value == 'string') { value = value.split(/\s+/).filter(function (c) { return c.length > 0 }); } if (value instanceof Array) { this._extendClass = value; this._extendClass.forEach(function (className) { self.addClass(className); }); } else { throw new Error('Invalid extendClasses'); } }, get: function () { return this._extendClass || []; } }; MenuButton.property.icon = { set: function (value) { this.$iconCtn.clearChild(); this._icon = value; if (value) { Menu_(value).addTo(this.$iconCtn); } }, get: function () { return this._icon; } }; MenuButton.property.iconSrc = { set: function (value) { this.icon = { tag: 'img', attr: { src: value } }; }, get: function () { return this.icon.attr.src; } }; MenuButton.property.extendStyle = { set: function (value) { this.removeStyle(this._extendStyle || {}); this._extendStyle = value || {}; this.addStyle(this.extendStyle); }, get: function () { return this._extendStyle || {}; } }; ACore["a" /* default */].install('menubutton', MenuButton); function Dropdown(data) { data = data || {}; var res = Menu_({ class: ['absol-drop-hidden', 'absol-dropdown'], child: '.absol-dropdown-content' }); res.$container = Menu_$('.absol-dropdown-content', res); return res; }; Dropdown.property = {}; Dropdown.property.show = { set: function (value) { if (value) { this.removeClass('absol-drop-hidden'); var aPst = this.findAvailablePosition(); if (aPst.overlapRight) { this.removeClass('overlap-left'); } else if (aPst.overlapLeft) { this.addClass('overlap-left'); } } else { this.addClass('absol-drop-hidden'); } }, get: function () { return !this.containsClass('absol-drop-hidden'); } }; Dropdown.prototype.findAvailablePosition = function () { var outBound = Dom["a" /* default */].traceOutBoundingClientRect(this); var containerBound = this.$container.getBoundingClientRect(); var bound = this.getBoundingClientRect(); var distTop = bound.top - outBound.top; var distLeft = bound.left - outBound.left; var distRight = -bound.right + outBound.right; var distBottom = -bound.right + outBound.right; var result = {}; if (distTop >= containerBound.height) result.top = true; if (distBottom >= containerBound.height) result.bottom = true; if (distLeft >= containerBound.width) result.left = true; if (distRight >= containerBound.width) result.right = true; if (distRight + bound.width >= containerBound.width) result.overlapRight = true; if (distLeft + bound.width >= containerBound.width) result.overlapLeft = true; //todo: more return result; }; Dropdown.prototype.addChild = function (child) { if (child instanceof Array) { for (var i = 0; i < child.length; ++i) this.addChild(child[i]); } else { if (!this.$trigger) { this.super(child); this.$trigger = child; } else { this.$container.addChild(child); } } }; Dropdown.prototype.clearChild = function () { if (this.$trigger) { this.$trigger.selfRemove(); this.$trigger = undefined; } this.$container.clearChild(); }; Dropdown.prototype.init = function (props) { props = props || {}; Object.assign(this, props); }; function Dropright(data) { data = data || {}; //default : hidden var res = Menu_({ class: ['absol-drop-hidden', 'absol-dropright'], child: '.absol-dropright-content', data: { $trigger: undefined, $content: undefined, _isShow: false } }); res.$container = Menu_$('.absol-dropright-content', res); return res; }; Object.assign(Dropright.prototype, Dropdown.prototype); //is the same Dropright.prototype.addChild = Dropdown.prototype.addChild; Dropright.prototype.clearChild = Dropdown.prototype.clearChild; Dropright.property = Object.assign({}, Dropdown.property); function VMenuLine() { return Menu_('<div class="absol-vmenu-line"><div></div></div>'); } function VMenuItem() { var res = Menu_({ tag: 'dropright', extendEvent: ['press', 'enter'], child: ['menubutton', { tag: 'vmenu', }] }); res.sync = new Promise(function (rs) { Menu_('attachhook').addTo(res).on('error', function () { this.remove(); rs(); }) }); res.$dropper = Menu_$('dropright', res); res.$vmenu = Menu_$('vmenu', res); res.$button = Menu_$('menubutton', res); res.$text = res.$button.$text; res.$key = res.$button.$key; res.$arrow = res.$button.$arrow; res.$iconCtn = res.$button.$iconCtn; OOP["a" /* default */].drillProperty(res, res.$button, ['text', 'extendClasses', 'extendStyle', 'key', 'icon', 'iconSrc']); OOP["a" /* default */].drillProperty(res, res.$vmenu, ['activeTab']); res.eventHandler = OOP["a" /* default */].bindFunctions(res, VMenuItem.eventHandler); res.$vmenu.on('press', res.eventHandler.pressItem, true); res.$button.on('click', res.eventHandler.clickButton, true); res.$button.on('mouseenter', res.eventHandler.enterButton, true); return res; }; VMenuItem.prototype.init = function (props) { Object.assign(this, props || {}); this.sync = this.sync.then(this.autoFixParrentSize.bind(this)); }; VMenuItem.prototype.autoFixParrentSize = function () { var parentWidth = this.parentElement.getBoundingClientRect().width; var buttonWidth = this.$button.getBoundingClientRect().width; var fontSize = this.$text.getFontSize(); this.$text.addStyle('margin-right', (parentWidth - buttonWidth) / fontSize + 'em'); }; VMenuItem.eventHandler = {}; VMenuItem.eventHandler.enterButton = function (event) { event.menuItem = this; var newEvent = EventEmitter["a" /* default */].copyEvent(event); this.emit('enter', newEvent, this); }; VMenuItem.eventHandler.pressItem = function (event) { var newEvent = EventEmitter["a" /* default */].copyEvent(event, { target: this }); this.emit('press', newEvent, this); }; VMenuItem.eventHandler.clickButton = function (event) { event.menuDontHide = this.items && this.items.length > 0; event.menuItem = this; event.vmenuItem = this; var newEvent = EventEmitter["a" /* default */].copyEvent(event, { target: this }); this.emit('press', newEvent, this); }; VMenuItem.property = {}; VMenuItem.property.items = { set: function (items) { items = items || []; if (items.length > 0) { this.$arrow.addClass(['mdi', 'mdi-chevron-right']); } else { this.$arrow.removeClass(['mdi', 'mdi-chevron-right']); } this.$vmenu.items = items; }, get: function () { return this.$vmenu.items; } }; VMenuItem.property.disable = { set: function (value) { if (value) { this.addClass('absol-menu-item-disable'); } else { this.removeClass('absol-menu-item-disable'); } }, get: function () { return this.containsClass('absol-menu-item-disable'); } }; function VMenu() { var res = Menu_({ class: 'absol-vmenu', extendEvent: 'press' }); res.sync = new Promise(function (rs) { Menu_('attachhook').addTo(res).on('error', function () { this.remove(); rs(); }) }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, VMenu.eventHandler); return res; }; VMenu.property = {}; VMenu.property.activeTab = { set: function (tabIndex) { this._activeTab = tabIndex; if (this.$items) { for (var i = 0; i < this.$items.length; ++i) { var item = this.$items[i]; item.show = i == tabIndex && !item.disable; item.activeTab = -1; if (i == tabIndex && !item.disable) { item.$button && item.items && item.items.length > 0 && item.$button.addClass('absol-vmenu-button-hover'); } else { item.$button && item.$button.removeClass('absol-vmenu-button-hover'); } } } }, get: function () { return this._activeTab; } }; VMenu.property.extendStyle = { set: function (value) { this.removeStyle(this._extendStyle || {}); this._extendStyle = value || {}; this.addStyle(this.extendStyle); }, get: function () { return this._extendStyle || {}; } }; VMenu.property.extendClasses = { set: function (value) { var self = this; this.extendClasses.forEach(function (className) { self.removeClass(className); }); this._extendClass = []; if (!value) return; if (typeof value == 'string') { value = value.split(/\s+/).filter(function (c) { c.length > 0 }); } if (value instanceof Array) { this._extendClass = value; this._extendClass.forEach(function (className) { self.addClass(className); }); } else { throw new Error('Invalid extendClasses'); } }, get: function () { return this._extendClass || []; } }; VMenu.eventHandler = {}; VMenu.eventHandler.enterItem = function (event) { var tabIndex = event.menuItem._tabIndex; this.activeTab = tabIndex; }; VMenu.eventHandler.pressItem = function (event) { this.emit('press', EventEmitter["a" /* default */].copyEvent(event, { target: this }), this); }; VMenu.property.items = { set: function (items) { this._childFromItems(items || []); }, get: function () { return this.$items; } } VMenu.prototype.init = function (props) { Object.assign(this, props || {}); }; VMenu.prototype._childFromItems = function (items) { this.clearChild(); this.$items = items.map(function (item, index) { var res; if (typeof (item) == 'string') { res = Menu_('vmenuline'); } else { res = Menu_({ tag: 'vmenuitem', props: Object.assign({ _tabIndex: index }, item), on: { enter: { callback: this.eventHandler.enterItem, cap: true }, press: { callback: this.eventHandler.pressItem, cap: true } } }); } this.addChild(res); return res; }.bind(this)); //todo }; function HMenuItem() { var res = Menu_({ tag: 'dropdown', extendEvent: ['press', 'enter'], child: ['button.absol-hmenu-button', 'vmenu' ] }); res.$vmenu = Menu_$('vmenu', res); res.$dropDown = res; res.$button = Menu_$('button.absol-hmenu-button', res); OOP["a" /* default */].drillProperty(res, res.$button, 'text', 'innerHTML'); OOP["a" /* default */].drillProperty(res, res.$vmenu, 'items'); OOP["a" /* default */].drillProperty(res, res.$vmenu, 'activeTab'); res.eventHandler = OOP["a" /* default */].bindFunctions(res, HMenuItem.eventHandler); res.$button.on('click', res.eventHandler.clickButton); res.$button.on('mouseenter', res.eventHandler.enterButton, true); res.$vmenu.on('press', res.eventHandler.pressItem, true); //property show not need because dropdown is itself return res; }; HMenuItem.eventHandler = {}; HMenuItem.eventHandler.clickButton = function (event) { event.menuItem = this; event.hmenuItem = this; this.emit('press', EventEmitter["a" /* default */].copyEvent(event, { target: this }), this); }; HMenuItem.eventHandler.enterButton = function (event) { event.menuItem = this; this.emit('enter', EventEmitter["a" /* default */].copyEvent(event, { target: this }), this); }; HMenuItem.eventHandler.pressItem = function (event) { this.emit('press', EventEmitter["a" /* default */].copyEvent(event, { target: this }), this); }; HMenuItem.prototype = {}; HMenuItem.prototype.disable = VMenuItem.prototype.disable; HMenuItem.prototype.init = function (props) { props = props || {}; Object.assign(this, props); }; function HMenu() { var res = Menu_({ class: 'absol-hmenu', extendEvent: ['press', 'enter'] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, HMenu.eventHandler); return res; }; HMenu.eventHandler = {}; HMenu.eventHandler.pressItem = function (event) { /** * this.activeTab can be undefined * undefine >= 0 => false * undefine < 0 => false */ if (event.menuItem.items && event.menuItem.items.length > 0 && !(this.activeTab >= 0)) { this.activeTab = event.menuItem._tabIndex; setTimeout(function () { Menu_$(document.body).once('click', this.eventHandler.clickSomewhere, false); }.bind(this), 100); } else { this.emit('press', event, this); } }; HMenu.eventHandler.enterItem = function (event) { if (this.activeTab >= 0) { this.activeTab = event.menuItem._tabIndex; } }; HMenu.eventHandler.clickSomewhere = function (event) { if (event.menuItem) { // wait for next time setTimeout(function () { Menu_$(document.body).once('click', this.eventHandler.clickSomewhere, false); }.bind(this), 100); } else { this.activeTab = -1; } }; HMenu.prototype._childFromItems = function (items) { this.clearChild(); this.$items = items.map(function (item, index) { var res = Menu_({ tag: 'hmenuitem', props: Object.assign({ _tabIndex: index }, item), on: { press: { callback: this.eventHandler.pressItem, cap: true }, enter: { callback: this.eventHandler.enterItem, cap: true } } }); this.addChild(res); return res; }.bind(this)); }; HMenu.prototype.init = function (props) { Object.assign(this, props || {}); }; HMenu.property = {}; HMenu.property.items = { set: function (items) { this._childFromItems(items || []); }, get: function () { return this.$items; } }; HMenu.property.activeTab = { set: function (tabIndex) { this._activeTab = tabIndex; for (var i = 0; i < this.$items.length; ++i) { var item = this.$items[i]; item.show = i == tabIndex && !item.disable; item.activeTab = -1; if (i == tabIndex && !item.disable) { item.$button && item.items && item.items.length > 0 && item.$button.addClass('absol-hmenu-button-hover'); } else { item.$button && item.$button.removeClass('absol-hmenu-button-hover'); } } }, get: function () { return this._activeTab; } }; ACore["a" /* default */].creator.hmenu = HMenu; ACore["a" /* default */].creator.vmenuitem = VMenuItem; ACore["a" /* default */].creator.vmenu = VMenu; ACore["a" /* default */].creator.dropright = Dropright; ACore["a" /* default */].creator.vmenuline = VMenuLine; ACore["a" /* default */].creator.dropdown = Dropdown; ACore["a" /* default */].creator.hmenuitem = HMenuItem; // EXTERNAL MODULE: ./node_modules/absol-acomp/css/menu.css var css_menu = __webpack_require__(26); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/ContextMenu.js var ContextMenu_ = ACore["a" /* default */]._; var ContextMenu_$ = ACore["a" /* default */].$; /** * If a element want to capture contextmenu event, it extendEvent: 'contextmenu' * */ function ContextHook() { var res = ContextMenu_({ tag: 'textarea', class: 'absol-context-menu-hook' }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, ContextHook.eventHandler); res.on('contextmenu', res.eventHandler.contextmenu, true); return res; }; ContextHook.prototype.handle = function (event) { if (!this.parentElement) return; var isRightMB; event = event || window.event; var body = ContextMenu_$(document.body); if ("which" in event) // Gecko (Firefox), WebKit (Safari/Chrome) & Opera isRightMB = event.which == 3; else if ("button" in event) // IE, Opera isRightMB = event.button == 2; var needHandle = false; if (isRightMB) { var current = event.target; while (current && !needHandle) { if (current.isSupportedEvent && current.isSupportedEvent('contextmenu')) needHandle = true; current = current.parentElement; } if (needHandle) { this.$target = event.target; this.addStyle('z-index', '1000000'); this.removeStyle('display'); this.moveTo(event); body.on('mouseup', this.eventHandler.mousefinish); body.on('mouseleave', this.eventHandler.mousefinish); body.on('mousemove', this.eventHandler.mousemove); } } return needHandle; }; ContextHook.prototype.moveTo = function (event) { if (!this.parentElement) return; var parentBound = this.parentElement.getBoundingClientRect(); this.addStyle('left', -parentBound.left + event.clientX - 7 + 'px'); this.addStyle('top', -parentBound.top + event.clientY - 7 + 'px'); } ContextHook.eventHandler = {}; ContextHook.eventHandler.contextmenu = function (event) { this.addStyle('z-index', '-1000'); event.preventDefault(); var parentBound = this.parentElement.getBoundingClientRect(); var propagation = true; var localEvent = { clientX: event.clientX, clientY: event.clientY, target: this.$target, hinge: this.parentElement, relativeX: event.clientX - parentBound.left, relativeY: event.clientY - parentBound.top, showContextMenu: function (props, onSelectItems) { this.hinge.showContextMenu(props, event, onSelectItems); }, stopPropagation: function () { propagation = false; } } var current = this.$target; while (current && propagation) { if (current.isSupportedEvent && current.isSupportedEvent('contextmenu')) { current.emit('contextmenu', localEvent, current, this); } current = current.parentElement; } }; ContextHook.eventHandler.mousemove = function (event) { this.moveTo(event); }; ContextHook.eventHandler.mousefinish = function (event) { setTimeout(function () { this.addStyle('z-index', '-1000'); this.addStyle('display', 'none'); }.bind(this), 1); var body = ContextMenu_$(document.body); body.off('mouseup', this.eventHandler.mousefinish); body.off('mouseleave', this.eventHandler.mousefinish); body.off('mousemove', this.eventHandler.mousemove); }; /** * Add this element to some thing like body, and when mousedown event was fired, let call `thisElement.handle` * every element in event pathlist will fire contextmenu event if supported * */ function ContextCaptor() { var res = ContextMenu_({ extendEvent: 'requestcontextmenu', class: 'absol-context-hinge', child: ['contexthook', 'vmenu.absol-context-menu'] }); res.$contexHook = ContextMenu_$('contexthook', res); res.$contextMenu = ContextMenu_$('vmenu.absol-context-menu', res); res._contextMenuSync = Promise.resolve(); return res; }; ContextCaptor.prototype.handle = function (event) { return this.$contexHook.handle(event); }; /** * @param {HTMLElement} element * @returns {HTMLElement} */ ContextCaptor.prototype.attachTo = function (element) { if (!this._listener) { this._listener = this.handle.bind(this); } if (this._attachedElement) { this._attachedElement.removeEventListener('mousedown', this._listener, true); this._attachedElement = undefined; } this._attachedElement = element; if (element) { element.addEventListener('mousedown', this._listener, true); } return this; }; /** * * @param {Object} props vmenu property * @param {Event} event for align menu */ ContextCaptor.prototype.showContextMenu = function (props, event, onSelectItems) { Object.assign(this.$contextMenu, props); onSelectItems = onSelectItems || function () { }; var bound = this.getBoundingClientRect(); var viewableBound = Dom["a" /* default */].traceOutBoundingClientRect(this); var left = event.clientX - bound.left; var top = event.clientY - bound.top; var body = ContextMenu_$('body'); this.emit('requestcontextmenu', EventEmitter["a" /* default */].copyEvent(event, { target: this })); this._contextMenuSync = this._contextMenuSync.then(function () { return new Promise(function (resolve) { setTimeout(function () { this.$contextMenu.addStyle('z-index', '1000'); this.$contextMenu.addStyle('visibility', 'visible'); var viewBound = Dom["a" /* default */].traceOutBoundingClientRect(this.$contextMenu.parentElement); var menuBound = this.$contextMenu.getBoundingClientRect(); if (menuBound.width + event.clientX > viewBound.right) { this.$contextMenu.addStyle('left', left - menuBound.width + 'px'); } else { this.$contextMenu.addStyle('left', left + 'px'); } if (menuBound.height + event.clientY > viewBound.bottom) { this.$contextMenu.addStyle('top', top - menuBound.height + 'px'); } else { this.$contextMenu.addStyle('top', top + 'px'); } var finishCallback = function (event) { body.off('click', finishCallback); this.off('contextmenu', finishCallback); this.off('requestcontextmenu', finishCallback); this.$contextMenu.off('press', onSelectItems, true); this.$contextMenu.off('press', finishCallback); this.hideContextMenu(); resolve(); }.bind(this); var mouseDownEventHandler = function (event) { if (EventEmitter["a" /* default */].isMouseRight(event)) finishCallback.call(this, event); } body.on('mousedown', mouseDownEventHandler); body.on('click', finishCallback); this.on('contextmenu', finishCallback); this.on('requestcontextmenu', finishCallback); this.$contextMenu.on('press', onSelectItems, true); this.$contextMenu.on('press', finishCallback); }.bind(this), 50); }.bind(this)); }.bind(this)); }; ContextCaptor.prototype.hideContextMenu = function () { this.$contextMenu.addStyle({ 'z-index': ' -1000', top: '0', left: '-1000' }); this.$contextMenu.removeStyle('visibility'); }; ACore["a" /* default */].creator.contextcaptor = ContextCaptor; ACore["a" /* default */].creator.contexthook = ContextHook; //todo: may be need closeContextMenu // EXTERNAL MODULE: ./node_modules/absol-acomp/css/contextmenu.css var contextmenu = __webpack_require__(28); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Modal.js function Modal() { var $ = ACore["a" /* default */].$; var _ = ACore["a" /* default */]._; var res = _({ class: 'absol-modal', child: { class: 'absol-modal-hcenter', child: { class: 'absol-modal-vcenter', child: '.absol-modal-container' } } }); res.$container = $('.absol-modal-container', res); return res; }; Modal.prototype.addChild = function (child) { this.$container.addChild.apply(this.$container, arguments); return this; }; Modal.property = {}; Modal.property.show = { set: function (value) { if (value) this.removeClass('absol-modal-hidden'); else this.addClass('absol-modal-hidden'); }, get: function () { return !this.containsClass('absol-modal-hidden'); } }; ACore["a" /* default */].creator.modal = Modal; /* harmony default export */ var js_Modal = (Modal); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/modal.css var modal = __webpack_require__(30); // CONCATENATED MODULE: ./node_modules/absol/src/Converter/file.js function blobToFile(theBlob, fileName) { return new File([theBlob], fileName); } function dataURItoBlob(dataURI) { var byteString = atob(dataURI.split(',')[1]); var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; var ab = new ArrayBuffer(byteString.length); var ia = new Uint8Array(ab); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } var blob = new Blob([ab], { type: mimeString }); return blob; } function blobToArrayBuffer(blob) { var fileReader = new FileReader(); return new Promise(function (rs) { fileReader.onload = function (event) { var arrayBuffer = event.target.result; rs(arrayBuffer); }; fileReader.readAsArrayBuffer(blob); }); } function stringToBlob(text, type) { return new Blob([text], { type: type || 'text/plain' }); } // CONCATENATED MODULE: ./node_modules/absol/src/HTML5/Text.js function getTextNodesIn(node) { var textNodes = []; if (node.nodeType == 3) { textNodes.push(node); } else { var children = node.childNodes; for (var i = 0, len = children.length; i < len; ++i) { textNodes.push.apply(textNodes, getTextNodesIn(children[i])); } } return textNodes; } /** * * @param {Element} el * @param {Range} range * @param {Number} start * @returns {Number} -1: ok, ret >= 0(is length of text) : need move to next element * */ function setSelectionRangeStart(el, range, start) { if (start > 0) { if (el.nodeType == Node.TEXT_NODE) { var text = el.data; if (start <= text.length) { range.setStart(el, start); return -1; } else return text.length; } if (el.tagName.toLowerCase() == 'br') { return 0; } else { var delta = 0; var i = 0; var textLength = 0; var newLine = false; while (delta >= 0 && i < el.childNodes.length) { var childElt = el.childNodes[i]; if (newLine) { newLine = false; ++textLength; } delta = setSelectionRangeStart(childElt, range, start - textLength); if (delta >= 0) textLength += delta; if (childElt.nodeType != Node.TEXT_NODE && (window.getComputedStyle(childElt).display == 'block' || childElt.tagName.toLowerCase() == 'br')) { newLine = true; } ++i; } if (delta >= 0) return textLength; return -1; } } else { range.setStart(el, 0); return -1; } } /** * * @param {Element} el * @param {Range} range * @param {Number} end * @returns {Number} -1: ok, ret >= 0(is length of text) : need move to next element * */ function setSelectionRangeEnd(el, range, end) { if (end > 0) { if (el.nodeType == Node.TEXT_NODE) { var text = el.data; if (end <= text.length) { range.setEnd(el, end); return -1; } else return text.length; } if (el.tagName.toLowerCase() == 'br') { return 0; } else { var delta = 0; var i = 0; var textLength = 0; var newLine = false; while (delta >= 0 && i < el.childNodes.length) { var childElt = el.childNodes[i]; if (newLine) { newLine = false; ++textLength; } delta = setSelectionRangeEnd(childElt, range, end - textLength); if (delta >= 0) textLength += delta; if (childElt.nodeType != Node.TEXT_NODE && (window.getComputedStyle(childElt).display == 'block' || childElt.tagName.toLowerCase() == 'br')) { newLine = true; } ++i; } if (delta >= 0) return textLength; return -1; } } else { range.setEnd(el, 0); return -1; } } function setSelectionRange(el, start, end) { if (document.createRange && window.getSelection) { var range = document.createRange(); range.selectNodeContents(el); var delta; if (start >= 0) { delta = setSelectionRangeStart(el, range, start); if (delta >= 0) range.setStart(el, el.childNodes.length); } else { start = 0; range.setStart(el, 0); } if (end >= start) { delta = setSelectionRangeEnd(el, range, end); if (delta >= 0) range.setEnd(el, el.childNodes.length); } var sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); } else if (document.selection && document.body.createTextRange) { var textRange = document.body.createTextRange(); textRange.moveToElementText(el); textRange.collapse(true); textRange.moveEnd("character", end); textRange.moveStart("character", start); textRange.select(); } } function getTextIn(e) { if (e.nodeType == Node.TEXT_NODE) { return e.data; } if (e.tagName && e.tagName.toLowerCase() == 'br') return ''; var texts = []; var newLine = false; for (var i = 0; i < e.childNodes.length; ++i) { if (newLine) { newLine = false; texts.push('\n'); } var childElt = e.childNodes[i]; texts.push(getTextIn(childElt)); if (childElt.nodeType != Node.TEXT_NODE && (window.getComputedStyle(childElt).display == 'block' || childElt.tagName.toLowerCase() == 'br')) { newLine = true; } } return texts.join(''); } function textToNodes(text) { var lines = text.split(/\r?\n/); return lines.map(function (text) { if (text.length == 0) { return Dom["a" /* default */].ShareInstance._({ child: { tag: 'br' } }); } else { return Dom["a" /* default */].ShareInstance._({ child: { text: text } }); } }); } // CONCATENATED MODULE: ./node_modules/absol-acomp/js/MediaInput.js var MediaCore = new Dom["a" /* default */]({ creator: Object.assign({}, ACore["a" /* default */].creator) }); var MediaInput_ = MediaCore._; var MediaInput_$ = MediaCore.$; function openFileDialog(props) { if (!MediaCore.$fileInput) { MediaCore.$fileInput = MediaInput_({ tag: 'input', class: 'vmedia-no-show', attr: { type: 'file' }, props: {} }).addTo(document.body); } props = props || {}; if (props.accept) { if (props.accept instanceof Array) MediaCore.$fileInput.attr('accept', props.accept.join(',')); else MediaCore.$fileInput.attr('accept', props.accept); } else { MediaCore.$fileInput.attr('accept', null); } if (props.multiple) { MediaCore.$fileInput.attr('multiple', 'true'); } else { MediaCore.$fileInput.attr('multiple'); } MediaCore.$fileInput.value = null; MediaCore.$fileInput.click(); return new Promise(function (resolve, reject) { var finish = false; var body = MediaInput_$('body'); MediaCore.$fileInput.once('change', function () { finish = true; resolve(Array.prototype.map.call(this.files, function (file) { return file; })); }); body.once('mousedown', function () { if (finish) return; resolve(); }); }); } function MediaInput() { var res = MediaInput_({ class: 'vmedia-media-input', extendEvent: ['send', 'update', 'releaseplugin'], child: { class: 'vmedia-media-input-text-container', child: [{ class: 'vmedia-media-input-imagepreview-container', child: { class: 'vmedia-media-input-dropover', child: 'download-ico' } }, { class: 'vmedia-media-input-text-container-editor', attr: { contenteditable: 'true' }, on: { } }, { class: 'vmedia-media-input-text-container-buttons', attr: { title: 'Send' } }, { class: 'vmedia-media-input-tool-container', child: [ { class: 'vmedia-media-input-tool-container-left', child: [ { tag: 'button', attr: { id: 'add-image-btn', title: 'Add image' }, child: 'add-image-ico' }, { tag: 'button', attr: { id: 'add-file-btn', title: 'Add file' }, child: 'add-file-ico' }, ] }, { class: 'vmedia-media-input-tool-container-right', child: [{ tag: 'button', id: 'send-btn', attr: { title: 'Send' }, child: 'send-ico' }] } ], }, '.vmedia-media-input-plugin-content-container.blur', ] } }); return res; } MediaInput.prototype.preInit = function () { this.eventHandler = OOP["a" /* default */].bindFunctions(this, MediaInput.eventHandler); this.$editor = MediaInput_$('.vmedia-media-input-text-container-editor', this); this.$editor.on('paste', this.eventHandler.paste); this.$editor.on('keydown', this.eventHandler.keydown, true); this.$addImagebtn = MediaInput_$('#add-image-btn', this); this.$addImagebtn.on('click', this.eventHandler.clickAddImage); this.$addFilebtn = MediaInput_$('#add-file-btn', this); this.$addFilebtn.on('click', this.eventHandler.clickAddFile); this.$imagePreviewContainer = MediaInput_$('.vmedia-media-input-imagepreview-container', this); this.on('dragover', this.eventHandler.dragOver); this.on('drop', this.eventHandler.drop); this.$sendbtn = MediaInput_$('#send-btn', this); this.$sendbtn.on('click', this.eventHandler.send); this.$toolLeftCtn = MediaInput_$('.vmedia-media-input-tool-container-left', this); this.$pluginContentCtn = MediaInput_$('.vmedia-media-input-plugin-content-container', this); this.snapData = []; this.snapDataHead = 0; this.sync = this.afterAttached(); this.snapText(); }; MediaInput.prototype.init = function (props) { this.preInit(); this.super(props); } MediaInput.prototype.addImage = function (url, title, data) { MediaInput_({ tag: 'imagepreview', attr: { title: title }, props: { data: data, imgSrc: url }, on: { pressremove: function () { this.selfRemove(); } } }).addTo(this.$imagePreviewContainer); }; MediaInput.prototype.addFile = function (url, ext, title, data) { MediaInput_({ tag: 'filepreview', attr: { title: title }, props: { fileSrc: url, ext: ext, data: data }, on: { pressremove: function () { this.selfRemove(); } } }).addTo(this.$imagePreviewContainer); }; MediaInput.property = {}; MediaInput.property.text = { set: function (value) { this.$editor.clearChild(); value = value || ''; var lines = value.split(/\r*\n/); if (lines.length < 1) return; this.$editor.addChild(document.createTextNode(lines[0])); lines.shift(); lines.forEach(function (line) { this.$editor.addChild(MediaInput_({ child: document.createTextNode(line) })); }.bind(this)); this.snapText(); }, get: function () { return this.getTextFromElements(this.$editor); } }; MediaInput.property.files = { get: function () { return Array.prototype.filter.call(this.$imagePreviewContainer.childNodes, function (e) { return e._azar_extendTags && e._azar_extendTags.filepreview; }).map(function (e) { return e.data; }); } }; MediaInput.property.images = { get: function () { return Array.prototype.filter.call(this.$imagePreviewContainer.childNodes, function (e) { return e._azar_extendTags && e._azar_extendTags.imagepreview; }).map(function (e) { return e.data; }); } }; // MediaInput.property MediaInput.property.plugins = { set: function (value) { this.sync = this.sync.then(this._dettachPlugins.bind(this, this._plugins)); if (value) { if (!(value instanceof Array)) value = [value]; this._plugins = value; this.addClass('has-plugin'); } else { //remove plugin this.sync.then(this._dettachPlugins.bind(this)); this._plugins = null; this.removeClass('has-plugin'); } this.sync = this.sync.then(this._attachPlugins.bind(this, this._plugins)); }, get: function () { return this._plugins || null; } } MediaInput.prototype.appendText = function (text) { var lastBr = null; if (this.$editor.childNodes && this.$editor.childNodes.length > 0 && this.$editor.childNodes[this.$editor.childNodes.length - 1].tagName && this.$editor.childNodes[this.$editor.childNodes.length - 1].tagName.toLowerCase() == 'br') { lastBr = this.$editor.childNodes[this.$editor.childNodes.length - 1]; } var lines = text.split(/\r?\n/); if (lastBr) { for (var i = 0; i < lines.length; ++i) { if (i > 0) this.$editor.addChild(MediaInput_('br')); var e = MediaInput_({ text: lines[i] }); this.$editor.addChild(e); } } else { for (var i = 0; i < lines.length; ++i) { if (i > 0) this.$editor.addChildBefore(MediaInput_('br'), lastBr); var e = MediaInput_({ text: lines[i] }); } this.$editor.addChildBefore(e, lastBr); } setSelectionRange(this.$editor, Infinity); }; MediaInput.prototype._attachPlugins = function (plugins) { if (!plugins) return; var self = this; plugins.forEach(function (plugin) { var oldContent = null; var $button = MediaInput_('button').addTo(self.$toolLeftCtn).on('click', function () { if (self._lastActivePlugin == plugin) return; self.releasePlugin(); self._lastActivePlugin = plugin; self.$pluginContentCtn.removeClass('blur'); self.$pluginContentCtn.clearChild(); if (plugin.getContent) { var newContent = plugin.getContent(self, MediaInput_, MediaInput_$, self.$pluginContentCtn, oldContent); oldContent = newContent; self.$pluginContentCtn.addChild(newContent); } var buttonBound = $button.getBoundingClientRect(); var rootBound = self.$pluginContentCtn.parentNode.getBoundingClientRect(); self.$pluginContentCtn.addStyle({ left: buttonBound.left + buttonBound.width / 2 - rootBound.left + 'px', bottom: rootBound.bottom - buttonBound.top + 'px' }); if (plugin.onActive) plugin.onActive(self); setTimeout(function () { var outListener = function (event) { if (EventEmitter["a" /* default */].hitElement(self.$pluginContentCtn, event)) { } else if (self._lastActivePlugin == plugin) { var prevented = true; if (plugin.onBlur) plugin.onBlur({ preventDefault: function () { prevented = false; } }); if (prevented) { self.releasePlugin(); MediaInput_$(document.body).off('click', outListener); } } else { MediaInput_$(document.body).off('click', outListener); } }; MediaInput_$(document.body).on('click', outListener); self.once('releaseplugin', function (ev) { if (ev.plugin == plugin) { MediaInput_$(document.body).off('click', outListener); } }); }, 100); }); var btnInners = plugin.getTriggerInner(self, MediaInput_, MediaInput_$, $button); if (!(btnInners instanceof Array)) btnInners = [btnInners]; btnInners.forEach(function (e) { if (typeof e == 'string') { e = MediaInput_({ text: e }); } $button.addChild(e); }); if (plugin.onAttached) plugin.onAttached(self); }); //todo return true; }; MediaInput.prototype.releasePlugin = function () { if (this._lastActivePlugin) { var plugin = this._lastActivePlugin; plugin.onDeactived && plugin.onDeactived(self); this.$pluginContentCtn.addClass('blur'); this.emit('releaseplugin', { target: this, plugin: plugin }, this); this._lastActivePlugin = null; } } MediaInput.prototype._dettachPlugins = function (plugins) { if (!plugins) return; var self = this; plugins.forEach(function (plugin) { if (plugin.onAttached) plugin.onAttached(self); }); //todo this._lastActivePlugin = null; return true; }; MediaInput.prototype.focus = function () { this.$editor.focus(); setSelectionRange(this.$editor, Infinity); }; MediaInput.prototype.clear = function () { Array.prototype.filter.call(this.$imagePreviewContainer.childNodes, function (e) { return e._azar_extendTags && e._azar_extendTags.imagepreview; }).forEach(function (e) { e.selfRemove(); }); Array.prototype.filter.call(this.$imagePreviewContainer.childNodes, function (e) { return e._azar_extendTags && e._azar_extendTags.filepreview; }).forEach(function (e) { return e.selfRemove(); }); this.$editor.innerHTML = ""; this.emit('update', { target: this }, this); }; MediaInput.prototype.escapeSpace = function (s) { return s.replace(/\s/g, ' '); }; MediaInput.prototype.unescapeSpace = function (s) { return s.replace(/ /g, ' '); }; MediaInput.prototype.getTextFromElements = function (element) { return getTextIn(element); // var self = this; // function visit(e, prevE) { // var ac = ''; // var isNewLine = false; // if (prevE && prevE.nodeType != Node.TEXT_NODE) { // if (prevE.tagName && prevE.tagName.toLowerCase() == 'br') { // isNewLine = true; // } // else if (Element.prototype.getComputedStyleValue.call(prevE, 'display') == 'block') { // isNewLine = true; // } // } // if (e.nodeType == Node.TEXT_NODE) { // if (isNewLine) ac += '\n'; // ac += e.data; // } // else { // var lastE = undefined; // for (var i = 0; i < e.childNodes.length; ++i) { // ac += visit(e.childNodes[i], i > 0 ? e.childNodes[i - 1] : null); // } // } // return ac; // } // return visit(element); }; MediaInput.prototype.getElementsFromText = function (text) { var newElements = text.split('\n') .map(function (text) { return document.createTextNode(text); }) .reduce(function (ac, cr, i, arr) { if (i > 0) ac.push(MediaInput_('br')); ac.push(cr); return ac; }, []); return newElements; }; // MediaInput.prototype.textOnly = function(e) { // if (e.nodeType == Node.TEXT_NODE) return e.textContent; // if (!e.tagName) return ''; // if (e.tagName.toLowerCase() == 'br') return '\n'; // return ($(e).getComputedStyleValue('display') == 'block' ? '\n' : '') + Array.prototype.map.call(e.childNodes, this.textOnly.bind(this)).join('') // }; MediaInput.prototype.makeTextOnly = function () { var self = this; var editor = this.$editor; Array.apply(null, this.$editor.childNodes).forEach(function (e) { e = MediaInput_$(e); if (e.nodeType == Node.TEXT_NODE) return; if (e.tagName) { var tagName = e.tagName.toLowerCase(); if (tagName == 'br') return; if (tagName.match(/img|script|svg|button|iframe|hr|video|canvas/)) { e.selfRemove(e); } if (tagName.match(/select|input|textarea/)) { e.selfReplace(document.createTextNode(e.value)); return; } var newElements = self.getElementsFromText(self.getTextFromElements(e)); var lastElement; if (e.getComputedStyleValue('display') == 'block') { lastElement = MediaInput_('br'); } else { lastElement = newElements.pop(); } e.selfReplace(lastElement); newElements.forEach(function (nE) { editor.addChildBefore(nE, lastElement); }); } }); this.emit('update', { target: editor }, this); }; MediaInput.eventHandler = {}; MediaInput.eventHandler.keydown = function (event) { if (event.key == "Enter") { if (!event.ctrlKey && !event.altKey && !event.shiftKey) { event.preventDefault(); this.eventHandler.send(event); this.snapText(); } } if (event.ctrlKey && event.key == 'z') { event.preventDefault(); this.undoText(); } if (event.ctrlKey && event.key == 'x') { setTimeout(this.snapText.bind(this), 100) } setTimeout(this.emit.bind(this, 'update', event, this), 1); }; MediaInput.eventHandler.send = function (event) { if (this.images.length == 0 && this.text.trim().length == 0 && this.files.length == 0) { return; } this.emit('send', event, this); this.snapText(); }; MediaInput.eventHandler.clickAddImage = function (event) { openFileDialog({ accept: 'image/*', multiple: true }).then(function (files) { if (!files) return; files.map(function (file) { var url = (window.URL || window.webkitURL).createObjectURL(file); this.addImage(url, file.name, { file: file, name: file.name, url: url }); this.emit('update', event, this); }.bind(this)); }.bind(this)); }; MediaInput.eventHandler.clickAddFile = function (event) { openFileDialog({ multiple: true }).then(function (files) { if (!files) return; files.map(function (file) { var url = (window.URL || window.webkitURL).createObjectURL(file); if (file.type.match(/^image/)) { this.addImage(url, file.name, { file: file, name: file.name, url: url }); } else { var p = file.name.split('.'); var ext = p.length > 1 ? p[p.length - 1] : ''; this.addFile(url, ext.toUpperCase(), file.name, { file: file, name: file.name, url: url }); } }.bind(this)); this.emit('update', event, this); }.bind(this)); }; MediaInput.eventHandler.dragOver = function (event) { event.preventDefault(); this._lastDragOver = new Date().getTime(); var currentDragOver = this._lastDragOver; if (!this.dragOver) { this.dragOver = true; this.addClass('dragover'); this.emit('update', event, this); } setTimeout(function () { this._waitDragFileOut if (this._lastDragOver == currentDragOver) { this.removeClass('dragover'); this.dragOver = false; this.emit('update', event, this); } }.bind(this), 200); }; MediaInput.eventHandler.drop = function (event) { event.preventDefault(); if (event.dataTransfer.items) { for (var i = 0; i < event.dataTransfer.items.length; i++) { if (event.dataTransfer.items[i].kind === 'file') { var file = event.dataTransfer.items[i].getAsFile(); if (!file.type && file.size % 4096 == 0) { //todo: folder } else { this.addSystemFile(file); this.emit('update', event, this); } } } } else { for (var i = 0; i < event.dataTransfer.files.length; i++) { var file = event.dataTransfer.files[i]; if (!file.type && file.size % 4096 == 0) { } else { this.addSystemFile(file); this.emit('update', event, this); } } } }; MediaInput.prototype.addSystemFile = function (file) { var url = (window.URL || window.webkitURL).createObjectURL(file); if (file.type.match(/^image/)) { this.addImage(url, file.name, { file: file, name: file.name, url: url }); } else { var p = file.name.split('.'); var ext = p.length > 1 ? p[p.length - 1] : ''; this.addFile(url, ext.toUpperCase(), file.name, { file: file, name: file.name, url: url }); } } MediaInput.eventHandler.paste = function (event) { var pasteData = (event.clipboardData || window.clipboardData); var beforePasteElement = []; var self = this; function visit(e, ac) { ac.push(e); if (e.childNodes) { for (var i = 0; i < e.childNodes.length; ++i) { visit(e.childNodes[i], ac) } } } visit(this.$editor, beforePasteElement); function relocalCursor() { var afterPasteElement = []; visit(self.$editor, afterPasteElement); var diffElts = afterPasteElement.filter(function (e) { return beforePasteElement.indexOf(e) < 0; }); if (diffElts.length > 0) { var last = diffElts.pop(); if (last.nodeType == Node.TEXT_NODE) { var range = document.createRange(); range.selectNodeContents(last); range.setStart(last, last.data.length); var sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); } else { setSelectionRange(last, Infinity); } } } /**Safari bug */ if (pasteData && pasteData.items) { var items = pasteData.items; var isAddImage = false; for (var i = 0; i < items.length; i++) { if (items[i].type.indexOf('image') !== -1) { var blob = items[i].getAsFile(); var URLObj = (window.URL || window.webkitURL); var source = URLObj.createObjectURL(blob); var file = blobToFile(blob); var buffer = blobToArrayBuffer(blob).then(function (arrayBuffer) { this.addImage(source, 'Clipboard', { file: blob, name: null, url: source, blob: blob, arrayBuffer: arrayBuffer }); this.emit('update', event, this); }.bind(this)); isAddImage = true; this.emit('update', event, this); } } if (isAddImage) event.preventDefault(); requestAnimationFrame(function () { self.makeTextOnly(); relocalCursor(); }); } else { requestAnimationFrame(function () { var img = MediaInput_$('img', this.$editor, function (img) { if (img) { img = MediaInput_$(img); var source = img.getAttribute('src'); img.selfRemove(); Dom["a" /* default */].imageToCanvas(img).then(function (canvas) { var dataURI = canvas.toDataURL(); var blob = dataURItoBlob(dataURI); var file = blobToFile(blob); var buffer = blobToArrayBuffer(blob).then(function (arrayBuffer) { this.addImage(source, 'Clipboard', { dataURI: dataURI, file: blob, name: null, url: source, blob: blob, arrayBuffer: arrayBuffer }); this.emit('update', event, this); }.bind(this)); }.bind(this), function (e) { }).catch(function (e) { }); } }.bind(this)); this.makeTextOnly(); relocalCursor(); }.bind(this)); } }; MediaInput.prototype.undoText = function () { if (this.snapDataHead <= 1) return; this.snapDataHead--; if (this.snapDataHead <= 0) return; var newText = this.snapData[this.snapDataHead - 1]; this.text = newText; setSelectionRange(this.$editor, Infinity); }; MediaInput.prototype.redoText = function () { if (this.snapData.length <= this.snapDataHead) return; this.snapDataHead++; var newText = this.snapData[this.snapDataHead - 1]; var currentText = this.text; this.text = newText; setSelectionRange(this.$editor, Infinity); }; MediaInput.prototype.snapText = function () { while (this.snapData.length > this.snapDataHead && this.snapData.length > 0) this.snapData.pop(); var oldText = this.snapData[this.snapDataHead - 1]; var newText = this.text; if (newText == oldText) return; this.snapData.push(this.text); this.snapDataHead++; } function ImagePreview() { var res = MediaInput_({ extendEvent: 'pressremove', class: ['vmedia-media-input-imagepreview', 'vmedia-no-select'], child: ['img', 'times-ico'] }); res.$img = MediaInput_$('img', res); res.$timesIco = MediaInput_$('times-ico', res); res.$timesIco.on('click', function (event) { res.emit('pressremove', event, res); }); OOP["a" /* default */].drillProperty(res, res.$img, 'imgSrc', 'src'); return res; }; function FilePreview() { var res = MediaInput_({ extendEvent: 'pressremove', class: ['vmedia-media-input-filepreview', 'vmedia-no-select'], child: ['attachment-ico', 'times-ico'] }); res.$img = MediaInput_$('attachment-ico', res); OOP["a" /* default */].drillProperty(res, res.$img, 'ext'); res.$timesIco = MediaInput_$('times-ico', res); res.$timesIco.on('click', function (event) { res.emit('pressremove', event, res); }); return res; }; MediaCore.creator.mediainput = MediaInput; MediaCore.creator.imagepreview = ImagePreview; MediaCore.creator.filepreview = FilePreview; MediaCore.creator['send-ico'] = function () { return MediaInput_( [ '<svg class="send" width="100" height="100" version="1.1" viewBox="0 0 26.458 26.458">', ' <g transform="translate(0 -270.54)">', ' <path d="m0.64298 272.44 3.1712 9.5402 22.152 1.7742-22.152 1.7482-3.1712 9.4749 25.323-11.223z" />', ' </g>', '</svg>' ].join('') ); }; MediaCore.creator['add-file-ico'] = function () { return MediaInput_( [ '<svg class="add-file" width="100" height="100" version="1.1" viewBox="0 0 26.458 26.458" xmlns="http://www.w3.org/2000/svg">', ' <g transform="translate(0 -270.54)">', ' <path d="m4.2431 295.69c-0.74006-0.0759-1.4136-0.33772-2.0047-0.77942-0.19965-0.14919-0.60549-0.55475-0.75233-0.75182-0.45099-0.60524-0.7154-1.2913-0.77699-2.016-0.01275-0.15007-0.01628-2.6111-0.01252-8.7468 0.0049-8.0504 0.0068-8.5472 0.03338-8.6986 0.0883-0.50391 0.22692-0.91024 0.44705-1.3104 0.52794-0.95973 1.452-1.6645 2.5119-1.9158 0.44319-0.10508 0.12729-0.0972 4.1445-0.10308 2.5538-4e-3 3.6864-1e-4 3.7795 0.0121 0.38853 0.0508 0.80777 0.24687 1.2709 0.59434 0.44102 0.33085 0.68272 0.55272 1.7227 1.5813 0.46507 0.45998 1.2812 1.2664 1.8136 1.7921 0.96172 0.94958 1.3847 1.3824 1.696 1.7354 0.61073 0.69257 0.92 1.2063 1.0441 1.7344 0.02613 0.11122 0.02875 0.28598 0.03409 2.2731 0.0047 1.7451 0.0018 2.1574-0.01502 2.178-0.01424 0.0174-0.10685 0.0394-0.2936 0.0699-0.45695 0.0745-1.0078 0.22363-1.4356 0.38862-0.10025 0.0387-0.1888 0.0663-0.19678 0.0613-0.0085-5e-3 -0.01461-0.7983-0.01475-1.9156-2.09e-4 -1.6438-0.0036-1.9208-0.0245-2.0096-0.06972-0.29578-0.28642-0.50043-0.63767-0.60222-0.32942-0.0955-0.31104-0.0947-2.4299-0.10482l-1.9437-9e-3 -0.12495-0.0442c-0.25474-0.0901-0.45899-0.26526-0.5666-0.48578-0.10853-0.22238-0.10356-0.127-0.10407-1.9994-4.63e-4 -1.7153-0.01031-2.1544-0.05446-2.4288-0.06935-0.43095-0.22893-0.69171-0.5027-0.82138l-0.10904-0.0516h-3.1807c-3.4262 0-3.27-4e-3 -3.5482 0.0835-0.68034 0.21325-1.1718 0.754-1.3329 1.4666l-0.0345 0.15261v8.5059c0 8.1045 0.0014 8.5125 0.02871 8.6468 0.08088 0.39719 0.25808 0.72858 0.53956 1.0091 0.28082 0.27984 0.576 0.44186 0.98191 0.53896 0.11389 0.0273 0.36156 0.0293 4.5294 0.0374l4.409 9e-3 0.02019 0.0402c0.0111 0.0221 0.07695 0.15943 0.14632 0.30521s0.17519 0.3518 0.23515 0.45783c0.14341 0.25357 0.43703 0.69284 0.61725 0.92343 0.0793 0.10148 0.14077 0.19003 0.13659 0.19679-0.0073 0.0118-9.9306 0.0132-10.046 1e-3z" />', ' <path transform="matrix(.26458 0 0 .26458 0 270.54)" d="m72.469 65.742v7.4062h-7.4062v7.2852h7.4062v7.2812h7.2793v-7.2812h7.3535v-7.2852h-7.3535v-7.4062zm24.948 11.119a21.371 21.371 0 0 1-21.371 21.371 21.371 21.371 0 0 1-21.371-21.371 21.371 21.371 0 0 1 21.371-21.371 21.371 21.371 0 0 1 21.371 21.371z" style="fill-rule:evenodd;" />', ' <path d="m17.256 283.76 1.921-0.47607-0.04725-4.2884c0-0.50159-0.29516-1.2441-1.0789-2.0168l-4.6989-4.6324c-0.73814-0.72769-1.5947-0.97084-2.1519-0.97084h-7.0235c-2.1533 0.0144-3.4601 2.6226-3.4778 3.4778v17.284c0 2.121 2.2409 3.5346 3.5346 3.5346h10.058l-1.1146-1.9305h-8.6658c-1.1271 0-1.8503-1.1115-1.8503-1.8503v-16.867c0-1.0721 1.1373-1.6977 1.6977-1.6977h6.2175c0.43142 0 0.8103 0.28958 0.8103 1.1742v3.714c0 0.24768 0.36442 0.90967 0.90968 0.90967h3.2537c1.2453 0 1.6905 0.32876 1.6905 1.1613z" />', ' </g>', '</svg>' ].join('') ); }; MediaCore.creator['add-image-ico'] = function () { return MediaInput_( [ '<svg class="add-image" width="100" height="100" version="1.1" viewBox="0 0 26.458 26.458" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="absol/src/HTML5/Elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">', ' <g transform="translate(0 -270.54)">', ' <path d="m24.73 288.69a5.9808 5.9808 0 0 1-5.9808 5.9808 5.9808 5.9808 0 0 1-5.9808-5.9808 5.9808 5.9808 0 0 1 5.9808-5.9808 5.9808 5.9808 0 0 1 5.9808 5.9808zm1.503-0.037a7.5843 7.5843 0 0 1-7.5843 7.5843 7.5843 7.5843 0 0 1-7.5843-7.5843 7.5843 7.5843 0 0 1 7.5843-7.5843 7.5843 7.5843 0 0 1 7.5843 7.5843z" style="fill-rule:evenodd;fill:#414141"/>', ' <path d="m17.869 284.42v3.4127h-3.4081v1.6066h3.4081v3.438h1.6061v-3.438h3.4432v-1.6066h-3.4432v-3.4127z" style="fill-rule:evenodd;fill:#414141"/>', ' <path d="m24.614 281.39v-6.1305c0-1.6957-1.2841-2.6602-2.6602-2.6602h-18.412c-1.4547 0-2.7249 1.0223-2.7249 2.7249v14.986c0 1.2346 0.99768 2.6028 2.586 2.586h6.9542c-0.36184-0.63963-0.51495-1.0286-0.69323-1.6506h-6.4562c-0.29938 0-0.72246-0.40379-0.72246-0.72247v-1.8082l6.0428-6.7569 2.0296 2.0129 0.9605-1.3029-2.9734-3.1488-5.9885 6.7736v-11.426c0-0.24935 0.30766-0.63476 0.63476-0.63476h18.934c0.3592 0 0.84357 0.19284 0.84357 0.84357v5.2285c0.61147 0.22444 1.1564 0.59412 1.6454 1.0858z" style="fill:#414141"/>', ' <circle cx="17.869" cy="277.61" r="1.6891" style="fill-rule:evenodd;fill:#414141"/>', ' </g>', '</svg>' ].join('') ); }; MediaCore.creator['attachment-ico'] = function () { return MediaInput_( [ '<svg class="attachment" width="1024" height="1024" version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" >', ' <path d="M145.6 0C100.8 0 64 35.2 64 80v862.4C64 987.2 100.8 1024 145.6 1024h732.8c44.8 0 81.6-36.8 81.6-81.6V324.8L657.6 0h-512z" fill="#8199AF"/>', ' <path d="M960 326.4v16H755.2s-100.8-20.8-99.2-108.8c0 0 4.8 92.8 97.6 92.8H960z" fill="#617F9B"/>', ' <path d="M657.6 0v233.6c0 25.6 17.6 92.8 97.6 92.8H960L657.6 0z" fill="#fff"/>', ' <path d="m491.77 770.31c17.6-19.2 17.6-48 0-67.2s-48-17.6-65.6 0l-147.2 147.2c-17.6 17.6-17.6 48 0 65.6s48 19.2 65.6 0l91.2-89.6c4.8-4.8 4.8-12.8 0-17.6s-14.4-6.4-19.2 0l-57.6 56c-8 8-19.2 8-27.2 0s-8-20.8 0-28.8l56-56c20.8-20.8 54.4-20.8 75.2 0s20.8 54.4 0 75.2l-89.6 89.6c-33.6 33.6-88 33.6-123.2 0-33.6-33.6-33.6-88 0-121.6l147.2-147.2c33.6-33.6 89.6-33.6 123.2 0s33.6 88 0 121.6l-14.4 14.4c-1.6-14.4-6.4-28.8-16-41.6z" style="fill:#fff"/>', ' <path d="m130.09 23.864h504.75v182.93h-545.65v-140.08c0.34155-16.845 13.608-42.414 40.9-42.847z" style="fill-opacity:.29648;fill-rule:evenodd;fill:#fff"/>', '</svg>' ] .join('') ); }; MediaCore.creator['attachment-ico'].property = { ext: { set: function (value) { value = value || ''; if (this.$ext) { this.$ext.selfRemove(); } this.$ext = HTML5_Svg.ShareInstance._('<text text-anchor="middle" x="321.39" y="170" font-size="145.76" style="fill:white;" >' + value + '</text>').addTo(this); }, get: function () { return this._ext || ''; } } }; MediaCore.creator['times-ico'] = function () { return MediaInput_( [ '<svg class="times" width="100" height="100" version="1.1" viewBox="0 0 26.458 26.458" xmlns="http://www.w3.org/2000/svg">', ' <g transform="translate(0 -270.54)">', ' <path d="m7.7013 276.49 5.4832 5.4832 5.5494-5.5494 1.7874 1.7874-5.5291 5.5291 5.4957 5.4957-1.754 1.754-5.5124-5.5124-5.5542 5.5542-1.7623-1.7623 5.5375-5.5375-5.5208-5.5208zm17.103 7.3351a11.558 11.558 0 0 1-11.558 11.558 11.558 11.558 0 0 1-11.558-11.558 11.558 11.558 0 0 1 11.558-11.558 11.558 11.558 0 0 1 11.558 11.558z" style="fill-rule:evenodd;"/>', ' </g>' ].join('') ); }; MediaCore.creator['download-ico'] = function () { return MediaInput_( [ '<svg class="download" width="100mm" height="100mm" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">', ' <g transform="translate(0,-197)">', ' <path d="m44.888 209.14h13.982c1.1087 0.0459 2.2328 0.74137 2.317 2.3612v23.694h13.622c1.9742-0.18801 3.004 2.6244 1.9175 4.1118l-23.469 23.918c-0.876 0.77477-1.9993 0.77232-2.9362 0l-23.559-24.009c-0.86532-1.0422 0.11658-4.1953 2.3821-4.2047h13.268v-22.939c-0.08167-1.1772 0.78292-2.9507 2.4768-2.9312z" style="fill:#00c3e5"/>', ' <path d="m86.97 276.99a3.5027 3.5696 0 0 1-3.5027 3.5696 3.5027 3.5696 0 0 1-3.5027-3.5696 3.5027 3.5696 0 0 1 3.5027-3.5696 3.5027 3.5696 0 0 1 3.5027 3.5696zm-12.768 0a3.5027 3.5696 0 0 1-3.5027 3.5696 3.5027 3.5696 0 0 1-3.5027-3.5696 3.5027 3.5696 0 0 1 3.5027-3.5696 3.5027 3.5696 0 0 1 3.5027 3.5696zm-60.003-16.135h24.609c9.1206 13.508 17.573 12.942 26.609 0h23.839c2.8529 5e-3 3.5087 2.3205 3.4679 3.8227v18.953c0.04867 1.3083-1.5145 2.9901-2.7505 2.9832h-76.253c-1.049 0.0441-2.6554-1.4851-2.6306-3.1451l-1.56e-4 -18.792c0.0024-1.3549 0.50958-3.7927 3.1091-3.8227z" style="fill-rule:evenodd;fill:#00c3e5"/>', ' </g>', '</svg>' ].join('') ); }; MediaCore.creator['plus-ico'] = function () { return MediaInput_( '<svg class="_7oal" height="24" width="24" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><polygon points="-6,30 30,30 30,-6 -6,-6 "></polygon><path d="m18,11l-5,0l0,-5c0,-0.552 -0.448,-1 -1,-1c-0.5525,0 -1,0.448 -1,1l0,5l-5,0c-0.5525,0 -1,0.448 -1,1c0,0.552 0.4475,1 1,1l5,0l0,5c0,0.552 0.4475,1 1,1c0.552,0 1,-0.448 1,-1l0,-5l5,0c0.552,0 1,-0.448 1,-1c0,-0.552 -0.448,-1 -1,-1m-6,13c-6.6275,0 -12,-5.3725 -12,-12c0,-6.6275 5.3725,-12 12,-12c6.627,0 12,5.3725 12,12c0,6.6275 -5.373,12 -12,12" ></path></g></svg>' ); }; ACore["a" /* default */].creator.mediainput = MediaInput; /* harmony default export */ var js_MediaInput = (MediaInput); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/mediainput.css var mediainput = __webpack_require__(32); // CONCATENATED MODULE: ./node_modules/absol/src/JSMaker/TemplateString.js function TemplateString(props) { this.parts = props.parts; } TemplateString.prototype.toJSCode = function () { return this.parts.map(function (e) { if (e.type == TemplateString.TYPE_EXPRESSION) { return '(' + e.data + ')'; } else { return JSON.stringify(e.data); } }).join('+'); }; TemplateString.__partRegex = /(\{\{(([^\}]|(\}[^\}]))*)\}\})|(([^\{]|(\{[^\{]))+)/g; /** * @param {String} text */ TemplateString.__matchExpression = function (text) { if (text[0] == '{' && text[1] == '{' && text[text.length - 1] == '}' && text[text.length - 2] == '}') { return [text, text.substr(2, text.length - 4).trim()]; } else { return false; } }; TemplateString.TYPE_STRING = 0; TemplateString.TYPE_EXPRESSION = 1; TemplateString.parse = function (text) { text = text+''; var matchedParts = text.match(this.__partRegex); if (matchedParts) { var parts = matchedParts.map(function (e) { var matchedExp = this.__matchExpression(e); if (matchedExp) { return { type: this.TYPE_EXPRESSION, data: matchedExp[1] }; } else { return { type: this.TYPE_STRING, data: e }; } }.bind(this)); return new TemplateString({ parts: parts }); } else { return undefined; } }; /* harmony default export */ var JSMaker_TemplateString = (TemplateString); // CONCATENATED MODULE: ./node_modules/absol/src/Color/Color.js function Color(bytes) { this.bytes = bytes.slice(); } Color.prototype.toHex6 = function () { return this.bytes.slice(0, 3).map(function (b) { b = b * 255 >> 0; return (b < 16 ? '0' : '') + b.toString(16); }).join(''); }; Color.prototype.toHex8 = function () { return this.bytes.map(function (b) { b = b * 255 >> 0; return (b < 16 ? '0' : '') + b.toString(16); }).join(''); }; Color.prototype.toHex3 = function () { return this.bytes.slice(0, 3).map(function (b) { b = b * 255 / 17 >> 0; return b.toString(16); }).join(''); }; Color.prototype.toHex4 = function () { return this.bytes.map(function (b) { b = b * 255 / 17 >> 0; return b.toString(16); }).join(''); }; Color.prototype.toHSLA = function () { return Color.rgbaToHSLA(this.bytes); }; Color.prototype.toHSBA = function () { return Color.rgbaToHSBA(this.bytes); }; Color.prototype.toHWBA = function () { return Color.rgbaToHWBA(this.bytes); }; Color.prototype.getHightContrastColor = function () { var hsba = this.toHSBA(); var h, s, b; h = hsba[0] > 0.5 ? hsba[0] - 0.5 : hsba[0] + 0.5; s = hsba[1] > 0.5 ? hsba[1] - 0.5 : hsba[1] + 0.5; b = hsba[2] > 0.5 ? hsba[2] - 0.5 : hsba[2] + 0.5; return Color.fromHSB(h, s, b); }; Color.prototype.getContrastYIQ = function () { var r = this.bytes[0] * 255; var g = this.bytes[1] * 255; var b = this.bytes[2] * 255; var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000; return (yiq >= 128) ? new Color([0, 0, 0, 1]) : new Color([1, 1, 1, 1]); }; Color.prototype.clone = function () { return new Color(this.bytes.slice()); }; Color.prototype.toString = function (mode) { mode = mode || 'rgba'; mode = mode.toLocaleLowerCase(); return Color.templates[mode](this); }; Color.templates = [ ['rgba', 'bytes', 'rgba({{x[0]*255>>0}}, {{x[1]*255>>0}}, {{x[2]*255>>0}}, {{x[3]}})'], ['rgb', 'bytes', 'rgb({{x[0]*255>>0}}, {{x[1]*255>>0}}, {{x[2]*255>>0}})'], ['hsl', 'toHSLA()', 'hsl({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'], ['hsla', 'toHSLA()', 'hsla({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})'], ['hsb', 'toHSBA()', 'hsb({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'], ['hsba', 'toHSBA()', 'hsba({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})'], ['hex3', 'toHex3()', '#{{x}}'], ['hex4', 'toHex4()', '#{{x}}'], ['hex6', 'toHex6()', '#{{x}}'], ['hex8', 'toHex8()', '#{{x}}'], ['hwb', 'toHWBA()', 'hwb({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'], ['hwba', 'toHWBA()', 'hwba({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})'] ].reduce(function (ac, cr) { ac[cr[0]] = new Function('color', [ 'var x = color.' + cr[1] + ';', 'return ' + JSMaker_TemplateString.parse(cr[2]).toJSCode() + ';' ].join('\n')); return ac; }, {}); Color.regexes = { whiteSpace: /\s*/, // Match zero or more whitespace characters. integer: /(\d{1,3})/, // Match integers: 79, 255, etc. decimal: /((?:\d+(?:\.\d+)?)|(?:\.\d+))/, // Match 129.6, 79, .9, etc. percent: /((?:\d+(?:\.\d+)?)|(?:\.\d+))%/, // Match 12.9%, 79%, .9%, etc. hex3: /^#([a-f0-9])([a-f0-9])([a-f0-9])$/i, // Match colors in format #XXXX, e.g. #5123. hex4: /^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])$/i, // Match colors in format #XXXXXX, e.g. #b4d455. hex6: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i, // Match colors in format #XXXXXXXX, e.g. #b4d45535. hex8: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i }; Color.regexes.percent = new RegExp(Color.regexes.decimal.source + '%'); Color.regexes.rgb = new RegExp( [ '^rgb\\(', Color.regexes.integer.source, ',', Color.regexes.integer.source, ',', Color.regexes.integer.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); Color.regexes.rgbPercent = new RegExp( [ '^rgb\\(', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); // Match colors in format rgb(R, G, B, A), e.g. rgb(255, 0, 128, 0.25). Color.regexes.rgba = new RegExp( [ '^rgba\\(', Color.regexes.integer.source, ',', Color.regexes.integer.source, ',', Color.regexes.integer.source, ',', Color.regexes.decimal.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); // Match colors in format rgb(R%, G%, B%, A), e.g. rgb(100%, 0%, 28.9%, 0.5). Color.regexes.rgbaPercent = new RegExp( [ '^rgba\\(', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.decimal.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); // Match colors in format hsla(H, S%, L%), e.g. hsl(100, 40%, 28.9%). Color.regexes.hsl = new RegExp( [ '^hsl\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); // Match colors in format hsla(H, S%, L%, A), e.g. hsla(100, 40%, 28.9%, 0.5). Color.regexes.hsla = new RegExp( [ '^hsla\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.decimal.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); // Match colors in format hsb(H, S%, B%), e.g. hsb(100, 40%, 28.9%). Color.regexes.hsb = new RegExp( [ '^hsb\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); // Match colors in format hsba(H, S%, B%, A), e.g. hsba(100, 40%, 28.9%, 0.5). Color.regexes.hsba = new RegExp( [ '^hsba\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.decimal.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); Color.regexes.hwb = new RegExp( [ '^hwb\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); // Match colors in format hsba(H, S%, B%, A), e.g. hsba(100, 40%, 28.9%, 0.5). Color.regexes.hwba = new RegExp( [ '^hwba\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.decimal.source, '\\)$' ].join(Color.regexes.whiteSpace.source), 'i' ); Color.fromRGB = function (r, g, b) { return new Color([r, g, b, 1]); }; Color.fromRGBA = function (r, g, b, a) { return new Color([r, g, b, a]); }; Color.fromHSL = function (h, s, l) { var bytes = this.hslaToRGBA([h, s, l, 1]); return new Color(bytes); }; Color.fromHSLA = function (h, s, l, a) { var bytes = this.hslaToRGBA([h, s, l, a]); return new Color(bytes); }; Color.fromHSB = function (h, s, b) { var bytes = this.hsbaToRGBA([h, s, b, 1]); return new Color(bytes); }; Color.fromHSBA = function (h, s, b, a) { var bytes = this.hsbaToRGBA([h, s, b, a]); return new Color(bytes); }; Color.fromHWB = function (h, s, b) { var bytes = this.hwbaToRGBA([h, s, b, 1]); return new Color(bytes); }; Color.fromHWBA = function (h, s, b, a) { var bytes = this.hwbaToRGBA([h, s, b, a]); return new Color(bytes); }; /** * @param {String} text * @returns {Color} */ Color.parse = function (text) { if (this.namedColors[text]) text = this.namedColors[text]; if (this.regexes.hex8.test(text)) { return this.fromRGBA.apply(this, this.regexes.hex8.exec(text) .slice(1) .map(function (v) { return parseInt(v, 16) / 255; })); } else if (this.regexes.hex6.test(text)) { return this.fromRGB.apply(this, this.regexes.hex6.exec(text) .slice(1) .map(function (v) { return parseInt(v, 16) / 255; })); } else if (this.regexes.hex4.test(text)) { return this.fromRGBA.apply(this, this.regexes.hex4.exec(text) .slice(1) .map(function (v) { return parseInt(v + v, 16) / 255; })); } else if (this.regexes.hex3.test(text)) { return this.fromRGB.apply(this, this.regexes.hex3.exec(text) .slice(1) .map(function (v) { return parseInt(v + v, 16) / 255; })); } else if (this.regexes.rgba.test(text)) { return this.fromRGBA.apply(this, this.regexes.rgba.exec(text) .slice(1) .map(function (v, i) { return i < 3 ? parseFloat(v, 10) / 255 : parseFloat(v, 10); })); } else if (this.regexes.rgb.test(text)) { return this.fromRGB.apply(this, this.regexes.rgb.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / 255; })); } else if (this.regexes.rgbPercent.test(text)) { return this.fromRGB.apply(this, this.regexes.rgbPercent.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / 100; })); } else if (this.regexes.rgbaPercent.test(text)) { return this.fromRGBA.apply(this, this.regexes.rgbaPercent.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / (i < 3 ? 100 : 1); })); } else if (this.regexes.hsl.test(text)) { return this.fromHSL.apply(this, this.regexes.hsl.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / (i == 0 ? 360 : 100); })); } else if (this.regexes.hsla.test(text)) { return this.fromHSLA.apply(this, this.regexes.hsla.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / (i == 0 ? 360 : i < 3 ? 100 : 1); })); } else if (this.regexes.hsb.test(text)) { return this.fromHSB.apply(this, this.regexes.hsb.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / (i == 0 ? 360 : 100); })); } else if (this.regexes.hsba.test(text)) { return this.fromHSBA.apply(this, this.regexes.hsba.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / (i == 0 ? 360 : i < 3 ? 100 : 1); })); } else if (this.regexes.hwb.test(text)) { return this.fromHWB.apply(this, this.regexes.hwb.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / (i == 0 ? 360 : 100); })); } else if (this.regexes.hwba.test(text)) { return this.fromHWBA.apply(this, this.regexes.hwba.exec(text) .slice(1) .map(function (v, i) { return parseFloat(v, 10) / (i == 0 ? 360 : i < 3 ? 100 : 1); })); } else { throw new Error("Fail to parse " + text); } }; Color.namedColors = { aliceblue: '#f0f8ff', antiquewhite: '#faebd7', aqua: '#00ffff', aquamarine: '#7fffd4', azure: '#f0ffff', beige: '#f5f5dc', bisque: '#ffe4c4', black: '#000000', blanchedalmond: '#ffebcd', blue: '#0000ff', blueviolet: '#8a2be2', brown: '#a52a2a', burlywood: '#deb887', cadetblue: '#5f9ea0', chartreuse: '#7fff00', chocolate: '#d2691e', coral: '#ff7f50', cornflowerblue: '#6495ed', cornsilk: '#fff8dc', crimson: '#dc143c', cyan: '#00ffff', darkblue: '#00008b', darkcyan: '#008b8b', darkgoldenrod: '#b8860b', darkgray: '#a9a9a9', darkgreen: '#006400', darkgrey: '#a9a9a9', darkkhaki: '#bdb76b', darkmagenta: '#8b008b', darkolivegreen: '#556b2f', darkorange: '#ff8c00', darkorchid: '#9932cc', darkred: '#8b0000', darksalmon: '#e9967a', darkseagreen: '#8fbc8f', darkslateblue: '#483d8b', darkslategray: '#2f4f4f', darkslategrey: '#2f4f4f', darkturquoise: '#00ced1', darkviolet: '#9400d3', deeppink: '#ff1493', deepskyblue: '#00bfff', dimgray: '#696969', dimgrey: '#696969', dodgerblue: '#1e90ff', firebrick: '#b22222', floralwhite: '#fffaf0', forestgreen: '#228b22', fuchsia: '#ff00ff', gainsboro: '#dcdcdc', ghostwhite: '#f8f8ff', gold: '#ffd700', goldenrod: '#daa520', gray: '#808080', green: '#008000', greenyellow: '#adff2f', grey: '#808080', honeydew: '#f0fff0', hotpink: '#ff69b4', indianred: '#cd5c5c', indigo: '#4b0082', ivory: '#fffff0', khaki: '#f0e68c', lavender: '#e6e6fa', lavenderblush: '#fff0f5', lawngreen: '#7cfc00', lemonchiffon: '#fffacd', lightblue: '#add8e6', lightcoral: '#f08080', lightcyan: '#e0ffff', lightgoldenrodyellow: '#fafad2', lightgray: '#d3d3d3', lightgreen: '#90ee90', lightgrey: '#d3d3d3', lightpink: '#ffb6c1', lightsalmon: '#ffa07a', lightseagreen: '#20b2aa', lightskyblue: '#87cefa', lightslategray: '#778899', lightslategrey: '#778899', lightsteelblue: '#b0c4de', lightyellow: '#ffffe0', lime: '#00ff00', limegreen: '#32cd32', linen: '#faf0e6', magenta: '#ff00ff', maroon: '#800000', mediumaquamarine: '#66cdaa', mediumblue: '#0000cd', mediumorchid: '#ba55d3', mediumpurple: '#9370db', mediumseagreen: '#3cb371', mediumslateblue: '#7b68ee', mediumspringgreen: '#00fa9a', mediumturquoise: '#48d1cc', mediumvioletred: '#c71585', midnightblue: '#191970', mintcream: '#f5fffa', mistyrose: '#ffe4e1', moccasin: '#ffe4b5', navajowhite: '#ffdead', navy: '#000080', oldlace: '#fdf5e6', olive: '#808000', olivedrab: '#6b8e23', orange: '#ffa500', orangered: '#ff4500', orchid: '#da70d6', palegoldenrod: '#eee8aa', palegreen: '#98fb98', paleturquoise: '#afeeee', palevioletred: '#db7093', papayawhip: '#ffefd5', peachpuff: '#ffdab9', peru: '#cd853f', pink: '#ffc0cb', plum: '#dda0dd', powderblue: '#b0e0e6', purple: '#800080', red: '#ff0000', rosybrown: '#bc8f8f', royalblue: '#4169e1', saddlebrown: '#8b4513', salmon: '#fa8072', sandybrown: '#f4a460', seagreen: '#2e8b57', seashell: '#fff5ee', sienna: '#a0522d', silver: '#c0c0c0', skyblue: '#87ceeb', slateblue: '#6a5acd', slategray: '#708090', slategrey: '#708090', snow: '#fffafa', springgreen: '#00ff7f', steelblue: '#4682b4', tan: '#d2b48c', teal: '#008080', thistle: '#d8bfd8', tomato: '#ff6347', turquoise: '#40e0d0', violet: '#ee82ee', wheat: '#f5deb3', white: '#ffffff', whitesmoke: '#f5f5f5', yellow: '#ffff00', yellowgreen: '#9acd32' }; /********************** COLOR CONVERTER *******************/ Color.rgbToHex = function (rgb) { return '#' + rgb.slice(0, 3).map(function (c) { var res = ((c * 255) >> 0).toString(16); if (res < 10) res = '0' + res; return res.toUpperCase(); }).join(''); }; Color.rgbaToHex = function (rgb) { return '#' + rgb.map(function (c) { var res = ((c * 255) >> 0).toString(16); if (res < 10) res = '0' + res; return res.toUpperCase(); }).join(''); }; Color.hsbaToText = function (hsba) { return 'hsba(' + (hsba[0] * 360 >> 0) + 'deg, ' + (hsba[1] * 100 >> 0) + '%, ' + (hsba[2] * 100 >> 0) + '%, ' + (hsba[3].toFixed(3)) + ')'; }; Color.hslaToText = function (hsla) { return 'hsla(' + (hsla[0] * 360 >> 0) + 'deg, ' + (hsla[1] * 100 >> 0) + '%, ' + (hsla[2] * 100 >> 0) + '%, ' + (hsla[3].toFixed(3)) + ')'; }; Color.rgbaToText = function (rgba) { return 'rgba(' + (rgba[0] * 255 >> 0) + ', ' + (rgba[1] * 255 >> 0) + ', ' + (rgba[2] * 255 >> 0) + ', ' + (rgba[3].toFixed(3)) + ')'; }; Color.hsbToText = function (hsba) { return 'hsb(' + (hsba[0] * 360 >> 0) + 'deg, ' + (hsba[1] * 100 >> 0) + '%, ' + (hsba[2] * 100 >> 0) + '%)'; }; Color.hslToText = function (hsl) { return 'hsl(' + (hsl[0] * 360 >> 0) + 'deg, ' + (hsl[1] * 100 >> 0) + '%, ' + (hsl[2] * 100 >> 0) + '%)'; }; Color.rgbToText = function (rgba) { return 'rgb(' + (rgba[0] * 255 >> 0) + ', ' + (rgba[1] * 255 >> 0) + ', ' + (rgba[2] * 255 >> 0) + ')'; }; Color.hsbaToHSLA = function (hsba) { var hue = hsba[0]; var sat = hsba[1]; var val = hsba[2]; // Calculate lightness. var li = (2 - sat) * val / 2; // Convert saturation. if (li !== 0) { if (li === 1) { sat = 0; } else if (li < 0.5) { sat = sat / (2 - sat); } else { sat = sat * val / (2 - li * 2); } } // Hue and alpha stay the same. return [hue, sat, li, hsba[3]]; }; Color.hsbaToRGBA = function (hsba) { var hue = hsba[0] * 6; // We will split hue into 6 sectors. var sat = hsba[1]; var val = hsba[2]; var RGBA = []; if (sat === 0) { RGBA = [val, val, val, hsba[3]]; // Return early if grayscale. } else { var sector = Math.floor(hue); var tint1 = val * (1 - sat); var tint2 = val * (1 - sat * (hue - sector)); var tint3 = val * (1 - sat * (1 + sector - hue)); var red, green, blue; if (sector === 1) { // Yellow to green. red = tint2; green = val; blue = tint1; } else if (sector === 2) { // Green to cyan. red = tint1; green = val; blue = tint3; } else if (sector === 3) { // Cyan to blue. red = tint1; green = tint2; blue = val; } else if (sector === 4) { // Blue to magenta. red = tint3; green = tint1; blue = val; } else if (sector === 5) { // Magenta to red. red = val; green = tint1; blue = tint2; } else { // Red to yellow (sector could be 0 or 6). red = val; green = tint3; blue = tint1; } RGBA = [red, green, blue, hsba[3]]; } return RGBA; }; Color.hslaToHSBA = function (hsla) { var hue = hsla[0]; var sat = hsla[1]; var li = hsla[2]; // Calculate brightness. var val; if (li < 0.5) { val = (1 + sat) * li; } else { val = li + sat - li * sat; } // Convert saturation. sat = 2 * (val - li) / val; // Hue and alpha stay the same. return [hue, sat, val, hsla[3]]; }; Color.hslaToRGBA = function (hsla) { var hue = hsla[0] * 6; // We will split hue into 6 sectors. var sat = hsla[1]; var li = hsla[2]; var RGBA = []; if (sat === 0) { RGBA = [li, li, li, hsla[3]]; // Return early if grayscale. } else { // Calculate brightness. var val; if (li < 0.5) { val = (1 + sat) * li; } else { val = li + sat - li * sat; } // Define zest. var zest = 2 * li - val; // Implement projection (project onto green by default). var hzvToRGB = function (hue, zest, val) { if (hue < 0) { // Hue must wrap to allow projection onto red and blue. hue += 6; } else if (hue >= 6) { hue -= 6; } if (hue < 1) { // Red to yellow (increasing green). return zest + (val - zest) * hue; } else if (hue < 3) { // Yellow to cyan (greatest green). return val; } else if (hue < 4) { // Cyan to blue (decreasing green). return zest + (val - zest) * (4 - hue); } else { // Blue to red (least green). return zest; } }; // Perform projections, offsetting hue as necessary. RGBA = [ hzvToRGB(hue + 2, zest, val), hzvToRGB(hue, zest, val), hzvToRGB(hue - 2, zest, val), hsla[3] ]; } return RGBA; }; Color.rgbaToHSBA = function (rgba) { var red = rgba[0]; var green = rgba[1]; var blue = rgba[2]; var val = Math.max(red, green, blue); var chroma = val - Math.min(red, green, blue); var hue, sat; if (chroma === 0) { // Return early if grayscale. hue = 0; sat = 0; } else { sat = chroma / val; if (red === val) { // Magenta to yellow. hue = (green - blue) / chroma; } else if (green === val) { // Yellow to cyan. hue = 2 + (blue - red) / chroma; } else if (blue === val) { // Cyan to magenta. hue = 4 + (red - green) / chroma; } if (hue < 0) { // Confine hue to the interval [0, 1). hue += 6; } else if (hue >= 6) { hue -= 6; } } return [hue / 6, sat, val, rgba[3]]; }; Color.rgbaToHSLA = function (rgba) { var red = rgba[0]; var green = rgba[1]; var blue = rgba[2]; var val = Math.max(red, green, blue); var min = Math.min(red, green, blue); var li = val + min; // We will halve this later. var chroma = val - min; var hue, sat; if (chroma === 0) { // Return early if grayscale. hue = 0; sat = 0; } else { if (li < 1) { sat = chroma / li; } else { sat = chroma / (2 - li); } if (red === val) { // Magenta to yellow. hue = (green - blue) / chroma; } else if (green === val) { // Yellow to cyan. hue = 2 + (blue - red) / chroma; } else if (blue === val) { // Cyan to magenta. hue = 4 + (red - green) / chroma; } if (hue < 0) { // Confine hue to the interval [0, 1). hue += 6; } else if (hue >= 6) { hue -= 6; } } return [hue / 6, sat, li / 2, rgba[3]]; }; Color.hwbaToHSBA = function (hwba) { return [hwba[0], 1 - hwba[1] / (1 - hwba[2]), 1 - hwba[2], hwba[3]]; }; Color.hsbaToHWBA = function (hsla) { return [hsla[0], (1 - hsla[1]) * hsla[2], 1 - hsla[2], hsla[3]]; }; Color.rgbaToHWBA = function (rgba) { return this.hsbaToHWBA(this.rgbaToHSBA(rgba)); }; Color.hwbaToRGBA = function (hwba) { return this.hsbaToRGBA(this.hwbaToHSBA(hwba)); }; /* harmony default export */ var Color_Color = (Color); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/ResizableLayout.js var ResizableLayout_ = ACore["a" /* default */]._; var ResizableLayout_$ = ACore["a" /* default */].$; function ResizableLayout() { var res = ResizableLayout_({ class: 'absol-resizablelayout', child: '.absol-resizablelayout-cell' }); res._colsSize = [1]; res._rowSize = [1]; return res; } ResizableLayout.prototype.debug = function(){ ResizableLayout_$('div', this, function(e){ e.addStyle('background-color', Color_Color.fromHSLA(Math.random(), Math.random(), 0.2, 0.2).toString()) }); }; /** * @param {Number} index -1: end of table * @param {Number} size * @returns {Array<Element>} */ ResizableLayout.prototype.insertRow = function (index, size) { if (!(size>=0 && size<=1)){ this._rowSize.reduce(function(ac, cr){return ac+ cr},0)/this._rowSize.length; } }; ResizableLayout.prototype.addRow = function (index) { } ResizableLayout.prototype.updateSize = function () { }; ResizableLayout.prototype.property = {}; ResizableLayout.prototype.property.nCol = { set: function (value) { if (value > 0) { value = Math.ceil(value); } else { throw new Error('Invalid number'); } }, get: function () { } }; ResizableLayout.prototype.property.nRow = { set: function (value) { if (value > 0) { value = Math.ceil(value); } else { throw new Error('Invalid number'); } }, get: function () { } }; ResizableLayout.prototype.init = function (props) { this._cell = []; Object.assign(this, props || {}); }; ACore["a" /* default */].creator.resizablelayout = ResizableLayout; /* harmony default export */ var js_ResizableLayout = (ResizableLayout); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/resizablelayout.css var resizablelayout = __webpack_require__(34); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/adapter/SearchStringArrayAdapter.js /** * @typedef {Object} SearchArrayAdapterOption * @property {function} searchFuntion * * * * @param {Array<String>} arr * @param {SearchArrayAdapterOption} options not implement yet */ function SearchStringArrayAdapter_SearchStringArrayAdapter(texts, options) { if (!this.queryItems) return new SearchStringArrayAdapter_SearchStringArrayAdapter(texts, options); this.texts = texts; } SearchStringArrayAdapter_SearchStringArrayAdapter.prototype.queryItems = function (query, mInput) { var query = query.toLocaleLowerCase(); return this.texts.map(function (text) { var start = text.toLocaleLowerCase().indexOf(query); if (start >= 0) { var hightlightedText = text.substr(0, start) + '<strong style="color:red">' + text.substr(start, query.length) + '</strong>' + text.substr(start + query.length); return { text: text, hightlightedText: hightlightedText } } else return null; }).filter(function (it) { return it !== null; }) }; SearchStringArrayAdapter_SearchStringArrayAdapter.onAttached = function(parent){ this.parent = parent; }; SearchStringArrayAdapter_SearchStringArrayAdapter.prototype.getItemText = function (item, mInput) { return item.text; }; SearchStringArrayAdapter_SearchStringArrayAdapter.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent, mInput) { if (reuseItem) { reuseItem.childNodes[0].innerHTML = item.hightlightedText; return reuseItem; } else return _({ tag: 'div', child: { tag: 'span', class: 'absol-autocomplete-input-item-text', props: { innerHTML: item.hightlightedText } } }) } /* harmony default export */ var adapter_SearchStringArrayAdapter = (SearchStringArrayAdapter_SearchStringArrayAdapter); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/adapter/SearchObjectArrayAdapter.js /** * @typedef {Object} SearchObjectArrayAdapter * @property {function} getItemText * * * * @param {Array<Object>} arr * @param {SearchArrayAdapterOption} options */ function SearchObjectArrayAdapter_SearchObjectArrayAdapter(objects, options) { if (!this.queryItems) return new SearchObjectArrayAdapter_SearchObjectArrayAdapter(texts, options); this.objects = objects; this.options = options; } SearchObjectArrayAdapter_SearchObjectArrayAdapter.prototype.queryItems = function (query, mInput) { var query = query.toLocaleLowerCase(); return this.objects.map(function (object) { var text = this.getItemText(object); var start = text.toLocaleLowerCase().indexOf(query); if (start >= 0) { var hightlightedText = text.substr(0, start) + '<strong style="color:red">' + text.substr(start, query.length) + '</strong>' + text.substr(start + query.length); return Object.assign(object, { __hightlightedText__: hightlightedText }); } else return null; }.bind(this)).filter(function (it) { return it !== null; }) }; SearchObjectArrayAdapter_SearchObjectArrayAdapter.prototype.onAttached = function (parent) { this.parent = parent; parent.getSelectedObject = function () { if (this._selectedIndex >= 0) { return this.$poolItems[this._selectedIndex]._holderItem; } else { return null; } } }; SearchObjectArrayAdapter_SearchObjectArrayAdapter.prototype.getItemText = function (item, mInput) { if (this.options && this.options.getItemText) return this.options.getItemText.call(this, item, mInput); else if (typeof item.text == 'string') { return item.text; } else return item.toString(); }; SearchObjectArrayAdapter_SearchObjectArrayAdapter.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent, mInput) { if (reuseItem) { reuseItem.childNodes[0].innerHTML = item.__hightlightedText__; return reuseItem; } else return _({ tag: 'div', child: { tag: 'span', props: { innerHTML: item.__hightlightedText__ } } }) } /* harmony default export */ var adapter_SearchObjectArrayAdapter = (SearchObjectArrayAdapter_SearchObjectArrayAdapter); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/AutoCompleteInput.js var AutoCompleteInput_ = ACore["a" /* default */]._; var AutoCompleteInput_$ = ACore["a" /* default */].$; function AutoCompleteInput() { var res = AutoCompleteInput_({ extendEvent: 'change', class: 'absol-autocomplete-input', child: [ 'input[type="text"].absol-autocomplete-input-text', { class: 'absol-autocomplete-input-dropdown', style: { display: 'none' }, child: { tag: 'bscroller', style: { 'max-height': '500px' } } } ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, AutoCompleteInput.eventHandler); res.$input = AutoCompleteInput_$('input', res) .on('keyup', res.eventHandler.keyup) .on('keydown', res.eventHandler.keydown) .on('focus', res.eventHandler.focus) .on('blur', res.eventHandler.blur) ; res.$dropdown = AutoCompleteInput_$('.absol-autocomplete-input-dropdown', res); res.$vscroller = AutoCompleteInput_$('bscroller', res).on('click', res.eventHandler.vscrollerClick); res.$poolItems = []; res._currentData = []; res._sessionIndex = 0; res._updatedSession = -1; res._cache = {}; OOP["a" /* default */].drillProperty(res, res.$input, 'value'); return res; } AutoCompleteInput.eventHandler = {}; AutoCompleteInput.eventHandler.keyup = function (event) { if (this._keyTimeout) { clearTimeout(this._keyTimeout); this._keyTimeout = 0; } var cTimeout = setTimeout(function () { clearTimeout(cTimeout); this.find(); }.bind(this), 300); if (this._cacheTimeout) { clearTimeout(this._cacheTimeout); this._cacheTimeout = 0; } var cacheTimeout = setTimeout(function () { clearTimeout(cacheTimeout); this.clearCache(); }.bind(this), 300); this._cacheTimeout = cacheTimeout; this._keyTimeout = cTimeout; }; AutoCompleteInput.eventHandler.blur = function () { this.removeClass('focus'); }; AutoCompleteInput.eventHandler.focus = function () { this.addClass('focus'); AutoCompleteInput_$(document.body).on('mousedown', this.eventHandler.clickOut); //todo } AutoCompleteInput.eventHandler.clickOut = function (event) { if (EventEmitter["a" /* default */].hitElement(this, event)) return; AutoCompleteInput_$(document.body).off('mousedown', this.eventHandler.clickOut); var text = this.$input.value; if (this._lastValue != text) { this._lastValue = text; this.$dropdown.addStyle('display', 'none'); this._lastValue = text; this.emit('change', { target: this, value: text }, this); } } AutoCompleteInput.eventHandler.vscrollerClick = function (event) { var current = event.target; while (current && !current.containsClass('absol-autocomplete-input-item') && current != this.$vscroller) { current = current.parentElement; } if (current && current._holderItem) { var text = this.getItemText(current._holderItem); this.$input.value = text; this._lastQuery = text; this._selectedIndex = current._holderIndex; this.$dropdown.addStyle('display', 'none'); this._lastValue = text; this.emit('change', { target: this, value: text }, this); } }; AutoCompleteInput.eventHandler.keydown = function (event) { var key = event.key; if (key == 'ArrowDown') { if (this._selectedIndex + 1 < this._currentData.length) { if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].removeClass('active'); } this._selectedIndex += 1; if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].addClass('active'); this.$vscroller.scrollInto(this.$poolItems[this._selectedIndex]); } } event.preventDefault(); } else if (key == 'ArrowUp') { if (this._selectedIndex - 1 >= 0) { if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].removeClass('active'); } this._selectedIndex -= 1; if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].addClass('active'); this.$vscroller.scrollInto(this.$poolItems[this._selectedIndex]); } } event.preventDefault(); } else if (key == 'Enter') { var text; if (this._currentData[this._selectedIndex] === undefined) { text = this.$input.value; } else { text = this.getItemText(this._currentData[this._selectedIndex]); this.$input.value = text; } this._lastQuery = text; this.$dropdown.addStyle('display', 'none'); this._lastValue = text; this.emit('change', { target: this, value: text }, this); } }; AutoCompleteInput.prototype.focus = function () { if (this.disabled) return; this.$input.focus.apply(this.$input, arguments); }; AutoCompleteInput.prototype.blur = function () { this.$input.blur.apply(this.$input, arguments); }; AutoCompleteInput.prototype.select = function () { this.$input.select.apply(this.$input, arguments); } AutoCompleteInput.prototype.find = function () { var query = this.$input.value; if (query == this._lastQuery) return; this._lastQuery = query; var currentSession = ++this._sessionIndex; if (!query) { this.pushData([], currentSession, query) return; } if (this.disableCache) { var onReciveData = function (data) { cacheHolder.data = data; this.pushData(data, currentSession, query);//sessionIndex may be change }.bind(this); var result = this.queryItems(query); if (typeof result.then == 'function') result.then(onReciveData); else onReciveData(result) } else { if (this._cache[query]) { this._cache[query].sessionIndex = currentSession; if (!this._cache[query].pending) { var data = this._cache[query].data; this.pushData(data, currentSession); } } else { var cacheHolder = { pending: true, sessionIndex: currentSession }; var onReciveData = function (data) { cacheHolder.data = data; cacheHolder.pending = false; this.pushData(data, cacheHolder.sessionIndex, query);//sessionIndex may be change }.bind(this); var result = this.queryItems(query); if (typeof result.then == 'function') result.then(onReciveData); else onReciveData(result) this._cache[query] = cacheHolder; } } }; AutoCompleteInput.prototype.pushData = function (data, sessionIndex, query) { if (sessionIndex > this._updatedSession) { this._updatedSession = sessionIndex; this.$vscroller.clearChild(); this._currentData = data; if (data && data.length > 0) { this.$dropdown.removeStyle('display'); } else { this.$dropdown.addStyle('display', 'none'); } var maxHeight = this.getComputedStyleValue('max-height'); if (maxHeight == 'none' || !maxHeight) { maxHeight = 10000; } else { maxHeight = parseFloat(maxHeight.replace('px', '')); } var outBound = Dom["a" /* default */].traceOutBoundingClientRect(this); var bound = this.$input.getBoundingClientRect(); var aTop = bound.top - outBound.top; var aBotom = outBound.bottom - bound.bottom; this.$dropdown.removeClass('top'); if (aTop > aBotom) { maxHeight = Math.min(maxHeight, aTop - 10); } else { maxHeight = Math.min(maxHeight, aBotom - 10); } this.$vscroller.addStyle('max-height', maxHeight + 'px'); this._selectedIndex = -1; data.reduce(function (sync, item, i, arr) { return sync.then(function () { if (this._updatedSession != sessionIndex) return; return new Promise(function (rs) { if (this._updatedSession != sessionIndex) return; var reuseItem = this.$poolItems.length > i ? this.$poolItems[i] : undefined; if (reuseItem) { reuseItem.removeClass('active'); } var newView = this.getItemView(item, i, AutoCompleteInput_, AutoCompleteInput_$, query, reuseItem, this); newView.addClass('absol-autocomplete-input-item'); newView._holderItem = item; newView._holderIndex = i; if (i == this._selectedIndex) newView.addClass('active'); if (this.$poolItems.length <= i) { this.$poolItems.push(newView); } else { this.$poolItems[i] = newView; } this.$vscroller.addChild(newView); if (i == 0) { var estimateHeight = newView.getBoundingClientRect().height * arr.length; if (aTop > aBotom && estimateHeight > aBotom) { this.$dropdown.addClass('top'); } } if (i >= 50 && i % 50 == 0) setTimeout(rs, 0); else rs(); }.bind(this)); }.bind(this)) }.bind(this), Promise.resolve()); } }; AutoCompleteInput.prototype.getItemText = function (item) { if (this.adapter && this.adapter.getItemText) { return this.adapter.getItemText(item, this); } else if (typeof item == 'string') { return item; } else { throw Error('You need adapter.getItemText(item, mAutoCompleteInput) to handle your item text!'); } } AutoCompleteInput.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent) { if (this.adapter && this.adapter.getItemView) { return this.adapter.getItemView(item, index, _, $, query, reuseItem, refParent, this); } else { var text = this.getItemText(item); if (reuseItem) { reuseItem.childNodes[0].innerHTML = text; return reuseItem; } return _({ child: { tag: 'span', class: 'absol-autocomplete-input-item-text', child: { text: text } } }); } }; /** * @param {String} query * @returns {Array} */ AutoCompleteInput.prototype.queryItems = function (query) { if (this.adapter && this.adapter.queryItems) { return this.adapter.queryItems(query, this); } else { throw new Error('Invalid adapter: queryItems(query, mAutoCompleteInput) not found!'); } }; AutoCompleteInput.prototype.clearCache = function (old) { if (typeof old != "number") old = 30; for (var key in this._cache) { var cacheHolder = this._cache[key]; if (this._sessionIndex - cacheHolder.sessionIndex > old) { delete this._cache[key]; } } } AutoCompleteInput.property = {}; AutoCompleteInput.property.adapter = { set: function (value) { if (value instanceof Array) { if (value[0] == 'SearchStringArray') { this._adapter = new adapter_SearchStringArrayAdapter(value[1], value[2]); } else if (value[0] == 'SearchObjectArray') { this._adapter = new adapter_SearchObjectArrayAdapter(value[1], value[2]); } else { throw new Error("Unknown adapter type name"); } } else { this._adapter = value; } if (this.adapter && this.adapter.onAttached) { this.adapter.onAttached(this); } }, get: function () { return this._adapter; } }; AutoCompleteInput.property.disabled = { set: function (value) { if (value) { this.addClass('absol-disabled'); } else { this.removeClass('absol-disabled'); } }, get: function () { return this.containsClass('absol-disabled'); } }; AutoCompleteInput.attribute = {}; AutoCompleteInput.attribute.disabled = { set: function (value) { if (value === true || value === 'true' || value === null) { this.disabled = true; } else { this.disabled = false; } }, get: function () { return this.disabled ? 'true' : 'false' }, remove: function () { this.disabled = false; } }; ACore["a" /* default */].install('AutoCompleteInput'.toLowerCase(), AutoCompleteInput); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/autocompleteinput.css var autocompleteinput = __webpack_require__(36); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/selectlist.css var selectlist = __webpack_require__(38); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/SelectList.js var SelectList_ = ACore["a" /* default */]._; var SelectList_$ = ACore["a" /* default */].$; /*global absol*/ function SelectList() { var res = SelectList_('.absol-selectlist'); res.defineEvent('change'); res.$attachhook = SelectList_('attachhook').addTo(res); res.sync = new Promise(function (rs) { res.$attachhook.once('error', rs); }); res.$items = []; return res; }; SelectList.prototype.creatItem = function (item, index) { var text; var extendStyle = {}; var extendClasses = []; if (typeof item == 'string') { text = item; } else { text = item.text; extendStyle = item.extendStyle || {}; if (typeof item.extendClasses == 'string') { extendClasses = item.extendClasses.split(/\s+/); } else if (item.extendClasses && (extendClasses instanceof Array)) { extendClasses = item.extendClasses } } var res = SelectList_({ class: ['absol-selectlist-item'].concat(extendClasses), style: extendStyle, child: [ { tag: 'span', class: 'absol-selectlist-item-text', props: { innerHTML: text }, }, { class: 'absol-selectlist-item-desc-container', child: { tag: 'span', class: 'absol-selectlist-item-desc', child: item.desc ? { text: item.desc } : [] } } ] }); res.$descCtn = SelectList_$('.absol-selectlist-item-desc-container', res); res.$text = SelectList_$('.absol-selectlist-item-text', res); return res; }; SelectList.prototype.realignDescription = function (extMarginLeft) { if (this.$items.length == 0) return; extMarginLeft = extMarginLeft || 0; var maxWidth = 0; this.$items.forEach(function (elt) { elt.$descCtn.removeStyle('width'); var bound = elt.$descCtn.getBoundingClientRect(); maxWidth = Math.max(maxWidth, bound.width); }); var fontSize = this.$items[0].getFontSize(); var cntWidth = maxWidth / fontSize + 'em'; var extMarginRight = maxWidth / fontSize + extMarginLeft + 'em'; this.$items.forEach(function (elt) { elt.$descCtn.addStyle('width', cntWidth); elt.$text.addStyle('margin-right', extMarginRight); }); this._extMarginRight = extMarginRight; this._cntWidth = cntWidth; }; SelectList.prototype.updateSelectItem = function () { var value = this.value; this.$items.forEach(function ($item) { var item = $item._item; if (value !== undefined && (item == value || item.value == value)) { $item.addClass('selected'); } else { $item.removeClass('selected'); } }); }; SelectList.property = {}; SelectList.property.items = { set: function (value) { value = value || []; this._items = value; this.clearChild(); this.$items = value.map(function (item, index) { var $item = this.creatItem(item, index).addTo(this); $item._item = item; //hold a data $item.on('mousedown', function (event) { this.value = typeof item == 'string' ? item : item.value; event.selectlistValue = this.value; this.emit('change', event); }.bind(this)); return $item; }.bind(this)); this.updateSelectItem(); this.sync = this.sync.then(this.realignDescription.bind(this, 0)); }, get: function () { return this._items || []; } }; SelectList.property.value = { set: function (value) { this._selectValue = value; this.updateSelectItem(); }, get: function () { return this._selectValue; } }; SelectList.property.item = { get: function () { if (!this._items || this._items.length == 0) { return undefined; } var res = this._items[0]; var value = this.value; var matchItems = this._items.filter(function (item) { return item == value || item.value == value; }); if (matchItems.length > 0) res = matchItems[0]; return res; } }; SelectList.prototype.init = function (props) { props = props || {}; if (props.adapter && (typeof props.adapter == 'object')) { Object.assign(this, props.adapter); props = Object.assign({}, props); delete props['adapter']; } var value = props.value; delete props.value; this.super(props); if (value !== undefined) this.value = value; }; ACore["a" /* default */].creator.selectlist = SelectList; /* harmony default export */ var js_SelectList = (SelectList); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/selectmenu.css var selectmenu = __webpack_require__(40); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/SelectMenu.js /*global absol*/ var SelectMenu_ = ACore["a" /* default */]._; var SelectMenu_$ = ACore["a" /* default */].$; ACore["a" /* default */].creator['dropdown-ico'] = function () { return SelectMenu_([ '<svg class="dropdown" width="100mm" height="100mm" version="1.1" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">', '<g transform="translate(0,-197)">', '<path d="m6.3152 218.09a4.5283 4.5283 0 0 0-3.5673 7.3141l43.361 55.641a4.5283 4.5283 0 0 0 7.1421 7e-3l43.496-55.641a4.5283 4.5283 0 0 0-3.5673-7.3216z" />', '</g>', '</svg>' ].join('')); }; function SelectMenu() { var res = SelectMenu_({ class: ['absol-selectmenu'], extendEvent: 'change', attr: { tabindex: '1' }, child: [ '.absol-selectmenu-holder-item', { tag: 'button', class: 'absol-selectmenu-btn', child: ['dropdown-ico'] }, { class: 'absol-selectmenu-dropdown-box', child: [ { tag: 'searchtextinput', style: { display: 'none' } }, 'bscroller'] }, 'attachhook', ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, SelectMenu.eventHandler); res.$renderSpace = SelectMenu.getRenderSpace(); res.$selectlist = SelectMenu_('selectlist', res).addTo(res.$renderSpace); res.$selectlist.on('change', res.eventHandler.selectlistChange, true); res.$vscroller = SelectMenu_$('bscroller', res); res.on('mousedown', res.eventHandler.click, true); res.on('blur', res.eventHandler.blur); res.$holderItem = SelectMenu_$('.absol-selectmenu-holder-item', res); res.$dropdownBox = SelectMenu_$('.absol-selectmenu-dropdown-box', res); res.$searchTextInput = SelectMenu_$('searchtextinput', res); res.$searchTextInput.on('stoptyping', res.eventHandler.searchModify); res.selectListBound = { height: 0, width: 0 }; res.$attachhook = SelectMenu_$('attachhook', res) .on('error', res.eventHandler.attached); res.sync = new Promise(function (rs) { SelectMenu_$('attachhook', res).once('error', function () { rs(); }); }); return res; }; SelectMenu.getRenderSpace = function () { if (!SelectMenu.$renderSpace) { SelectMenu.$renderSpace = SelectMenu_('.absol-selectmenu-render-space') .addTo(document.body); }; return SelectMenu.$renderSpace; }; SelectMenu.prototype.updateItem = function () { this.$holderItem.clearChild(); if (this.$selectlist.item) { var elt = this.$selectlist.creatItem(this.$selectlist.item).addTo(this.$holderItem); this.$selectlist.sync.then(function () { elt.$descCtn.addStyle('width', this.$selectlist._cntWidth); elt.$text.addStyle('margin-right', this.$selectlist._extMarginRight); }.bind(this)) } }; SelectMenu.prototype.init = function (props) { props = props || []; Object.keys(props).forEach(function (key) { if (props[key] === undefined) delete props[key]; }); this.super(props); }; SelectMenu.property = {}; SelectMenu.property.items = { set: function (value) { this._items = value; this.$selectlist.items = value || []; this.$selectlist.sync.then(function () { this.selectListBound = this.$selectlist.getBoundingClientRect(); this.addStyle('min-width', this.selectListBound.width + 2 + 37 + 'px'); }.bind(this)); if (this.$selectlist.items.length > 0 && (this.$selectlist.item === undefined || this.value === undefined)) { this.value = this.items[0].value !== undefined ? this.items[0].value : this.items[0]; } }, get: function () { return this._items || []; } }; SelectMenu.property.value = { set: function (value) { if (value === undefined && this._items && this.items.length > 0) { value = this._items[0].value !== undefined ? this._items[0].value : this._items[0]; } this.$selectlist.value = value; this._lastValue = value; this.sync = this.sync.then(this.updateItem.bind(this)); }, get: function () { return this.$selectlist.value; } }; SelectMenu.property.selectedIndex = { get: function () { if (!this._items) return -1; var value = this.value; for (var i = 0; i < this._items.length; ++i) { if (value == this._items[i] || value == this._items[i].value) return i; } return this.$selectlist.value; } }; SelectMenu.property.enableSearch = { set: function (value) { this._enableSearch = !!value; if (value) { this.$searchTextInput.removeStyle('display'); } else { this.$searchTextInput.addStyle('display', 'none'); } }, get: function () { return !!this._enableSearch; } }; SelectMenu.prototype.updateDropdownPostion = function (searching) { var screenBottom = Dom["a" /* default */].getScreenSize().height; var outBound = Dom["a" /* default */].traceOutBoundingClientRect(this); var searchBound = this.$searchTextInput.getBoundingClientRect(); var bound = this.getBoundingClientRect(); var availableTop = bound.top - outBound.top - (this.enableSearch ? searchBound.height + 8 : 0) - 20; var availableBottom = Math.min(outBound.bottom, screenBottom) - bound.bottom - (this.enableSearch ? searchBound.height + 8 : 0) - 20; if (this.forceDown || (!this.$dropdownBox.containsClass('up') && searching) || (!searching && (availableBottom >= this.selectListBound.height || availableBottom > availableTop))) { if (!searching) { this.$dropdownBox.removeClass('up'); this.$searchTextInput.selfRemove(); this.$dropdownBox.addChildBefore(this.$searchTextInput, this.$vscroller); } this.$vscroller.addStyle('max-height', availableBottom + 'px'); } else { if (!searching) { this.$dropdownBox.addClass('up'); this.$searchTextInput.selfRemove(); this.$dropdownBox.addChild(this.$searchTextInput); } this.$vscroller.addStyle('max-height', availableTop + 'px'); } this.scrollToSelectedItem(); }; SelectMenu.prototype.scrollToSelectedItem = function () { requestAnimationFrame(function () { SelectMenu_$('.selected', this.$selectlist, function (e) { this.$vscroller.scrollInto(e); return true; }.bind(this)); }.bind(this)); }; SelectMenu.prototype.init = function (props) { this.super(props); }; SelectMenu.property.isFocus = { set: function (value) { value = !!value; if (value == this.isFocus) return; this._isFocus = value; if (value) { this.addClass('focus'); this.$selectlist.addTo(this.$vscroller); SelectMenu_$('body').on('mousedown', this.eventHandler.bodyClick); if (this.enableSearch) { setTimeout(function () { this.$searchTextInput.focus(); }.bind(this), 50); } this.updateDropdownPostion(); } else { this.$selectlist.addTo(this.$renderSpace); SelectMenu_$('body').off('mousedown', this.eventHandler.bodyClick); this.removeClass('focus'); this.$searchTextInput.value = ''; this.$selectlist.items = this.items; this.selectListBound = this.$selectlist.getBoundingRecursiveRect(); this.updateItem(); } }, get: function () { return !!this._isFocus; } }; SelectMenu.property.disabled = { set: function (value) { if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.containsClass('disabled'); } }; SelectMenu.property.hidden = { set: function (value) { if (value) { this.addClass('hidden'); } else { this.removeClass('hidden'); } }, get: function () { return this.addClass('hidden'); } }; SelectMenu.eventHandler = {}; SelectMenu.eventHandler.attached = function () { if (this._updateInterval) return; if (!this.$selectlist.parentNode) this.$content.addTo(this.$renderSpace); this._updateInterval = setInterval(function () { if (!this.isDescendantOf(document.body)) { clearInterval(this._updateInterval); this._updateInterval = undefined; this.$selectlist.selfRemove(); } }.bind(this), 10000); }; SelectMenu.eventHandler.click = function (event) { if (EventEmitter["a" /* default */].hitElement(this.$selectlist, event) || (this.isFocus && !EventEmitter["a" /* default */].hitElement(this.$dropdownBox, event))) { event.preventDefault(); setTimeout(function () { this.isFocus = false; }.bind(this), 5) } else { if (!this.isFocus) { this.$selectlist.addTo(this.$vscroller); this.isFocus = true; } } }; SelectMenu.eventHandler.bodyClick = function (event) { event.preventDefault(); if (!EventEmitter["a" /* default */].hitElement(this, event)) { setTimeout(function () { this.isFocus = false; }.bind(this), 5) } }; SelectMenu.eventHandler.selectlistChange = function (event) { this.updateItem(); this.selectMenuValue = this.value; if (this._lastValue != this.value) { setTimeout(function () { this.emit('change', event, this); }.bind(this), 1) this._lastValue = this.value; } }; SelectMenu.eventHandler.searchModify = function (event) { var filterText = this.$searchTextInput.value.replace(/((\ )|(\s))+/g, ' ').trim(); if (filterText.length == 0) { this.$selectlist.items = this.items; } else { var view = []; if (filterText.length == 1) { view = this.items.map(function (item) { var res = { item: item, text: typeof item === 'string' ? item : item.text }; return res; }).map(function (it) { it.score = 0; var text = it.text.replace(/((\ )|(\s))+/g, ' ').trim(); it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0; text = Object(stringFormat["b" /* nonAccentVietnamese */])(text); it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0; return it; }); view.sort(function (a, b) { if (b.score - a.score == 0) { if (Object(stringFormat["b" /* nonAccentVietnamese */])(b.text) > Object(stringFormat["b" /* nonAccentVietnamese */])(a.text)) return -1; return 1; } return b.score - a.score; }); view = view.filter(function (x) { return x.score > 0; }) } else { var its = this.items.map(function (item) { var res = { item: item, text: typeof item === 'string' ? item : item.text }; var text = res.text.replace(/((\ )|(\s))+/g, ' ').trim(); res.score = (phraseMatch(text, filterText) + phraseMatch(Object(stringFormat["b" /* nonAccentVietnamese */])(text), Object(stringFormat["b" /* nonAccentVietnamese */])(filterText))) / 2; if (Object(stringFormat["b" /* nonAccentVietnamese */])(text).replace(/s/g, '').toLowerCase().indexOf(Object(stringFormat["b" /* nonAccentVietnamese */])(filterText).toLowerCase().replace(/s/g, '')) > -1) res.score = 100; return res; }); if (its.length == 0) return; its.sort(function (a, b) { if (b.score - a.score == 0) { if (Object(stringFormat["b" /* nonAccentVietnamese */])(b.text) > Object(stringFormat["b" /* nonAccentVietnamese */])(a.text)) return -1; return 1; } return b.score - a.score; }); var view = its.filter(function (x) { return x.score > 0.5; }); if (view.length == 0) { var bestScore = its[0].score; view = its.filter(function (it) { return it.score + 0.001 >= bestScore; }); } if (view[0].score == 0) view = []; } view = view.map(function (e) { return e.item; }); this.$selectlist.items = view; } this.selectListBound = this.$selectlist.getBoundingRecursiveRect(); this.updateDropdownPostion(true); }; ACore["a" /* default */].creator.selectmenu = SelectMenu; /* harmony default export */ var js_SelectMenu = (SelectMenu); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/treelist.css var treelist = __webpack_require__(42); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TreeList.js var TreeList_ = ACore["a" /* default */]._; var TreeList_$ = ACore["a" /* default */].$; function TreeList() { var res = TreeList_({ class: 'absol-tree-list', extendEvent: 'press' }); return res; } TreeList.prototype.realignDescription = function (extMarginLeft) { extMarginLeft = extMarginLeft || 0; var maxWidth = 0; var ctns = []; TreeList_$('.absol-tree-list-item-desc-container', this, function (elt) { ctns.push(elt); var bound = elt.getBoundingClientRect(); maxWidth = Math.max(maxWidth, bound.width); }); var fontSize = this.getFontSize(); var cntWidth = maxWidth / fontSize + 'em'; var extMarginRight = maxWidth / fontSize + extMarginLeft + 'em'; ctns.forEach(function (e) { e.addStyle('width', cntWidth); }); TreeList_$('span.absol-tree-list-item-text', this, function (elt) { elt.addStyle('margin-right', extMarginRight); }); return this; }; TreeList.prototype.clearItems = function () { this._items = []; this.clearChild(); }; TreeList.prototype.getAllItem = function () { return this._items || []; }; TreeList.prototype.getAllItemElement = function () { return Array.apply(null, this.childNodes); } TreeList.prototype.addItem = function (item) { var self = this; var props = { level: this.level, data: item }; if (typeof item == 'string') { props.text = item; } else { props.text = item.text; if (item.items) { props.items = item.items; } if (item.desc){ props.desc = item.desc; } if (item.extendClasses){ props.extendClasses = item.extendClasses; } if (item.extendStyle){ props.extendStyle = item.extendStyle; } } var elt = TreeList_({ tag: 'treelistitem', props: props, on: { press: function (event) { self.emit('press', event, this); } } }); this.addChild(elt); this._items.push(item); return this; }; TreeList.property = {}; TreeList.property.items = { set: function (value) { this.clearItems(); (value || []).forEach(this.addItem.bind(this)); }, get: function () { return this.getAllItem(); } }; TreeList.property.level = { set: function (value) { value = value || 0; if (this.level == value) return; this._level = value; this.getAllItemElement().forEach(function (e) { e.level = value; }); }, get: function () { return this._level || 0; } }; ACore["a" /* default */].creator.treelist = TreeList; /* harmony default export */ var js_TreeList = (TreeList); // TreeList.prototype. // CONCATENATED MODULE: ./node_modules/absol/src/Math/random.js /** * Returns a random number between min (inclusive) and max (exclusive) */ function randomArbitrary(min, max) { return Math.random() * (max - min) + min; } /** * Returns a random integer between min (inclusive) and max (inclusive) * Using Math.round() will give you a non-uniform distribution! */ function randomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } function randomPick(arr) { var id = randomInt(0, arr.length - 1); return arr[id]; } // CONCATENATED MODULE: ./node_modules/absol/src/String/stringGenerate.js var identCharacters = function () { var chars = 'qwertyuiopasdfghjklzxcvbnm'; chars = chars + chars.toUpperCase(); var num = '0123456789'; var spect = '_'; return (chars + spect + num).split(''); }(); function randomIdent(length) { if (!(length > 0)) length = 4; var factor = identCharacters; return [factor[(Math.random() * (factor.length - 10)) >> 0]].concat(Array(length - 1).fill('').map(function () { return factor[(Math.random() * factor.length) >> 0]; })).join(''); } function parallelMatch(a, b) { var l = Math.min(a.length, b.length); var res = 0; for (var i = 0; i < l; ++i) { if (a[i] == b[i])++res; } return res; } var ipsumLoremWord = ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit', 'sed', 'do', 'eiusmod', 'tempor', 'incididunt', 'ut', 'labore', 'et', 'dolore', 'magna', 'aliqua', 'enim', 'ad', 'minim', 'veniam', 'quis', 'nostrud', 'exercitation', 'ullamco', 'laboris', 'nisi', 'aliquip', 'ex', 'ea', 'commodo', 'consequat', 'duis', 'aute', 'irure', 'in', 'reprehenderit', 'voluptate', 'velit', 'esse', 'cillum', 'eu', 'fugiat', 'nulla', 'pariatur', 'excepteur', 'sint', 'occaecat', 'cupidatat', 'non', 'proident', 'sunt', 'culpa', 'qui', 'officia', 'deserunt', 'mollit', 'anim', 'id', 'est', 'laborum', 'perspiciatis', 'unde', 'omnis', 'iste', 'natus', 'error', 'voluptatem', 'accusantium', 'doloremque', 'laudantium', 'totam', 'rem', 'aperiam', 'eaque', 'ipsa', 'quae', 'ab', 'illo', 'inventore', 'veritatis', 'quasi', 'architecto', 'beatae', 'vitae', 'dicta', 'explicabo', 'nemo', 'ipsam', 'quia', 'voluptas', 'aspernatur', 'aut', 'odit', 'fugit', 'consequuntur', 'magni', 'dolores', 'eos', 'ratione', 'sequi', 'nesciunt', 'neque', 'porro', 'quisquam', 'dolorem', 'adipisci', 'numquam', 'eius', 'modi', 'tempora', 'incidunt', 'magnam', 'aliquam', 'quaerat', 'minima', 'nostrum', 'exercitationem', 'ullam', 'corporis', 'suscipit', 'laboriosam', 'aliquid', 'commodi', 'consequatur', 'autem', 'vel', 'eum', 'iure', 'quam', 'nihil', 'molestiae', 'illum', 'quo', 'at', 'vero', 'accusamus', 'iusto', 'odio', 'dignissimos', 'ducimus', 'blanditiis', 'praesentium', 'voluptatum', 'deleniti', 'atque', 'corrupti', 'quos', 'quas', 'molestias', 'excepturi', 'occaecati', 'cupiditate', 'provident', 'similique', 'mollitia', 'animi', 'dolorum', 'fuga', 'harum', 'quidem', 'rerum', 'facilis', 'expedita', 'distinctio', 'nam', 'libero', 'tempore', 'sum', 'soluta', 'nobis', 'eligendi', 'optio', 'cumque', 'impedit', 'minus', 'quod', 'maxime', 'placeat', 'facere', 'possimus', 'assumenda', 'repellendus', 'temporibus', 'quibusdam', 'officiis', 'debitis', 'necessitatibus', 'saepe', 'eveniet', 'voluptates', 'repudiandae', 'recusandae', 'itaque', 'earum', 'hic', 'tenetur', 'a', 'sapiente', 'delectus', 'reiciendis', 'voluptatibus', 'maiores', 'alias', 'perferendis', 'doloribus', 'asperiores', 'repellat', 'integer', 'nec', 'praesent', 'cursus', 'ante', 'dapibus', 'diam', 'sem', 'nibh', 'elementum', 'imperdiet', 'sagittis', 'mauris', 'fusce', 'tellus', 'augue', 'semper', 'porta', 'massa', 'vestibulum', 'lacinia', 'arcu', 'eget', 'class', 'aptent', 'taciti', 'sociosqu', 'litora', 'torquent', 'per', 'conubia', 'nostra', 'inceptos', 'himenaeos', 'curabitur', 'sodales', 'ligula', 'dignissim', 'nunc', 'tortor', 'pellentesque', 'aenean', 'scelerisque', 'maecenas', 'mattis', 'convallis', 'tristique', 'proin', 'egestas', 'porttitor', 'morbi', 'lectus', 'risus', 'iaculis', 'luctus', 'ac', 'turpis', 'aliquet', 'metus', 'ullamcorper', 'tincidunt', 'euismod', 'quisque', 'volutpat', 'condimentum', 'urna', 'facilisi', 'fringilla', 'suspendisse', 'potenti', 'feugiat', 'mi', 'sapien', 'etiam', 'ultrices', 'justo', 'lacus', 'pharetra', 'auctor', 'interdum', 'primis', 'faucibus', 'orci', 'posuere', 'cubilia', 'curae', 'molestie', 'dui', 'blandit', 'congue', 'pede', 'facilisis', 'laoreet', 'donec', 'viverra', 'malesuada', 'pulvinar', 'sollicitudin', 'cras', 'nisl', 'felis', 'venenatis', 'ultricies', 'accumsan', 'pretium', 'fermentum', 'nullam', 'purus', 'mollis', 'vivamus', 'consectetuer' ]; function randomWord() { var arr = ipsumLoremWord; var idx = randomInt(0, arr.length - 1); return arr[idx]; } function randomPhrase(limitLenght) { if (!limitLenght) limitLenght = 50; var length = Math.ceil(Math.random() * limitLenght / 7); return new Array(length) .fill(null) .map(randomWord) .reduce(function (ac, cr) { if (ac.length + cr.length < limitLenght) { ac.parts.push(cr); } return ac; }, { parts: [], length: 0 }).parts .join(' '); } function randomSentence(limitLenght) { if (!limitLenght) limitLenght = 300; var length = Math.ceil(Math.random() * limitLenght / 70); var res = new Array(length) .fill(null) .map(randomPhrase) .reduce(function (ac, cr) { if (ac.length + cr.length < limitLenght) { ac.parts.push(cr); } return ac; }, { parts: [], length: 0 }).parts .join(', '); if (Math.random() < 0.03) { res = res.replace(/\,/i, ':'); } res = res.replace(/^./, function (x) { return x.toUpperCase(); }); res += '.'; return res; } function randomParagraph(limitLenght) { if (!limitLenght) limitLenght = 1000; var length = Math.ceil(Math.random() * limitLenght / 200); return new Array(length).fill(null) .map(randomSentence) .reduce(function (ac, cr) { if (ac.length + cr.length < limitLenght) { ac.parts.push(cr); } return ac; }, { parts: [], length: 0 }).parts .join(' '); } // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TreeListItem.js var TreeListItem_ = ACore["a" /* default */]._; var TreeListItem_$ = ACore["a" /* default */].$; function TreeListItem() { var res = TreeListItem_({ extendEvent: ['press', 'clickparent'], class: 'absol-tree-list-item', child: [ { class: 'absol-tree-list-item-parent', child: ['span.absol-tree-list-item-text', { class: 'absol-tree-list-item-desc-container', child: 'span.absol-tree-list-item-desc' } ] }, 'treelist' ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, TreeListItem.eventHandler); res.$list = TreeListItem_$('treelist', res).on('press', function (event, sender) { res.emit('press', event, this); }); res.$parent = TreeListItem_$('.absol-tree-list-item-parent', res).on('mousedown', res.eventHandler.clickParent); res.$text = TreeListItem_$('span.absol-tree-list-item-text', res); res.$desc = TreeListItem_$('span.absol-tree-list-item-desc', res); res.$descCtn = TreeListItem_$('.absol-tree-list-item-desc-container', res); res.$list.level = 1; OOP["a" /* default */].drillProperty(res, res.$list, 'items'); return res; }; TreeListItem.eventHandler = {}; TreeListItem.eventHandler.clickParent = function (event) { event.preventDefault(); var prevented = false; var self = this; this.emit('press', { target: self, preventDefault: function () { prevented = true; }, isPrevented: function () { return prevented; }, data: this.data }, this); if (!prevented) { var top = self.getTopLevelElt(); TreeListItem_$('treelistitem', top, function (e) { if (e != self) e.active = false; }) self.active = true; } }; TreeListItem.prototype.getTopLevelElt = function () { var current = this; while (current) { var parent = current.parentNode; if (!parent || (!parent.classList.contains('absol-tree-list') && !parent.classList.contains('absol-tree-list-item'))) break; current = current.parentNode; } return current; }; TreeListItem.property = { text: { set: function (value) { value = value + ''; this.$text.innerHTML = value; }, get: function () { return this.$text.innerHTML; } }, desc: { set: function (value) { value = value + ''; this.$desc.innerHTML = value; }, get: function () { return this.$desc.innerHTML } }, level: { set: function (value) { value = value || 0; if (value == this.level) return; this._level = value; this.$parent.addStyle('padding-left', this._level * 0.4 * 3 + 'em'); this.$list.level = value + 1; }, get: function () { return this._level || 0; } }, active: { set: function (value) { if (value) { this.addClass('active'); } else { this.removeClass('active'); } }, get: function () { return this.containsClass('active'); } }, data: { set: function (value) { this._data = value; }, get: function () { return this._data; } }, value: { get: function () { var data = this.data; if (typeof data == 'string') return data; if (typeof data.value == "undefined") { return data.text; } else { return data.value; } } } }; TreeListItem.property.extendClasses = { set: function (value) { var self = this; this.extendClasses.forEach(function (className) { self.$parent.removeClass(className); }); this._extendClass = []; if (!value) return; if (typeof value == 'string') { value = value.split(/\s+/).filter(function (c) { return c.length > 0 }); } if (value instanceof Array) { this._extendClass = value; this._extendClass.forEach(function (className) { self.$parent.addClass(className); }); } else { throw new Error('Invalid extendClasses'); } }, get: function () { return this._extendClass || []; } }; TreeListItem.property.extendStyle = { set: function (value) { this.$parent.removeStyle(this._extendStyle || {}); this._extendStyle = value || {}; this.$parent.addStyle(this.extendStyle); }, get: function () { return this._extendStyle || {}; } }; ACore["a" /* default */].creator.treelistitem = TreeListItem; // EXTERNAL MODULE: ./node_modules/absol-acomp/css/selecttreemenu.css var selecttreemenu = __webpack_require__(44); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/SelectTreeMenu.js var SelectTreeMenu_ = ACore["a" /* default */]._; var SelectTreeMenu_$ = ACore["a" /* default */].$; function SelectTreeMenu() { var res = SelectTreeMenu_({ class: ['absol-selectmenu', 'absol-selecttreemenu'], extendEvent: 'change', attr: { tabindex: '1' }, child: [ '.absol-selectmenu-holder-item', { tag: 'button', class: 'absol-selectmenu-btn', child: ['dropdown-ico'] }, { class: 'absol-selectmenu-dropdown-box', child: [ { tag: 'searchtextinput', style: { display: 'none' } }, 'bscroller.limited-height'] }, 'attachhook', ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, SelectTreeMenu.eventHandler); res.$renderSpace = SelectTreeMenu.getRenderSpace(); res.$treelist = SelectTreeMenu_('treelist', res).addTo(res.$renderSpace); res.$treelist.on('press', res.eventHandler.treelistPress, true); res.$vscroller = SelectTreeMenu_$('bscroller', res); res.on('mousedown', res.eventHandler.click, true); res.on('blur', res.eventHandler.blur); res.$holderItem = SelectTreeMenu_$('.absol-selectmenu-holder-item', res); res.$dropdownBox = SelectTreeMenu_$('.absol-selectmenu-dropdown-box', res); res.$searchTextInput = SelectTreeMenu_$('searchtextinput', res); res.$searchTextInput.on('stoptyping', res.eventHandler.searchModify); res.treeListBound = { height: 0, width: 0 }; res.$attachhook = SelectTreeMenu_$('attachhook', res) .on('error', res.eventHandler.attached); res.sync = new Promise(function (rs) { SelectTreeMenu_$('attachhook', res).once('error', function () { rs(); }); }); return res; } SelectTreeMenu.prototype.updateDropdownPostion = function (searching) { var screenBottom = Dom["a" /* default */].getScreenSize().height; var outBound = Dom["a" /* default */].traceOutBoundingClientRect(this); var searchBound = this.$searchTextInput.getBoundingClientRect(); var bound = this.getBoundingClientRect(); var availableTop = bound.top - outBound.top - (this.enableSearch ? searchBound.height + 8 : 0) - 20; var availableBottom = Math.min(outBound.bottom, screenBottom) - bound.bottom - (this.enableSearch ? searchBound.height + 8 : 0) - 20; if (this.forceDown || (!this.$dropdownBox.containsClass('up') && searching) || (!searching && (availableBottom >= this.treeListBound.height || availableBottom > availableTop))) { if (!searching) { this.$dropdownBox.removeClass('up'); this.$searchTextInput.selfRemove(); this.$dropdownBox.addChildBefore(this.$searchTextInput, this.$vscroller); } this.$vscroller.addStyle('max-height', availableBottom + 'px'); } else { if (!searching) { this.$dropdownBox.addClass('up'); this.$searchTextInput.selfRemove(); this.$dropdownBox.addChild(this.$searchTextInput); } this.$vscroller.addStyle('max-height', availableTop + 'px'); } if (!searching) this.scrollToSelectedItem(); }; SelectTreeMenu.prototype.scrollToSelectedItem = function () { this._scrolling = true; setTimeout(function () { if (this.$selectedItem) this.$vscroller.scrollInto(this.$selectedItem); this._scrolling = false; }.bind(this), 5); }; SelectTreeMenu.getRenderSpace = js_SelectMenu.getRenderSpace; SelectTreeMenu.eventHandler = {}; SelectTreeMenu.eventHandler.bodyClick = function (event) { event.preventDefault(); if (!EventEmitter["a" /* default */].hitElement(this, event)) { this.isFocus = false; } }; SelectTreeMenu.eventHandler.attached = function () { if (this._updateInterval) return; if (!this.$treelist.parentNode) this.$content.addTo(this.$renderSpace); this._updateInterval = setInterval(function () { if (!this.isDescendantOf(document.body)) { clearInterval(this._updateInterval); this._updateInterval = undefined; this.$treelist.selfRemove(); } }.bind(this), 10000); }; SelectTreeMenu.eventHandler.click = function (event) { if (EventEmitter["a" /* default */].hitElement(this.$treelist, event) || (this.isFocus && !EventEmitter["a" /* default */].hitElement(this.$dropdownBox, event))) { event.preventDefault(); setTimeout(function () { this.isFocus = false; }.bind(this), 1); } else { if (!this.isFocus) { this.$treelist.addTo(this.$vscroller); this.isFocus = true; } } }; SelectTreeMenu.eventHandler.searchModify = function (event) { var value = this.$searchTextInput.value; this.search(value); } SelectTreeMenu.prototype.notifyChange = function (eventData) { setTimeout(function () { this.emit('change', Object.assign({}, eventData), this) }.bind(this), 1) } SelectTreeMenu.eventHandler.treelistPress = function (event) { var value = event.target.value; if (value != this._value) { this._value = value; //not need update tree this.$holderItem.clearChild() .addChild(SelectTreeMenu_(event.target.$parent.cloneNode(true))); this.notifyChange(Object.assign({ value: value }, event)); } }; SelectTreeMenu.prototype.updateSelectedItem = function (scrollInto) { if (this._isUpdateSelectedItem) return; this._isUpdateSelectedItem = true; var self = this; setTimeout(function () { SelectTreeMenu_$('treelistitem', self.$treelist, function (elt) { if (elt.value == self.value) { self.$selectedItem = elt; self.$holderItem.clearChild(); self.$holderItem.addChild(elt.$parent.cloneNode(true)); elt.active = true; if (scrollInto) { this.$vscroller.scrollInto(elt); } } else { elt.active = false; } }); self._isUpdateSelectedItem = false; }, 1) } SelectTreeMenu.property = {}; SelectTreeMenu.property.items = { set: function (value) { this._items = value || []; this.$treelist.items = SelectTreeMenu.prepareData(this._items); this.__searchcache__ = {}; this.$treelist.realignDescription(); this.treeListBound = this.$treelist.getBoundingClientRect(); this.addStyle('min-width', this.treeListBound.width + 37 + 2 + 'px'); if (typeof this.value == 'undefined' && this._items.length > 0) { var first = this._items[0]; if (typeof first == 'string') { this.value = first; } else { this.value = (typeof (first.value) == 'undefined') ? first.text : first.value; } } else { this.updateSelectedItem(); } }, get: function () { return this._items; } }; SelectTreeMenu.property.value = { set: function (value) { this._value = value; this.updateSelectedItem(); }, get: function () { return this._value; } }; SelectTreeMenu.property.enableSearch = { set: function (value) { this._enableSearch = !!value; if (value) { this.$searchTextInput.removeStyle('display'); } else { this.$searchTextInput.addStyle('display', 'none'); } }, get: function () { return !!this._enableSearch; } }; SelectTreeMenu.property.isFocus = { set: function (value) { value = !!value; if (value == this.isFocus) return; this._isFocus = value; if (value) { this.addClass('focus'); this.$treelist.addTo(this.$vscroller); SelectTreeMenu_$('body').on('mousedown', this.eventHandler.bodyClick); if (this.enableSearch) { setTimeout(function () { this.$searchTextInput.focus(); }.bind(this), 50); } this.updateDropdownPostion(); this.scrollToSelectedItem(); } else { this.$treelist.addTo(this.$renderSpace); SelectTreeMenu_$('body').off('mousedown', this.eventHandler.bodyClick); this.removeClass('focus'); if (this.$searchTextInput.value.length > 0) { this.$searchTextInput.value = ''; setTimeout(function () { this.$treelist.items = this.items; this.$treelist.realignDescription(); setTimeout(this.updateSelectedItem.bind(this), 1); this.treeListBound = this.$treelist.getBoundingRecursiveRect(); }.bind(this), 1) } } }, get: function () { return !!this._isFocus; } }; SelectTreeMenu.property.disabled = { set: function (value) { if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.containsClass('disabled'); } }; SelectTreeMenu.property.hidden = { set: function (value) { if (value) { this.addClass('hidden'); } else { this.removeClass('hidden'); } }, get: function () { return this.addClass('hidden'); } }; SelectTreeMenu.EXTRA_MATCH_SCORE = 2; SelectTreeMenu.UNCASE_MATCH_SCORE = 1; SelectTreeMenu.UVN_MATCH_SCORE = 3; SelectTreeMenu.EQUAL_MATCH_SCORE = 4; SelectTreeMenu.WORD_MATCH_SCORE = 3; /** * @typedef {{text:String, __words__: Array<String>, __textNoneCase__: String, __wordsNoneCase__: Array<String>, __nvnText__:String, __nvnWords__:Array<String>, __nvnTextNoneCase__: String, __nvnWordsNoneCase__: Array<String>}} SearchItem * @param {SearchItem} item * @returns {SearchItem} */ SelectTreeMenu.prepareItem = function (item) { var spliter =/\s+/; item.__text__ = item.text.replace(/([\s\b\-()\[\]]| | | |\s)+/g, ' ').trim(); item.__words__ = item.__text__.split(spliter); item.__textNoneCase__ = item.__text__.toLowerCase(); item.__wordsNoneCase__ = item.__textNoneCase__.split(spliter); item.__nvnText__ = Object(stringFormat["b" /* nonAccentVietnamese */])(item.__text__); item.__nvnWords__ = item.__nvnText__.split(spliter); item.__nvnTextNoneCase__ = item.__nvnText__.toLowerCase(); item.__nvnWordsNoneCase__ = item.__nvnTextNoneCase__.split(spliter); return item; }; SelectTreeMenu.prepareData = function (items) { var item; for (var i = 0; i < items.length; ++i) { if (typeof items[i] == 'string') { items[i] = { text: items[i], value: items[i] }; } item = items[i]; SelectTreeMenu.prepareItem(item); if (item.items) SelectTreeMenu.prepareData(item.items); } return items; } /** * @param {SearchItem} queryItem * @param {SearchItem} item */ SelectTreeMenu.calScore = function (queryItem, item) { var score = 0; if (item.__text__ == queryItem.__text__) score += SelectTreeMenu.EQUAL_MATCH_SCORE * queryItem.__text__.length; var extraIndex = item.__text__.indexOf(queryItem.__text__); if (extraIndex >= 0) { score += SelectTreeMenu.EXTRA_MATCH_SCORE * queryItem.__text__.length - extraIndex / item.__text__.length; } extraIndex = item.__textNoneCase__.indexOf(queryItem.__textNoneCase__); if (extraIndex >= 0) { score += SelectTreeMenu.UNCASE_MATCH_SCORE * queryItem.__text__.length - extraIndex / item.__text__.length; } extraIndex = item.__nvnTextNoneCase__.indexOf(queryItem.__nvnTextNoneCase__); if (extraIndex >= 0) { score += SelectTreeMenu.UNCASE_MATCH_SCORE * queryItem.__text__.length - extraIndex / item.__text__.length; } score += wordsMatch(queryItem.__nvnWordsNoneCase__, item.__nvnWordsNoneCase__) / (queryItem.__nvnWordsNoneCase__.length + 1 + item.__nvnWordsNoneCase__.length) * 2 * SelectTreeMenu.WORD_MATCH_SCORE; score += wordsMatch(queryItem.__wordsNoneCase__, item.__wordsNoneCase__) / (queryItem.__wordsNoneCase__.length + 1 + item.__wordsNoneCase__.length) * 2 * SelectTreeMenu.WORD_MATCH_SCORE; return score; }; SelectTreeMenu.queryTree = function (query, items) { var gmaxScore = 0; var gminScore = 1000; var queryItem = SelectTreeMenu.prepareItem({ text: query }); function makeScore(item) { var score = SelectTreeMenu.calScore(queryItem, item); gmaxScore = Math.max(score, gmaxScore); gminScore = Math.min(score, gminScore); var children = (item.items || []).map(function (item) { return makeScore(item); }); var maxScore = children.reduce(function (ac, cr) { return Math.max(ac, cr.maxScore); }, score); return { score: score, maxScore: maxScore, item: item, children: children } } function sortcmp(a, b) { return b.maxScore - a.maxScore; } function makeItems(nodes, medScore) { nodes.sort(sortcmp); return nodes.filter(function (node) { return node.maxScore >= medScore; }).map(function (node) { var res; if (typeof node.item == 'string') { res = node.item; } else { res = Object.assign({}, node.item); if (node.children && node.children.length > 0) { res.items = makeItems(node.children, medScore); if (res.items.length == 0) delete res.items; } } return res; }); } var scoredItems = items.map(makeScore); var medianScore = (gminScore + gmaxScore) / 2; var items = makeItems(scoredItems, medianScore); return items; }; SelectTreeMenu.prototype.search = function (query) { if (query.length == 0) { this.$treelist.items = this.items; this.updateSelectedItem(); this.updateDropdownPostion(true); this.scrollToSelectedItem(); } else { var searchResult = this.__searchcache__[query] || SelectTreeMenu.queryTree(query, this.items); this.__searchcache__[query] = searchResult; this.$treelist.items = searchResult; this.updateSelectedItem(); this.updateDropdownPostion(true); this.$vscroller.scrollTop = 0; } }; ACore["a" /* default */].creator.selecttreemenu = SelectTreeMenu; /* harmony default export */ var js_SelectTreeMenu = (SelectTreeMenu); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/selectbox.css var selectbox = __webpack_require__(46); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/SelectBox.js var SelectBox_ = ACore["a" /* default */]._; var SelectBox_$ = ACore["a" /* default */].$; function SelectBox() { var res = SelectBox_({ class: ['absol-selectbox'], extendEvent: ['change', 'add', 'remove'], attr: { tabindex: '1' }, child: [ '.absol-selectbox-content-item', { class: 'absol-selectmenu-dropdown-box', child: [ { tag: 'searchtextinput', style: { display: 'none' } }, { tag: 'bscroller', class: 'limited-height', child: [ '.absol-selectlist.search'//handled event by itself, reusing style ] }] }, 'attachhook', ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, SelectBox.eventHandler); res.$renderSpace = js_SelectMenu.getRenderSpace(); res.$vscroller = SelectBox_$('bscroller', res); res.$attachhook = SelectBox_$('attachhook', res); res.$selectlist = SelectBox_('.absol-selectlist.choose', res).addTo(res.$renderSpace); res.$searchlist = SelectBox_$('.absol-selectlist.search', res).addStyle('display', 'none'); res.on('click', res.eventHandler.click, true); res.on('blur', res.eventHandler.blur); res.$holderItem = SelectBox_$('.absol-selectbox-content-item', res); res.$dropdownBox = SelectBox_$('.absol-selectmenu-dropdown-box', res); res.$searchTextInput = SelectBox_$('searchtextinput', res); res.$searchTextInput.on('stoptyping', res.eventHandler.searchModify); res.selectListBound = { height: 0, width: 0 };//selectlist did not init res.sync = new Promise(function (rs) { res.$attachhook.once('error', function () { rs(); }); }); res.$attachhook.on('error', res.eventHandler.attached); return res; }; SelectBox.prototype.updateItemList = function () { var self = this; self.$selectlist.clearChild(); this._items.map(function (item) { var text; if (typeof item == 'string') { text = item; } else { text = item.text; } return SelectBox_({ class: 'absol-selectlist-item', child: '<span>' + text + '</span>', props: { _data: item }, on: { click: function (event) { self.eventHandler.selectlistChange(event, this); } } }).addTo(self.$selectlist); }); this.selectListBound = this.$selectlist.getBoundingClientRect(); this.addStyle('min-width', this.selectListBound.width + 15 + 'px'); }; SelectBox.prototype.init = function (props) { props = props || []; Object.keys(props).forEach(function (key) { if (props[key] === undefined) delete props[key]; }); this.super(props); }; SelectBox.prototype.resetFilter = function () { Array.prototype.forEach.call(this.$selectlist.childNodes, function (e) { e.removeStyle('display'); }.bind(this)); }; SelectBox.prototype.updateDropdownPostion = function (searching) { var screenBottom = Dom["a" /* default */].getScreenSize().height; var outBound = Dom["a" /* default */].traceOutBoundingClientRect(this); var bound = this.getBoundingClientRect(); var searchBound = this.$searchTextInput.getBoundingClientRect(); var availableTop = bound.top - outBound.top - (this.enableSearch ? searchBound.height + 8 : 0) - 7;//for boder var availableBottom = Math.min(outBound.bottom, screenBottom) - bound.bottom - (this.enableSearch ? searchBound.height + 8 : 0) - 7; if (this.forceDown || (!this.$dropdownBox.containsClass('up') && searching) || (!searching && (availableBottom >= this.selectListBound.height || availableBottom > availableTop))) { if (!searching) { this.$dropdownBox.removeClass('up'); this.$searchTextInput.selfRemove(); this.$dropdownBox.addChildBefore(this.$searchTextInput, this.$vscroller); } this.$vscroller.addStyle('max-height', availableBottom + 'px'); } else { if (!searching) { this.$dropdownBox.addClass('up'); this.$searchTextInput.selfRemove(); this.$dropdownBox.addChild(this.$searchTextInput); } if (availableTop < this.selectListBound.height) { this.$vscroller.addStyle('max-height', availableTop + 'px'); } else { this.$vscroller.addStyle('max-height', this.selectListBound.height + 'px'); } } }; SelectBox.prototype.addSelectedItem = function (data) { var self = this; SelectBox_({ tag: 'selectboxitem', props: { data: data }, on: { close: function (event) { self.eventHandler.removeItem(event, this); event.itemData = data; self.emit('remove', event, self); self.emit('change', event, self); } } }).addTo(this.$holderItem); }; SelectBox.prototype.queryValues = function () { return Array.prototype.map.call(this.$holderItem.childNodes, function (e) { var data = e.data; return (typeof data == 'string') ? data : data.value; }) }; SelectBox.prototype.querySelectedItems = function () { return Array.prototype.map.call(this.$holderItem.childNodes, function (e) { return e.data; }); }; SelectBox.prototype.updateSelectedItem = function () { if (!this._values) return; var dict = this._values.reduce(function (ac, cr) { var value = cr; ac[value] = true; return ac; }, {}); this.$holderItem.clearChild(); Array.prototype.forEach.call(this.$selectlist.childNodes, function (e) { var value = (typeof e._data == 'string') ? e._data : e._data.value; if (dict[value]) { e.addClass('selected'); this.addSelectedItem(e._data); } else { e.removeClass('selected'); } }.bind(this)); }; SelectBox.prototype.init = js_SelectMenu.prototype.init; SelectBox.property = {}; SelectBox.property.isFocus = { set: function (value) { value = !!value; if (value == this.isFocus) return; this._isFocus = value; if (value) { SelectBox_$('body').on('click', this.eventHandler.bodyClick); this.addClass('focus'); this.$searchlist.addStyle('display', 'none'); this.$selectlist.addTo(this.$vscroller); if (this.enableSearch) { setTimeout(function () { this.$searchTextInput.focus(); }.bind(this), 50); } this.selectListBound = this.$selectlist.getBoundingClientRect(); this.updateDropdownPostion(); } else { this.$selectlist.addTo(this.$renderSpace); SelectBox_$('body').off('click', this.eventHandler.bodyClick); this.removeClass('focus'); this.$searchTextInput.value = ''; this.$searchTextInput.emit('stoptyping'); } }, get: js_SelectMenu.property.isFocus.get }; SelectBox.property.items = { set: function (value) { this._items = value; this.updateItemList(); // this.sync = this.sync.then(this.updateSelectedItem.bind(this)); }, get: js_SelectMenu.property.items.get }; SelectBox.property.values = { set: function (value) { this._values = (value instanceof Array) ? value : [value]; this.sync = this.sync.then(this.updateSelectedItem.bind(this)); }, get: function () { return this._values || []; } }; SelectBox.property.enableSearch = { set: function (value) { this._enableSearch = !!value; if (value) { this.$searchTextInput.removeStyle('display'); } else { this.$searchTextInput.addStyle('display', 'none'); } }, get: function () { return !!this._enableSearch; } }; SelectBox.property.disabled = { set: function (value) { if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.containsClass('disabled'); } }; SelectBox.property.hidden = js_SelectMenu.property.hidden; SelectBox.eventHandler = Object.assign({}, js_SelectMenu.eventHandler); SelectBox.eventHandler.attached = function (event) { if (this._updateInterval) return; if (!this.$selectlist.parentNode) this.$content.addTo(this.$renderSpace); this._updateInterval = setInterval(function () { if (!this.isDescendantOf(document.body)) { clearInterval(this._updateInterval); this._updateInterval = undefined; this.$selectlist.selfRemove(); } }.bind(this), 10000); }; SelectBox.eventHandler.click = function (event) { if (EventEmitter["a" /* default */].hitElement(this.$selectlist, event) || (this.isFocus && !EventEmitter["a" /* default */].hitElement(this.$dropdownBox, event)) || EventEmitter["a" /* default */].hitElement(this.$searchlist, event)) { event.preventDefault(); setTimeout(function(){ this.isFocus = false; }.bind(this), 5) } else { if (!this.isFocus && (event.target == this.$holderItem || event.target == this)) { this.updateDropdownPostion(); this.isFocus = true; } } }; SelectBox.eventHandler.selectlistChange = function (event, itemElt) { //todo this.$vscroller.removeStyle('max-height'); var data = itemElt._data; itemElt.addClass('selected'); this.addSelectedItem(data); this._values = this.queryValues(); this.resetFilter(); event.itemData = data; this.emit('add', event, this); this.emit('change', event, this); }; SelectBox.eventHandler.removeItem = function (event, item) { var data = item.data; item.selfRemove(); Array.prototype.forEach.call(this.$selectlist.childNodes, function (e) { if (e._data == data) { e.removeClass('selected'); } }); Array.prototype.forEach.call(this.$searchlist.childNodes, function (e) { if (e._data == data) { e.removeClass('selected'); } }); this._values = this.queryValues(); // this.emit('change', event, this); }; SelectBox.eventHandler.searchModify = function (event) { var filterText = this.$searchTextInput.value.replace(/((\ )|(\s))+/g, ' ').trim(); if (filterText.length == 0) { this.$selectlist.addTo(this.$vscroller); this.$searchlist.addStyle('display', 'none'); } else { this.$searchlist.removeStyle('display'); this.$selectlist.addTo(this.$renderSpace); var view = []; if (filterText.length == 1) { view = this.items.map(function (item) { var res = { item: item, text: typeof item === 'string' ? item : item.text }; return res; }).map(function (it) { it.score = 0; var text = it.text.replace(/((\ )|(\s))+/g, ' ').trim(); it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0; text = Object(stringFormat["b" /* nonAccentVietnamese */])(text); it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0; return it; }); view.sort(function (a, b) { if (b.score - a.score == 0) { if (Object(stringFormat["b" /* nonAccentVietnamese */])(b.text) > Object(stringFormat["b" /* nonAccentVietnamese */])(a.text)) return -1; return 1; } return b.score - a.score; }); view = view.filter(function (x) { return x.score > 0; }); } else { var its = this.items.map(function (item) { var res = { item: item, text: typeof item === 'string' ? item : item.text }; var text = res.text.replace(/((\ )|(\s))+/g, ' ').trim(); res.score = (phraseMatch(text, filterText) + phraseMatch(Object(stringFormat["b" /* nonAccentVietnamese */])(text), Object(stringFormat["b" /* nonAccentVietnamese */])(filterText))) / 2; if (Object(stringFormat["b" /* nonAccentVietnamese */])(text).replace(/s/g, '').toLowerCase().indexOf(Object(stringFormat["b" /* nonAccentVietnamese */])(filterText).toLowerCase().replace(/s/g, '')) > -1) res.score = 100; return res; }); if (its.length == 0) return; its.sort(function (a, b) { if (b.score - a.score == 0) { if (Object(stringFormat["b" /* nonAccentVietnamese */])(b.text) > Object(stringFormat["b" /* nonAccentVietnamese */])(a.text)) return -1; return 1; } return b.score - a.score; }); var view = its.filter(function (x) { return x.score > 0.5; }); if (view.length == 0) { var bestScore = its[0].score; view = its.filter(function (it) { return it.score + 0.001 >= bestScore; }); } if (view[0].score == 0) view = []; } view = view.map(function (e) { return e.item; }); var self = this; self.$searchlist.clearChild(); view.map(function (item) { var sameElement = Array.prototype.filter.call(self.$selectlist.childNodes, function (e) { return e._data == item; })[0]; if (sameElement.style.display == 'none' || sameElement.containsClass('selected')) return; var text; if (typeof item == 'string') { text = item; } else { text = item.text; } return SelectBox_({ class: 'absol-selectlist-item', child: '<span>' + text + '<span>', props: { _data: item }, on: { click: function (event) { this.addStyle('display', 'none') self.eventHandler.selectlistChange(event, sameElement); } } }).addTo(self.$searchlist); }); } if (filterText.length > 0) this.selectListBound = this.$searchlist.getBoundingClientRect(); else this.selectListBound = this.$selectlist.getBoundingClientRect(); this.updateDropdownPostion(true); };; function SelectBoxItem() { var res = SelectBox_({ class: 'absol-selectbox-item', extendEvent: 'close', child: [ '.absol-selectbox-item-text', { class: 'absol-selectbox-item-close', child: '<span class="mdi mdi-close"></span>' } ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, SelectBoxItem.eventHandler); res.$text = SelectBox_$('.absol-selectbox-item-text', res); res.$close = SelectBox_$('.absol-selectbox-item-close', res); res.$close.on('click', res.eventHandler.clickClose); return res; }; SelectBoxItem.eventHandler = {}; SelectBoxItem.eventHandler.clickClose = function (event) { this.emit('close', event); }; SelectBoxItem.property = {}; SelectBoxItem.property.data = { set: function (value) { this._data = value; this.$text.clearChild(); this.$text.addChild(SelectBox_('<span>' + this.text + '</span>')); }, get: function () { return this._data; } }; SelectBoxItem.property.text = { get: function () { if (typeof this._data == 'string') return this._data; else return this._data.text; } }; SelectBoxItem.property.value = { get: function () { if (typeof this._data == 'string') return this._data; else return this._data.value; } }; ACore["a" /* default */].creator.selectbox = SelectBox; ACore["a" /* default */].creator.selectboxitem = SelectBoxItem; /* harmony default export */ var js_SelectBox = (SelectBox); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/radio.css var css_radio = __webpack_require__(48); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/RadioButton.js var RadioButton_ = ACore["a" /* default */]._; var RadioButton_$ = ACore["a" /* default */].$; function RadioButton() { var res = RadioButton_( `<div class="absol-radio"> <input type="radio" /> <svg class="absol-radio-icon absol-radio-icon-left" width="20" height="20" version="1.1" viewBox="0 0 5.2917 5.2917" xmlns="http://www.w3.org/2000/svg"> <g transform="translate(0 -291.71)"> <circle class="bound" cx="2.6458" cy="294.35" r="2.4626" style="stroke-opacity:.99497;stroke-width:.26458;" /> <circle class="dot" cx="2.6458" cy="294.35" r="0.92604" style="fill-rule:evenodd;" /> </g> </svg> </div>` ); res.$attachHook = RadioButton_('attachhook').addTo(res); res.defineEvent('change'); res.defineEvent('uncheck'); res.$input = RadioButton_$('input', res); OOP["a" /* default */].drillProperty(res, res.$input, 'value'); res.on('click', function (event) { if (!res.checked) { if (!this.disabled) { res.checked = true; res.emit('change', event, res); } } }); res.$attachHook.on('error', function () { res.checked = res.checked; }); return res; } RadioButton.prototype.getAllFriend = function () { return Radio.getAllByName(this.name); }; RadioButton.attribute = { checked: { set: function (value) { if (value == 'false' || value == null) { this.checked = false; } else { this.checked = true; } }, get: function () { return this.checked ? 'true' : 'false' }, remove: function () { this.checked = false; } }, disabled: { set: function (value) { if (value == 'false' || value == null) { this.disabled = false; } else { this.disabled = true; } }, get: function () { return this.disabled ? 'true' : 'false' }, remove: function () { this.disabled = false; } }, name: { set: function (value) { this.name = value; }, get: function () { return this.name; }, remove: function () { this.name = null; } } } RadioButton.property = { checked: { set: function (value) { this.$input.checked = !!value; if (this.checked) { this.addClass('checked'); var _this = this; setTimeout(function () { function finish(event) { if (!_this.checked) { _this.removeClass('checked') document.body.removeEventListener('click', finish, false); _this.emit('uncheck', { target: _this }, _this); } } document.body.addEventListener('click', finish, false); }, 100); } else { this.removeClass('checked'); } }, get: function () { return this.$input.checked; } }, name: { set: function (name) { if (name == null) this.$input.removeAttribute('name'); else this.$input.setAttribute('name', name); }, get: function () { return this.$input.getAttribute('name'); } }, disabled: { set: function (value) { this.$input.disabled = !!value; if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.$input.disabled; } } }; RadioButton.getAllByName = function (name) { return (document.getElementsByTagName('input') || []).filter(function (elt) { return elt.getAttribute('type') == 'radio' && elt.getAttribute('name') == name; }); }; RadioButton.getValueByName = function (name) { var inputs = Radio.getAllByName(name); var res = null; var input; for (var i = 0; i < inputs.length; ++i) { input = inputs[i]; if (input.checked) { res = input.value; } } return res; }; RadioButton.initAfterLoad = function () { return Dom["a" /* default */].documentReady.then(function () { Array.apply(null,document.getElementsByTagName('input')).filter(function (e) { return e.getAttribute('type') == 'radio' && e.classList.contains('absol-radio'); }).forEach(function (radio) { RadioButton_$(radio); radio.removeClass('absol-radio'); var classes = radio.attr('class').trim().split(/\s+/); var res = RadioButton_(`<div class="absol-radio standar-alone"> <svg class="absol-radio-icon absol-radio-icon-left" width="20" height="20" version="1.1" viewBox="0 0 5.2917 5.2917" xmlns="http://www.w3.org/2000/svg"> <g transform="translate(0 -291.71)"> <circle class="bound" cx="2.6458" cy="294.35" r="2.4626" style="stroke-opacity:.99497;stroke-width:.26458;" /> <circle class="dot" cx="2.6458" cy="294.35" r="0.92604" style="fill-rule:evenodd;" /> </g> </svg> </div>`); radio.selfReplace(res); res.addChild(radio); for (var i = 0; i < classes.length; ++i) { if (classes[i]) res.addClass(classes[i]); } res.defineEvent('change'); res.defineEvent('uncheck'); res.$input = radio; OOP["a" /* default */].drillProperty(res, res.$input, 'value'); res.on('click', function (event) { if (!res.checked) { if (!this.disabled) { res.checked = true; res.emit('change', event, res); } } }); res.defineAttributes(RadioButton.attribute); Object.defineProperties(res,RadioButton.property); Object.assign(res, RadioButton.prototype); if (radio.checked) res.attr('checked', 'true'); res.$input.on('change', function(){ res.checked = this.checked; }); }); }); } ACore["a" /* default */].install('RadioButton'.toLowerCase(), RadioButton); /* harmony default export */ var js_RadioButton = (RadioButton); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Radio.js var Radio_ = ACore["a" /* default */]._; var Radio_$ = ACore["a" /* default */].$; function Radio_Radio() { var res = Radio_( '<div class="absol-radio">' + ' <input type="radio" />' + ' <svg class="absol-radio-icon absol-radio-icon-left" width="20" height="20" version="1.1" viewBox="0 0 5.2917 5.2917"' + ' xmlns="http://www.w3.org/2000/svg">' + ' <g transform="translate(0 -291.71)">' + ' <circle class="bound" cx="2.6458" cy="294.35" r="2.4626" style="stroke-opacity:.99497;stroke-width:.26458;" />' + ' <circle class="dot" cx="2.6458" cy="294.35" r= "0.92604" style="fill-rule:evenodd;" />' + ' </g>' + ' </svg>' + ' <label style="display:none"></label>' + ' <svg class="absol-radio-icon absol-radio-icon-right" width="20" height="20" version="1.1" viewBox="0 0 5.2917 5.2917"' + ' xmlns="http://www.w3.org/2000/svg">' + ' <g transform="translate(0 -291.71)">' + ' <circle class="bound" cx="2.6458" cy="294.35" r="2.4626" style="stroke-opacity:.99497;stroke-width:.26458;" />' + ' <circle class="dot" cx="2.6458" cy="294.35" r= "0.92604" style="fill-rule:evenodd; " />' + ' </g>' + ' </svg>' + '</div>' ); res.defineEvent('change'); res.$input = Radio_$('input', res); res.$label = Radio_$('label', res); OOP["a" /* default */].drillProperty(res, res.$input, 'value'); res.on('click', function (event) { if (!res.checked) { if (!this.disabled) { res.checked = true; res.emit('change', event, res); } } }); res.sync = res.afterAttached().then(function () { res.checked = res.checked; }); return res; }; Radio_Radio.prototype.getAllFriend = function () { return Radio_Radio.getAllByName(this.name); }; Radio_Radio.prototype.attribute = js_RadioButton; Radio_Radio.property = { checked: { set: function (value) { this.$input.checked = !!value; if (this.checked) { this.addClass('checked'); var _this = this; setTimeout(function () { function finish(event) { if (!_this.checked) { _this.removeClass('checked') document.body.removeEventListener('click', finish, false); } } document.body.addEventListener('click', finish, false); }, 100); } else { this.removeClass('checked'); } }, get: function () { return this.$input.checked; } }, name: { set: function (name) { this.$input.setAttribute('name', name); }, get: function () { return this.$input.getAttribute('name'); } }, text: { set: function (value) { value = (value || '').trim(); this.$label.innerHTML = value; if (value.length == 0) this.$label.addStyle('display', 'none'); else this.$label.removeStyle('display'); }, get: function () { return this.$label.innerHTML; } }, disabled: { set: function (value) { this.$input.disabled = !!value; if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.$input.disabled; } } }; Radio_Radio.getAllByName = function (name) { return (Array.apply(null, document.getElementsByTagName('input')) || []).filter(function (elt) { return elt.getAttribute('type') == 'radio' && elt.getAttribute('name') == name; }); }; Radio_Radio.getValueByName = function (name) { var inputs = Radio_Radio.getAllByName(name); var res = null; var input; for (var i = 0; i < inputs.length; ++i) { input = inputs[i]; if (input.checked) { res = input.value; } } return res; }; ACore["a" /* default */].creator.radio = Radio_Radio; /* harmony default export */ var js_Radio = (Radio_Radio); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/switch.css var css_switch = __webpack_require__(50); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Switch.js var Switch_ = ACore["a" /* default */]._; var Switch_$ = ACore["a" /* default */].$; function Switch() { var res = Switch_({ tag: 'label', class: 'absol-switch', extendEvent: 'change', child: [ 'input[type="checkbox"]', 'span.absol-switch-slider' ] }); res.$input = Switch_$('input', res); res.on('click', function (event) { res.emit('change', event, res); }); OOP["a" /* default */].drillProperty(res, res.$input, 'checked'); OOP["a" /* default */].drillProperty(res, res.$input, 'isOn', 'checked'); return res; } Switch.attribute = { checked: { set: function (value) { if (value == 'false' || value == null) { this.checked = false; } else { this.checked = true; } }, get: function () { return this.checked ? 'true' : 'false' }, remove: function () { this.checked = false; } }, disabled: { set: function (value) { if (value == 'false' || value == null) { this.disabled = false; } else { this.disabled = true; } }, get: function () { return this.disabled ? 'true' : 'false' }, remove: function () { this.disabled = false; } } }; Switch.property = { disabled: { set: function (value) { this.$input.disabled = !!value; if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.$input.disabled; } } }; ACore["a" /* default */].install('switch', Switch); /* harmony default export */ var js_Switch = (Switch); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/checkbox.css var css_checkbox = __webpack_require__(52); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/CheckBox.js var CheckBox_ = ACore["a" /* default */]._; var CheckBox_$ = ACore["a" /* default */].$; function CheckBox() { var svgIcon = function (pos) { return CheckBox_([ '<svg class="absol-checkbox-icon absol-checkbox-icon-' + pos + '" width="18mm" height="18mm" version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" >', ' <g transform="translate(0 -279)">', ' <path class="bound" d="m3 279.69h12c1.3434 0.0111 2.3298 1.5259 2.3131 2.4775v11.836c0.05005 0.89373-1.1834 2.2964-2.3131 2.3131h-12c-0.82692 0.0166-2.3131-1.1834-2.3131-2.3131v-12.237c0.0022374-1.171 0.3775-2.0759 2.3131-2.0759z" style="stroke-linejoin:round;"/>', ' <path class="tick" d="m3.1656 288.66c-0.10159 0.0612-0.11743 0.12506-0.12993 0.18899l3.7473 4.3467c0.066638 0.0459 0.11813 0.0263 0.16832 1e-3 0 0 1.7699-4.2166 4.7251-7.4568 1.4783-1.6208 3.2406-3.3659 3.2406-3.3659 0.0054-0.14125-0.10946-0.15807-0.1754-0.22551 0 0-2.5832 1.6364-4.7524 3.8336-1.8697 1.8939-3.6666 4.4016-3.6666 4.4016z"/>', ' </g>', '</svg>'].join('')); } var res = CheckBox_({ class: ['absol-checkbox'], child: [ '<input type="checkbox" />', svgIcon('left'), '<label style="display:none"></label>', svgIcon('right') ] }); res.defineEvent('change'); res.$input = CheckBox_$('input', res); res.$label = CheckBox_$('label', res); res.on('click', function (event) { event.preventDefault(); if (!this.disabled) { res.checked = !res.checked; res.emit('change', event, res); } }); return res; }; //v, labelText, checked CheckBox.attribute = { checked: { set: function (value) { if (value == 'false' || value == null) { this.checked = false; } else { this.checked = true; } }, get: function () { return this.checked ? 'true' : 'false' }, remove: function () { this.checked = false; } }, disabled: { set: function (value) { if (value == 'false' || value == null) { this.disabled = false; } else { this.disabled = true; } }, get: function () { return this.disabled ? 'true' : 'false' }, remove: function () { this.disabled = false; } } }; CheckBox.property = { checked: { set: function (value) { this.$input.checked = !!value; if (this.checked) { this.addClass('checked'); } else { this.removeClass('checked'); } }, get: function () { return this.$input.checked; } }, text: { set: function (value) { value = (value || '').trim(); this.$label.innerHTML = value; if (value.length == 0) this.$label.addStyle('display', 'none'); else this.$label.removeStyle('display'); }, get: function () { return this.$label.innerHTML; } }, disabled: { set: function (value) { this.$input.disabled = !!value; if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.$input.disabled; } } }; ACore["a" /* default */].creator.checkbox = CheckBox; /* harmony default export */ var js_CheckBox = (CheckBox); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/CheckboxButton.js var CheckboxButton_ = ACore["a" /* default */]._; var CheckboxButton_$ = ACore["a" /* default */].$; function CheckBoxButton() { var svgIcon = function (pos) { return CheckboxButton_([ '<svg class="absol-checkbox-icon absol-checkbox-icon-' + pos + '" width="18mm" height="18mm" version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" >', ' <g transform="translate(0 -279)">', ' <path class="bound" d="m3 279.69h12c1.3434 0.0111 2.3298 1.5259 2.3131 2.4775v11.836c0.05005 0.89373-1.1834 2.2964-2.3131 2.3131h-12c-0.82692 0.0166-2.3131-1.1834-2.3131-2.3131v-12.237c0.0022374-1.171 0.3775-2.0759 2.3131-2.0759z" style="stroke-linejoin:round;"/>', ' <path class="tick" d="m3.1656 288.66c-0.10159 0.0612-0.11743 0.12506-0.12993 0.18899l3.7473 4.3467c0.066638 0.0459 0.11813 0.0263 0.16832 1e-3 0 0 1.7699-4.2166 4.7251-7.4568 1.4783-1.6208 3.2406-3.3659 3.2406-3.3659 0.0054-0.14125-0.10946-0.15807-0.1754-0.22551 0 0-2.5832 1.6364-4.7524 3.8336-1.8697 1.8939-3.6666 4.4016-3.6666 4.4016z"/>', ' </g>', '</svg>'].join('')); } var res = CheckboxButton_({ class: ['absol-checkbox'], child: [ '<input type="checkbox" />', svgIcon('left') ] }); res.defineEvent('change'); res.$input = CheckboxButton_$('input', res); res.$label = CheckboxButton_$('label', res); res.on('click', function (event) { event.preventDefault(); if (!this.disabled) { res.checked = !res.checked; res.emit('change', event, res); } }); return res; }; CheckBoxButton.attribute = { checked: { set: function (value) { if (value == 'false' || value == null) { this.checked = false; } else { this.checked = true; } }, get: function () { return this.checked ? 'true' : 'false' }, remove: function () { this.checked = false; } }, disabled: { set: function (value) { if (value == 'false' || value == null) { this.disabled = false; } else { this.disabled = true; } }, get: function () { return this.disabled ? 'true' : 'false' }, remove: function () { this.disabled = false; } } }; CheckBoxButton.property = { checked: { set: function (value) { this.$input.checked = !!value; if (this.checked) { this.addClass('checked'); } else { this.removeClass('checked'); } }, get: function () { return this.$input.checked; } }, disabled: { set: function (value) { this.$input.disabled = !!value; if (value) { this.addClass('disabled'); } else { this.removeClass('disabled'); } }, get: function () { return this.$input.disabled; } } }; CheckBoxButton.initAfterLoad = function () { return Dom["a" /* default */].documentReady.then(function () { Array.apply(null, document.getElementsByTagName('input')).filter(function (e) { return e.getAttribute('type') == 'checkbox' && e.classList.contains('absol-checkbox'); }).forEach(function (checkbox) { CheckboxButton_$(checkbox); checkbox.removeClass('absol-radio'); var classes = checkbox.attr('class').trim().split(/\s+/); var svgIcon = function (pos) { return CheckboxButton_([ '<svg class="absol-checkbox-icon absol-checkbox-icon-' + pos + '" width="18mm" height="18mm" version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" >', ' <g transform="translate(0 -279)">', ' <path class="bound" d="m3 279.69h12c1.3434 0.0111 2.3298 1.5259 2.3131 2.4775v11.836c0.05005 0.89373-1.1834 2.2964-2.3131 2.3131h-12c-0.82692 0.0166-2.3131-1.1834-2.3131-2.3131v-12.237c0.0022374-1.171 0.3775-2.0759 2.3131-2.0759z" style="stroke-linejoin:round;"/>', ' <path class="tick" d="m3.1656 288.66c-0.10159 0.0612-0.11743 0.12506-0.12993 0.18899l3.7473 4.3467c0.066638 0.0459 0.11813 0.0263 0.16832 1e-3 0 0 1.7699-4.2166 4.7251-7.4568 1.4783-1.6208 3.2406-3.3659 3.2406-3.3659 0.0054-0.14125-0.10946-0.15807-0.1754-0.22551 0 0-2.5832 1.6364-4.7524 3.8336-1.8697 1.8939-3.6666 4.4016-3.6666 4.4016z"/>', ' </g>', '</svg>'].join('')); } var res = CheckboxButton_({ class: ['absol-checkbox'], child: [ svgIcon('left') ] }); checkbox.selfReplace(res); res.addChild(checkbox); for (var i = 0; i < classes.length; ++i) { if (classes[i]) res.addClass(classes[i]); } res.defineEvent('change'); res.$input = CheckboxButton_$('input', res); res.$label = CheckboxButton_$('label', res); res.$input = checkbox; res.on('click', function (event) { if (event.target == checkbox){ if (checkbox.checked) { this.addClass('checked'); } else { this.removeClass('checked'); } res.emit('change', event, res); } else{ event.preventDefault(); if (!this.disabled) { res.checked = !res.checked; res.emit('change', event, res); } } }); res.defineAttributes(CheckBoxButton.attribute); Object.defineProperties(res, CheckBoxButton.property); Object.assign(res, CheckBoxButton.prototype); if (checkbox.checked) res.attr('checked', 'true'); if (checkbox.disabled) res.attr('disabled', 'true'); }); }); } ACore["a" /* default */].install('CheckBoxButton'.toLowerCase(), CheckBoxButton); /* harmony default export */ var CheckboxButton = (CheckBoxButton); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TextClipboard.js var TextClipboard_ = ACore["a" /* default */]._; var TextClipboard_$ = ACore["a" /* default */].$; function TextClipboard() { var res = TextClipboard_({ style: { positon: 'fixed', opacity: 0, width: '1px', height: '1px', top: 0, left: 0 } }); res.$textarea = TextClipboard_('<textarea class="absol-text-clipboard" wrap="off" autocorrect="off"' + ' autocapitalize="off" spellcheck="false"></textarea>').addTo(res); return res; }; TextClipboard.prototype.copy = function (text) { this.$textarea.value = text; this.$textarea.select(); document.execCommand('copy'); }; TextClipboard.prototype.paste = function () { this.$textarea.select(); document.execCommand('paste'); }; ACore["a" /* default */].creator.textclipboard = TextClipboard; /* harmony default export */ var js_TextClipboard = (TextClipboard); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/editabletext.css var editabletext = __webpack_require__(54); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/EditableText.js var EditableText_ = ACore["a" /* default */]._; var EditableText_$ = ACore["a" /* default */].$; function EditableText() { var res = EditableText_({ class: 'absol-editabe-text', extendEvent: ['blur', 'focus', 'change', 'modify'], child: [ { class: 'absol-editabe-text-higne', child: '<input type="text">' }, 'span' ] }); res.$span = EditableText_$('span', res); res.$text = document.createTextNode(''); res.$span.addChild(res.$text); res.$higne = EditableText_$('.absol-editabe-text-higne', res); res.$input = EditableText_$('input', res); OOP["a" /* default */].drillProperty(res, res.$input, ['selectionStart', 'selectionEnd']); res.eventHanler = OOP["a" /* default */].bindFunctions(res, EditableText.eventHanler); res.sync = res.afterAttached(); res.$input.on('keydown', res.eventHanler.inputKeyDown, true); res.$input.on('change', res.eventHanler.inputChange); res.$input.on('blur', res.eventHanler.inputBlur); return res; }; EditableText.prototype.focus = function () { this.$input.focus(); }; EditableText.prototype.blur = function () { this.$input.blur(); }; EditableText.prototype.select = function () { this.$input.select(); }; EditableText.prototype.edit = function (flag, select) { this.editing = !!flag; this.sync = this.sync.then(function () { if (flag) { this.focus(); if (select) this.select(); } else this.blur(); }.bind(this)); return this.sync; } EditableText.prototype._update = function () { this.sync = this.sync.then(function () { return new Promise(function (rs) { // setTimeout(function () { var bound = this.getBoundingClientRect(); var higneBound = this.$higne.getBoundingClientRect(); var fsize = this.getFontSize(); this.$input.addStyle('width', bound.width + 4 + fsize * 0 + 'px'); this.$input.addStyle('height', bound.height + 4 + 'px'); this.$input.addStyle('left', bound.left - higneBound.left - 2 + 'px'); this.$input.addStyle('top', bound.top - higneBound.top + 'px'); rs(); }.bind(this)); }.bind(this)); } EditableText.property = {}; EditableText.property.text = { set: function (value) { this.$text.textContent = value; this.$input.value = value; }, get: function () { return this.$text.textContent; } } EditableText.property.editing = { set: function (value) { if (this._editting === value) return; this._editting = !!value; if (value) { this.$input.value = this.text; this._update(); this.sync = this.sync.then(function () { this.addClass('editing'); this.$input.value = this.text; this.$input.addStyle('font', this.$span.getComputedStyleValue('font')); this.$input.addStyle('font-style', this.$span.getComputedStyleValue('font-style')); this.$input.addStyle('color', this.$span.getComputedStyleValue('color')); }.bind(this)); } else { this.removeClass('editing'); } }, get: function () { return !!this._editting; } }; EditableText.eventHanler = {}; EditableText.eventHanler.inputKeyDown = function (event) { requestAnimationFrame(function () { this.text = this.$input.value; this._update(); event.text = this.text; this.emit('modify', event); }.bind(this)); }; EditableText.eventHanler.inputChange = function (event) { this.editing = false; this.emit('change', event); }; EditableText.eventHanler.inputBlur = function (event) { this.editing = false; this.emit('blur', event); }; ACore["a" /* default */].creator.editabletext = EditableText; /* harmony default export */ var js_EditableText = (EditableText); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/widthheightresizer.css var widthheightresizer = __webpack_require__(56); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Draggable.js function Draggable(element) { if (!element) element = ACore["a" /* default */]._('div'); else ACore["a" /* default */].$(element); element.defineEvent(['predrag', 'drag', 'begindrag', 'enddrag']); var body = ACore["a" /* default */].$('body'); var isMoving = false; var firstMove = false; var offsetX; var offsetY; var fontSize; var left0em, top0em, left0, top0; var finishMoving = function (event) { if (isMoving) { isMoving = false; body.off('mousemove', mouseMoveEventHandler); event.moveDX = event.clientX - offsetX; event.moveDY = event.clientY - offsetY; event.moveDXem = event.moveDX / fontSize; event.moveDYem = event.moveDY / fontSize; event.moveToX = left0 + event.moveDX; event.moveToY = top0 + event.moveDY; element.emit('enddrag', event); } }; var mouseUpEventHandler = function (event) { finishMoving(event); }; var mouseMoveEventHandler = function (event) { event.preventDefault(); event.moveDX = event.clientX - offsetX; event.moveDY = event.clientY - offsetY; event.moveDXem = event.moveDX / fontSize; event.moveDYem = event.moveDY / fontSize; event.moveToX = left0 + event.moveDX; event.moveToY = top0 + event.moveDY; event.moveToXem = left0em + event.moveDXem; event.moveToYem = top0em + event.moveDYem; if (firstMove) { firstMove = false; element.emit('begindrag', event); } element.emit('drag', event); }; var mouseOutEventHandler = function (event) { finishMoving(event); }; var mouseDownEventHandler = function (event) { isMoving = true; firstMove = true; body.on('mousemove', mouseMoveEventHandler); body.once('mouseleave', mouseOutEventHandler); body.once('mouseup', mouseUpEventHandler); fontSize = this.getFontSize(); offsetX = event.clientX; offsetY = event.clientY; left0 = parseFloat(element.getComputedStyleValue('left').replace('px', '')); top0 = parseFloat(element.getComputedStyleValue('top').replace('px', '')); left0em = left0 / fontSize; top0em = top0 / fontSize; event.x0 = left0; event.y0 = top0; event.y0em = left0em; event.y0em = top0em; element.emit('predrag', event); }; element.on('mousedown', mouseDownEventHandler); return element; }; /* harmony default export */ var js_Draggable = (Draggable); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/WidthHeightSizer.js var WidthHeightSizer_ = ACore["a" /* default */]._; var WidthHeightSizer_$ = ACore["a" /* default */].$; function WidthHeightResizer() { var res = WidthHeightSizer_({ extendEvent: 'sizechange', class: 'absol-width-height-resizer', child: ['.absol-width-height-resizer-content', '.absol-width-height-resizer-anchor-bot-right', '.absol-width-height-resizer-anchor-bot-left', '.absol-width-height-resizer-anchor-top-right', '.absol-width-height-resizer-anchor-top-left' ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, WidthHeightResizer.eventHandler); res.$anchorBotRight = WidthHeightSizer_$('.absol-width-height-resizer-anchor-bot-right', res); res.$anchorTopRight = WidthHeightSizer_$('.absol-width-height-resizer-anchor-top-right', res); res.$anchorBotLeft = WidthHeightSizer_$('.absol-width-height-resizer-anchor-bot-left', res); res.$anchorTopLeft = WidthHeightSizer_$('.absol-width-height-resizer-anchor-top-left', res); res.$content = WidthHeightSizer_$('.absol-width-height-resizer-content', res); js_Draggable(res.$anchorBotRight).on('drag', res.eventHandler.dragBotRight).on('predrag', res.eventHandler.preDrag); js_Draggable(res.$anchorTopRight).on('drag', res.eventHandler.dragTopRight).on('predrag', res.eventHandler.preDrag); js_Draggable(res.$anchorBotLeft).on('drag', res.eventHandler.dragBotLeft).on('predrag', res.eventHandler.preDrag); js_Draggable(res.$anchorTopLeft).on('drag', res.eventHandler.dragTopLeft).on('predrag', res.eventHandler.preDrag); return res; } ['addChild', 'addChildBefore', 'addChildAfter', 'clearChild'].forEach(function (key) { WidthHeightResizer.prototype[key] = function () { return this.$content[key].apply(this.$content, arguments); } }); WidthHeightResizer.eventHandler = {}; WidthHeightResizer.eventHandler.preDrag = function (event) { this._whrWidth = parseFloat(this.getComputedStyleValue('width').replace('px', '')); this._whrHeight = parseFloat(this.getComputedStyleValue('height').replace('px', '')); }; WidthHeightResizer.eventHandler.dragBotRight = function (event) { var newEvent = { target: this, data: {} }; if (event.moveDX != 0) { this.addStyle('width', this._whrWidth + event.moveDX + 'px'); newEvent.data.changeWidth = true; } if (event.moveDY != 0) { this.addStyle('height', this._whrHeight + event.moveDY + 'px'); newEvent.data.changeHeight = true; } newEvent.data.height = this.getComputedStyleValue('height'); newEvent.data.width = this.getComputedStyleValue('width'); this.emit('sizechange', newEvent); }; WidthHeightResizer.eventHandler.dragTopRight = function (event) { var newEvent = { target: this, data: {} }; if (event.moveDX != 0) { this.addStyle('width', this._whrWidth + event.moveDX + 'px'); newEvent.data.changeWidth = true; } if (event.moveDY != 0) { this.addStyle('height', this._whrHeight - event.moveDY + 'px'); newEvent.data.changeHeight = true; } newEvent.data.height = this.getComputedStyleValue('height'); newEvent.data.width = this.getComputedStyleValue('width'); this.emit('sizechange', newEvent); }; WidthHeightResizer.eventHandler.dragBotLeft = function (event) { var newEvent = { target: this, data: {} }; if (event.moveDX != 0) { this.addStyle('width', this._whrWidth - event.moveDX + 'px'); newEvent.data.changeWidth = true; } if (event.moveDY != 0) { this.addStyle('height', this._whrHeight + event.moveDY + 'px'); newEvent.data.changeHeight = true; } newEvent.data.height = this.getComputedStyleValue('height'); newEvent.data.width = this.getComputedStyleValue('width'); this.emit('sizechange', newEvent); }; WidthHeightResizer.eventHandler.dragTopLeft = function (event) { var newEvent = { target: this, data: {} }; if (event.moveDX != 0) { this.addStyle('width', this._whrWidth - event.moveDX + 'px'); newEvent.data.changeWidth = true; } if (event.moveDY != 0) { this.addStyle('height', this._whrHeight - event.moveDY + 'px'); newEvent.data.changeHeight = true; } newEvent.data.height = this.getComputedStyleValue('height'); newEvent.data.width = this.getComputedStyleValue('width'); this.emit('sizechange', newEvent); }; ACore["a" /* default */].creator.widthheightresizer = WidthHeightResizer; /* harmony default export */ var WidthHeightSizer = (WidthHeightResizer); // CONCATENATED MODULE: ./node_modules/absol/src/Math/Vec2.js function Vec2(x, y) { this.x = x; this.y = y; } Vec2.prototype.copy = function () { return new Vec2(this.x, this.y); }; Vec2.prototype.toString = function () { return "(" + this.x + ", " + this.y + ")"; }; Vec2.prototype.abs = function () { return Math.sqrt(this.x * this.x + this.y * this.y); }; Vec2.prototype.normalized = function () { var l = this.abs(); if (l == 0) l = 1; return this.div(l); }; Vec2.prototype.mult = function (h) { return new Vec2(this.x * h, this.y * h); }; Vec2.prototype.div = function (h) { return new Vec2(this.x / h, this.y / h); }; Vec2.prototype.dist = function (v) { var dx = v.x - this.x; var dy = v.y - this.y; return Math.sqrt(dx * dx + dy * dy); }; Vec2.prototype.sub = function (v) { return new Vec2(this.x - v.x, this.y - v.y); }; Vec2.prototype.add = function (v) { return new Vec2(this.x + v.x, this.y + v.y); }; Vec2.prototype.inv = function () { return new Vec2(-this.x, -this.y); }; Vec2.prototype.linear = function (v, h) { return new Vec2(this.x * (1 - h) + v.x * h, this.y * (1 - h) + v.y * h); }; Vec2.prototype.dot = function (v1) { return this.x * v1.x + this.y * v1.y; }; Vec2.prototype.direction = function () { return Math.atan2(this.y, this.x); }; Vec2.fromDirection = function (angle) { return new Vec2(Math.cos(angle), Math.sin(angle)); }; Vec2.make = function (x, y) { if (x instanceof Array) { return new Vec2(x[0], x[1]); } else if (x instanceof Vec2) { return x.copy(); } else return new Vec2(x, y); }; /* harmony default export */ var Math_Vec2 = (Vec2); // CONCATENATED MODULE: ./node_modules/absol/src/Math/Rectangle.js /** * * @param {Number} x * @param {Number} y * @param {Number} width * @param {Number} height */ function Rectangle(x, y, width, height) { this.width = width; this.height = height; this.x = x; this.y = y; } Rectangle.prototype.A = function () { return new Math_Vec2(this.x, this.y); }; Rectangle.prototype.B = function () { return new Math_Vec2(this.x + this.width, this.y); }; Rectangle.prototype.C = function () { return new Math_Vec2(this.x + this.width, this.y + this.height); }; Rectangle.prototype.D = function () { return new Math_Vec2(this.x, this.y + this.height); }; Rectangle.prototype.square = function () { return this.width * this.height; }; Rectangle.prototype.nearestPoint = function (arg0, arg1) { if (arg1) arg0 = Math_Vec2.make(arg0, arg1); var res = this.A(); var mind = res.dist(arg0); var d = this.B().dist(arg0); if (d < mind) { mind = d; res = this.B(); } d = this.C().dist(arg0); if (d < mind) { mind = d; res = this.C(); } d = this.D().dist(arg0); if (d < mind) { mind = d; res = this.D(); } return res; }; Rectangle.prototype.centerPoint = function () { return new Math_Vec2(this.x + this.width / 2, this.y + this.height / 2); }; Rectangle.prototype.isCollapse = function (r, margin) { if (!margin) margin = 0; if (this.x > r.x + r.width + margin) return false; if (this.y > r.y + r.height + margin) return false; if (r.x > this.x + this.width + margin) return false; if (r.y > this.y + this.height + margin) return false; return true; }; Rectangle.prototype.collapsedSquare = function (r) { var margin = 0; var maxX, minX, maxY, minY; if (this.x > r.x + r.width + margin) return 0; if (this.y > r.y + r.height + margin) return 0; if (r.x > this.x + this.width + margin) return 0; if (r.y > this.y + this.height + margin) return 0; minX = this.x > r.x ? this.x : r.x; minY = this.y > r.y ? this.y : r.y; maxX = this.x + this.width < r.x + r.width ? this.x + this.width : r.x + r.width; maxY = this.y + this.height < r.y + r.height ? this.y + this.height : r.y + r.height; return (maxX - minX) * (maxY - minY); }; Rectangle.prototype.collapsedRect = function (r) { var margin = 0; var maxX, minX, maxY, minY; if (this.x > r.x + r.width + margin) return null; if (this.y > r.y + r.height + margin) return null; if (r.x > this.x + this.width + margin) return null; if (r.y > this.y + this.height + margin) return null; minX = this.x > r.x ? this.x : r.x; minY = this.y > r.y ? this.y : r.y; maxX = this.x + this.width < r.x + r.width ? this.x + this.width : r.x + r.width; maxY = this.y + this.height < r.y + r.height ? this.y + this.height : r.y + r.height; return new Rectangle(minX, minX, maxX - minX, maxY - minY); }; /** * @param {Rectangle} other * @returns {Rectangle} */ Rectangle.prototype.merge = function (other) { var left = Math.min(this.x, other.x); var top = Math.min(this.y, other.y); var right = Math.max(this.x + this.width, other.x + other.width); var bottom = Math.max(this.y + this.height, other.y + other.height); return new Rectangle(left, top, right - left, bottom - top); }; /** * @returns {Rectangle} */ Rectangle.prototype.clone = function () { return new Rectangle(this.x, this.y, this.width, this.height); }; /** * @param {Number} x * @param {Number} y * @param {Number} width * @param {Number} height * @returns {Rectangle} */ Rectangle.make = function (x, y, width, height) { return new Rectangle(x, y, width, height); }; /** * @param {Number} x * @param {Number} y * @param {Number} width * @param {Number} height * @returns {Rectangle} */ Rectangle.makeCenter = function (x, y, width, height) { return new Rectangle(x - width / 2, y - height / 2, width, height); }; /** * @param {ClientRect} clientRect * @returns {Rectangle} */ Rectangle.fromClientRect = function (clientRect) { return new Rectangle(clientRect.left, clientRect.top, clientRect.width, clientRect.height); }; /* harmony default export */ var Math_Rectangle = (Rectangle); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Follower.js var Follower_ = ACore["a" /* default */]._; var Follower_$ = ACore["a" /* default */].$; function Follower() { var res = Follower_({ class: 'absol-follower', child: ['.absol-follower-content-container', 'attachhook'], }); res.$attachHook = Follower_$('attachhook', res) .on('error', function () { res.updatePosition(); this.updateSize = this.updateSize || res.updatePosition.bind(this); Dom["a" /* default */].addToResizeSystem(res); }); res.$contentCtn = Follower_$('.absol-follower-content-container', res); res.$followTarget = undefined; res.$scrollTrackElts = []; res._scrollTrackEventHandler = undefined; res._anchor = Follower.ANCHOR_PRIORITY; return res; } ['addChild', 'addChildBefore', 'addChildAfter', 'clearChild'].forEach(function (key) { Follower.prototype[key] = function () { return this.$contentCtn[key].apply(this.$contentCtn, arguments); } }) /** * X = $target.x + F[anchor_index][0] * $target.width + F[anchor_index][1] * $content.width * Y = $target.y + F[anchor_index][2] * $target.height + F[anchor_index][3] * $content.height */ Follower.ANCHOR_FACTORS = [ [1, 0, 0, 0],//0 [0, 0, 1, 0],//1 [1, -1, 1, 0],//2 [0, -1, 0, 0],//3 [0, -1, 1, -1],//4 [1, -1, 0, -1],//5 [0, 0, 0, -1],//6 [1, 0, 1, -1],//7 [1, 0, 0.5, -0.5],//8 [0.5, -0.5, 1, 0],//9 [0, -1, 0.5, -0.5],//10 [0.5, -0.5, 0, -1],//11 [1, 0, 1, 0],//12 [0, -1, 1, 0],//13 [0, -1, 0, -1],//14 [1, 0, 0, -1],//15 ]; Follower.ANCHOR_PRIORITY = [1, 6, 2, 5, 0, 7, 3, 4, 9, 11, 8, 10, 12, 15, 13, 14]; Follower.prototype.updatePosition = function () { if (!this.$followTarget) return; var contentCtnBound = this.$contentCtn.getBoundingClientRect(); var targetBound = this.$followTarget.getBoundingClientRect(); var outRect = Math_Rectangle.fromClientRect(Dom["a" /* default */].traceOutBoundingClientRect(this)); var bound = this.getBoundingClientRect(); var x = 0; var y = 0; var score; var anchors = this._lastAnchor === undefined ? this.anchor : [this._lastAnchor].concat(this.anchor); var factor; var bestX, bestY, bestScore = -100000; var newContentRect; var bestAnchor; for (var i = 0; i < anchors.length; ++i) { factor = Follower.ANCHOR_FACTORS[anchors[i]]; x = targetBound.left + factor[0] * targetBound.width + factor[1] * contentCtnBound.width; y = targetBound.top + factor[2] * targetBound.height + factor[3] * contentCtnBound.height; newContentRect = new Math_Rectangle(x, y, contentCtnBound.width, contentCtnBound.height); score = newContentRect.collapsedSquare(outRect); if (score - 10 > bestScore) { bestAnchor = anchors[i]; bestScore = score; bestX = x; bestY = y; } } this._lastAnchor = bestAnchor; bestX -= bound.left; bestY -= bound.top; this.$contentCtn.addStyle({ left: bestX + 'px', top: bestY + 'px' }); }; Follower.prototype.refollow = function () { if (!this.$followTarget) return; this.addClass('following'); if (this._scrollTrackEventHandler) this.unfollow(); this._scrollTrackEventHandler = this.updatePosition.bind(this); this.$scrollTrackElts = []; var trackElt = this.$followTarget; while (trackElt) { if (trackElt.addEventListener) trackElt.addEventListener('scroll', this._scrollTrackEventHandler, false); else trackElt.attachEvent('onscroll', this._scrollTrackEventHandler, false); this.$scrollTrackElts.push(trackElt); trackElt = trackElt.parentElement; } if (document.addEventListener) { document.addEventListener('scroll', this._scrollTrackEventHandler, false); } else { document.attachEvent('onscroll', this._scrollTrackEventHandler, false); } this.$scrollTrackElts.push(document); }; Follower.prototype.unfollow = function () { if (!this._scrollTrackEventHandler) return;// nothing to do this.removeClass('following'); var trackElt; for (var i = 0; i < this.$scrollTrackElts.length; ++i) { trackElt = this.$scrollTrackElts[i]; if (trackElt.removeEventListener) trackElt.removeEventListener('scroll', this._scrollTrackEventHandler, false); else trackElt.dettachEvent('onscroll', this._scrollTrackEventHandler, false); } this.$scrollTrackElts = []; this._scrollTrackEventHandler = undefined; }; Follower.property = {}; Follower.property.followTarget = { set: function (elt) { if (elt === null || elt === undefined || !elt) { this.unfollow(); this.$followTarget = undefined; } else if (typeof elt == 'string') { elt = Follower_$(elt) || document.getElementById(elt); } if (Dom["a" /* default */].isDomNode(elt)) { this.$followTarget = elt; this._lastAncho = undefined; this.refollow(); this.updatePosition(); } else throw new Error("Invalid element"); }, get: function () { return this.$followTarget; } } Follower.property.anchor = { set: function (value) { value = value || Follower.ANCHOR_PRIORITY; if (value == 'auto') value = Follower.ANCHOR_PRIORITY; if (typeof value == null) value = [value]; if (!(value instanceof Array)) throw new Error('Invalid anchor ' + value); value = value.map(function (x) { x = Math.floor(x); if (x >= 0 && x < Follower.ANCHOR_FACTORS.length) { return x; } else throw new Error("Invalid anchor: " + x); }); this._anchor = value; this._lastAnchor = undefined; this.updatePosition(); }, get: function () { return this._anchor; } } ACore["a" /* default */].install('follower', Follower); /* harmony default export */ var js_Follower = (Follower); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/follower.css var follower = __webpack_require__(58); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/tooltip.css var tooltip = __webpack_require__(60); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/Tooltip.js var Tooltip_ = ACore["a" /* default */]._; var Tooltip_$ = ACore["a" /* default */].$; function ToolTip() { var res = Tooltip_({ class: 'absol-tooltip', child: [ { class: 'absol-tooltip-content', child: '<span>No</span>' }, '.absol-tooltip-arrow' ] }); res.$content = Tooltip_$('.absol-tooltip-content', res); res.$arrow = Tooltip_$('.absol-tooltip-arrow', res); return res; } ['addChild', 'addChildBefore', 'addChildAfter', 'clearChild'].forEach(function (key) { ToolTip.prototype[key] = function () { return this.$content[key].apply(this.$content, arguments); } }); ACore["a" /* default */].install('tooltip', ToolTip); ToolTip.$root = Tooltip_('.absol-tooltip-root').addStyle('visibility', 'hidden'); ToolTip.$holder = Tooltip_('.absol-tooltip-root-holder').addTo(ToolTip.$root); ToolTip.$tooltip = Tooltip_('tooltip.top').addTo(ToolTip.$holder); ToolTip.$element = undefined; ToolTip.$content = undefined; ToolTip._orientation = 'top'; ToolTip._session = Math.random() * 10000000000 >> 0; ToolTip.updatePosition = function () { var element = ToolTip.$element; if (!element) return; var orientation = ToolTip._orientation; var tBound = ToolTip.$tooltip.getBoundingClientRect(); var rBound = ToolTip.$root.getBoundingClientRect(); var ebound = element.getBoundingRecursiveRect(); var dx, dy; if (orientation == 'top') { dy = ebound.top - rBound.top - tBound.height; dx = ebound.left + ebound.width / 2 - rBound.left - tBound.width / 2; } else if (orientation == 'left') { dy = ebound.top + ebound.height / 2 - rBound.top - tBound.height / 2; dx = ebound.left - rBound.left - tBound.width; } else if (orientation == 'right') { dy = ebound.top + ebound.height / 2 - rBound.top - tBound.height / 2; dx = ebound.right - rBound.left; } else if (orientation == 'bottom') { dy = ebound.bottom - rBound.top; dx = ebound.left + ebound.width / 2 - rBound.left - tBound.width / 2; } else { throw new Error("Invalid orientation, orientation:['left', 'right', 'top', 'bottom', 'auto'] "); } ToolTip.$holder.addStyle({ top: dy + 'px', left: dx + 'px' }); }; ToolTip.$tooltip.$arrow.updateSize = ToolTip.updatePosition.bind(ToolTip); ToolTip.show = function (element, content, orientation) { if (typeof content == 'string') { content = Tooltip_({ tag: 'span', style: { 'white-space': 'nowrap' }, props: { innerHTML: content } }); } Tooltip_$('', content, function (elt) { if (elt.tagName == "IMG" && elt.src) { Dom["a" /* default */].waitImageLoaded(elt).then(ToolTip.updatePosition.bind(ToolTip));; } else if (elt.sync) { elt.sync.then(ToolTip.updatePosition.bind(ToolTip)); } }); var currentSession = Math.random() * 10000000000 >> 0; ToolTip.$root.addTo(document.body); Dom["a" /* default */].addToResizeSystem(ToolTip.$tooltip.$arrow); ToolTip.$element = element; ToolTip._session = currentSession; ToolTip.$content = content; ToolTip._orientation = orientation; ToolTip.$tooltip.clearChild().addChild(content); ToolTip.$root.removeStyle('visibility'); ToolTip.$tooltip.removeClass('top').removeClass('left').removeClass('right').removeClass('bottom'); ToolTip.$tooltip.addClass(orientation); ToolTip.updatePosition(); return currentSession; }; ToolTip.closeTooltip = function (session) { if (session === true || session === this._session) { ToolTip.$root.addStyle('visibility', 'hidden'); ToolTip.$tooltip.clearChild(); ToolTip.$holder.addStyle({ top: false, left: false }); } } ToolTip.showWhenClick = function (element, content, orientation) { var mSession = undefined; element.addEventListener('click', function () { if (mSession !== undefined) return; mSession = ToolTip.show(element, content, orientation); var finish = function (event) { if (!EventEmitter["a" /* default */].hitElement(content, event)) { Tooltip_$(document.body).off('click', finish); ToolTip.closeTooltip(mSession); mSession = undefined; } }; setTimeout(function () { Tooltip_$(document.body).on('click', finish); }, 100) }); }; /* harmony default export */ var Tooltip = (ToolTip); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/tabview.css var tabview = __webpack_require__(62); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TabBar.js var TabBar_ = ACore["a" /* default */]._; var TabBar_$ = ACore["a" /* default */].$; function TabBar() { var res = TabBar_('hscroller.absol-tabbar'); res.defineEvent(['active', 'close']); res._tabs = []; return res; }; TabBar.prototype.getAllTabButtons = function () { var buttons = []; TabBar_$('tabbutton', this, function (e) { buttons.push(e); }); return buttons; }; TabBar.eventHander = {}; TabBar.property = {}; TabBar.property.tabs = { set: function (value) { this.clearChild(); this._tabs = []; (value || []).forEach(this.addTab.bind(this)); }, get: function () { //each hold item data return this._tabs || []; } }; /*** * * @param {{text}} * @return {tabbar} */ TabBar.prototype.addTab = function (value) { var self = this; var props = {}; if (typeof value == "string") { props.name = value; } else { if (value.name) { props.name = value.name; } else { throw new Error('Tab must has name attribute'); } if (value.desc) props.desc = value.desc; } var tabButton = TabBar_({ tag: 'tabbutton', props: props, on: { active: function (event, sender) { var prevented = false; self.emit('active', { target: this, value: value, preventDefault: function () { prevented = true; } }, self); if (!prevented) { self.getAllTabButtons().forEach(function (e) { e.active = false; }); this.active = true; } }, close: function (event, sender) { var prevented = false; self.emit('close', { target: this, value: value, preventDefault: function () { prevented = true; } }, self); if (!prevented) { //todo:active other this.remove(); } } } }).addTo(this); if (value.id) tabButton.attr('id', 'tabbuton-' + value.id); this._tabs.push(tabButton); return tabButton; }; TabBar.prototype.removeTab = function (id) { this._tabs = this._tabs.filter(function (value) { return value == id; }); TabBar_$('#tabbuton-' + id, this).remove(); }; TabBar.prototype.activeTab = function (id) { var activedbtn = TabBar_$('.absol-tabbar-button-active', this); if (activedbtn && activedbtn.attr('id') != id) { activedbtn.active = false; } var mButton = TabBar_$('#tabbuton-' + id, this); if (mButton) { mButton.active = true; } }; ACore["a" /* default */].creator.tabbar = TabBar; /* harmony default export */ var js_TabBar = (TabBar); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TabButton.js var TabButton_ = ACore["a" /* default */]._; var TabButton_$ = ACore["a" /* default */].$; function TabButton() { var res = TabButton_({ tag: 'button', class: 'absol-tabbar-button', extendEvent: ['close', 'active'], id: randomIdent(20), child: [{ class: 'absol-tabbar-button-text', }, { tag:'span', class: ['absol-tabbar-button-close', 'mdi', 'mdi-close'], attr: { title: 'Close' }, on: { click: function (event) { event.tabButtonEventName = 'delete'; res.emit('close', event); } } }], on: { click: function (event) { if (event.tabButtonEventName) return; event.tabButtonEventName = 'active'; res.emit('active', event); } } }); res.$textView = TabButton_$('.absol-tabbar-button-text', res); return res; }; TabButton.property = {}; TabButton.property.active = { set: function (value) { this._active = value; if (value) this.addClass('absol-tabbar-button-active'); else this.removeClass('absol-tabbar-button-active'); }, get: function () { return this._active; } }; TabButton.property.name = { set: function (value) { this._name = value || ''; this.$textView.innerHTML = this._name; }, get: function () { return this._name; } }; TabButton.property.desc = { set:function(value){ this.attr('title', value); }, get:function(){ return this.attr('title'); } } ACore["a" /* default */].creator.tabbutton = TabButton; // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TabFrame.js function TabFrame() { return ACore["a" /* default */]._({ class: 'absol-tab-frame', extendEvent: ['attached', 'detached'] }); } TabFrame.prototype.preInit = function () { this.$parent = null; }; TabFrame.prototype.notifyAttached = function (parentElt) { this.$parent = parentElt; this.emit('attached', { target: this, parent: parentElt }, this); }; TabFrame.prototype.notifyDetach = function () { this.emit('attached', { target: this, parent: this.$parent }, this); this.$parent = undefined; }; TabFrame.prototype.selfRemove = function () { if (this.$parent) this.$parent.removeChild(this); }; TabFrame.prototype.getParent = function () { return this.$parent; }; TabFrame.prototype.init = function () { this.super.apply(this, arguments); }; TabFrame.property = {}; TabFrame.property.name = { set: function (value) { if (typeof name == "undefined") { this._name = undefined; } else { this._name = value + ''; } //todo: change name from parent if (this.$parent) { this.$parent.notifyUpdateName(this); } }, get: function () { return this._name; } } TabFrame.property.desc = { set: function (value) { if (typeof value == "undefined") { this._desc = undefined; } else { this._desc = value + ''; } //todo: change name from parent if (this.$parent) { this.$parent.notifyUpdateDesc(this); } }, get: function () { return this._desc; } } TabFrame.attribute = {}; TabFrame.attribute.name = { set: function (value) { console.log('.',value); this.name = value; }, get: function () { return this.name; }, remove: function () { this.name = undefined; } }; TabFrame.attribute.desc = { set: function (value) { this.desc = value; }, get: function () { return this.desc; }, remove: function () { this.desc = undefined; } }; ACore["a" /* default */].install('tabframe', TabFrame); /* harmony default export */ var js_TabFrame = (TabFrame); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TabView.js var TabView_ = ACore["a" /* default */]._; var TabView_$ = ACore["a" /* default */].$; function TabView() { var res = TabView_({ class: 'absol-tabview', extendEvent: ['activetab', 'removetab'], child: [ 'tabbar', ] }); res.$tabbar = TabView_$('tabbar', res); res.$tabbar.on({ close: TabView.eventHandler.closeTab.bind(res), active: TabView.eventHandler.activeTab.bind(res) }); res._frameHolders = []; res._history = []; return res; }; TabView.eventHandler = {}; TabView.eventHandler.closeTab = function (event) { event.preventDefault(); var id = event.value.id; this.removeTab(id, true); }; TabView.eventHandler.activeTab = function (event) { event.preventDefault(); var id = event.value.id; this.activeTab(id, true); }; TabView.prototype.activeTab = function (id, userActive) { var self = this; this._frameHolders.forEach(function (holder) { if (holder.id == id) { self._history.push(id); holder.containterElt.removeClass('absol-tabview-container-hidden'); var eventData = { id: id, userActive: !!userActive, target: self, tabFrame: holder.tabFrame, tabButton: holder.tabButton, holder: holder, __promise__: Promise.resolve(), waitFor: function (promise) { this.__promise__ = promise; } }; self.emit('activetab', eventData, self); eventData.__promise__.then(function () { //if ok self.$tabbar.activeTab(holder.id); }, function () { //if reject }); } else { holder.containterElt.addClass('absol-tabview-container-hidden'); } }); }; TabView.prototype.removeTab = function (id, userActive) { var self = this; this._frameHolders.forEach(function (holder) { if (holder.id == id) { var eventData = { id: id, userActive: !!userActive, target: self, tabFrame: holder.tabFrame, tabButton: holder.tabButton, holder: holder, __promise__: Promise.resolve(), waitFor: function (promise) { this.__promise__ = promise; } }; self.emit('removetab', eventData, self); eventData.__promise__.then(function () { //if ok this._frameHolders = this._frameHolders.filter(function (x) { return x.id != holder.id; }) holder.tabFrame.notifyDetach(); self.$tabbar.removeTab(holder.id); holder.containterElt.remove(); }, function () { //if reject }); } else { holder.containterElt.addClass('absol-tabview-container-hidden'); } }); }; TabView.prototype.notifyUpdateDesc = function (elt) { var holder = this.findHolder(elt); if (holder) { holder.tabButton.desc = elt.desc; } }; TabView.prototype.notifyUpdateName = function (elt) { var holder = this.findHolder(elt); if (holder) { holder.tabButton.name = elt.name; } }; TabView.prototype.findHolder = function (elt) { for (var i = 0; i < this._frameHolders.length; ++i) { var holder = this._frameHolders[i]; if (holder.tabFrame == elt) { return holder; } } }; TabView.prototype.addChild = function () { var self = this; Array.prototype.forEach.call(arguments, function (elt) { if (!elt.notifyAttached || !elt.notifyDetach) { throw new Error('element is not a tabframe'); } var containterElt = TabView_('.absol-tabview-container'); self.appendChild(containterElt);//origin function elt.selfRemove(); var id = elt.attr('id') || randomIdent(16); var desc = elt.attr('desc') || undefined; var name = elt.attr('name') || 'NoName'; var tabButton = self.$tabbar.addTab({ name: name, id: id, desc: desc }); containterElt.addChild(elt); elt.notifyAttached(self); self._frameHolders.push({ name: name, id: id, desc: desc, tabButton: tabButton, tabFrame: elt, containterElt: containterElt }); self.activeTab(id); }); }; TabView.prototype.activeLastTab = function () { // var dict = this._frameHolders.reduce(function (ac, holder) { // ac[holder.id] = true; // return ac; // }, {}); //todo }; TabView.prototype.getChildAt = function () { //todo }; TabView.prototype.getAll = function () { //todo }; ACore["a" /* default */].install('tabview', TabView); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/pageselector.css var pageselector = __webpack_require__(64); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/PageSelector.js var PageSelector_ = ACore["a" /* default */]._; var PageSelector_$ = ACore["a" /* default */].$; function PageSelector() { var res = PageSelector_({ class: ['absol-page-selector'], extendEvent: ['change'], child: [ { class: 'page-number-input', child: [{ tag: 'label', child: { text: "Page" } }, { tag:'input', attr:{ type:'text' } }] }, { tag: 'ul', class: 'page-number-buttons', child: [ ` <li class="page-first"> <a href="#" aria-controls="dtBasicExample" data-dt-idx="0" tabindex="0" class="page-link">First</a> </li>`, ` <li class="page-previous"> <a href="#" aria-controls="dtBasicExample" data-dt-idx="0" tabindex="0" class="page-link">Previous</a> </li>`, `<li class="page-next" > <a href="#" aria-controls="dtBasicExample" data-dt-idx="7" tabindex="0" class="page-link">Next</a> </li>`, ` <li class="page-last"> <a href="#" aria-controls="dtBasicExample" data-dt-idx="0" tabindex="0" class="page-link">Last</a> </li>`, ] } ] }); res.$pageInput = PageSelector_$('.page-number-input input', res); res.$pageInput.on('keyup', PageSelector.eventHandler.pressEnterKey.bind(res)); res.$prevBtn = PageSelector_$('li.page-previous', res); res.$nextBtn = PageSelector_$('li.page-next', res); res.$firstBtn = PageSelector_$('li.page-first', res); res.$lastBtn = PageSelector_$('li.page-last', res); res.$nextBtn.on('click', PageSelector.eventHandler.clickNext.bind(res)); res.$prevBtn.on('click', PageSelector.eventHandler.clickPrev.bind(res)); res.$firstBtn.on('click', PageSelector.eventHandler.clickFirst.bind(res)); res.$lastBtn.on('click', PageSelector.eventHandler.clickLast.bind(res)); res.$buttonContainer = PageSelector_$('.page-number-buttons', res); res._buttons = []; res._pageOffset = 1; res._selectedIndex = 1; res._pageCount = 1; res._pageRange = 1; res.$pageInput.value = res._selectedIndex; return res; }; PageSelector.eventHandler = {}; PageSelector.eventHandler.pressEnterKey = function(event){ if (event.keyCode != 13) return; var index = parseInt(this.$pageInput.value.trim(), 10); if ((index < 1) || (index > this._pageCount)) { this.$pageInput.value = this._selectedIndex; return; } this.selectPage(index, true); } PageSelector.eventHandler.clickLast = function (event) { this.selectPage(this._pageCount, true); }; PageSelector.eventHandler.clickFirst = function (event) { this.selectPage(1, true); }; PageSelector.eventHandler.clickNext = function (event) { if (this._selectedIndex == this._pageCount) return; this.selectPage(this._selectedIndex + 1, true); }; PageSelector.eventHandler.clickPrev = function (event) { if (this._selectedIndex == 1) return; this.selectPage(this._selectedIndex - 1, true); } PageSelector.eventHandler.clickIndex = function (index, event) { this.selectPage(index + this._pageOffset, true); }; PageSelector.prototype._createButton = function (index) { var button = PageSelector_({ tag: 'li', class: 'page-number', child: { tag: 'a', attr: { href: '#', 'data-index': index }, child: { text: '' + index } }, on: { click: PageSelector.eventHandler.clickIndex.bind(this, index) } }); this.$buttonContainer.addChildBefore(button, this.$nextBtn); return button; }; PageSelector.prototype.setPageRange = function (pageCount) { this._pageRange = pageCount; if (this._buttons.length > 0) throw new Error("Not implement change pageCount"); while (this._buttons.length < pageCount) { this._buttons.push(this._createButton(this._buttons.length)); } }; PageSelector.prototype.setStartPage = function (index) { this._buttons.forEach(function (e, i) { e.childNodes[0].innerHTML = i + index + ''; }); this._pageOffset = index; }; PageSelector.prototype.selectPage = function (index, userActive) { if (index == this._selectedIndex) this.setStartPage(index - parseInt(this._pageRange / 2)); if (index > this._selectedIndex){ if (index == (this._pageOffset + this._pageRange - 1)) this.setStartPage(index - parseInt(this._pageRange / 2)); } if (index < this._selectedIndex){ if (index == this._pageOffset) this.setStartPage(index - parseInt(this._pageRange / 2)); } if (index > (this._pageCount - parseInt(this._pageRange / 2))) this.setStartPage(this._pageCount - this._pageRange + 1); if (index <= (parseInt(this._pageRange / 2))) this.setStartPage(1); var pageOffset = this._pageOffset; this._buttons.forEach(function (e, i) { if (i + pageOffset == index) { e.addClass('active'); } else { e.removeClass('active'); } }); if (this._selectedIndex != index) { this._selectedIndex = index; this.$pageInput.value = index; this.emit('change', { target: this, selectedIndex: index, userActive: !!userActive }, this); } }; PageSelector.prototype.getSelectedPage = function () { return this._selectedIndex; } PageSelector.prototype.setPageCount = function (count) { this._pageCount = count; }; PageSelector.property = {}; PageSelector.prototype.init = function (props) { props = props || {}; props.pageOffset = props.pageOffset || 1; props.pageRange = props.pageRange || 5; props.pageCount = props.pageCount || 15; props.selectedIndex = typeof (props.selectedIndex) == "number" ? props.selectedIndex : props.pageOffset; if (props.pageCount < props.pageRange) props.pageRange = props.pageCount; this.setPageCount(props.pageCount); this.setPageRange(props.pageRange); this.setStartPage(props.pageOffset); this.selectPage(props.selectedIndex); }; ACore["a" /* default */].install('pageselector', PageSelector); /* harmony default export */ var js_PageSelector = (PageSelector); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/bscroller.css var bscroller = __webpack_require__(66); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/searchlist.css var searchlist = __webpack_require__(68); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/adapter/SearchListAdapter.js function SearchListAdapter() { this.searchList = null; } SearchListAdapter.prototype.onAttach = function (searchList) { this.searchList = searchList; }; SearchListAdapter.prototype.getItemText = function (item, index) { return item.text; }; SearchListAdapter.prototype.getItemValue = function (item, index) { return item.value; }; SearchListAdapter.prototype.getItemIcon = function (item, index) { return item.icon; }; SearchListAdapter.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent) { var list = []; var isFirst = false; var marginLeft = ""; for (var i in item) { marginLeft = "" if (isFirst) marginLeft = "10px" isFirst = true; if (i === "icon") { list.push({ tag: 'i', class: 'material-icons', style: { verticalAlign: "middle", marginLeft: marginLeft, }, props: { innerHTML: this.getItemIcon(item) } }) } else if (i === "text") { list.push({ tag: 'span', style: { verticalAlign: "middle", marginLeft: marginLeft, }, props: { innerHTML: this.getItemText(item) } }); } else if (i === "value") { } } if (reuseItem) { return reuseItem.clearChild().addChild( _({ tag: 'div', child: list }) ); } else { return _({ tag: 'div', child: list }) } }; SearchListAdapter.prototype.queryItems = function (self, query, mInput) { var query = query.toLowerCase(); return self.items.map(function (item) { var start = item.text.toLowerCase().indexOf(query); if (start >= 0) { var hightlightedText = item.text.substr(0, start) + '<strong style="color:red">' + item.text.substr(start, query.length) + '</strong>' + item.text.substr(start + query.length); return { item: item, hightlightedText: hightlightedText } } else return null; }).filter(function (it) { return it !== null; }) }; /* harmony default export */ var adapter_SearchListAdapter = (SearchListAdapter); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/SearchList.js var SearchList_ = ACore["a" /* default */]._; var SearchList_$ = ACore["a" /* default */].$; function SearchList() { var res = SearchList_({ class: 'absol-search-list', style: { // height:'300px', }, child: [ { class: 'absol-search-list-search-input-container', child: 'input[type="text"]' }, { tag: 'bscroller', class: 'absol-search-list-contents', } ] }); res._pool = []; res.eventHandler = OOP["a" /* default */].bindFunctions(res, SearchList.eventHandler); res.$dropdown = SearchList_$('.absol-search-list-contents', res).on('click', res.eventHandler.clickContent); res.$dropdown.addStyle('display', 'none'); res.$vscroller = SearchList_$('bscroller', res).on('click', res.eventHandler.vscrollerClick); res.$input = SearchList_$('.absol-search-list-search-input-container input[type="text"]', res) .on('keydown', res.eventHandler.keydown) .on('keyup', res.eventHandler.keyup); res._cache = {}; res.$poolItems = []; res._currentData = []; res._sessionIndex = 0; res._updatedSession = -1; return res; } SearchList.eventHandler = {}; SearchList.eventHandler.clickContent = function (event) { var item = this._findItem(event.target); if (item) { this._value = this.adapter.getItemValue(item.__data__.item); this.$input.value = item.__data__.item.text; this.updateSelectedItem(); this.$dropdown.addStyle('display', 'none'); } else { } }; SearchList.eventHandler.keydown = function (event) { var key = event.key; if (key == 'ArrowDown') { if (this._selectedIndex + 1 < this._currentData.length) { if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].removeClass('active'); } this._selectedIndex += 1; if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].addClass('active'); this.$vscroller.scrollInto(this.$poolItems[this._selectedIndex]); } } event.preventDefault(); } else if (key == 'ArrowUp') { if (this._selectedIndex - 1 >= 0) { if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].removeClass('active'); } this._selectedIndex -= 1; if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].addClass('active'); this.$vscroller.scrollInto(this.$poolItems[this._selectedIndex]); } } event.preventDefault(); } else if (key == 'Enter') { var text; if (this._currentData[this._selectedIndex] === undefined) { text = this.$input.value; } else { text = this.getItemText(this._currentData[this._selectedIndex]); this.$input.value = text; } this._lastQuery = text; this.$dropdown.addStyle('display', 'none'); this._lastValue = text; this.emit('change', { target: this, value: text }, this); } }; SearchList.eventHandler.keydown = function (event) { var key = event.key; if (key == 'ArrowDown') { if (this._selectedIndex + 1 < this._currentData.length) { if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].removeClass('active'); } this._selectedIndex += 1; if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].addClass('active'); this.$vscroller.scrollInto(this.$poolItems[this._selectedIndex]); } } event.preventDefault(); } else if (key == 'ArrowUp') { if (this._selectedIndex - 1 >= 0) { if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].removeClass('active'); } this._selectedIndex -= 1; if (this.$poolItems[this._selectedIndex]) { this.$poolItems[this._selectedIndex].addClass('active'); this.$vscroller.scrollInto(this.$poolItems[this._selectedIndex]); } } event.preventDefault(); } else if (key == 'Enter') { var text; if (this._currentData[this._selectedIndex] === undefined) { text = this.$input.value; } else { text = this.getItemText(this._currentData[this._selectedIndex]); this.$input.value = text; } this._lastQuery = text; this.$dropdown.addStyle('display', 'none'); this._lastValue = text; this.emit('change', { target: this, value: text }, this); } }; SearchList.prototype.clearCache = function (old) { if (typeof old != "number") old = 30; for (var key in this._cache) { var cacheHolder = this._cache[key]; if (this._sessionIndex - cacheHolder.sessionIndex > old) { delete this._cache[key]; } } } SearchList.eventHandler.keyup = function (event) { if (this._keyTimeout) { clearTimeout(this._keyTimeout); this._keyTimeout = 0; } var cTimeout = setTimeout(function () { clearTimeout(cTimeout); this.find(); }.bind(this), 300); if (this._cacheTimeout) { clearTimeout(this._cacheTimeout); this._cacheTimeout = 0; } var cacheTimeout = setTimeout(function () { clearTimeout(cacheTimeout); this.clearCache(); }.bind(this), 300); this._cacheTimeout = cacheTimeout; this._keyTimeout = cTimeout; }; SearchList.prototype.find = function () { var query = this.$input.value; if (query == this._lastQuery) return; this._lastQuery = query; var currentSession = ++this._sessionIndex; if (!query) { this.pushData([], currentSession, query) return; } var result; if (this.disableCache) { var onReciveData = function (data) { cacheHolder.data = data; this.pushData(data, currentSession, query);//sessionIndex may be change }.bind(this); result = this.adapter.queryItems(this, query); if (typeof result.then == 'function') result.then(onReciveData); else onReciveData(result) } else { if (this._cache[query]) { this._cache[query].sessionIndex = currentSession; if (!this._cache[query].pending) { var data = this._cache[query].data; this.pushData(data, currentSession); } } else { var cacheHolder = { pending: true, sessionIndex: currentSession }; var onReciveData = function (data) { cacheHolder.data = data; cacheHolder.pending = false; this.pushData(data, cacheHolder.sessionIndex, query);//sessionIndex may be change }.bind(this); result = this.adapter.queryItems(this, query); if (typeof result.then == 'function') result.then(onReciveData); else onReciveData(result) this._cache[query] = cacheHolder; } } }; SearchList.prototype.pushData = function (data, sessionIndex, query) { if (sessionIndex > this._updatedSession) { this._updatedSession = sessionIndex; this.$vscroller.clearChild(); this._currentData = data; if (data && data.length > 0) { this.$dropdown.removeStyle('display'); } else { this.$dropdown.addStyle('display', 'none'); } var maxHeight = this.getComputedStyleValue('max-height'); if (maxHeight == 'none' || !maxHeight) { maxHeight = 10000; } else { maxHeight = parseFloat(maxHeight.replace('px', '')); } var outBound = Dom["a" /* default */].traceOutBoundingClientRect(this); var bound = this.$input.getBoundingClientRect(); var aTop = bound.top - outBound.top; var aBotom = outBound.bottom - bound.bottom; this.$dropdown.removeClass('top'); if (aTop > aBotom) { maxHeight = Math.min(maxHeight, aTop - 10); } else { maxHeight = Math.min(maxHeight, aBotom - 10); } this.$vscroller.addStyle('max-height', maxHeight + 'px'); this._selectedIndex = -1; data.reduce(function (sync, item, i, arr) { return sync.then(function () { if (this._updatedSession != sessionIndex) return; return new Promise(function (rs) { if (this._updatedSession != sessionIndex) return; var reuseItem = this.$poolItems.length > i ? this.$poolItems[i] : undefined; if (reuseItem) { reuseItem.removeClass('active'); } var newView = this.adapter.getItemView(item.item, i, SearchList_, SearchList_$, query, reuseItem, this); newView.addClass('absol-search-list-item'); newView.__data__ = item; newView.__index__ = i; if (i == this._selectedIndex) newView.addClass('active'); if (this.$poolItems.length <= i) { this.$poolItems.push(newView); } else { this.$poolItems[i] = newView; } this.$vscroller.addChild(newView); if (i == 0) { var estimateHeight = newView.getBoundingClientRect().height * arr.length; if (aTop > aBotom && estimateHeight > aBotom) { this.$dropdown.addClass('top'); } } if (i >= 50 && i % 50 == 0) setTimeout(rs, 0); else rs(); }.bind(this)); }.bind(this)) }.bind(this), Promise.resolve()); } }; SearchList.adapter = { DEFAULT: adapter_SearchListAdapter } SearchList.property = {}; SearchList.property.adapter = { set: function (value) { if (typeof value == 'string' || typeof value == 'number') { if (value in SearchList.adapter) { this._adapter = new SearchList.adapter[value](); } else { throw new Error("Unknown build-in adapter name") } } else if (typeof value == 'object') { if (value instanceof Array) { if (value[0] == 'SearchStringArray') { this._adapter = new SearchStringArrayAdapter(value[1], value[2]); } else if (value[0] == 'SearchObjectArray') { this._adapter = new SearchObjectArrayAdapter(value[1], value[2]); } else { throw new Error("Unknown adapter type name"); } } else { this._adapter = Object.assign(new adapter_SearchListAdapter(), value) } if (this.adapter && this.adapter.onAttached) { this.adapter.onAttached(this); } } else { if (value) { if ((value.queryItems && value.getItemView && value.getItemText) || (value.extend && (value.extend in SearchList.adapter))) { if (value.extend && (value.extend in SearchList.adapter)) { this.adapter = Object.assign(new SearchList.adapter[value.extend](), value) } else { this._adapter = value; } } else { throw new Error("Invalid adapter"); } } else { this._adapter = new SearchList.adapter.DEFAULT(); } } }, get: function () { return this._adapter; } }; SearchList.property.items = { set: function (value) { this._items = value; if (this._verifyParams()) { this.updateItems(); } }, get: function () { return this._items; } }; SearchList.prototype._findItem = function (elt) { while (elt) { if (elt.containsClass && elt.containsClass('absol-search-list-item')) { return elt; } else { elt = elt.parentNode; } if (elt == this) return; } return undefined; }; SearchList.prototype.updateItems = function () { this.removeAllToPool(); var self = this; var reusedItem; var query = ''; this.itemEltsDict = {}; this.itemEltArr = []; this.items.forEach(function (item, index) { if (!reusedItem) reusedItem = self.getOneFromPool(); var itemView = self.adapter.getItemView(item, index, SearchList_, SearchList_$, query, reusedItem, self.$dropdown); var valueKey = JSON.stringify(self.adapter.getItemValue(item)) self.itemEltsDict[valueKey] = itemView; self.itemEltArr.push(itemView); SearchList_$(itemView).addClass('absol-search-list-item'); itemView.__data__ = item;// item wil hold the data of itself itemView.__index__ = index;// item wil hold the data of itself self.$dropdown.addChild(itemView); if (itemView == reusedItem) reusedItem = undefined; }); }; SearchList.prototype.updateSelectedItem = function () { var key = JSON.stringify(this._value); if (this.activeItemElt) { this.activeItemElt.removeClass('active'); } this.activeItemElt = this.itemEltsDict[key]; if (this.activeItemElt) { this.activeItemElt.addClass('active'); } }; SearchList.prototype.getPrevItem = function () { var index = this.activeItemElt ? this.__index__ : 0; }; SearchList.prototype.removeAllToPool = function () { while (this.$dropdown.childNodes.length > 0) { this._pool.push(this.$dropdown.childNodes[0]); this.$dropdown.childNodes[0].remove(); } }; SearchList.prototype.getOneFromPool = function () { if (this._pool.length > 0) { return this._pool.pop(); } else return undefined; }; SearchList.prototype.clearPool = function () { this._pool = []; }; SearchList.prototype._verifyParams = function () { if (this.items && this.adapter) return true; return false; }; SearchList.prototype.init = function (props) { this.ready = false; var myProps = Object.assign({}, props || {}); if ('adapter' in myProps) { //todo: this.adapter = myProps.adapter; delete myProps.adapter; } else { this.adapter = 'DEFAULT'; } if ('items' in myProps) { this.items = myProps.items; delete myProps.items } else { } Object.assign(this, myProps); if (this.adapter) { this.ready = true; //this.adapter.onAttach(this); } }; ACore["a" /* default */].install('SearchList'.toLowerCase(), SearchList); /* harmony default export */ var js_SearchList = (SearchList); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/statictabbar.css var statictabbar = __webpack_require__(70); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/StaticTabbar.js var StaticTabbar_$ = ACore["a" /* default */].$; var StaticTabbar_ = ACore["a" /* default */]._; function StaticTabbar() { var res = StaticTabbar_({ class: 'absol-static-tabbar', extendEvent: 'change', child: [ { class: 'absol-static-tabbar-active-box', child: '.absol-static-tabbar-hline' }, ] }); res.$activeBox = StaticTabbar_$('.absol-static-tabbar-active-box', res) res.$hline = StaticTabbar_$('.absol-static-tabbar-hline', res); res.$buttons = []; res._btDict = {}; res._activedButton = undefined; res.sync = new Promise(function (resolve) { StaticTabbar_('attachhook').on('error', function () { this.remove(); resolve(); }) }); return res; } StaticTabbar.prototype.fireChange = function (data) { this.emit('change', { target: this, data, value: this.value }, self); } StaticTabbar.property = {}; StaticTabbar.property.items = { set: function (value) { this.$buttons.forEach(function (e) { e.remove() }); this._items = value; var self = this; this.$buttons = this.items.map(function (tab) { var ident = (tab.value || randomIdent()); var button = StaticTabbar_({ tag: 'button', class: 'absol-static-tabbar-button', id: 'tab-' + ident, child: { tag: 'span', child: { text: tab.text } }, on: { click: function (event) { if (self.value != tab.value) { self.value = ident; self.fireChange(tab); } } } }).addTo(self); self._btDict[ident] = button; return button; }); if (this.value !== undefined) { this.sync.then(this.activeTab.bind(this, this.value)); } }, get: function () { return this._items || []; } }; StaticTabbar.property.value = { set: function (value) { this._value = value; if (this.$buttons.length > 0) { this.sync.then(this.activeTab.bind(this, value)); } }, get: function () { return this._value; } }; StaticTabbar.prototype.activeTab = function (ident) { if (this._activedButton) this._activedButton.removeClass('active'); var button = this._btDict[ident]; this._activedButton = button; if (button) { button.addClass('active'); var bound = this.getBoundingClientRect(); var buttonBound = button.getBoundingClientRect(); var dx = buttonBound.left - bound.left; var fontSize = this.getFontSize(); this.$activeBox.addStyle({ left: dx / fontSize + 'em', width: buttonBound.width / fontSize + 'em' }); } else { this.$activeBox.addStyle({ left: '0', width: '0' }); } }; ACore["a" /* default */].install('statictabbar', StaticTabbar); /* harmony default export */ var js_StaticTabbar = (StaticTabbar); // CONCATENATED MODULE: ./node_modules/absol/src/Network/XHR.js var XHR = {}; XHR.makeHttpObject = function () { try { return new XMLHttpRequest(); } catch (error) { } try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (error) { } try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (error) { } throw new Error("Could not create HTTP request object."); }; /*** * * @param {String} url * @param {String} body * @param {String} responseType * @param {Function} success * @param {Function} failure * @returns {Promise} */ XHR.getRequest = function (url, props, success, failure) { return new Promise(function (rs, rj) { var request = XHR.makeHttpObject(); request.open("GET", url, true); if (typeof props == 'string') request.responseType = props || ''; else if (props && (typeof props == 'object')) { Object.assign(request, props); } request.send(null); request.onreadystatechange = function () { if (request.readyState == 4) { if (request.status == 200) { var response = request.response; success && success(response); rs(response); } else { failure && failure(request.status, request.statusText); rj(request.status); } } }; request.onerror = function () { rj(new Error("Network Error!")); }; }); }; XHR.postRepquest = function (url, payload, props, headers, success, failure) { return new Promise(function (rs, rj) { var method = "POST"; var shouldBeAsync = true; var request = new XMLHttpRequest(); request.onreadystatechange = function () { if (request.readyState == 4) { if (request.status == 200) { success && success(request.response); rs(request.response); } else if (failure) { failure && failure(request.status, request.statusText); rj({ status: request.status, statusText: request.statusText }); } } }; request.onerror = function () { var error = new Error("Network Error!"); if (failure) failure(error); rj(error); }; request.open(method, url, shouldBeAsync); if (typeof props == 'string') request.responseType = props || ''; else if (props && (typeof props == 'object')) { Object.assign(request, props); } headers = headers || {}; headers["Content-Type"] = headers["Content-Type"] || "application/json;charset=UTF-8"; Object.keys(headers).forEach(function (key) { request.setRequestHeader(key, headers[key]); }); request.send(payload); }); }; /* harmony default export */ var Network_XHR = (XHR); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/RemoteSvg.js var RemoteSvg_ = ACore["a" /* default */]._; var RemoteSvg_$ = ACore["a" /* default */].$; function RemoteSvg() { return RemoteSvg_('svg').defineEvent('load'); } RemoteSvg.property = { src: { set: function (value) { this._src = value; var self = this; RemoteSvg.loadIcon(value).then(function (data) { self.emit('load', { target: self, src: value, data: data }, self); self.attr(data.attr); self.init(data.props); }); }, get: function () { return this._name; } } } RemoteSvg.attribute = { src: { set: function (value) { }, get: function () { }, remove: function () { } } } RemoteSvg.__cache__ = {}; RemoteSvg.__div_parser__ = document.createElement('div'); RemoteSvg.loadIcon = function (path) { if (RemoteSvg.__cache__[path]) { return RemoteSvg.__cache__[path] } else { RemoteSvg.__cache__[path] = Network_XHR.getRequest(path, 'text').then(function (result) { RemoteSvg.__div_parser__.innerHTML = result; var svgElt = RemoteSvg_$('svg', RemoteSvg.__div_parser__); var res = { attr: {}, props: {} }; if (svgElt) { Array.prototype.forEach.call(svgElt.attributes, function (attribute) { res.attr[attribute.name] = attribute.value; }); res.props.innerHTML = svgElt.innerHTML; } return res; }, function () { return {}; }); return RemoteSvg.__cache__[path] ; } }; ACore["a" /* default */].install('remotesvg', RemoteSvg); /* harmony default export */ var js_RemoteSvg = (RemoteSvg); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/exptree.css var exptree = __webpack_require__(72); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/utils.js function insertTextAtCursor(text) { var sel, range; if (window.getSelection) { sel = window.getSelection(); if (sel.getRangeAt && sel.rangeCount) { range = sel.getRangeAt(0); range.deleteContents(); range.insertNode(document.createTextNode(text)); } } else if (document.selection && document.selection.createRange) { document.selection.createRange().text = text; } } function contenteditableTextOnly(element, processText) { if (element.__contenteditableTextOnly__) return; element.__contenteditableTextOnly__ = true; element.addEventListener("paste", function (e) { e.preventDefault(); if (e.clipboardData && e.clipboardData.getData) { var text = e.clipboardData.getData("text/plain"); if (processText) text = processText(text) document.execCommand("insertHTML", false, text); } else if (window.clipboardData && window.clipboardData.getData) { var text = window.clipboardData.getData("Text"); if (processText) text = processText(text) insertTextAtCursor(text); } }); } // CONCATENATED MODULE: ./node_modules/absol-acomp/js/ExpTree.js var ExpTree_ = ACore["a" /* default */]._; var ExpTree_$ = ACore["a" /* default */].$; ACore["a" /* default */].install('toggler-ico', function () { var res = ExpTree_( '<svg class="toggler-ico" width="14" height="14" version="1.1" viewBox="0 0 3.7042 3.7042" xmlns="http://www.w3.org/2000/svg" >' + ' <g transform="translate(0 -293.3)" class="toggle-close">' + ' <path d="m0.52917 293.82v2.6458l2.6458-1.3229z" />' + ' </g>' + ' <g transform="translate(0 -293.3)" class="toggle-open">' + ' <path d="m3.175 294.09-2.6458 2.1167h2.6458z"/>' + ' </g>' + '</svg>' ); return res; }); ACore["a" /* default */].install('remove-ico', function () { return ExpTree_('<svg class="remove-ico" width="24" height="24" viewBox="0 0 24 24">\ <path class="close" d="M3,16.74L7.76,12L3,7.26L7.26,3L12,7.76L16.74,3L21,7.26L16.24,12L21,16.74L16.74,21L12,16.24L7.26,21L3,16.74" />\ <circle class="modified" cx="12" cy="12" r="10" />\ </svg>'); }); function ExpNode() { var res = ExpTree_({ tag: 'button', extendEvent: ['pressremove', 'press'], class: 'absol-exp-node', child: [ '.absol-exp-node-level', 'remove-ico', 'toggler-ico', 'img.absol-exp-node-ext-icon', 'div.absol-exp-node-ext-icon', 'span.absol-exp-node-name', 'span.absol-exp-node-desc' ] }); res.$level = ExpTree_$('.absol-exp-node-level', res); res.$removeIcon = ExpTree_$('remove-ico', res) .on('click', function (event) { this.emit('pressremove', { target: res, type: 'pressremove' }, this); }); res.on('click', function (event) { if (!EventEmitter["a" /* default */].hitElement(res.$removeIcon, event)) res.emit('press', { target: res, type: 'press' }, this); }) res.$iconCtn = ExpTree_$('div.absol-exp-node-ext-icon', res); res.$extIcon = ExpTree_$('img.absol-exp-node-ext-icon', res); res.$name = ExpTree_$('span.absol-exp-node-name', res); res.$desc = ExpTree_$('span.absol-exp-node-desc', res); contenteditableTextOnly(res.$name, function (text) { return text.replace(/[\\\/\|\?\:\<\>\*\r\n]/, '').trim(); }); OOP["a" /* default */].drillProperty(res, res.$extIcon, 'extSrc', 'src'); res._level = 0; res.__isExpNode__ = true; return res; } ExpNode.property = {}; ExpNode.property.icon = { set: function (value) { if (this.$iconP) { this.$iconP.remove(); this.$iconP = undefined; } if (value && value != null) { var newE; if (!Dom["a" /* default */].isDomNode(value)) { newE = ExpTree_(value); } this.$iconCtn.addChild(newE); this._icon = value; } else { this._icon = undefined; } }, get: function () { return this._icon; } }; ExpNode.property.level = { set: function (value) { value = value || 0; if (value != this.level) { this._level = value || 0; this.$level.innerHTML = ' '.repeat(this._level * 4); } }, get: function () { return this._level || 0; } }; ExpNode.property.name = { set: function (value) { this._name = value + ''; this.$name.clearChild(); if (this.name && this.name.length > 0) this.$name.addChild(ExpTree_({ text: this._name })) }, get: function () { return this._name || ''; } }; ExpNode.property.desc = { set: function (value) { this._desc = value + ''; this.$desc.clearChild(); this.$desc.addChild(ExpTree_({ text: this._desc })) }, get: function () { return this._desc || ''; } }; ExpNode.property.status = { set: function (value) { this.removeClass('status-open') .removeClass('status-close') .removeClass('status-modified') .removeClass('status-removable'); if (!value || value == 'none') { //todo } else if (value == 'close') { this.addClass('status-close') } else if (value == 'open') { this.addClass('status-open'); } else if (value == 'removable') { this.addClass('status-removable'); } else if (value == 'modified') { this.addClass('status-modified'); } else { throw new Error('Invalid status ' + value) } this._status = value; }, get: function () { return this._status; } } ExpNode.property.active = { set: function (value) { if (value) this.addClass('active'); else this.removeClass('active'); }, get: function () { return this.containsClass('active'); } } ExpNode.prototype.rename = function (resolveCallback, rejectCallback) { var self = this; var span = this.$name; var lastName = span.innerHTML; span.attr('contenteditable', 'true'); span.focus(); document.execCommand('selectAll', false, null); function keydowEventHandle(event) { var key = event.key; if (key == 'Enter') { event.preventDefault(); span.blur(); span.attr('contenteditable', undefined); } } function blurEventHandle(event) { finish(); var curentName = span.innerHTML.replace(/[\\\/\|\?\:\<\>\*\r\n]/, '').trim(); if (curentName == lastName) { rejectCallback && rejectCallback(); } else { if (curentName.length == 0) { span.innerHTML = lastName; rejectCallback && rejectCallback(); } else { var res = resolveCallback && resolveCallback(curentName); if (res === false) { span.innerHTML = lastName; } else if (res && res.then) { res.then(function (result) { if (result === false) { span.innerHTML = lastName; //faile } else { //success } }, function () { //reject value span.innerHTML = lastName; }) } else { //success } } } } function finish() { span.off('keydown', keydowEventHandle); span.off('blur', blurEventHandle); ExpTree_$(document.body).once('click', function () { setTimeout(function () { span.attr('contenteditable', undefined); }, 2); }); } span.on('keydown', keydowEventHandle); span.on('blur', blurEventHandle); } function ExpTree() { var res = ExpTree_({ class: 'absol-exp-tree', extendEvent: 'press', child: [ 'expnode', '.absol-exp-items' ] }); res.$node = ExpTree_$('expnode', res) .on('press', function (event) { res.emit('press', { target: res, node: this, type: 'press' }, res) }); // console.log(res.$node); res.$itemsContainer = ExpTree_$('.absol-exp-items', res); OOP["a" /* default */].drillProperty(res, res.$node, ['desc', 'name', 'title', 'extSrc', 'active', 'icon']); res.__isExpTree__ = true; res._level = 0; return res; } ExpTree.property = {}; ExpTree.property.level = { set: function (value) { value = value || 0; if (value != this.level) { this.$node.level = value; Array.prototype.forEach.call(this.$itemsContainer.childNodes, function (e) { e.level = value + 1; }) } }, get: function () { return this.$node.level; } }; ExpTree.property.status = { set: function (value) { this.$node.status = value; if (value != 'open') { this.addClass('hide-children'); } else { this.removeClass('hide-children'); } }, get: function () { return this.$node.status; } }; ['findChildBefore', 'findChildAfter', 'removeChild', 'clearChild'] .forEach(function (key) { ExpTree.prototype[key] = function () { this.$itemsContainer[key].apply(this.$itemsContainer, arguments); } }); ExpTree.prototype.addChild = function (child) { if (!child.__isExpTree__) throw new Error('Child node must be a ExpTree'); child.level = this.level + 1; this.$itemsContainer.addChild(child); }; ExpTree.prototype.addChildBefore = function (child, at) { child.level = this.level + 1; this.$itemsContainer.addChildBefore(child, at); }; ExpTree.prototype.addChildAfter = function (child, at) { child.level = this.level + 1; this.$itemsContainer.addChildAfter(child, at); }; ExpTree.prototype.getParent = function () { var current = this.parentNode; while (current) { if (current.__isExpTree__) break; current = current.parentNode; } return current; }; ExpTree.prototype.getNode = function () { return this.$node; }; ExpTree.prototype.getChildren = function () { return Array.apply(null, this.$itemsContainer.childNodes); }; ExpTree.prototype.getPath = function () { var path = []; var current = this; while (current) { path.push(current.name); current = current.getParent(); } return path.reverse(); }; ExpTree.prototype.accessByPath = function (path) { if (path.length == 0) return this; var childs = this.getChildren(); var res; for (var i = 0; i < childs.length; ++i) { if (childs[i].name == path[0]) { res = childs[i].accessByPath(path.slice(1)); break; } } return res; }; ACore["a" /* default */].install('expnode', ExpNode); ACore["a" /* default */].install('exptree', ExpTree); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/tablevscroller.css var tablevscroller = __webpack_require__(74); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TableVScroller.js var TableVScroller_ = ACore["a" /* default */]._; var TableVScroller_$ = ACore["a" /* default */].$; function TableVScroller() { var res = TableVScroller_( { class: 'absol-table-vscroller', child: [ 'bscroller.absol-table-vscroller-viewport', 'table.absol-table-vscroller-head', '.absol-table-vscroller-head-line', ] } ); res.$attachHook = TableVScroller_('attachhook').addTo(res); res.sync = new Promise(function (rs) { res.$attachHook.on('error', rs) }); res.$viewport = TableVScroller_$('bscroller.absol-table-vscroller-viewport', res); res.$attachHook.on('error', function () { Dom["a" /* default */].addToResizeSystem(res.$attachHook); }); res.$topTable = TableVScroller_$('.absol-table-vscroller-head', res); res.$headLine = TableVScroller_$('.absol-table-vscroller-head-line', res); return res; } TableVScroller.prototype.clearChild = function () { this.$viewport.clearChild(); this.$topTable.clearChild(); }; TableVScroller.prototype.addChild = function (elt) { if (this.$viewport.childNodes.length == 0) { if (elt.tagName && elt.tagName.toLowerCase() == 'table') { this.$viewport.addChild(elt); this.$table = TableVScroller_$(elt); this.$thead = TableVScroller_$('thead', elt); this.$tr = TableVScroller_$('tr', this.$thead); this.$topThead = this.$thead.cloneNode(true); this.$topTr = TableVScroller_$('tr', this.$topThead); this.$topTable.addChild(this.$topThead).addStyle('display', 'none'); } else { throw new Error('Element must be a table!'); } } else { throw new Error("Only 1 table accepted!"); } }; TableVScroller.prototype._trackBackgroundColor = function (element) { var current = this.$thead; var res; while (current && !res && res != 'rgba(0, 0, 0, 0)') { res = window.getComputedStyle(element).getPropertyValue('background-color'); current = current.parentNode; } if (res == 'rgba(0, 0, 0, 0)') return 'white'; return res; } TableVScroller.prototype.updateStyle = function () { if (!this.$thead) return; var clazz = this.$table.attr('class'); if (clazz) { clazz = clazz.trim().split(/\s+/); for (var i = 0; i < clazz.length; ++i) { this.$topTable.addClass(clazz[i]); } } var bgColor = this._trackBackgroundColor(this.$thead); this.$topTable.addStyle('background-color', bgColor); }; TableVScroller.prototype.updateSize = function () { var theadBound = this.$thead.getBoundingClientRect(); var tableBound = this.$table.getBoundingClientRect(); this.$topTable.addStyle({ width: tableBound.width + 'px', height: theadBound.height + 'px' }); this.$headLine.addStyle({ top: theadBound.height + 'px', maxWidth: tableBound.width + 'px' }); if (this.$viewport.clientHeight < this.$viewport.scrollHeight ){ this.addClass('scroll-v'); } else{ this.removeClass('scroll-v'); } var realNodes = this.$tr.childNodes; var topNodes = this.$topTr.childNodes; for (var i = 0; i < realNodes.length; ++i) { if (!realNodes[i].tagName) continue; var wstyle = window.getComputedStyle(TableVScroller_$(realNodes[i])).getPropertyValue('width'); TableVScroller_$(topNodes[i]).attr('style', realNodes[i].attr('style')).addStyle('width', wstyle); } this.$topTable.removeStyle('display'); } TableVScroller.prototype.update = function () { if (!this.$thead) return; this.updateStyle(); this.updateSize(); }; TableVScroller.prototype.init = function (props) { this.super(props); this.sync.then(this.update.bind(this)); this.$attachHook.updateSize = this.update.bind(this); }; ACore["a" /* default */].install('tablevscroller', TableVScroller); /* harmony default export */ var js_TableVScroller = (TableVScroller); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/tablescroller.css var tablescroller = __webpack_require__(76); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/TableScroller.js var TableScroller_$ = ACore["a" /* default */].$; var TableScroller_ = ACore["a" /* default */]._; function TableScroller() { var res = TableScroller_({ class: 'absol-table-scroller', child: [ 'bscroller.absol-table-scroller-viewport', '.absol-table-scroller-fixed-viewport',//place holder { class: 'absol-table-scroller-header-hscroller', child: '.absol-table-scroller-header-hscroller-viewport' }, { class: 'absol-table-scroller-left-vscroller', child: '.absol-table-scroller-left-vscroller-viewport' }, '.absol-table-scroller-head-line', '.absol-table-scroller-left-line' ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, TableScroller.eventHandler); res.$content = undefined; res.$fixedViewport = TableScroller_$('.absol-table-scroller-fixed-viewport', res); res.$leftScroller = TableScroller_$('.absol-table-scroller-left-vscroller', res); res.$leftViewport = TableScroller_$('.absol-table-scroller-left-vscroller-viewport', res) .on('scroll', res.eventHandler.scrollLeftScrollerViewport);; res.$headScroller = TableScroller_$('.absol-table-scroller-header-hscroller', res); res.$headScrollerViewport = TableScroller_$('.absol-table-scroller-header-hscroller-viewport', res) .on('scroll', res.eventHandler.scrollHeadScrollerViewport); res.$attachHook = TableScroller_('attachhook').addTo(res); res.$attachHook.on('error', function () { Dom["a" /* default */].addToResizeSystem(res.$attachHook); res.$attachHook.updateSize = res._updateContentSize.bind(res); }); res.sync = new Promise(function (rs) { res.$attachHook.on('error', rs) }); res.$viewport = TableScroller_$('bscroller.absol-table-scroller-viewport', res) .on('scroll', res.eventHandler.scrollViewport); res.$leftLine = TableScroller_$('.absol-table-scroller-left-line', res); res.$headLine = TableScroller_$('.absol-table-scroller-head-line', res); return res; } TableScroller.eventHandler = {}; TableScroller.eventHandler.scrollViewport = function (event) { if (!this.__scrollingElement__ || this.__scrollingElement__ == this.$viewport) { this.__scrollingElement__ = this.$viewport; this.$headScrollerViewport.scrollLeft = this.$viewport.scrollLeft; this.$leftViewport.scrollTop = this.$viewport.scrollTop; if (this.__scrollTimer__ > 0) { clearTimeout(this.__scrollTimer__); } this.__scrollTimer__ = setTimeout(function () { this.__scrollingElement__ = undefined; this.__scrollTimer__ = -1; }.bind(this), 300); } }; TableScroller.eventHandler.scrollHeadScrollerViewport = function (event) { if (!this.__scrollingElement__ || this.__scrollingElement__ == this.$headScrollerViewport) { this.__scrollingElement__ = this.$headScrollerViewport; this.$viewport.scrollLeft = this.$headScrollerViewport.scrollLeft; if (this.__scrollTimer__ > 0) { clearTimeout(this.__scrollTimer__); } this.__scrollTimer__ = setTimeout(function () { this.__scrollingElement__ = undefined; this.__scrollTimer__ = -1; }.bind(this), 100); } }; TableScroller.eventHandler.scrollLeftScrollerViewport = function () { if (!this.__scrollingElement__ || this.__scrollingElement__ == this.$leftViewport) { this.__scrollingElement__ = this.$leftViewport; this.$viewport.scrollTop = this.$leftViewport.scrollTop; if (this.__scrollTimer__ > 0) { clearTimeout(this.__scrollTimer__); } this.__scrollTimer__ = setTimeout(function () { this.__scrollingElement__ = undefined; this.__scrollTimer__ = -1; }.bind(this), 100); } } TableScroller.prototype.clearChild = function () { this.$viewport.clearChild(); this.$topTable.clearChild(); this.$content = null; }; TableScroller.prototype.addChild = function (elt) { if (this.$viewport.childNodes.length == 0) { if (elt.tagName && elt.tagName.toLowerCase() == 'table') { this.$viewport.addChild(elt); this.$content = elt; this._updateContent(); this.sync.then(this._updateContentSize.bind(this)).then(function () { setTimeout(this._updateContentSize.bind(this), 30) }.bind(this)); } else { throw new Error('Element must be a table!'); } } else { throw new Error("Only 1 table accepted!"); } }; TableScroller.prototype._updateFixedTable = function () { var fixedCol = this.fixedCol; this.$fixedViewport.clearChild(); this.$fixedTable = TableScroller_$(this.$content.cloneNode(false)).addClass('absol-table-scroller-fixed-table').addTo(this.$fixedViewport); this.$fixedTableThead = TableScroller_$(this.$contentThead.cloneNode(false)).addTo(this.$fixedTable); this.$fixedTableThead.clearChild(); this._fixedTableThsVisible = []; var self = this; this._fixedTableTr = Array.prototype.filter.call(this.$contentThead.childNodes, function (elt) { return elt.tagName == "TR"; }).map(function (tr) { var cloneTr = TableScroller_$(tr.cloneNode(false)); cloneTr.__originElement__ = tr; self.$fixedTableThead.appendChild(cloneTr); return cloneTr; }); this._fixedTableThs = this._fixedTableTr.map(function (tr) { return Array.prototype.filter.call(tr.__originElement__.childNodes, function (elt1) { return elt1.tagName == "TH"; }).reduce(function (ac, th) { var colspan = th.getAttribute('colspan'); if (colspan) { colspan = parseInt(colspan); } else { colspan = 1; } ac.colspanSum += colspan; var cloneTh = TableScroller_$(th.cloneNode(true)); tr.appendChild(cloneTh); cloneTh.__originElement__ = th; ac.result.push(cloneTh); if (ac.colspanSum <= fixedCol) { self._fixedTableThsVisible.push(th); } return ac; }, { result: [], colspanSum: 0 }).result; }); }; TableScroller.prototype._updateHeaderScroller = function () { var self = this; this.$headScrollerViewport.clearChild(); this.$headScrollerTable = TableScroller_$(this.$content.cloneNode(false)) .addTo(this.$headScrollerViewport); this.$headScrollerThead = TableScroller_$(this.$contentThead.cloneNode(false)) .addTo(this.$headScrollerTable); this._headScrollerTr = Array.prototype.filter.call(this.$contentThead.childNodes, function (elt) { return elt.tagName == "TR"; }).map(function (tr) { var cloneTr = TableScroller_$(tr.cloneNode(false)); cloneTr.__originElement__ = tr; self.$headScrollerThead.appendChild(cloneTr); return cloneTr; }); this._headScrollerTds = this._headScrollerTr.map(function (tr) { return Array.prototype.filter.call(tr.__originElement__.childNodes, function (elt1) { return elt1.tagName == "TH"; }).map(function (th) { var cloneTh = TableScroller_$(th.cloneNode(true)).addTo(tr); cloneTh.__originElement__ = th; return cloneTh; }); }); }; TableScroller.prototype._updateLeftTable = function () { this.$leftTable = TableScroller_$(this.$content.cloneNode(true)).addTo(this.$leftViewport); }; TableScroller.prototype._updateContent = function () { this.$contentThead = TableScroller_$('thead', this.$content); this._updateFixedTable(); this._updateHeaderScroller(); this._updateLeftTable(); }; TableScroller.prototype._updateFixedTableSize = function () { var l = 1000; var r = -1000; this._fixedTableThsVisible.forEach(function (elt) { var b = elt.getBoundingClientRect(); l = Math.min(l, b.left); r = Math.max(r, b.right); }); this._leftWidth = r - l; this.$fixedViewport.addStyle('width', this._leftWidth + 2 + 'px'); this._fixedTableTr.forEach(function (elt) { var styleHeight = Element["a" /* default */].prototype.getComputedStyleValue.call(elt.__originElement__, 'height'); elt.addStyle('height', styleHeight); }); this._fixedTableThs.forEach(function (row) { row.forEach(function (elt) { var styleWidth = Element["a" /* default */].prototype.getComputedStyleValue.call(elt.__originElement__, 'width'); elt.addStyle('width', styleWidth); }); }); this.$fixedTable.addStyle({ height: this.$contentThead.getComputedStyleValue('height') }); }; TableScroller.prototype._updateHeaderScrollerSize = function () { var headHeight = Element["a" /* default */].prototype.getComputedStyleValue.call(this.$contentThead, 'height'); this.$headScrollerTable.addStyle('height', headHeight); this.$headScroller.addStyle('height', headHeight); this._headScrollerTr.forEach(function (elt) { var styleHeight = Element["a" /* default */].prototype.getComputedStyleValue.call(elt.__originElement__, 'height'); elt.addStyle('height', styleHeight); }); this._headScrollerTds.forEach(function (row) { row.forEach(function (elt) { var styleWidth = Element["a" /* default */].prototype.getComputedStyleValue.call(elt.__originElement__, 'width'); elt.addStyle('width', styleWidth); }); }); }; TableScroller.prototype._updateLeftTableSize = function () { if (!this.$leftTable.style.width) { this.$leftTable.addStyle('width', this.$content.getComputedStyleValue('width')); } if (!this.$leftTable.style.height) { this.$leftTable.addStyle('height', this.$content.getComputedStyleValue('height')); } // console.log(this._leftWidth); this.$leftScroller.addStyle('width', this._leftWidth + 2 + 'px'); }; TableScroller.prototype._updateLinesSize = function () { if (this.$viewport.clientHeight < this.$viewport.scrollHeight ){ this.addClass('scroll-v'); } else{ this.removeClass('scroll-v'); } if (this.$viewport.clientWidth < this.$viewport.scrollWidth ){ this.addClass('scroll-h'); } else{ this.removeClass('scroll-h'); } this.$leftLine.addStyle({ maxHeight: this.$content.getComputedStyleValue('height'), left: this._leftWidth + 'px' }); this.$headLine.addStyle({ top: this.$contentThead.getComputedStyleValue('height'), maxWidth: this.$content.getComputedStyleValue('width') }); }; TableScroller.prototype._updateContentSize = function () { this._updateFixedTableSize(); this._updateHeaderScrollerSize(); this._updateLeftTableSize(); this._updateLinesSize(); }; TableScroller.property = {}; TableScroller.property.fixedCol = { set: function (value) { value = value || 0; this._fixedCol = value; if (this.$content) { this._updateContent(); this.sync.then(this._updateContentSize.bind(this)).then(function () { setTimeout(this._updateContentSize.bind(this), 30) }.bind(this)); } }, get: function () { return this._fixedCol || 0; } }; ACore["a" /* default */].install('TableScroller'.toLowerCase(), TableScroller); /* harmony default export */ var js_TableScroller = (TableScroller); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/quickpath.css var quickpath = __webpack_require__(78); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/QuickPath.js var QuickPath_ = ACore["a" /* default */]._; var QuickPath_$ = ACore["a" /* default */].$; function QuickPath() { var res = QuickPath_({ class: 'absol-quick-path', extendEvent: ['change', 'press'] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, QuickPath.eventHandler); res._itemSeq = []; res.on('click', res.eventHandler.click); return res; } QuickPath.eventHandler = {}; QuickPath.eventHandler.click = function (event) { var button = this._fileButton(event.target) if (button) this.pressButton(button); }; QuickPath.prototype.pressButton = function (button) { var index = parseInt(button.attr('data-index')); this.emit('press', { target: this, button: button, isActive: button.containsClass('toggle'), index: index, pathElement: this.path[index] }, this); if (button.containsClass('toggle')) return; if (!this.path[index].items || this.path[index].items.length == 0) return;// don't display dropdown var self = this; button.addClass('toggle'); var buttonBound = button.getBoundingClientRect(); var rootBound = this.getBoundingClientRect(); var outBound = Dom["a" /* default */].traceOutBoundingClientRect(this); var atop = rootBound.top - outBound.top - 5; var abot = outBound.bottom - buttonBound.bottom - 10; var dx = buttonBound.left - rootBound.left; var dropdown = QuickPath_({ class: 'absol-quick-path-dropdown', style: { left: dx + 'px', 'min-width': buttonBound.width + 'px' }, tag: 'bscroller', child: 'vmenu' }).addTo(this); var menu = QuickPath_$('vmenu', dropdown).on('press', function (event) { var text = event.menuItem.text; var iconSrc = event.menuItem.iconSrc; self.path[index].text = text; button.$text.clearChild().addChild(QuickPath_({ text: text })); if (iconSrc) { button.$iconImg.attr('src', iconSrc); } else { button.$iconImg.attr('src', undefined); } self.emit('change', { type: 'change', target: self, text: text, index: index, iconSrc: iconSrc }); }); var items = this.path[index].items; if (atop > abot) { menu.items = items; dropdown.addStyle({ 'max-height': atop + 'px', bottom: '100%' }); var dropdownBound = dropdown.getBoundingClientRect(); if (dropdownBound.height < abot) { dropdown.addStyle({ 'max-height': abot + 'px', top: '100%', overflow: 'visible' }).removeStyle('bottom'); } else if (dropdownBound.height < atop) { dropdown.addStyle('overflow', 'visible') } } else { menu.items = items; dropdown.addStyle({ 'max-height': abot + 'px', top: '100%' }); var dropdownBound = dropdown.getBoundingClientRect(); if (dropdownBound.height < abot) { dropdown.addStyle('overflow', 'visible') } } setTimeout(function () { QuickPath_$(document.body).once('click', function () { dropdown.remove(); button.removeClass('toggle'); }); }, 100); }; QuickPath.prototype._fileButton = function (elt) { while (elt != this && elt) { if (elt.tagName == 'BUTTON' && elt.containsClass && elt.containsClass('absol-quick-path-btn')) { return elt; } elt = elt.parentNode; } return false; }; QuickPath.prototype.updatePath = function () { this.clearChild(); var self = this; this.path.forEach(function (data, index) { var buttom = self._createButton(data, index); self.addChild(buttom); }); }; QuickPath.prototype._createButton = function (data, index) { var buttom = QuickPath_({ tag: 'button', class: 'absol-quick-path-btn', attr: { 'data-index': '' + index }, child: [ 'toggler-ico', { tag: 'img', class: "absol-quick-path-btn-ext-ico", }, { tag: 'span', child: { text: data.text } } ] }); buttom.$iconImg = QuickPath_$('.absol-quick-path-btn-ext-ico', buttom); if (data.iconSrc) { buttom.$iconImg.src = data.iconSrc; } buttom.$text = QuickPath_$('span', buttom); return buttom; } QuickPath.prototype.push = function (item) { this.path.push(item); var buttom = this._createButton(item, this.path.length - 1); this.addChild(buttom); }; QuickPath.prototype.clear = function () { this.path = []; } QuickPath.prototype.pop = function () { //todo var res = this.path.pop(); var button = QuickPath_$('button[data-index="' + this.path.length + '"]'); if (button) button.remove(); return res; }; QuickPath.property = {}; /** * @typedef PathElement * @property {String} name * @property {Array<String>} items * */ QuickPath.property.path = { /** * @param {Array<PathElement>} value */ set: function (value) { this._path = value || []; this.updatePath(); }, get: function () { return this._path || []; } }; QuickPath.property.textPath = { get: function () { } }; ACore["a" /* default */].install('quickpath', QuickPath); /* harmony default export */ var js_QuickPath = (QuickPath); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/QuickMenu.js var QuickMenu_ = ACore["a" /* default */]._; var QuickMenu_$ = ACore["a" /* default */].$; function QuickMenu() { //like context menu without right-click var res = QuickMenu_({ extendEvent: 'requestcontextmenu', class: ['absol-context-hinge'], child: ['vmenu.absol-context-menu'] }); res.$contextMenu = QuickMenu_$('vmenu.absol-context-menu', res); res._contextMenuSync = Promise.resolve(); return res; }; // QuickMenu.prototype.show = function(element, menuProps, anchor){ // var elementBound = element.getBoundingClientRect(); // }; ACore["a" /* default */].install('quickmenu', QuickMenu); QuickMenu.PRIORITY_ANCHORS = [0, 3, 7, 4, 1, 2, 6, 5]; QuickMenu.DEFAULT_ANCHOR = 0; QuickMenu.$ctn = QuickMenu_('.absol-context-hinge-fixed-container'); QuickMenu.$elt = QuickMenu_('quickmenu').addTo(QuickMenu.$ctn); QuickMenu.$element = undefined; QuickMenu._acceptAnchors = 0; QuickMenu._previewAnchor = QuickMenu.DEFAULT_ANCHOR; QuickMenu._session = Math.random() * 10000000000 >> 0; QuickMenu._menuListener = undefined; QuickMenu.$elt.$contextMenu.on('press', function (event) { if (QuickMenu._menuListener) QuickMenu._menuListener(event.menuItem); }); QuickMenu.updatePosition = function () { if (!QuickMenu.$element) return; var qmenu = QuickMenu.$elt; var menu = qmenu.$contextMenu; var ebound = QuickMenu.$element.getBoundingClientRect(); var menuBound = menu.getBoundingClientRect(); var qBound = qmenu.getBoundingClientRect(); var outBound = Dom["a" /* default */].traceOutBoundingClientRect(qmenu); var getPos = function (anchor) { anchor = anchor % 8; var x = 0; var y = 0; if (anchor == 0 || anchor == 3) { y = ebound.top; } if (anchor == 0 || anchor == 7) { x = ebound.right; } if (anchor == 1 || anchor == 6) { x = ebound.left; } if (anchor == 1 || anchor == 2) { y = ebound.bottom; } if (anchor == 2 || anchor == 5) { x = ebound.right - menuBound.width; } if (anchor == 3 || anchor == 4) { x = ebound.left - menuBound.width; } if (anchor == 4 || anchor == 7) { y = ebound.bottom - menuBound.height; } if (anchor == 5 || anchor == 6) { y = ebound.top - menuBound.height; } return { x: x, y: y }; }; var pos; var bestSquare = -1; var priority = [QuickMenu._previewAnchor].concat(QuickMenu._acceptAnchors); var cAnchor; var outRect = new Math_Rectangle(outBound.left, outBound.top, outBound.width, outBound.height); var menuRect; var viewSquare; var cPos; for (var i = 0; i < priority.length; ++i) { cAnchor = priority[i]; cPos = getPos(cAnchor); menuRect = new Math_Rectangle(cPos.x, cPos.y, menuBound.width, menuBound.height); viewSquare = outRect.collapsedSquare(menuRect); if (viewSquare - 0.01 > bestSquare) { bestSquare = viewSquare; pos = cPos; QuickMenu._previewAnchor = cAnchor; } } pos.x -= qBound.left; pos.y -= qBound.top; menu.addStyle({ left: pos.x + 'px', top: pos.y + 'px' }); }; QuickMenu._scrollEventHandler = QuickMenu.updatePosition.bind(QuickMenu); QuickMenu.$scrollTrackElements = []; QuickMenu.show = function (element, menuProps, anchor, menuListener, darkTheme) { //untrack all element QuickMenu.$scrollTrackElements.forEach(function (e) { if (e.removeEventListener) e.removeEventListener('scroll', QuickMenu._scrollEventHandler, false); else e.dettachEvent('onscroll', QuickMenu._scrollEventHandler, false); }); QuickMenu.$scrollTrackElements = []; if (typeof anchor == 'number') { QuickMenu._acceptAnchors = [anchor]; } else if (anchor instanceof Array) { QuickMenu._acceptAnchors = anchor; } else { QuickMenu._acceptAnchors = QuickMenu.PRIORITY_ANCHORS; } QuickMenu._previewAnchor = QuickMenu._acceptAnchors[0]; QuickMenu._session = Math.random() * 10000000000 >> 0; QuickMenu.$ctn.addTo(document.body); Dom["a" /* default */].addToResizeSystem(QuickMenu.$ctn); QuickMenu.$ctn.updateSize = QuickMenu.updatePosition.bind(QuickMenu); QuickMenu.$element = element; QuickMenu._menuListener = menuListener; var qmenu = QuickMenu.$elt; var menu = qmenu.$contextMenu; Object.assign(menu, menuProps); if (darkTheme) qmenu.addClass('dark'); else qmenu.removeClass('dark'); menu.removeStyle('visibility');//for prevent size change blink QuickMenu.updatePosition(); setTimeout(function () { menu.addStyle('visibility', 'visible'); }, 2); //track element var trackElt = element.parentElement; while (trackElt) { // trackElt.addEventListener('scroll', QuickMenu._scrollEventHandler, false); if (trackElt.addEventListener) trackElt.addEventListener('scroll', QuickMenu._scrollEventHandler, false); else trackElt.attachEvent('onscroll', QuickMenu._scrollEventHandler, false); QuickMenu.$scrollTrackElements.push(trackElt); trackElt = trackElt.parentElement; } if (document.addEventListener) { document.addEventListener('scroll', QuickMenu._scrollEventHandler, false); } else { document.attachEvent('onscroll', QuickMenu._scrollEventHandler, false); } QuickMenu.$scrollTrackElements.push(document); return QuickMenu._session; }; QuickMenu.close = function (session) { if (session !== true && session != QuickMenu._session) return; QuickMenu.$element = undefined; QuickMenu._menuListener = undefined; QuickMenu._previewAnchor = QuickMenu.DEFAULT_ANCHOR; //untrack all element QuickMenu.$scrollTrackElements.forEach(function (e) { e.removeEventListener('scroll', QuickMenu._scrollEventHandler, false); }); QuickMenu.$scrollTrackElements = []; var qmenu = QuickMenu.$elt; var menu = qmenu.$contextMenu; menu.removeStyle('visibility');//for prevent size change blink menu.removeStyle({ left: true, top: true }); QuickMenu.$ctn.remove(); }; QuickMenu.showWhenClick = function (element, menuProps, anchor, menuListener, darkTheme) { var res = { menuProps: menuProps, anchor: anchor, currentSession: undefined, element: element, menuListener: menuListener, darkTheme: darkTheme }; var clickHandler = function () { if (QuickMenu._session == res.currentSession) return; res.currentSession = QuickMenu.show(res.element, res.menuProps, res.anchor, res.menuListener, res.darkTheme); var finish = function () { document.body.removeEventListener('click', finish, false); QuickMenu.close(res.currentSession); res.currentSession = undefined; }; setTimeout(function () { document.body.addEventListener('click', finish, false); }, 10) }; res.remove = function () { element.removeEventListener('click', clickHandler, false); }; element.addEventListener('click', clickHandler, false); return res; }; /* harmony default export */ var js_QuickMenu = (QuickMenu); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/droppanel.css var droppanel = __webpack_require__(80); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/DropPanel.js var DropPanel_ = ACore["a" /* default */]._; var DropPanel_$ = ACore["a" /* default */].$; function DropPanel() { var res = DropPanel_({ class: 'absol-drop-panel', extendEvent: ['toggle'], child: [ { class: 'absol-drop-panel-head', child: [ 'toggler-ico', { tag: 'span', class: "absol-drop-panel-name" } ] }, { class: ['absol-drop-panel-body', 'absol-bscroller'] } ] }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, DropPanel.eventHandler); res.$body = DropPanel_$('.absol-drop-panel-body', res); res.$head = DropPanel_$('.absol-drop-panel-head', res) .on('click', res.eventHandler.clickHead); res.$name = DropPanel_$('.absol-drop-panel-name', res); OOP["a" /* default */].drillProperty(res, res.$name, 'name', 'innerHTML'); return res; } DropPanel.eventHandler = {}; DropPanel.eventHandler.clickHead = function (event) { if (!this._childOfButton(event.target)) { var event = { target: this, isShowed: this.show, preventDefault: function () { this.prevented = true; } }; this.emit('toggle', event, this); if (!event.prevented) { this.toggle(); } } }; ['findChildBefore', 'findChildAfter', 'removeChild', 'clearChild', 'addChild'] .forEach(function (key) { DropPanel.prototype[key] = function () { this.$body[key].apply(this.$body, arguments); } }); DropPanel.prototype._childOfButton = function (elt) { while (elt && elt != this) { if (elt.tagName == "BUTTON") { return true; } elt = elt.parentElement } return false; }; DropPanel.prototype.toggle = function () { this.show = !this.show; }; DropPanel.property = {}; DropPanel.property.show = { set: function (value) { if (value) { var maxHeight = parseFloat(this.getComputedStyleValue('max-height').replace('px', '')); var headBound = this.$head.getBoundingClientRect(); if (maxHeight != 'none' && maxHeight != 'auto') { this.$body.addStyle('max-height', maxHeight - headBound.height + 'px'); } this.$body.addStyle('height', this.$body.scrollHeight + 'px'); setTimeout(function () { this.$body.removeStyle('height'); window.dispatchEvent(new Event('resize')); }.bind(this), 200); this.addClass('show'); } else { this.$body.addStyle('height', this.$body.scrollHeight + 'px'); setTimeout(function () { this.$body.addStyle('height', '0'); }.bind(this), 0); setTimeout(function () { this.$body.removeStyle('height'); window.dispatchEvent(new Event('resize')); }.bind(this), 200); this.removeClass('show'); } }, get: function () { return this.containsClass('show'); } }; ACore["a" /* default */].install('DropPanel'.toLowerCase(), DropPanel); /* harmony default export */ var js_DropPanel = (DropPanel); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/DropPanelStack.js var DropPanelStack_ = ACore["a" /* default */]._; var DropPanelStack_$ = ACore["a" /* default */].$; function DropPannelStack() { var res = DropPanelStack_({ class: 'absol-drop-pannel-stack' }); res.$attachHook = DropPanelStack_('attachhook').addTo(res).on('error', function () { Dom["a" /* default */].addToResizeSystem(this); this.updateSize = res.updateSize.bind(res); }); res.sync = new Promise(function (rs) { res.$attachHook.once('error', rs); }); return res; } DropPannelStack.prototype.updateSize = function () { }; DropPannelStack.prototype.getFreeHeight = function () { var childNodes = this.childNodes; var sumHeight = 0; var bound = this.getBoundingClientRect(); var childBound; for (var i = 0; i < childNodes.length; ++i) { var child = childNodes[i]; if (child.containsClass && child.containsClass('absol-drop-panel')) { childBound = child.getBoundingClientRect(); sumHeight += childBound.height; } } return bound.height - sumHeight; }; DropPannelStack.prototype.addChild = function (child) { var self = this; if (child.containsClass('absol-drop-panel')) { //remove last event listener off other parent if (child.__drop_panel_toggle_listener__) { child.off('toggle', child.__drop_panel_toggle_listener__); } child.__drop_panel_toggle_listener__ = function (event) { event.preventDefault(); self.sync = self.sync.then(function () { if (event.isShowed) { setTimeout(function () { child.removeStyle('max-height'); }, 200); child.toggle(); } else { var headBound = child.$head.getBoundingClientRect(); var vailableHeight = self.getFreeHeight(); if (vailableHeight > 3) { child.addStyle('max-height', self.getFreeHeight() + headBound.height + 'px'); child.toggle(); } } return new Promise(function (rs) { setTimeout(rs, 200); }); }) }; child.on('toggle', child.__drop_panel_toggle_listener__); this.super(child); } else { throw new Error('Child element must be a DropPanel'); } }; ACore["a" /* default */].install('droppanelstack', DropPannelStack); /* harmony default export */ var DropPanelStack = (DropPannelStack); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/draggablevstack.css var draggablevstack = __webpack_require__(82); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/DraggableVStack.js var DraggableVStack_ = ACore["a" /* default */]._; var DraggableVStack_$ = ACore["a" /* default */].$; function DraggableVStack() { var res = DraggableVStack_({ extendEvent: 'change', class: 'absol-draggable-vstack' }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, DraggableVStack.eventHandler); res.$cloneContainer = DraggableVStack_('.absol-draggable-vstack-clone-container'); res.$destLine = DraggableVStack_('.absol-draggable-vstack-dest-line'); res.on('mousedown', res.eventHandler.mouseDown); return res; } DraggableVStack.eventHandler = {}; DraggableVStack.eventHandler.mouseDown = function (event) { var dragzone = this._findDragzone(event.target); var self = this; if (dragzone) { //save mouse position, use it for other event this._mouseClientX = event.clientX; this._mouseClientY = event.clientY; var bound = this.getBoundingClientRect(); var element = this._findDirectChild(event.target); element.classList.add('dragging'); this.$draggingElt = element; this._dragginEltIndex = 0; this._childrentInfo = Array.prototype.map.call(this.childNodes, function (child, index) { var childBound = child.getBoundingClientRect(); if (child == element) self._dragginEltIndex = index; return { index: index, elt: child, bound: childBound, top: childBound.top - bound.top } }); this.$cloneContainer.addTo(this); this.$destLine.addTo(this); var containerBound = element.getBoundingClientRect(); this._initBound = bound; this._currentBound = bound; this._initTop = containerBound.top - bound.top; this._crTop = this._initTop; this._initHeight = containerBound.height; this._pressX = event.clientX - containerBound.left; this._pressY = event.clientY - containerBound.top; this.$cloneContainer.addStyle({ top: this._initTop + 'px', height: this._initHeight + 'px' }).addChild(element.cloneNode(true)); this.$destLine.addStyle('top', this._initTop + 'px'); DraggableVStack_$(document.body).on('mousemove', this.eventHandler.mouseMove); DraggableVStack_$(document.body).on('mouseleave', this.eventHandler.mouseFinish); DraggableVStack_$(document.body).on('mouseup', this.eventHandler.mouseFinish); this.$scrollTrackElements = []; var trackElt = this.parentElement; while (trackElt) { if (trackElt.addEventListener) trackElt.addEventListener('scroll', this.eventHandler.scroll, false); else trackElt.attachEvent('onscroll', this.eventHandler.scroll, false); this.$scrollTrackElements.push(trackElt); trackElt = trackElt.parentElement; } if (document.addEventListener) { document.addEventListener('scroll', this.eventHandler.scroll, false); } else { document.attachEvent('onscroll', this.eventHandler.scroll, false); } this.$scrollTrackElements.push(document); this._updateDragginPosition(); } }; DraggableVStack.eventHandler.mouseMove = function (event) { event.preventDefault(); //save mouse position this._mouseClientX = event.clientX; this._mouseClientY = event.clientY; this._updateDragginPosition(); }; DraggableVStack.eventHandler.scroll = function (event) { this._updateDragginPosition(); }; DraggableVStack.eventHandler.mouseFinish = function (event) { var self = this; DraggableVStack_$(document.body).off('mouseleave', this.eventHandler.mouseFinish); DraggableVStack_$(document.body).off('mouseup', this.eventHandler.mouseFinish); DraggableVStack_$(document.body).off('mousemove', this.eventHandler.mouseMove); this.$scrollTrackElements.forEach(function (e) { if (e.removeEventListener) e.removeEventListener('scroll', self.eventHandler.scroll, false); else e.dettachEvent('onscroll', self.eventHandler.scroll, false); }); if ((this._dragginEltIndex == this._childrentInfo.length - 1 && !this._destRecord) || (this._destRecord && (this._destRecord.index == this._dragginEltIndex || this._destRecord.index == this._dragginEltIndex + 1))) { //nothing to change, view animation this.$cloneContainer.addClass('home-going'); setTimeout(function () { self.$cloneContainer.addStyle({ top: self._initTop + 'px' }); }, 0); setTimeout(function () { self.$cloneContainer.clearChild().removeClass('home-going').remove(); self.$destLine.removeStyle({ top: '' }).remove(); self.$draggingElt.classList.remove('dragging'); self.$draggingElt = undefined; }, 200); } else { this.$draggingElt.remove(); this.$destLine.removeStyle({ top: '' }).remove(); this.$cloneContainer.clearChild().remove(); this.$draggingElt.classList.remove('dragging'); if (this._destRecord) { this.addChildBefore(this.$draggingElt, this._destRecord.elt); this.emit('change', { type: 'change', target: this, action: "BEFORE", at: this._destRecord.elt, sourceIndex: this._dragginEltIndex, destIndex: this._destIndex, elt: this.$draggingElt }, this); } else { this.addChild(this.$draggingElt); this.emit('change', { type: 'change', target: this, action: "END", elt: this.$draggingElt, sourceIndex: this._dragginEltIndex }, this); } } }; DraggableVStack.prototype._updateDragginPosition = function () { //update cloneContainer var bound = this.getBoundingClientRect(); //style top of cloneContainer this._crTop = this._mouseClientY - bound.top - this._pressY; this.$cloneContainer.addStyle({ top: this._crTop + 'px' }); //update destLine var centerY = this._crTop + this._initHeight / 2; var nearestRecord; var nearestDistance = Math.abs(centerY - bound.height);//end of stack var cDist; var nearestIndex = this._childrentInfo.length; for (var i = 0; i < this._childrentInfo.length; ++i) { cDist = Math.abs(centerY - this._childrentInfo[i].top); if (cDist < nearestDistance) { nearestRecord = this._childrentInfo[i]; nearestDistance = cDist; nearestIndex = i; } } if (nearestRecord) { this.$destLine.addStyle('top', nearestRecord.top + 'px'); } else { this.$destLine.addStyle('top', bound.height + 'px'); } if (nearestIndex == this._dragginEltIndex || nearestIndex == this._dragginEltIndex + 1) { this.$destLine.addStyle('visibility', 'hidden'); } else { this.$destLine.removeStyle('visibility', 'hidden'); } this._destRecord = nearestRecord; this._destIndex = nearestIndex; // setTimeout(this._autoScrollParentIfNeed.bind(this, 10), 33); }; DraggableVStack.prototype._autoScrollParentIfNeed = function (delta) { //todo: choose which element should be scroll if (!(delta > 0)) delta = 10000; var bound = this.getBoundingClientRect(); var cloneBound = this.$cloneContainer.getBoundingClientRect(); var outBound = Dom["a" /* default */].traceOutBoundingClientRect(this.$cloneContainer); if (outBound.bottom >= cloneBound.bottom && outBound.top <= cloneBound.top) return; var scrollables = []; var current = this; while (current) { var oy = window.getComputedStyle(current); oy = oy['overflow-y'] || oy['overflowY']; if (oy == 'auto' || oy == 'scroll') { scrollables.push(current); } current = current.parentElement; } scrollables.push(document.body.parentElement); }; DraggableVStack.prototype._findDragzone = function (elt) { var result = null; while (elt && elt != this) { if (elt.classList && elt.classList.contains('drag-zone')) { result = elt; break; } elt = elt.parentNode; } if (result) { elt = result; while (elt && elt != this) { if (elt.classList && elt.classList.contains('absol-draggable-vstack')) { result = null; break; } elt = elt.parentNode; } } return result; }; DraggableVStack.prototype._findDirectChild = function (elt) { while (elt && elt != this) { if (elt.parentNode == this) return elt; elt = elt.parentNode; } return undefined; }; DraggableVStack.prototype._findChild = function (elt) { while (elt && elt != this) { if (elt.parentNode == this) return elt; elt = elt.parentNode; } return undefined; }; ACore["a" /* default */].install('DraggableVStack'.toLowerCase(), DraggableVStack); /* harmony default export */ var js_DraggableVStack = (DraggableVStack); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/chromecalendar.css var chromecalendar = __webpack_require__(84); // CONCATENATED MODULE: ./node_modules/absol/src/Time/datetime.js var MILLIS_PER_DAY = 24 * 3600000; var MILLIS_PER_HOUR = 3600000; var MILLIS_PER_MINUTE = 60000; /** * * @param {Date} date * @returns {String} */ function ddmmyyyy(date) { var mm = date.getMonth() + 1; // getMonth() is zero-based var dd = date.getDate(); return [(dd > 9 ? '' : '0') + dd, (mm > 9 ? '' : '0') + mm, date.getFullYear() ].join('/'); }; /** * * @param {Date} date * @returns {String} */ function yyymmdd(date) { var mm = date.getMonth() + 1; // getMonth() is zero-based var dd = date.getDate(); return [ date.getFullYear(), (mm > 9 ? '' : '0') + mm, (dd > 9 ? '' : '0') + dd ].join('/'); }; var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; var shortDayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; var shortMonthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; //more https://www.myonlinetraininghub.com/excel-date-and-time-formatting var formatTokenRegex = /([a-zA-Z]|[^\s\-$-/:-?{-~!"^_`\[\]])+/g;//more /** * * @param {Date} date * @param {String} format * @returns {String} */ function formartDateString(date, format) { format = format || 'dd/mm/yyyy'; var dt = date.getDate(); var day = date.getDay(); var month = date.getMonth(); var year = date.getFullYear() return format.replace(formatTokenRegex, function (x) { switch (x) { case "dddd": return dayNames[day]; case "ddd": return shortDayNames[day]; case "dd": return dt < 10 ? '0' + dt : '' + dt; case "d": return '' + dt; case "mmmm": return monthNames[month]; case "mmm": return shortMonthNames[month]; case "mm": return (month + 1) < 10 ? '0' + (month + 1) : '' + (month + 1); case "m": return '' + (month + 1); case 'yy': return (year + '').match(/..$/)[0]; case 'yyyy': return year + ''; default: return x; } }); }; /** * @param {Date} date * @return {Date} */ function prevDate(date) { return new Date(date.getTime() - 86400000); }; /** * @param {Date} date * @return {Date} */ function nextDate(date) { return new Date(date.getTime() + 86400000); }; /** * @param {Date} date * @return {Date} date at 00:00 */ function beginOfHour(date) { var res = new Date(date.getTime()); res.setMilliseconds(0); res.setSeconds(0); res.setMinutes(0); return res; }; /** * @param {Date} date * @param {Boolean} gmt default:false * @return {Date} date at 00:00 */ function beginOfDay(date, gmt) { var res = new Date(date.getTime()); res.setMilliseconds(0); res.setSeconds(0); res.setMinutes(0); if (gmt) res.setUTCHours(0); else res.setHours(0); return res; }; /** * @param {Date} date * @param {Boolean} gmt default:false * @return {Date} date at 00:00 */ function beginOfWeek(date, gmt, begin) { begin = begin || 0; var res = beginOfDay(date, gmt); while ((gmt ? res.getUTCDay() : res.getDay()) != begin) { res = prevDate(res); } return res; }; /** * @param {Date} date * @param {Boolean} gmt default:false * @return {Date} date at 00:00 AM */ function datetime_beginOfMonth(date, gmt) { gmt = !!gmt; var d = gmt ? date.getUTCDate() : date.getDate(); var m = gmt ? date.getUTCMonth() : date.getMonth(); var y = gmt ? date.getUTCFullYear() : date.getFullYear(); var res = new Date(); if (gmt) res.setUTCFullYear(y, m, 1); else res.setFullYear(y, m, 1); return beginOfDay(res, gmt); }; /** * @param {Date} date * @param {Boolean} gmt default:false * @return {Date} date at 00:00 AM */ function beginOfYear(date, gmt) { gmt = !!gmt; var d = gmt ? date.getUTCDate() : date.getDate(); var m = gmt ? date.getUTCMonth() : date.getMonth(); var y = gmt ? date.getUTCFullYear() : date.getFullYear(); var res = new Date(); if (gmt) res.setUTCFullYear(y, 0, 1); else res.setFullYear(y, 0, 1); return beginOfDay(res, gmt); }; /** * @param {Date} date0 * @param {Date} date1 * @param {Boolean} gmt default:false * @return {number} */ function compareDate(date0, date1, gmt) { var date0 = beginOfDay(date0, !!gmt); var date1 = beginOfDay(date1, !!gmt); return (date0.getTime() - date1.getTime()) / (86400000); }; /** * @param {Date} date0 * @param {Date} date1 * @param {Boolean} gmt default:false * @return {number} */ function compareMonth(date0, date1, gmt) { gmt = !!gmt; var m0 = gmt ? date0.getUTCMonth() : date0.getMonth(); var y0 = gmt ? date0.getUTCFullYear() : date0.getFullYear(); var m1 = gmt ? date1.getUTCMonth() : date1.getMonth(); var y1 = gmt ? date1.getUTCFullYear() : date1.getFullYear(); return (y0 - y1) * 12 + (m0 - m1); }; function compareYear(date0, date1, gmt) { gmt = !!gmt; var y0 = gmt ? date0.getUTCFullYear() : date0.getFullYear(); var y1 = gmt ? date1.getUTCFullYear() : date1.getFullYear(); return y0 - y1; }; /** * * @param {Date} date * @returns {Date} */ function nextMonth(date) { var m = date.getMonth(); var y = date.getFullYear(); if (m == 11) { return new Date(y + 1, 0, 1, 0, 0, 0, 0); } else { return new Date(y, m + 1, 1, 0, 0, 0, 0); } } /** * * @param {Date} date * @returns {Date} */ function prevMonth(date) { var m = date.getMonth(); var y = date.getFullYear(); if (m == 0) { return new Date(y - 1, 11, 1, 0, 0, 0, 0); } else { return new Date(y, m - 1, 1, 0, 0, 0, 0); } } // CONCATENATED MODULE: ./node_modules/absol-acomp/js/ChromeCalendar.js var ChromeCalendar_ = ACore["a" /* default */]._; var ChromeCalendar_$ = ACore["a" /* default */].$; function ChromeCalendar() { var res = ChromeCalendar_({ class: 'absol-chrome-calendar', extendEvent: 'pick', child: [ { class: 'absol-chrome-calendar-header', child: [ { class: 'absol-chrome-calendar-title', child: [ { tag: 'span', class: 'title-time', child: { text: 'Septemper, 2019' } }, { tag: 'span', child: { text: '\u25bc' } } ] }, { class: 'absol-chrome-calendar-header-buttons', child: [ { tag: 'button', class: 'prev-btn', child: 'span.mdi.mdi-menu-left', attr: { title: 'Previous Month' } }, { tag: 'button', class: 'today-btn', child: 'span.mdi.mdi-circle-medium', attr: { title: 'Today' } }, { tag: 'button', class: 'next-btn', child: 'span.mdi.mdi-menu-right', attr: { title: 'Next Month' } } ] } ] }, { class: 'absol-chrome-calendar-instance', child: [ { class: 'absol-chrome-calendar-dayofweek', child: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'].map(function (text) { return { child: { text: text } } }) }, { class: 'absol-chrome-calendar-month', child: Array(6).fill(0).map(function (u, i) { return { class: 'absol-chrome-calendar-week-in-mounth', child: Array(7).fill(0).map(function (v, j) { return { child: { text: i * 7 + j + '' } } }) } }) }, { tag: 'vscroller', class: 'absol-chrome-calendar-years', child: { child: Array(200).fill(0).map(function (u, i) { return { class: 'absol-chrome-calendar-year', child: [ { class: 'absol-chrome-calendar-year-head', child: { text: i + 1890 + '' }, } ], props: { __year__: i + 1890 }, on: { click: function () { res.expandYear(this.__year__); } } }; }) } } ] } ] }); res.$title = ChromeCalendar_$('.absol-chrome-calendar-title', res) .on('click', function () { res.viewYear(); }); res.$titleTime = ChromeCalendar_$('.absol-chrome-calendar-title > .title-time', res); res.$instance = ChromeCalendar_$('.absol-chrome-calendar-instance', res); res.$month = ChromeCalendar_$('.absol-chrome-calendar-month', res); res._minLimitDate = new Date(1890, 0, 1, 0, 0, 0, 0, 0); res._maxLimitDate = new Date(2090, 0, 1, 0, 0, 0, 0, 0); res._selectedDates = [beginOfDay(new Date())]; res._viewDate = new Date(); res.$prevBtn = ChromeCalendar_$('.absol-chrome-calendar-header-buttons > button.prev-btn', res) .on('click', function () { res.viewPrevMonth(); }); res.$todayBtn = ChromeCalendar_$('.absol-chrome-calendar-header-buttons > button.today-btn', res) .on('click', function () { res.viewToday(); res.pickDate(new Date()); }); res.$nextBtn = ChromeCalendar_$('.absol-chrome-calendar-header-buttons > button.next-btn', res) .on('click', function () { res.viewNexMounth(); }); res.$yearScroller = ChromeCalendar_$('vscroller.absol-chrome-calendar-years', res); res.$yearItems = []; ChromeCalendar_$('.absol-chrome-calendar-year', res.$yearScroller, function (e) { res.$yearItems.push(e); }) res.$attachHook = ChromeCalendar_('attachhook').addTo(res).on('error', function () { // res.updateSize(); res.$yearScroller.requestUpdateSize(); res.expandYear(res._viewDate.getFullYear()); }); res.sync = new Promise(function (rs) { res.$attachHook.on('error', rs); }); return res; } /** * @param {Date} date * @returns {Boolean} */ ChromeCalendar.prototype._isSelectedDate = function (date) { for (var i = 0; i < this._selectedDates.length; ++i) { if (compareDate(date, this._selectedDates[i]) == 0) return true; } return false; }; /** * @param {Date} date * @returns {Boolean} */ ChromeCalendar.prototype._isSelectedMonth = function (date) { for (var i = 0; i < this._selectedDates.length; ++i) { if (compareMonth(date, this._selectedDates[i]) == 0) return true; } return false; }; ChromeCalendar.prototype.pickDate = function (date, event) { this._selectedDates = [date]; this._updateMonth(this.$month); if (this.$lastOpenYearItem) this.$lastOpenYearItem.$months.updateActiveMonth(); this.emit('pick', { type: 'pick', value: date, isTrusted: event && event.isTrusted, originEvent: event, selectedDates: this.selectedDates }); }; /** * @param {Element} monthElt * @param {Date} date */ ChromeCalendar.prototype._fillMonth = function (monthElt, date) { var self = this; if (monthElt.$cells === undefined) {//for faster, attach event to element monthElt.$cells = []; ChromeCalendar_$('.absol-chrome-calendar-week-in-mounth > div', this.$month, function (elt) { monthElt.$cells.push(elt); elt.on('click', function (event) { self.pickDate(this.__date__, event); if (elt.containsClass('absol-chrome-calendar-not-in-month')) { if (this.__date__.getDate() < 15) { self.viewNexMounth(); } else { self.viewPrevMonth(); } } }); }); } var currentDate = beginOfWeek(datetime_beginOfMonth(date)); var d; var cell; for (var i = 0; i < monthElt.$cells.length; ++i) { var cell = monthElt.$cells[i]; d = currentDate.getDate(); cell.innerHTML = '' + d; cell.__date__ = beginOfDay(currentDate); currentDate = nextDate(currentDate); } }; ChromeCalendar.prototype._updateMonth = function (monthElt) { if (!monthElt.$cells) return; // days weren't filled var now = new Date(); var viewM = this._viewDate.getMonth(); var m; var cell; var currentDate; for (var i = 0; i < monthElt.$cells.length; ++i) { cell = monthElt.$cells[i]; currentDate = cell.__date__; m = currentDate.getMonth(); if (m != viewM) cell.addClass('absol-chrome-calendar-not-in-month'); else cell.removeClass('absol-chrome-calendar-not-in-month'); if (compareDate(currentDate, now) == 0) cell.addClass('absol-chrome-calendar-today'); else cell.removeClass('absol-chrome-calendar-today'); if (this._isSelectedDate(currentDate)) cell.addClass('absol-chrome-calendar-selected'); else cell.removeClass('absol-chrome-calendar-selected'); if (compareDate(this._minLimitDate, currentDate) > 0 || compareDate(currentDate, this._maxLimitDate) > 0) { cell.addClass('absol-chrome-calendar-date-disabled'); } else { cell.removeClass('absol-chrome-calendar-date-disabled'); } } }; ChromeCalendar.prototype.viewNexMounth = function () { var self = this; this.sync = this.sync.then(function () { return new Promise(function (rs) { var oldBound = self.$month.getBoundingClientRect(); var oldMonth = self.$month.cloneNode(true); var instanceBound = self.$instance.getBoundingClientRect(); if (self.$lastAnimationCtn) { self.$lastAnimationCtn.removeClass('new').addClass('old'); } var oldMonthCnt = ChromeCalendar_({ class: ['absol-chrome-calendar-month-animation-container', 'old'], style: { top: oldBound.top - instanceBound.top + 'px', height: oldBound.height + 'px', width: oldBound.width + 'px' }, child: oldMonth }).addTo(self.$instance); self._viewDate = nextMonth(self._viewDate); self.viewMonth(); var newMonth = self.$month.cloneNode(true); var overlap = 0; var j = 41; while (j >= 0 && self.$month.$cells[j].containsClass('absol-chrome-calendar-not-in-month')) { overlap += oldBound.height / 6; j -= 7; } var newMonthCtn = ChromeCalendar_({ class: ['absol-chrome-calendar-month-animation-container', 'new'], style: { top: oldBound.top + oldBound.height - instanceBound.top - overlap + 'px', height: oldBound.height + 'px', width: oldBound.width + 'px' }, child: newMonth }).addTo(self.$instance); self.$lastAnimationCtn = newMonthCtn; setTimeout(function () { oldMonthCnt.addStyle('top', oldBound.top - oldBound.height + overlap - instanceBound.top + 'px'); newMonthCtn.addStyle('top', oldBound.top - instanceBound.top + 'px'); }, 20); setTimeout(function () { self.$lastAnimationCtn = undefined; oldMonthCnt.remove(); newMonthCtn.remove(); }, 220); setTimeout(rs, 22); }); }); return this.sync; }; ChromeCalendar.prototype.viewPrevMonth = function () { var self = this; this.sync = this.sync.then(function () { return new Promise(function (rs) { var oldBound = self.$month.getBoundingClientRect(); var oldMonth = self.$month.cloneNode(true); var instanceBound = self.$instance.getBoundingClientRect(); if (self.$lastAnimationCtn) { self.$lastAnimationCtn.removeClass('new').addClass('old'); } var oldMonthCnt = ChromeCalendar_({ class: ['absol-chrome-calendar-month-animation-container', 'old'], style: { top: oldBound.top - instanceBound.top + 'px', height: oldBound.height + 'px', width: oldBound.width + 'px' }, child: oldMonth }).addTo(self.$instance); self._viewDate = prevMonth(self._viewDate); self.viewMonth(); var newMonth = self.$month.cloneNode(true); var overlap = 0; var j = 0; while (j < 42 && self.$month.$cells[j].containsClass('absol-chrome-calendar-not-in-month')) { overlap += oldBound.height / 6; j += 7; } var newMonthCtn = ChromeCalendar_({ class: ['absol-chrome-calendar-month-animation-container', 'new'], style: { top: oldBound.top - oldBound.height + overlap - instanceBound.top + 'px', height: oldBound.height + 'px', width: oldBound.width + 'px' }, child: newMonth }).addTo(self.$instance); self.$lastAnimationCtn = newMonthCtn; setTimeout(function () { oldMonthCnt.addStyle('top', oldBound.top + oldBound.height - overlap - instanceBound.top + 'px'); newMonthCtn.addStyle('top', oldBound.top - instanceBound.top + 'px'); }, 20); setTimeout(function () { self.$lastAnimationCtn = undefined; oldMonthCnt.remove(); newMonthCtn.remove(); }, 220); setTimeout(rs, 22); }) }); return this.sync; }; ChromeCalendar.prototype.viewToday = function () { this._viewDate = new Date(); this.viewMonth(); }; ChromeCalendar.prototype.viewMonth = function () { this._updateButtons(); this.removeClass('view-year').addClass('view-month'); this._fillMonth(this.$month, this._viewDate); this._updateMonth(this.$month); this.$titleTime.innerHTML = formartDateString(this._viewDate, 'mmmm, yyyy'); }; ChromeCalendar.prototype.viewYear = function () { this.removeClass('view-month') .addClass('view-year'); this.expandYear(this._viewDate.getFullYear()); this.$yearScroller.requestUpdateSize(); }; ChromeCalendar.prototype.expandYear = function (year) { var fontSize = this.getFontSize(); var self = this; var lastItemElt = this.$lastOpenYearItem; var itemElt = this.$yearItems[year - 1890]; var lastYear = 100000000; if (lastItemElt && lastItemElt.__year__ != year) { lastYear = lastItemElt.__year__; lastItemElt.addClass('start-closing'); setTimeout(function () { lastItemElt.removeClass('start-closing').addClass('closing'); }, 0); setTimeout(function () { lastItemElt.removeClass('closing'); lastItemElt.$months.remove(); lastItemElt.$months = undefined; }, 100); } if (lastItemElt != itemElt) { if (!itemElt.$months) { itemElt.$months = this._createMonths(year).addTo(itemElt); itemElt.addClass('start-opening'); setTimeout(function () { itemElt.removeClass('start-opening').addClass('opening'); }, 1); setTimeout(function () { itemElt.removeClass('opening'); }, 100); } } var dy = itemElt.getBoundingClientRect().top - self.$yearScroller.getBoundingClientRect().top - fontSize * 0.45; if (itemElt.__year__ > lastYear) { dy -= 6 * fontSize; } self.$yearScroller.scrollBy(dy, 100); this.$lastOpenYearItem = itemElt; itemElt.$months.updateActiveMonth(); }; ChromeCalendar.prototype._updateButtons = function () { var endOfPrevMonth = prevDate(datetime_beginOfMonth(this._viewDate)); if (compareDate(endOfPrevMonth, this._minLimitDate) < 0) { this.$prevBtn.addClass('absol-chrome-calendar-button-disabled'); } else { this.$prevBtn.removeClass('absol-chrome-calendar-button-disabled'); } var beginOfNextMonth = nextMonth(this._viewDate); if (compareDate(beginOfNextMonth, this._maxLimitDate) > 0) { this.$nextBtn.addClass('absol-chrome-calendar-button-disabled'); } else { this.$nextBtn.removeClass('absol-chrome-calendar-button-disabled'); } var now = new Date(); if (compareDate(now, this._maxLimitDate) > 0 || compareDate(now, this._minLimitDate) < 0) { this.$todayBtn.addClass('absol-chrome-calendar-button-disabled'); } else { this.$todayBtn.removeClass('absol-chrome-calendar-button-disabled'); } }; ChromeCalendar.prototype._createMonths = function (year) { var now = new Date(); var self = this; var res = ChromeCalendar_({ class: 'absol-chrome-calendar-year-mounths', child: Array(3).fill('').map(function (u, i) { return { class: 'absol-chrome-calendar-year-row-months', child: Array(4).fill(0).map(function (v, j) { var date = new Date(year, i * 4 + j, 1, 0, 0, 0, 0, 0); return { class: ['absol-chrome-calendar-year-month'] .concat((year == now.getFullYear() && now.getMonth() == i * 4 + j) ? ['absol-chrome-calendar-today'] : []) .concat(self._isSelectedMonth(date) ? ['absol-chrome-calendar-selected'] : []) , child: { text: monthNames[i * 4 + j].substr(0, 3) }, on: { click: function () { self._viewDate = date; self.viewMonth(); } }, props: { __date__: date } } }) } }) }); res.$monthList = []; ChromeCalendar_$('.absol-chrome-calendar-year-month', res, function (e) { res.$monthList.push(e); }); res.updateActiveMonth = function () { res.$monthList.forEach(function (e) { now = new Date(); if (compareMonth(e.__date__, now) == 0) { e.addClass('absol-chrome-calendar-today'); } else { e.removeClass('absol-chrome-calendar-today'); } if (self._isSelectedMonth(e.__date__)) { e.addClass('absol-chrome-calendar-selected'); } else { e.removeClass('absol-chrome-calendar-selected'); } var beginOfMonth = datetime_beginOfMonth(e.__date__); var endOfMonth = prevDate(nextMonth(e.__date__)); if (compareDate(self._minLimitDate, endOfMonth) > 0 || compareDate(beginOfMonth, self._maxLimitDate) > 0) { e.addClass('absol-chrome-calendar-date-disabled'); } else { e.removeClass('absol-chrome-calendar-date-disabled'); } }); } return res; }; ChromeCalendar.prototype.init = function (props) { props = props || {}; this.super(props); this.viewToday(); }; ChromeCalendar.property = {}; ChromeCalendar.property.selectedDates = { set: function (value) { value = value || []; if (value instanceof Date) value = [value]; this._selectedDates = value; this.sync = this.sync.then(function () { this._viewDate = this._selectedDates[0] || new Date();//default is today this.viewMonth(); }.bind(this)); }, get: function () { return this._selectedDates; } }; ChromeCalendar.property.minLimitDate = { set: function (value) { if (!value) value = new Date(1890, 0, 1, 0, 0, 0, 0, 0); if (typeof value == 'number') value = new Date(value); this._minLimitDate = value; //todo this._updateButtons(); this.sync = this.sync.then(function () { this._updateMonth(this.$month); if (this.$lastOpenYearItem) { this.$lastOpenYearItem.$months.updateActiveMonth(); } }.bind(this)); }, get: function () { return this._minLimitDate; } }; ChromeCalendar.property.maxLimitDate = { set: function (value) { if (!value) value = new Date(2090, 0, 1, 0, 0, 0, 0, 0); if (typeof value == 'number') value = new Date(value); this._maxLimitDate = value; this._updateButtons(); this.sync = this.sync.then(function () { this._updateMonth(this.$month); if (this.$lastOpenYearItem) { this.$lastOpenYearItem.$months.updateActiveMonth(); } }.bind(this)); }, get: function () { return this._minLimitDate; } }; ChromeCalendar.property.minDateLimit = ChromeCalendar.property.minLimitDate; ChromeCalendar.property.maxDateLimit = ChromeCalendar.property.maxLimitDate; ChromeCalendar.property.multiSelect = { set: function (value) { throw new Error('Not support yet!') var lastValue = this.multiSelect; value = !!value; if (lastValue != value) { if (value) { this.addClass('multi-select') } else { this.removeClass('multi-select'); } this._updateMonth(this.$month); } }, get: function () { return this.containsClass('multi-select'); } }; ACore["a" /* default */].install('chromecalendar', ChromeCalendar); ChromeCalendar._session = Math.random() * 10000000000 >> 0; ChromeCalendar._listener = undefined; ChromeCalendar.showWhenClick = function (element, calendarProps, anchor, calendarPickListener, darkTheme) { var res = { calendarProps: calendarProps, anchor: anchor, currentSession: undefined, element: element, calendarPickListener: calendarPickListener, darkTheme: darkTheme, setDateValue: function (value) { if (this.currentSession == ChromeCalendar._session) { ChromeCalendar.$calendar.selectedDates = [value]; } }, cancel: function () { } }; var clickHandler = function () { if (ChromeCalendar._session == res.currentSession) return; res.currentSession = ChromeCalendar.show(res.element, res.calendarProps, res.anchor, res.calendarPickListener, res.darkTheme); var finish = function (event) { if (event && event.target && EventEmitter["a" /* default */].hitElement(ChromeCalendar.$calendar, event)) return; document.body.removeEventListener('click', finish, false); ChromeCalendar.close(res.currentSession); ChromeCalendar.$calendar.off('pick', finish); res.currentSession = undefined; res.cancel = function () { }; }; setTimeout(function () { document.body.addEventListener('click', finish, false); ChromeCalendar.$calendar.on('pick', finish); res.cancel = finish; }, 10) }; res.remove = function () { element.removeEventListener('click', clickHandler, false); }; element.addEventListener('click', clickHandler, false); return res; }; ChromeCalendar.show = function (element, calendarProps, anchor, calendarPickListener, darkTheme) { ChromeCalendar._session = Math.random() * 10000000000 >> 0; function exec() { if (!ChromeCalendar.$ctn) { ChromeCalendar.$ctn = ChromeCalendar_('.absol-context-hinge-fixed-container'); ChromeCalendar.$follower = ChromeCalendar_('follower').addTo(ChromeCalendar.$ctn); ChromeCalendar.$calendar = ChromeCalendar_('chromecalendar') .on('pick', function (event) { if (typeof ChromeCalendar._listener == 'function') { ChromeCalendar._listener(event.value); } }).addTo(ChromeCalendar.$follower); } ChromeCalendar.$ctn.addTo(document.body); // only one value need if (calendarProps instanceof Date) calendarProps = { selectedDates: [calendarProps] }; if (calendarProps instanceof Array) calendarProps = { selectedDates: calendarProps }; Object.assign(ChromeCalendar.$calendar, calendarProps); if (darkTheme) ChromeCalendar.$ctn.addClass('dark'); else ChromeCalendar.$ctn.removeClass('dark'); ChromeCalendar.$follower.followTarget = element; ChromeCalendar.$follower.anchor = anchor; ChromeCalendar.$calendar.addStyle('visibility', 'hidden');//for prevent size change blink ChromeCalendar._listener = calendarPickListener; setTimeout(function () { ChromeCalendar.$follower.updatePosition(); ChromeCalendar.$calendar.removeStyle('visibility'); }, 2); } if (document.body) exec(); else Dom["a" /* default */].documentReady.then(exec); return ChromeCalendar._session; }; ChromeCalendar.close = function (session) { if (session !== true && session != ChromeCalendar._session) return; function exec() { ChromeCalendar.followTarget = undefined; ChromeCalendar._listener = undefined; ChromeCalendar.$ctn.remove(); } if (document.body) exec(); else Dom["a" /* default */].documentReady.then(exec); }; /* harmony default export */ var js_ChromeCalendar = (ChromeCalendar); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/calendarinput.css var calendarinput = __webpack_require__(86); // CONCATENATED MODULE: ./node_modules/absol-acomp/js/CalendarInput.js var CalendarInput_ = ACore["a" /* default */]._; var CalendarInput_$ = ACore["a" /* default */].$; function CalendarInput() { var res = CalendarInput_({ extendEvent: ['change'], class: 'absol-calendar-input', child: 'input[type="text"][readonly="true"][value="dd/mm/yyyy"]' }); res.$input = CalendarInput_$('input', res); res._value = beginOfDay(new Date()); res._quickOption = js_ChromeCalendar.showWhenClick(res, { minLimitDate: res.minLimitDate || res.minDateLimit, maxLimitDate: res.maxLimitDate || res.maxDateLimit, selectedDates: [res._value] }, 'auto', function (value) { res._value = value; res.$input.value = res.formartDateString(value); res._quickOption.calendarProps.selectedDates = [value];//change new option res.emit('change', { target: res, value: value }, res); }); OOP["a" /* default */].drillProperty(res, res._quickOption.calendarProps, ['minLimitDate', 'maxLimitDate', 'minDateLimit', 'maxDateLimit']); return res; } CalendarInput.property = {}; CalendarInput.property.value = { set: function (value) { if (value === null || value === undefined) { this.$input.value = this.formartDateString(value); this._quickOption.calendarProps.selectedDates = []; this._value = value; } else { if (typeof value == 'number') value = new Date(value); this._value = value; this.$input.value = this.formartDateString(value); this._quickOption.calendarProps.selectedDates = [value]; } }, get: function () { return this._value; } }; CalendarInput.property.disabled = { set: function (value) { this.$input.disabled = !value; if (value) { this.addClass('absol-disabled'); } else { this.removeClass('absol-disabled'); } }, get: function () { return this.$input.disabled; } }; CalendarInput.attribute = { disabled: { set: function (value) { this.$input.attr('disabled', value); if (this.$input.disabled) this.addClass('absol-disabled'); }, get: function () { return this.$input.attr('disabled'); }, remove: function () { this.$input.attr('disabled', undefined); this.removeClass('absol-disabled'); } } }; CalendarInput.property.dateToString = { set: function (value) { this._dateToString = value; this.$input.value = this.formartDateString(this.value); }, get: function () { return this._dateToString; } }; CalendarInput.prototype.formartDateString = function (date) { if (!date) { console.log(typeof this.dateToString); return { 'undefined': 'dd/mm/yyyy', 'function': '--/--/--', 'object': 'dd/mm/yyyy', 'string': typeof this.dateToString }[typeof this.dateToString] || '--/--/--'; } if (!this.dateToString) { return formartDateString(date); } else if (typeof this.dateToString == 'string') { return formartDateString(date, this.dateToString); } else if (typeof this.dateToString == 'function') { return this.dateToString(date); } }; ACore["a" /* default */].install('calendarinput', CalendarInput); // for older code ACore["a" /* default */].install('calendar-input', function (data) { return CalendarInput_({ tag: 'calendarinput', extendEvent: 'changed', props: data, on: { change: function (ev) { this.emit('changed', ev.value); } } }); }); /* harmony default export */ var js_CalendarInput = (CalendarInput); // EXTERNAL MODULE: ./node_modules/absol-acomp/js/DebugTask.js var DebugTask = __webpack_require__(8); // EXTERNAL MODULE: ./node_modules/absol-acomp/css/debugtask.css var debugtask = __webpack_require__(88); // CONCATENATED MODULE: ./node_modules/absol-acomp/AComp.js // import './js/SelectTable2'; // import './css/selecttable2.css'; // import './js/TextArea2'; // import './css/textarea2.css'; // import './css/quickpath.css'; var AComp = { core: ACore["a" /* default */], $: ACore["a" /* default */].$, _: ACore["a" /* default */]._, creator: ACore["a" /* default */].creator, buildDom: ACore["a" /* default */].buildDom, runDebugTask: DebugTask["a" /* default */].start.bind(DebugTask["a" /* default */]) }; window.runDebugTask = DebugTask["a" /* default */].start.bind(DebugTask["a" /* default */]); /* harmony default export */ var absol_acomp_AComp = (AComp); // CONCATENATED MODULE: ./js/core/FCore.js var Fcore = new Dom["a" /* default */](); Fcore.install(absol_acomp_AComp.core); /* harmony default export */ var FCore = (Fcore); // CONCATENATED MODULE: ./js/anchors/RelativeAnchor.js var RelativeAnchor_ = FCore._; var RelativeAnchor_$ = FCore.$; /** * AnchorBox only has on child node */ function RelativeAnchor() { this.hAlign = this.HALIGN_VALUE[0]; this.vAlign = this.VALIGN_VALUE[0]; this.viewBinding = {}; this.childNode = null; this.view = this.render(); this.created(); } RelativeAnchor.prototype.created = function () { for (var key in this.viewBinding) { this[key] = RelativeAnchor_$(this.viewBinding[key], this.view); } }; RelativeAnchor.prototype.VALIGN_VALUE = ['top', 'bottom', 'center', 'fixed']; RelativeAnchor.prototype.HALIGN_VALUE = ['left', 'right', 'center']; RelativeAnchor.prototype.hAlign = RelativeAnchor.prototype.HALIGN_VALUE[0]; RelativeAnchor.prototype.vAlign = RelativeAnchor.prototype.VALIGN_VALUE[0]; RelativeAnchor.prototype.left = 0; RelativeAnchor.prototype.right = 0; RelativeAnchor.prototype.top = 0; RelativeAnchor.prototype.bottom = 0; RelativeAnchor.prototype.width = 0; RelativeAnchor.prototype.height = 0; RelativeAnchor.prototype.HALIGN_CLASS_NAMES = { left: 'as-halign-left', right: 'as-halign-right', center: 'as-halign-center', fixed: 'as-halign-fixed' }; RelativeAnchor.prototype.VALIGN_CLASS_NAMES = { top: 'as-valign-top', bottom: 'as-valign-bottom', center: 'as-valign-center', fixed: 'as-valign-fixed' }; RelativeAnchor.prototype.HALIGN_ACEPT_STYLE_NAMES = { left: { left: true, right: false, width: false }, right: { left: false, right: true, width: false }, center: { left: false, right: false, width: false }, // component nedd set height fixed: { left: true, right: true, width: false } }; RelativeAnchor.prototype.VALIGN_ACEPT_STYLE_NAMES = { top: { top: true, bottom: false, height: false }, bottom: { top: false, bottom: true, height: false }, center: { top: false, bottom: false, height: false }, // component nedd set height fixed: { top: true, bottom: true, height: false } }; RelativeAnchor.prototype.getAceptStyleNames = function () { return Object.assign({}, this.VALIGN_ACEPT_STYLE_NAMES[this.vAlign], this.HALIGN_ACEPT_STYLE_NAMES[this.hAlign]); }; RelativeAnchor.prototype.TOP_CLASS_NAME = 'as-relative-anchor-box'; RelativeAnchor.prototype.render = function () { var layout = { "class": [this.TOP_CLASS_NAME, this.HALIGN_CLASS_NAMES[this.hAlign], this.VALIGN_CLASS_NAMES[this.vAlign]] }; this.viewBinding.$containter = '.' + this.TOP_CLASS_NAME; if (this.vAlign == 'center') { layout.child = { "class": 'as-center-table', child: 'as-center-cell' }; this.viewBinding.$containter = '.as-center-cell'; } return RelativeAnchor_(layout); }; /** * @param {BaseComponent} child */ RelativeAnchor.prototype.attachChild = function (child) { if (this.childNode) { this.childNode.view.remove(); this.childNode = null; this.childNode._anchorBox = null; } if (child._anchorBox) throw new Error("Detach anchorBox first"); this.childNode = child; child.anchor = this; this.$containter.addChild(child.view); }; RelativeAnchor.prototype.detachChild = function () { if (this.childNode) { this.childNode.view.remove(); this.childNode.anchor = null; this.childNode = null; } else throw new Error("Nothing to detach"); }; RelativeAnchor.prototype.setHAlign = function (value) { if (this.hAlign == value) return; this.view.removeClass(this.HALIGN_CLASS_NAMES[this.hAlign]); this.hAlign = value; this.view.addClass(this.HALIGN_CLASS_NAMES[this.hAlign]); this.updateHAlignStyle(); }; RelativeAnchor.prototype.setVAlign = function (value) { if (this.vAlign == value) return; this.view.removeClass(this.VALIGN_CLASS_NAMES[this.vAlign]); if (this.vAlign == 'center') { this.view.clearChild(); this.viewBinding.$containter = '.' + this.TOP_CLASS_NAME; this.$containter = this.view; if (this.childNode) { this.$containter.addChild(this.childNode.view); } } this.vAlign = value; this.view.addClass(this.VALIGN_CLASS_NAMES[this.vAlign]); if (this.vAlign == 'center') { this.view.clearChild(); this.view.addChild(RelativeAnchor_({ "class": 'as-center-table', child: '.as-center-cell' })); this.viewBinding.$containter = '.as-center-cell'; this.$containter = RelativeAnchor_$(this.viewBinding.$containter, this.view); if (this.childNode) { this.$containter.addChild(this.childNode.view); } } this.updateVAlignStyle(); }; RelativeAnchor.prototype.updateVAlignStyle = function () { for (var key in this.VALIGN_ACEPT_STYLE_NAMES[this.vAlign]) { if (this.VALIGN_ACEPT_STYLE_NAMES[this.vAlign][key]) { this.view.addStyle(key, this[key] + 'px'); } else { this.view.removeStyle(key); } } }; RelativeAnchor.prototype.updateHAlignStyle = function () { for (var key in this.HALIGN_ACEPT_STYLE_NAMES[this.hAlign]) { if (this.HALIGN_ACEPT_STYLE_NAMES[this.hAlign][key]) { this.view.addStyle(key, this[key] + 'px'); } else { this.view.removeStyle(key); } } }; RelativeAnchor.prototype.setLeft = function (value) { this.left = value; if (this.HALIGN_ACEPT_STYLE_NAMES[this.hAlign].left) { this.view.addStyle('left', value + 'px'); } }; RelativeAnchor.prototype.setRight = function (value) { this.right = value; if (this.HALIGN_ACEPT_STYLE_NAMES[this.hAlign].right) { this.view.addStyle('right', value + 'px'); } }; RelativeAnchor.prototype.setBottom = function (value) { this.bottom = value; if (this.VALIGN_ACEPT_STYLE_NAMES[this.vAlign].bottom) { this.view.addStyle('bottom', value + 'px'); } }; RelativeAnchor.prototype.setTop = function (value) { this.top = value; if (this.VALIGN_ACEPT_STYLE_NAMES[this.vAlign].top) { this.view.addStyle('top', value + 'px'); } }; RelativeAnchor.prototype.setWidth = function (value) { this.width = value; //must set width in component, not anchor }; RelativeAnchor.prototype.setHeight = function (value) { this.height = value; //must set height in component, not anchor }; /* harmony default export */ var anchors_RelativeAnchor = (RelativeAnchor); // CONCATENATED MODULE: ./js/core/BaseComponent.js function BaseComponent() { EventEmitter["a" /* default */].call(this); this.attributes = {}; /** * @type {Array<BaseComponent} */ this.children = []; // <> childData this.style = {}; this.events = {}; this.preInit(); this.view = this.render(); this.view.classList.add(this.BASE_COMPONENT_CLASS_NAME); this.onCreated(); } Object.defineProperties(BaseComponent.prototype, Object.getOwnPropertyDescriptors(EventEmitter["a" /* default */].prototype)); BaseComponent.prototype.constructor = BaseComponent; BaseComponent.prototype.tag = "BaseComponent"; BaseComponent.prototype.menuIcon = "span.mdi.mdi-package-variant-closed"; BaseComponent.prototype.BASE_COMPONENT_CLASS_NAME = 'as-base-component'; BaseComponent.prototype.anchor = null; BaseComponent.prototype.parent = null; BaseComponent.prototype.SUPPORT_STYLE_NAMES = []; BaseComponent.prototype.preInit = function () {}; BaseComponent.prototype.onCreated = function () { for (var key in this.attributes) { this.handleAttribute(key, this.attributes[key]); } }; BaseComponent.prototype.onAttached = function (parent) { //reset style after attach anchor for (var key in this.style) { this.handleStyle(key, this.style[key]); } }; BaseComponent.prototype.onDetached = function (parent) {}; BaseComponent.prototype.render = function () { throw new Error("Not implement!"); }; BaseComponent.prototype.getData = function () { var self = this; var data = { tag: this.tag }; var attributeKeys = Object.keys(this.attributes).filter(function (key) { return self.attributes[key] !== undefined || self.attributes[key] !== null; }); if (attributeKeys.length > 0) { data.attributes = attributeKeys.reduce(function (ac, key) { ac[key] = elf.attributes[key]; return ac; }, {}); } var styleKeys = Object.keys(this.style).filter(function (key) { return self.style[key] !== undefined || self.style[key] !== null; }); if (styleKeys.length > 0) { data.style = styleKeys.reduce(function (ac, key) { ac[key] = elf.style[key]; return ac; }, {}); } if (children.length > 0) { data.children = this.children.map(function (child) { return children.getData(); }); } return data; }; BaseComponent.prototype.setAttribute = function (key, value) { this.attributes[key] = value; this.handleAttribute(key, value); }; BaseComponent.prototype.getAttribute = function (key) { return this.attributes[key]; }; BaseComponent.prototype.removeAttribute = function (key) { this.attributes[key] = undefined; delete this.attributes[key]; this.handleAttribute(key, undefined); }; BaseComponent.prototype.handleAttribute = function (key, value) { var functionName = 'handleAttribute' + key.substr(0, 1).toUpperCase() + key.substr(1); if (this[functionName]) this[functionName](value);else throw new Error("Not implement this." + functionName + '(value)!'); }; BaseComponent.prototype.setStyle = function (key, value) { this.style[key] = value; this.handleStyle(key, value); }; BaseComponent.prototype.getStyle = function (key) { return this.style[key]; }; BaseComponent.prototype.removeStyle = function (key) { delete this.style[key]; this.handleStyle(key, undefined); }; /** * @param {String} key * @param {string|Number} value */ BaseComponent.prototype.handleStyle = function (key, value) { var functionName = 'handleStyle' + key.substr(0, 1).toUpperCase() + key.substr(1); if (this[functionName]) this[functionName](value);else throw new Error("Not implement this." + functionName + '(value)!'); }; BaseComponent.prototype.handleStyleVAlign = function (value) { if (this.anchor) this.anchor.setVAlign(value); }; BaseComponent.prototype.handleStyleHAlign = function (value) { if (this.anchor) this.anchor.setHAlign(value); }; BaseComponent.prototype.handleStyleLeft = function (value) { if (this.anchor) this.anchor.setLeft(value); }; BaseComponent.prototype.handleStyleRight = function (value) { if (this.anchor) this.anchor.setRight(value); }; BaseComponent.prototype.handleStyleTop = function (value) { if (this.anchor) this.anchor.setTop(value); }; BaseComponent.prototype.handleStyleBottom = function (value) { if (this.anchor) this.anchor.setBottom(value); }; BaseComponent.prototype.handleStyleWidth = function (value) { if (this.anchor) this.anchor.setWidth(value); }; BaseComponent.prototype.handleStyleHeight = function (value) { if (this.anchor) this.anchor.setHeight(value); }; BaseComponent.prototype.addChild = function (child) { if (child.parent) child.parent.removeChild(child); this.children.push(child); child.parent = this; this.handleAddChild(child, -1); //negative index for appending child child.onAttached(this); }; BaseComponent.prototype.addChildBefore = function (child, existingChild) { if (child.parent) child.parent.removeChild(child); var existChildIndex = this.children.indexOf(existingChild); if (existChildIndex >= 0) { this.children.splice(existChildIndex, 0, child); child.parent = this; this.handleAddChild(child, existChildIndex); child.onAttached(this); return true; } return false; }; BaseComponent.prototype.addChildAfter = function (child, existingChild) { if (child.parent) child.parent.removeChild(child); var existChildIndex = this.children.indexOf(existingChild); if (existChildIndex >= 0) { this.children.splice(existChildIndex + 1, 0, child); child.parent = this; this.handleAddChild(child, existChildIndex + 1); child.onAttached(this); return true; } return false; }; BaseComponent.prototype.handleAddChild = function (child, index) { throw new Error("Not implement!"); }; BaseComponent.prototype.removeChild = function (child) { var childIndex = this.children.indexOf(child); if (childIndex < 0) return false; this.children.splice(childIndex, 1); this.handleRemoveChild(child, childIndex); child.parent = undefined; child.onDetached(this); return true; }; BaseComponent.prototype.clearChild = function () { while (this.children.length > 0) { this.removeChild(this.children[0]); } }; BaseComponent.prototype.handleRemoveChild = function (child, index) { throw new Error("Not implement!"); }; BaseComponent.prototype.setEvent = function (key, value) { this.events[key] = value; this.on(key, value); }; BaseComponent.prototype.removeEvent = function (key) { this.events[key] = undefined; delete this.events[key]; this.off(key, value); }; /* harmony default export */ var core_BaseComponent = (BaseComponent); // CONCATENATED MODULE: ./js/core/ScalableComponent.js var ScalableComponent_ = FCore._; function ScalableComponent() { core_BaseComponent.call(this); } Object.defineProperties(ScalableComponent.prototype, Object.getOwnPropertyDescriptors(core_BaseComponent.prototype)); ScalableComponent.prototype.constructor = ScalableComponent; ScalableComponent.prototype.tag = "ScalableComponent"; ScalableComponent.prototype.SUPPORT_STYLE_NAMES = ['width', 'height', 'top', 'left', 'right', 'top', 'bottom']; ScalableComponent.prototype.preInit = function () { this.hAlign = 'left'; this.vAlign = 'top'; this.style.left = 0; this.style.right = 0; this.style.top = 0; this.style.bottom = 0; this.style.height = 30; this.style.width = 69; }; ScalableComponent.prototype.handleStyleWidth = function (value) { core_BaseComponent.prototype.handleStyleWidth.call(this, this.value); if (this.style.hAlign != 'fixed') this.view.addStyle('width', value + 'px'); }; ScalableComponent.prototype.handleStyleHeight = function (value) { core_BaseComponent.prototype.handleStyleWidth.call(this, this.value); if (this.style.vAlign != 'fixed') this.view.addStyle('height', value + 'px'); }; ScalableComponent.prototype.handleStyleHAlign = function (value) { core_BaseComponent.prototype.handleStyleHAlign.call(this, value); if (value != 'fixed') { this.view.addStyle('width', this.style.width + 'px'); } else { this.view.removeStyle('width'); } }; ScalableComponent.prototype.handleStyleVAlign = function (value) { core_BaseComponent.prototype.handleStyleVAlign.call(this, value); if (value != 'fixed') { this.view.addStyle('height', this.style.height + 'px'); } else { this.view.removeStyle('height'); } }; ScalableComponent.prototype.getAceptStyleNames = function () { var ac = this.anchor.getAceptStyleNames(); if (this.style.vAlign != 'fixed') ac.height = true; if (this.style.hAlign != 'fixed') ac.width = true; return ac; }; /* harmony default export */ var core_ScalableComponent = (ScalableComponent); // CONCATENATED MODULE: ./js/components/TextInput.js var TextInput_ = FCore._; function TextInput() { core_ScalableComponent.call(this); } Object.defineProperties(TextInput.prototype, Object.getOwnPropertyDescriptors(core_ScalableComponent.prototype)); TextInput.prototype.constructor = TextInput; TextInput.prototype.tag = "TextInput"; TextInput.prototype.menuIcon = "span.mdi.mdi-textbox"; TextInput.prototype.SUPPORT_ATTRIBUTE_NAMES = ['value']; TextInput.prototype.SUPPORT_EVENT_NAMES = ['change']; TextInput.prototype.onCreated = function () { core_ScalableComponent.prototype.onCreated.call(this); var self = this; this.view.on('keyup', function () { var lastValue = self.attributes.value; if (this.value != lastValue) { self.attributes.value = this.value; self.emit('change', this.value, self); } }); }; TextInput.prototype.render = function () { return TextInput_('input[type="text"]'); }; TextInput.prototype.handleAttributeValue = function (value) { this.view.value = value; }; /* harmony default export */ var components_TextInput = (TextInput); // CONCATENATED MODULE: ./js/layouts/RelativeLayout.js var RelativeLayout_ = FCore._; function RelativeLayout() { core_ScalableComponent.call(this); } Object.defineProperties(RelativeLayout.prototype, Object.getOwnPropertyDescriptors(core_ScalableComponent.prototype)); RelativeLayout.prototype.constructor = RelativeLayout; RelativeLayout.prototype.tag = 'RelativeLayout'; RelativeLayout.prototype.menuIcon = 'span.mdi.mdi-relative-scale'; RelativeLayout.prototype.TOP_CLASS_NAME = 'as-relative-layout'; RelativeLayout.prototype.SUPPORT_STYLE_NAMES = ['width', 'height']; //, 'left', 'right', 'top', 'bottom']; RelativeLayout.prototype.preInit = function () { core_ScalableComponent.prototype.preInit.call(this); this.style.vAlign = 'fixed'; this.style.hAlign = 'fixed'; }; RelativeLayout.prototype.getAnchorBoxConstructor = function () { return anchors_RelativeAnchor; }; RelativeLayout.prototype.render = function () { return RelativeLayout_({ "class": this.TOP_CLASS_NAME }); }; RelativeLayout.prototype.handleAddChild = function (child, index) { var anchor = new anchors_RelativeAnchor(); this.view.addChild(anchor.view); anchor.attachChild(child); }; RelativeLayout.prototype.handleRemoveChild = function (child, index) { var anchor = child.anchor; anchor.detachChild(); anchor.view.remove(); }; /* harmony default export */ var layouts_RelativeLayout = (RelativeLayout); // CONCATENATED MODULE: ./js/core/Assembler.js function _typeof(obj) { 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 Assembler() { this.constructors = {}; } ; Assembler.prototype.build = function (data) { var construction = this.constructors[data.tag]; if (construction == undefined) throw new Error("undefined construction " + data.tag); var res = new construction(); var style = data.style; if (_typeof(style) == 'object') for (var styleName in style) { res.setStyle(styleName, style[styleName]); } var attributes = data.attributes; if (_typeof(attributes) == 'object') for (var attributeName in attributes) { res.setAttribute(attributeName, attributes[attributeName]); } var events = data.events; if (_typeof(events) == 'object') for (var eventName in events) { res.setEvent(eventName, events[eventName]); } var children = data.children; if (children && children.length > 0) { for (var i = 0; i < children.length; ++i) { var child = this.build(children[i]); res.addChild(child); } } return res; }; Assembler.prototype.addConstructor = function (arg0, arg1) { if (typeof arg0 == 'function') { var name = arg0.prototype.tag || arg0.name; this.constructors[name] = arg0; } else if (typeof arg0 == 'string') { this.constructors[arg0] = arg1; } else { throw new Error('Invalid params'); } }; Assembler.prototype.removeConstructor = function (arg0, arg1) { if (typeof arg0 == 'function') { var name = arg0.prototype.tag || arg0.name; this.constructors[name] = undefined; delete this.constructors[name]; } else if (typeof arg0 == 'string' && (this.constructors[arg0] == arg1 || arg1 == undefined)) { delete this.constructors[arg0]; } }; Assembler.prototype.addComponent = function (name, construction) { this.addConstructor(name, construction); }; Assembler.prototype.removeComponent = function (name, construction) { this.removeConstructor(name, construction); }; /* harmony default export */ var core_Assembler = (Assembler); // CONCATENATED MODULE: ./js/components/DateInput.js var DateInput_ = FCore._; function DateInput() { core_ScalableComponent.call(this); } Object.defineProperties(DateInput.prototype, Object.getOwnPropertyDescriptors(core_ScalableComponent.prototype)); DateInput.prototype.constructor = DateInput; DateInput.prototype.tag = "DateInput"; DateInput.prototype.menuIcon = "span.mdi.mdi-calendar-edit"; DateInput.prototype.SUPPORT_STYLE_NAMES = ['top', 'left', 'right', 'top', 'bottom', 'width', 'height']; DateInput.prototype.SUPPORT_ATTRIBUTE_NAMES = ['value']; DateInput.prototype.SUPPORT_EVENT_NAMES = ['change']; DateInput.prototype.render = function () { return DateInput_('calendarinput'); }; DateInput.prototype.onCreated = function () { core_ScalableComponent.prototype.onCreated.call(this); var self = this; this.view.on('change', function (event) { self.emit('change', this.value, self); }); }; DateInput.prototype.handleAttributeValue = function (value) { this.view.value = value; }; /* harmony default export */ var components_DateInput = (DateInput); // CONCATENATED MODULE: ./node_modules/absol/src/AppPattern/Context.js function Context (){ this.state = "CREATE"; /** * @type {Context} */ this.parent = null; this.children = []; } Context.prototype.appendChild = function(){ for (var i = 0; i < arguments.length; ++i){ this.children.push(arguments[i]); } }; Context.prototype.removeChild = function(child){ var temp = this.children; this.children = []; for (var i = 0; i< this.children.length; ++i){ if (temp[i] == child){ } else{ this.children.push(temp[i]); } } }; Context.prototype.getView = function () { throw new Error("Not Implement!"); }; /** * @returns {*} */ Context.prototype.getContext = function(key){ return this.parent.getContextManager().get(key); }; /** * @returns {ContextManager} */ Context.prototype.getContextManager = function(){ return this.parent.getContextManager(); }; /** * @param {Application} */ Context.prototype.attach = function (parent) { //stop before attach to new context this.stop(); /** * @type {Application} */ this.parent = parent; this.state = "ATTACHED"; this.onAttached && this.onAttached(); }; Context.prototype.detach = function () { this.stop(); this.state = "DETACHED"; this.onDetached && this.onDetached(); this.parent = null; }; Context.prototype.pause = function () { if (this.state.match(/RUNNING/)) { this.state = "PAUSE"; this.onPause && this.onPause(); } else { console.warn(this, "NOT RUNNING"); } }; Context.prototype.resume = function () { if (!this.state.match(/STANDBY||PAUSE/)) { console.error(this, 'NOT READY!'); return; } this.state = "RUNNING"; this.onResume && this.onResume(); }; Context.prototype.start = function () { if (this.state.match(/DIE/)) { console.error(this, 'DIED!'); return; } if (this.state.match(/RUNNING/)) return; if (this.state.match(/STOP|CREATE|ATTACHED/)) { this.state = "STANDBY"; this.onStart && this.onStart(); } if (this.state.match(/STANDBY|PAUSE/)) { this.resume(); } }; Context.prototype.stop = function () { if (this.state.match(/STOP|DIE|CREATE|ATTACHED|DETACHED/)) return; if (this.state.match(/RUNNING/)) this.pause(); this.state = "STOP"; this.onStop && this.onStop(); }; Context.prototype.destroy = function () { if (this.state.match(/DIE/)) return; if (!this.state.match(/RUNNING||PAUSE/)) this.stop(); this.state = "DIE"; this.onDestroy && this.onDestroy(); }; /* harmony default export */ var AppPattern_Context = (Context); // EXTERNAL MODULE: ./css/resizebox.css var resizebox = __webpack_require__(90); // CONCATENATED MODULE: ./js/dom/ResizeBox.js var ResizeBox_ = FCore._; var ResizeBox_$ = FCore.$; function ResizeBox() { var res = ResizeBox_({ "class": 'as-resize-box', extendEvent: ['beginmove', 'endmove', 'moving'], child: { "class": 'as-resize-box-body', child: ['.as-resize-box-dot.left-top', '.as-resize-box-dot.top', '.as-resize-box-dot.right-top', '.as-resize-box-dot.right', '.as-resize-box-dot.right-bottom', '.as-resize-box-dot.bottom', '.as-resize-box-dot.left-bottom', '.as-resize-box-dot.left'] } }); res.eventHandler = OOP["a" /* default */].bindFunctions(res, ResizeBox.eventHandler); res.on('mousedown', res.eventHandler.mouseDownBody); res._lastOptionNames = undefined; return res; } ResizeBox.eventHandler = {}; ResizeBox.eventHandler.mouseDownBody = function (event) { event.preventDefault(); this._optionNames = event.target.attr('class').match(/body|left|top|right|bottom/g); var option = this._optionNames.reduce(function (ac, key) { ac[key] = true; return ac; }, {}); var beginMoveEvent = { clientX: event.clientX, clientY: event.clientY, target: this, originEvent: event, prevented: false, preventDefault: function preventDefault() { this.prevented = true; }, option: option, type: 'beginmove' }; this.emit('beginmove', beginMoveEvent); if (beginMoveEvent.prevented) return; ResizeBox_$(document.body).on('mousemove', this.eventHandler.mouseMoveBody).on('mouseup', this.eventHandler.mouseFinishBody).on('mouseleave', this.eventHandler.mouseFinishBody).addClass('as-resize-box-overiding').addClass(this._optionNames.join('-')); }; ResizeBox.eventHandler.mouseMoveBody = function (event) { event.preventDefault(); var beginMoveEvent = { clientX: event.clientX, clientY: event.clientY, target: this, originEvent: event, type: 'moving' }; this.emit('moving', beginMoveEvent); }; ResizeBox.eventHandler.mouseFinishBody = function (event) { event.preventDefault(); ResizeBox_$(document.body).off('mousemove', this.eventHandler.mouseMoveBody).off('mouseup', this.eventHandler.mouseFinishBody).off('mouseleave', this.eventHandler.mouseFinishBody).removeClass('as-resize-box-overiding').removeClass(this._optionNames.join('-')); ; var endMoveEvent = { clientX: event.clientX, clientY: event.clientY, target: this, originEvent: event, type: 'endmove' }; this.emit('endmove', endMoveEvent); this._optionNames = undefined; }; FCore.install('resizebox', ResizeBox); /* harmony default export */ var dom_ResizeBox = (ResizeBox); // EXTERNAL MODULE: ./css/hline.css var hline = __webpack_require__(92); // CONCATENATED MODULE: ./js/dom/HLine.js var HLine_$ = FCore.$; var HLine_ = FCore._; function HLine() { var res = HLine_({ "class": 'as-hline', child: { "class": 'as-hline-body', child: ['.as-hline-dot.left', '.as-hline-dot.right'] } }); return res; } FCore.install('hline', HLine); /* harmony default export */ var dom_HLine = (HLine); // EXTERNAL MODULE: ./css/vline.css var vline = __webpack_require__(94); // CONCATENATED MODULE: ./js/dom/VLine.js var VLine_$ = FCore.$; var VLine_ = FCore._; function VLine() { var res = VLine_({ "class": 'as-vline', child: { "class": 'as-vline-body', child: ['.as-vline-dot.top', '.as-vline-dot.bottom'] } }); return res; } FCore.install('vline', VLine); /* harmony default export */ var dom_VLine = (VLine); // EXTERNAL MODULE: ./css/hruler.css var hruler = __webpack_require__(96); // CONCATENATED MODULE: ./js/dom/HRuler.js var HRuler_ = FCore._; var HRuler_$ = FCore.$; function HRuler() { var res = HRuler_({ "class": 'as-hruler' }); res.$attachHook = HRuler_('attachhook').on('error', function () { this.updateSize = res.update.bind(res); Dom["a" /* default */].addToResizeSystem(this); this.updateSize(); }).addTo(res); res.$lines = []; res.$numbers = []; res._viewingNumberCount = 0; res._viewingLineCount = 0; res._spacing = 10; res._major = 10; return res; } HRuler.prototype.update = function () { var fontSize = this.getFontSize(); var bound = this.getBoundingClientRect(); var lineCount = Math.floor((bound.width - 2) / this._spacing) + 1; //2 is border-size while (this.$lines.length < lineCount) { this.$lines.push(HRuler_('.as-hruler-line')); } var i; var lineElt; for (i = 0; i < lineCount; ++i) { lineElt = this.$lines[i]; if (i % this._major == 0) { lineElt.addClass('major'); } else { lineElt.removeClass('major'); } lineElt.addStyle('left', this._spacing * i - 0.5 + 'px'); } while (this._viewingLineCount < lineCount) { this.$lines[this._viewingLineCount++].addTo(this); } while (this._viewingLineCount > lineCount) { this.$lines[--this._viewingLineCount].remove(); } var numberCount = Math.floor(lineCount / this.major); while (this.$numbers.length < numberCount) { this.$numbers.push(HRuler_('.as-hruler-major-number')); } var numberElt; var number; for (i = 0; i < numberCount; ++i) { number = i * this._spacing * this._major; numberElt = this.$numbers[i]; if (numberElt.__cacheNumber__ != number) { numberElt.__cacheNumber__ = number; numberElt.innerHTML = number + ''; } numberElt.addStyle('left', this._major * this._spacing * i - 0.7 * 2.5 * fontSize + 'px'); } while (this._viewingNumberCount < numberCount) { this.$numbers[this._viewingNumberCount++].addTo(this); } while (this._viewingNumberCount > numberCount) { this.$numbers[--this._viewingNumberCount].remove(); } }; HRuler.property = {}; HRuler.property.major = { set: function set(value) { if (value > 0) { this._major = value; this.update(); } }, get: function get() { return this._major; } }; HRuler.property.spacing = { set: function set(value) { if (value > 0) { this._spacing = value; this.update(); } }, get: function get() { return this._spacing; } }; FCore.install('hruler', HRuler); /* harmony default export */ var dom_HRuler = (HRuler); // EXTERNAL MODULE: ./css/vruler.css var vruler = __webpack_require__(98); // CONCATENATED MODULE: ./js/dom/VRuler.js var VRuler_ = FCore._; var VRuler_$ = FCore.$; function VRuler() { var res = VRuler_({ "class": 'as-vruler' }); res.$attachHook = VRuler_('attachhook').on('error', function () { this.updateSize = res.update.bind(res); Dom["a" /* default */].addToResizeSystem(this); this.updateSize(); }).addTo(res); res.$lines = []; res.$numbers = []; res._viewingNumberCount = 0; res._viewingLineCount = 0; res._spacing = 10; res._major = 10; return res; } VRuler.prototype.update = function () { var fontSize = this.getFontSize(); var bound = this.getBoundingClientRect(); var lineCount = Math.floor((bound.height - 2) / this._spacing) + 1; //2 is border-size while (this.$lines.length < lineCount) { this.$lines.push(VRuler_('.as-vruler-line')); } var i; var lineElt; for (i = 0; i < lineCount; ++i) { lineElt = this.$lines[i]; if (i % this._major == 0) { lineElt.addClass('major'); } else { lineElt.removeClass('major'); } lineElt.addStyle('top', this._spacing * i - 0.5 + 'px'); } while (this._viewingLineCount < lineCount) { this.$lines[this._viewingLineCount++].addTo(this); } while (this._viewingLineCount > lineCount) { this.$lines[--this._viewingLineCount].remove(); } var numberCount = Math.floor(lineCount / this.major); while (this.$numbers.length < numberCount) { this.$numbers.push(VRuler_('.as-vruler-major-number')); } var numberElt; var number; for (i = 0; i < numberCount; ++i) { number = i * this._spacing * this._major; numberElt = this.$numbers[i]; if (numberElt.__cacheNumber__ != number) { numberElt.__cacheNumber__ = number; numberElt.innerHTML = number + ''; } numberElt.addStyle('top', this._major * this._spacing * i - 0.7 * 0.5 * fontSize + 'px'); } while (this._viewingNumberCount < numberCount) { this.$numbers[this._viewingNumberCount++].addTo(this); } while (this._viewingNumberCount > numberCount) { this.$numbers[--this._viewingNumberCount].remove(); } }; VRuler.property = {}; VRuler.property.major = { set: function set(value) { if (value > 0) { this._major = value; this.update(); } }, get: function get() { return this._major; } }; VRuler.property.spacing = { set: function set(value) { if (value > 0) { this._spacing = value; this.update(); } }, get: function get() { return this._spacing; } }; FCore.install('vruler', VRuler); /* harmony default export */ var dom_VRuler = (VRuler); // CONCATENATED MODULE: ./js/editor/LayoutEditor.js function LayoutEditor_typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { LayoutEditor_typeof = function _typeof(obj) { return typeof obj; }; } else { LayoutEditor_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return LayoutEditor_typeof(obj); } var LayoutEditor_ = FCore._; var LayoutEditor_$ = FCore.$; function LayoutEditor() { AppPattern_Context.call(this); core_Assembler.call(this); this.addConstructor('RelativeLayout', layouts_RelativeLayout); this.rootLayout = null; this.snapshots = []; this.snapshotsIndex = 0; } Object.defineProperties(LayoutEditor.prototype, Object.getOwnPropertyDescriptors(AppPattern_Context.prototype)); Object.defineProperties(LayoutEditor.prototype, Object.getOwnPropertyDescriptors(core_Assembler.prototype)); LayoutEditor.prototype.constructor = LayoutEditor; LayoutEditor.prototype.getView = function () { if (this.$view) return this.$view; this.$view = LayoutEditor_({ "class": 'as-layout-editor', child: ['.as-layout-editor-background', '.as-layout-editor-layout-contaner', { "class": 'as-layout-editor-forceground', extendEvent: 'contextmenu', on: { contextmenu: this.ev_contextMenuForceGround.bind(this) } }, { "class": 'as-layout-editor-hrule-container', child: 'hruler' }, { "class": 'as-layout-editor-vrule-container', child: 'vruler' }, { "class": 'as-layout-editor-new-component-menu-trigger' }] }); var self = this; this.$attachHook = LayoutEditor_('attachhook').on('error', function () { this.updateSize = self.updateSize.bind(self); Dom["a" /* default */].addToResizeSystem(this); self.updateSize(); }).addTo(this.$view); this.$contextCaptor = LayoutEditor_('contextcaptor').addTo(this.$view).attachTo(this.$view); this.$componentMenuTrigger = LayoutEditor_$('.as-layout-editor-new-component-menu-trigger', this.$view).on('click', this.getMenuComponentItems.bind(this), true); //to update this._componentMenuOption = js_QuickMenu.showWhenClick(this.$componentMenuTrigger, { items: this.getMenuComponentItems() }, 'auto', this.ev_menuComponent.bind(this)); this.$layoutCtn = LayoutEditor_$('.as-layout-editor-layout-contaner', this.$view); this.$background = LayoutEditor_$('.as-layout-editor-background', this.$view); this.$forceground = LayoutEditor_$('.as-layout-editor-forceground', this.$view).on('click', this.ev_clickForceground.bind(this)); this.$resizeBox = LayoutEditor_('resizebox').on('beginmove', this.ev_beginMove.bind(this)).on('moving', this.ev_moving.bind(this)); this.$leftAlignLine = LayoutEditor_('hline'); this.$rightAlignLine = LayoutEditor_('hline'); this.$topAlignLine = LayoutEditor_('vline'); this.$bottomAlignLine = LayoutEditor_('vline'); return this.$view; }; LayoutEditor.prototype.ev_beginMove = function (event) { var bound = this.$forceground.getBoundingClientRect(); this._movingStateData = { x0: event.clientX - bound.left, y0: event.clientY - bound.top, dx: 0, dy: 0, option: event.option, aceptStyleNames: this._activatedCompnent.getAceptStyleNames(), style0: Object.assign({}, this._activatedCompnent.style), comp: this._activatedCompnent }; }; LayoutEditor.prototype.ev_moving = function (event) { var movingData = this._movingStateData; var bound = this.$forceground.getBoundingClientRect(); var x = event.clientX - bound.left; var y = event.clientY - bound.top; movingData.dx = x - movingData.x0; movingData.dy = y - movingData.y0; //TODO; size may be invalid if (movingData.aceptStyleNames.left && (movingData.option.left || movingData.option.body)) { movingData.comp.setStyle('left', movingData.style0.left + movingData.dx); } if (movingData.aceptStyleNames.right && (movingData.option.right || movingData.option.body)) { movingData.comp.setStyle('right', movingData.style0.right - movingData.dx); } if (movingData.aceptStyleNames.width) { if (movingData.option.left) { if (!movingData.aceptStyleNames.left && !movingData.aceptStyleNames.right) { movingData.comp.setStyle('width', Math.max(0, movingData.style0.width - movingData.dx * 2)); //center align } else { movingData.comp.setStyle('width', Math.max(movingData.style0.width - movingData.dx)); } } if (movingData.option.right) { if (!movingData.aceptStyleNames.left && !movingData.aceptStyleNames.right) { movingData.comp.setStyle('width', Math.max(0, movingData.style0.width + movingData.dx * 2)); //center align } else { movingData.comp.setStyle('width', Math.max(0, movingData.style0.width + movingData.dx)); } } } if (movingData.aceptStyleNames.top && (movingData.option.top || movingData.option.body)) { movingData.comp.setStyle('top', movingData.style0.top + movingData.dy); } if (movingData.aceptStyleNames.bottom && (movingData.option.bottom || movingData.option.body)) { movingData.comp.setStyle('bottom', movingData.style0.bottom - movingData.dy); } if (movingData.aceptStyleNames.height) { if (movingData.option.top) { if (!movingData.aceptStyleNames.top && !movingData.aceptStyleNames.bottom) { movingData.comp.setStyle('height', Math.max(0, movingData.style0.height - movingData.dy * 2)); } else { movingData.comp.setStyle('height', Math.max(0, movingData.style0.height - movingData.dy)); } } if (movingData.option.bottom) { if (!movingData.aceptStyleNames.top && !movingData.aceptStyleNames.bottom) { movingData.comp.setStyle('height', Math.max(0, movingData.style0.height + movingData.dy * 2)); } else { movingData.comp.setStyle('height', Math.max(0, movingData.style0.height + movingData.dy)); } } } this.updateAnchorPosition(); }; LayoutEditor.prototype.ev_endMoving = function (event) { this._movingStateData = undefined; }; LayoutEditor.prototype.ev_clickForceground = function (event) { if (event.target != this.$forceground) return; var hitComponent; function visit(node) { var bound = node.view.getBoundingClientRect(); if (bound.left <= event.clientX && bound.right >= event.clientX && bound.top <= event.clientY && bound.bottom >= event.clientY) { hitComponent = node; } if (node.children) node.children.forEach(visit); } visit(this.rootLayout); if (hitComponent) { this.activeComponent(hitComponent); } }; LayoutEditor.prototype.ev_contextMenuForceGround = function (event) { this.ev_clickForceground(event); var self = this; var activatedComponent = this._activatedCompnent; if (activatedComponent) { if (activatedComponent == this.rootLayout) { event.showContextMenu({ items: [{ text: 'New', icon: 'span.mdi.mdi-plus', cmd: 'new' // items: self.getMenuComponentItems() }, { icon: 'span.mdi.mdi-eraser', text: 'Clear', cmd: 'clear' }] }, function (menuEvent) { var cmd = menuEvent.menuItem.cmd; switch (cmd) { case 'clear': self.clearRootLayout(); break; case 'new': setTimeout(self.$componentMenuTrigger.click.bind(self.$componentMenuTrigger), 10); break; } }); } else { event.showContextMenu({ items: [{ text: 'Edit Attributes', icon: 'span.mdi.mdi-table-edit', cmd: 'attributes-edit' // items: self.getMenuComponentItems() }, { text: 'Edit Style', icon: 'span.mdi.mdi-square-edit-outline', cmd: 'style-edit' // items: self.getMenuComponentItems() }, { icon: 'span.mdi.mdi-delete-variant', text: 'Delete', cmd: 'delete', extendStyle: { color: 'red' } }] }, function (menuEvent) { var cmd = menuEvent.menuItem.cmd; switch (cmd) { case 'delete': activatedComponent.parent.removeChild(activatedComponent); self.activeComponent(undefined); break; case 'attributes-edit': break; } }); } } }; LayoutEditor.prototype.ev_menuComponent = function (item) { var componentConstructor = item.componentConstructor; var newComponent = new componentConstructor(); this.rootLayout.addChild(newComponent); this.activeComponent(newComponent); }; LayoutEditor.prototype.clearRootLayout = function () { this._activatedCompnent = undefined; this.rootLayout.clearChild(); this.updateAnchor(); }; LayoutEditor.prototype.activeComponent = function (comp) { this._activatedCompnent = comp; this.updateAnchor(); }; LayoutEditor.prototype.updateAnchor = function () { var comp = this._activatedCompnent; if (comp && comp != this.rootLayout) { this.$resizeBox.addTo(this.$forceground); var anchorAceptStyle = comp.anchor.getAceptStyleNames(); if (anchorAceptStyle.top) { this.$topAlignLine.addTo(this.$forceground); } else { this.$topAlignLine.remove(); } if (anchorAceptStyle.bottom) { this.$bottomAlignLine.addTo(this.$forceground); } else { this.$bottomAlignLine.remove(); } if (anchorAceptStyle.left) { this.$leftAlignLine.addTo(this.$forceground); } else { this.$leftAlignLine.remove(); } if (anchorAceptStyle.right) { this.$rightAlignLine.addTo(this.$forceground); } else { this.$rightAlignLine.remove(); } } else { this.$resizeBox.remove(); this.$leftAlignLine.remove(); this.$rightAlignLine.remove(); this.$topAlignLine.remove(); this.$bottomAlignLine.remove(); } this.updateAnchorPosition(); }; LayoutEditor.prototype.updateAnchorPosition = function () { var comp = this._activatedCompnent; if (comp && comp != this.rootLayout) { var bound = this.$layoutCtn.getBoundingClientRect(); var compBound = comp.view.getBoundingClientRect(); this.$resizeBox.addStyle({ left: compBound.left - bound.left + 'px', top: compBound.top - bound.top + 'px', width: compBound.width + 'px', height: compBound.height + 'px' }).addTo(this.$forceground); if (this.$leftAlignLine.parentNode) this.$leftAlignLine.addStyle({ left: '0', width: compBound.left - bound.left + 'px', top: compBound.top - bound.top + compBound.height / 2 + 'px' }); if (this.$rightAlignLine.parentNode) this.$rightAlignLine.addStyle({ right: '0', width: bound.right - compBound.right + 'px', top: compBound.top - bound.top + compBound.height / 2 + 'px' }); if (this.$topAlignLine.parentNode) this.$topAlignLine.addStyle({ top: '0', height: compBound.top - bound.top + 'px', left: compBound.left - bound.left + compBound.width / 2 + 'px' }); if (this.$bottomAlignLine.parentNode) this.$bottomAlignLine.addStyle({ bottom: '0', height: bound.bottom - compBound.bottom + 'px', left: compBound.left - bound.left + compBound.width / 2 + 'px' }); } }; LayoutEditor.prototype.updateSize = function () { this.updateAnchorPosition(); }; LayoutEditor.prototype.setData = function (data) { var self = this; function visit(node) { var constructor = self.constructors[node.tag]; var comp = new constructor(); var style = node.style; if (LayoutEditor_typeof(style) == 'object') for (var styleName in style) { comp.setStyle(styleName, style[styleName]); } var attributes = node.attributes; if (LayoutEditor_typeof(attributes) == 'object') for (var attributeName in attributes) { comp.setAttribute(attributeName, attributes[attributeName]); } if (node.children && node.children.length > 0) { node.children.forEach(function (cNode) { comp.addChild(visit(cNode)); }); } return comp; } this.rootLayout = visit(data); this.$layoutCtn.addChild(this.rootLayout.view); }; LayoutEditor.prototype.getData = function (data) {}; LayoutEditor.prototype.getMenuComponentItems = function () { var self = this; this._menuComponentItems = this._menuComponentItems || []; this._menuComponentItems.splice(0, this._menuComponentItems.length); var items = Object.keys(this.constructors).map(function (key) { var constructor = self.constructors[key]; return { text: key, icon: constructor.prototype.menuIcon, cmd: 'component', componentConstructor: constructor, componentTag: key }; }); this._menuComponentItems.push.apply(this._menuComponentItems, items); return this._menuComponentItems; }; /* harmony default export */ var editor_LayoutEditor = (LayoutEditor); // CONCATENATED MODULE: ./index.js /* harmony default export */ var index_0 = ({ LayoutEditor: editor_LayoutEditor, RelativeAnchor: anchors_RelativeAnchor, BaseComponent: core_BaseComponent, TextInput: components_TextInput, RelativeLayout: layouts_RelativeLayout, Assembler: core_Assembler, DateInput: components_DateInput, core: FCore }); // CONCATENATED MODULE: ./dev.js window.absol = window.absol || {}; window.absol.form = index_0; window.absol._ = window.absol._ || FCore._; window.absol.$ = window.absol._ || FCore.$; /***/ }) /******/ ]);