UNPKG

luisa-vue3

Version:

Vue Low Code - VUE Renderer for FIGMA designs. Turn your Figma or Quant-UX design into VUE, or create re-usable designlets

19,651 lines 760 kB
module.exports =
/******/ (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 = "fb15");
/******/ })
/************************************************************************/
/******/ ({

/***/ "02df":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-textarea{border:1px solid #333;resize:none;-webkit-transition:all .2s;transition:all .2s}.qux-textarea:focus{outline:none}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "0393":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Container_vue_vue_type_style_index_0_id_1feccc0d_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("46b8");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Container_vue_vue_type_style_index_0_id_1feccc0d_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Container_vue_vue_type_style_index_0_id_1feccc0d_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "0488":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-rating{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.qux-rating .mdi{cursor:pointer}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "04be":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Switch_vue_vue_type_style_index_0_id_4ef03930_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a1bb");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Switch_vue_vue_type_style_index_0_id_4ef03930_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Switch_vue_vue_type_style_index_0_id_4ef03930_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "04c7":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Icon_vue_vue_type_style_index_0_id_2359caee_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("80db");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Icon_vue_vue_type_style_index_0_id_2359caee_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Icon_vue_vue_type_style_index_0_id_2359caee_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "0865":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_UploadPreview_vue_vue_type_style_index_0_id_3d974a76_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1806");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_UploadPreview_vue_vue_type_style_index_0_id_3d974a76_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_UploadPreview_vue_vue_type_style_index_0_id_3d974a76_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "0974":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Stepper_vue_vue_type_style_index_0_id_5838e59b_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ab5c");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Stepper_vue_vue_type_style_index_0_id_5838e59b_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Stepper_vue_vue_type_style_index_0_id_5838e59b_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "109d":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_ComponentSet_vue_vue_type_style_index_0_id_1ea9ebf0_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4674");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_ComponentSet_vue_vue_type_style_index_0_id_1ea9ebf0_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_ComponentSet_vue_vue_type_style_index_0_id_1ea9ebf0_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "10c2":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-vector{background-size:100% 100%}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "140a":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-repeater{overflow:auto}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "1473":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("780a");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("02e5c2bf", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "150c":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("02df");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("b5ff05c4", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "1806":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("ffe2");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("f6762724", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "1916":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("b9c6");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("4bf79dce", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "1c90":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DropDown_vue_vue_type_style_index_0_id_6ba79bc6_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("42be");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DropDown_vue_vue_type_style_index_0_id_6ba79bc6_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DropDown_vue_vue_type_style_index_0_id_6ba79bc6_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "1d09":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-stepper{display:inline-block;border:1px solid #333;color:#333;display:-webkit-box;display:-ms-flexbox;display:flex}.qux-stepper .qux-stepper-minus{width:50%;position:relative;text-align:center}.qux-stepper .qux-stepper-plus{width:calc(50% - 1px);border-left:1px solid #333;position:relative;text-align:center}.qux-stepper .qux-stepper-label{position:absolute;top:45%;left:0;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "1dec":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("8ff5");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("0ff076d0", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "2221":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("6ebc");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("025e1495", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "24fb":
/***/ (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
// eslint-disable-next-line func-names
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 ".concat(item[2], " {").concat(content, "}");
      }

      return content;
    }).join('');
  }; // import a list of modules into the list
  // eslint-disable-next-line func-names


  list.i = function (modules, mediaQuery, dedupe) {
    if (typeof modules === 'string') {
      // eslint-disable-next-line no-param-reassign
      modules = [[null, modules, '']];
    }

    var alreadyImportedModules = {};

    if (dedupe) {
      for (var i = 0; i < this.length; i++) {
        // eslint-disable-next-line prefer-destructuring
        var id = this[i][0];

        if (id != null) {
          alreadyImportedModules[id] = true;
        }
      }
    }

    for (var _i = 0; _i < modules.length; _i++) {
      var item = [].concat(modules[_i]);

      if (dedupe && alreadyImportedModules[item[0]]) {
        // eslint-disable-next-line no-continue
        continue;
      }

      if (mediaQuery) {
        if (!item[2]) {
          item[2] = mediaQuery;
        } else {
          item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
        }
      }

      list.push(item);
    }
  };

  return list;
};

function cssWithMappingToString(item, useSourceMap) {
  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring

  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=".concat(cssMapping.sourceRoot || '').concat(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,".concat(base64);
  return "/*# ".concat(data, " */");
}

/***/ }),

/***/ "27df":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("cc39");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("7f0276aa", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "2919":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_CheckBox_vue_vue_type_style_index_0_id_d3268f34_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("27df");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_CheckBox_vue_vue_type_style_index_0_id_d3268f34_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_CheckBox_vue_vue_type_style_index_0_id_d3268f34_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "32b2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Camera_vue_vue_type_style_index_0_id_44f3d424_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ca12");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Camera_vue_vue_type_style_index_0_id_44f3d424_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Camera_vue_vue_type_style_index_0_id_44f3d424_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "35ed":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DynamicContainer_vue_vue_type_style_index_0_id_5db800f7_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2221");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DynamicContainer_vue_vue_type_style_index_0_id_5db800f7_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DynamicContainer_vue_vue_type_style_index_0_id_5db800f7_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "397d":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("f761");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("2273055d", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "39c2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Label_vue_vue_type_style_index_0_id_0d034c6a_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("bac5");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Label_vue_vue_type_style_index_0_id_0d034c6a_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Label_vue_vue_type_style_index_0_id_0d034c6a_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "3ea0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_TextArea_vue_vue_type_style_index_0_id_54ddff53_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("150c");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_TextArea_vue_vue_type_style_index_0_id_54ddff53_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_TextArea_vue_vue_type_style_index_0_id_54ddff53_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "3f27":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_IconToggle_vue_vue_type_style_index_0_id_ee87e65e_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f0d9");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_IconToggle_vue_vue_type_style_index_0_id_ee87e65e_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_IconToggle_vue_vue_type_style_index_0_id_ee87e65e_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "42be":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("879b");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("9696d4ea", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "435a":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_TextBox_vue_vue_type_style_index_0_id_3c21fda5_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("458e");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_TextBox_vue_vue_type_style_index_0_id_3c21fda5_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_TextBox_vue_vue_type_style_index_0_id_3c21fda5_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "458e":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("ced2");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("386d2354", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "4674":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("bf15");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("25af3204", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "46b8":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("8449");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("a432078c", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "499e":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "default", function() { return /* binding */ addStylesClient; });

// CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/listToStyles.js
/**
 * Translates the list format produced by css-loader into something
 * easier to manipulate.
 */
function listToStyles (parentId, list) {
  var styles = []
  var newStyles = {}
  for (var i = 0; i < list.length; i++) {
    var item = list[i]
    var id = item[0]
    var css = item[1]
    var media = item[2]
    var sourceMap = item[3]
    var part = {
      id: parentId + ':' + i,
      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
}

// CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/addStylesClient.js
/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
  Modified by Evan You @yyx990803
*/



var hasDocument = typeof document !== 'undefined'

if (typeof DEBUG !== 'undefined' && DEBUG) {
  if (!hasDocument) {
    throw new Error(
    'vue-style-loader cannot be used in a non-browser environment. ' +
    "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
  ) }
}

/*
type StyleObject = {
  id: number;
  parts: Array<StyleObjectPart>
}

type StyleObjectPart = {
  css: string;
  media: string;
  sourceMap: ?string
}
*/

var stylesInDom = {/*
  [id: number]: {
    id: number,
    refs: number,
    parts: Array<(obj?: StyleObjectPart) => void>
  }
*/}

var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
var singletonElement = null
var singletonCounter = 0
var isProduction = false
var noop = function () {}
var options = null
var ssrIdKey = 'data-vue-ssr-id'

// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
// tags it will allow on a page
var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())

function addStylesClient (parentId, list, _isProduction, _options) {
  isProduction = _isProduction

  options = _options || {}

  var styles = listToStyles(parentId, list)
  addStylesToDom(styles)

  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) {
      styles = listToStyles(parentId, newList)
      addStylesToDom(styles)
    } else {
      styles = []
    }
    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 /* Array<StyleObject> */) {
  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]))
      }
      if (domStyle.parts.length > item.parts.length) {
        domStyle.parts.length = item.parts.length
      }
    } else {
      var parts = []
      for (var j = 0; j < item.parts.length; j++) {
        parts.push(addStyle(item.parts[j]))
      }
      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
    }
  }
}

function createStyleElement () {
  var styleElement = document.createElement('style')
  styleElement.type = 'text/css'
  head.appendChild(styleElement)
  return styleElement
}

function addStyle (obj /* StyleObjectPart */) {
  var update, remove
  var styleElement = document.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]')

  if (styleElement) {
    if (isProduction) {
      // has SSR styles and in production mode.
      // simply do nothing.
      return noop
    } else {
      // has SSR styles but in dev mode.
      // for some reason Chrome can't handle source map in server-rendered
      // style tags - source maps in <style> only works if the style tag is
      // created and inserted dynamically. So we remove the server rendered
      // styles and inject new ones.
      styleElement.parentNode.removeChild(styleElement)
    }
  }

  if (isOldIE) {
    // use singleton mode for IE9.
    var styleIndex = singletonCounter++
    styleElement = singletonElement || (singletonElement = createStyleElement())
    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
  } else {
    // use multi-style-tag mode in all other cases
    styleElement = createStyleElement()
    update = applyToTag.bind(null, styleElement)
    remove = function () {
      styleElement.parentNode.removeChild(styleElement)
    }
  }

  update(obj)

  return function updateStyle (newObj /* StyleObjectPart */) {
    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 (styleElement, index, remove, obj) {
  var css = remove ? '' : obj.css

  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = replaceText(index, css)
  } else {
    var cssNode = document.createTextNode(css)
    var childNodes = styleElement.childNodes
    if (childNodes[index]) styleElement.removeChild(childNodes[index])
    if (childNodes.length) {
      styleElement.insertBefore(cssNode, childNodes[index])
    } else {
      styleElement.appendChild(cssNode)
    }
  }
}

function applyToTag (styleElement, obj) {
  var css = obj.css
  var media = obj.media
  var sourceMap = obj.sourceMap

  if (media) {
    styleElement.setAttribute('media', media)
  }
  if (options.ssrId) {
    styleElement.setAttribute(ssrIdKey, obj.id)
  }

  if (sourceMap) {
    // https://developer.chrome.com/devtools/docs/javascript-debugging
    // this makes source maps inside style tags work properly in Chrome
    css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
    // http://stackoverflow.com/a/26603875
    css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
  }

  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = css
  } else {
    while (styleElement.firstChild) {
      styleElement.removeChild(styleElement.firstChild)
    }
    styleElement.appendChild(document.createTextNode(css))
  }
}


/***/ }),

/***/ "4b60":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-segment{-webkit-box-pack:stretch;-ms-flex-pack:stretch;justify-content:stretch}.qux-segment,.qux-segment .qux-segment-item{display:-webkit-box;display:-ms-flexbox;display:flex}.qux-segment .qux-segment-item{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%;cursor:pointer;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.qux-segment .qux-segment-item .qux-segment-item-label{display:inline-block;width:100%}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "4b6f":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Spinner_vue_vue_type_style_index_0_id_6878191f_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("aeee");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Spinner_vue_vue_type_style_index_0_id_6878191f_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Spinner_vue_vue_type_style_index_0_id_6878191f_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "4c3b":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-timeline{position:relative}.qux-timeline-line{position:absolute;height:100%;background:#333;width:8px;top:0;left:8px;border-radius:4px}.qux-timeline-element{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.qux-timeline-circle{display:inline-block;border-radius:50%;border-style:solid;width:32px;height:32px;background:#fff;border:2px solid #333}.qux-timeline-label{display:inline-block;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;color:#333;padding-left:8px}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "4cdb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Luisa_vue_vue_type_style_index_0_id_7a806424_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a62f");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Luisa_vue_vue_type_style_index_0_id_7a806424_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Luisa_vue_vue_type_style_index_0_id_7a806424_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "5241":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-toggle{cursor:pointer;-webkit-transition:all .2s;transition:all .2s}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "54ca":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_CheckBoxGroup_vue_vue_type_style_index_0_id_40254c42_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1473");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_CheckBoxGroup_vue_vue_type_style_index_0_id_40254c42_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_CheckBoxGroup_vue_vue_type_style_index_0_id_40254c42_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "58a5":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("4c3b");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("435cdc34", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "5991":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Upload_vue_vue_type_style_index_0_id_0e5fb944_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("aad6");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Upload_vue_vue_type_style_index_0_id_0e5fb944_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Upload_vue_vue_type_style_index_0_id_0e5fb944_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "5ebe":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("6ac4");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("10632dd7", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "6359":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("afc2");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("797b9334", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "6381":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Vector_vue_vue_type_style_index_0_id_32aacd8d_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d2a9");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Vector_vue_vue_type_style_index_0_id_32aacd8d_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Vector_vue_vue_type_style_index_0_id_32aacd8d_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "6ac4":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-radiobox{display:inline-block;overflow:hidden}.qux-radiobox .qux-radiobox-cntr{position:relative;width:100%;height:100%;display:inline-block;vertical-align:middle}.qux-radiobox .qux-radiobox-hook{-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity;transition-property:opacity;background:#1973e8;border-radius:50%;display:inline-block;height:60%;width:60%;left:20%;position:absolute;opacity:0;top:20%}.qux-radiobox .qux-radiobox-label{margin-left:10px;vertical-align:middle;cursor:pointer}.qux-radiobox-checked .qux-radiobox-hook{opacity:1}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "6ebc":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "760f":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Button_vue_vue_type_style_index_0_id_560e0170_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ad9d");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Button_vue_vue_type_style_index_0_id_560e0170_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Button_vue_vue_type_style_index_0_id_560e0170_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "764c":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Repeater_vue_vue_type_style_index_0_id_4a475f68_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d2f0");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Repeater_vue_vue_type_style_index_0_id_4a475f68_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Repeater_vue_vue_type_style_index_0_id_4a475f68_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "771a":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-upload{cursor:pointer;-webkit-transition:all .2s;transition:all .2s;border:1px solid red}.qux-upload input{height:100%;width:100%;opacity:0;cursor:pointer}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "780a":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-checkgroup{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.qux-checkgroup .qux-checkbox{display:block}.qux-checkgroup .qux-checkbox .qux-checkbox-cntr{vertical-align:middle}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "783a":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Rating_vue_vue_type_style_index_0_id_6338593b_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d931");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Rating_vue_vue_type_style_index_0_id_6338593b_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Rating_vue_vue_type_style_index_0_id_6338593b_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "8040":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("c7aa");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("7b673c79", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "80db":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("fb8c");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("d4d82594", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "8449":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-container{border-style:solid;border-width:0}.qux-container .qux-container-debug{color:red}.qux-container .qux-container-wrapper-placeholder{background:red;height:1px;width:100px}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "84b3":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-radiogroup{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.qux-radiogroup .qux-radiobox{display:block}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "879b":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-dropdown{border:1px solid #333;-webkit-transition:all .2s;transition:all .2s;display:inline-block;position:relative;cursor:pointer}.qux-dropdown .qux-dropdown-label{height:100%;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.qux-dropdown .qux-dropdown-label .qux-dropdown-expend{position:absolute;height:100%;top:0;right:0;width:40px}.qux-dropdown .qux-dropdown-label .qux-dropdown-carret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid;display:inline-block;height:0;margin-left:2px;vertical-align:middle;width:0;position:absolute;right:50%;top:50%;-webkit-transform:translateY(-50%) translateX(50%);transform:translateY(-50%) translateX(50%);cursor:pointer}.qux-dropdown .qux-dropdown-popup{position:absolute;top:100%;left:0;display:none;border:1px solid #333;width:100%;z-index:1000;background:#fff;max-height:300px;overflow:auto}.qux-dropdown .qux-dropdown-item{display:block;cursor:pointer}.qux-dropdown.qux-open .qux-dropdown-popup{display:block}.qux-dropdown.qux-dropdown-mobile .qux-dropdown-popup{position:fixed;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:10%;width:80%;max-height:80%;overflow:auto;border-radius:20px;background:#333;color:#fff;-webkit-box-shadow:0 3px 100px rgba(0,0,0,.5);box-shadow:0 3px 100px rgba(0,0,0,.5);border:none;z-index:10001}.qux-dropdown.qux-dropdown-mobile .qux-dropdown-popup .qux-dropdown-item{display:block;cursor:pointer;padding:20px;font-size:20px}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "8875":
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller
// MIT license
// source: https://github.com/amiller-gh/currentScript-polyfill

// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505

(function (root, factory) {
  if (true) {
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
}(typeof self !== 'undefined' ? self : this, function () {
  function getCurrentScript () {
    var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')
    // for chrome
    if (!descriptor && 'currentScript' in document && document.currentScript) {
      return document.currentScript
    }

    // for other browsers with native support for currentScript
    if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {
      return document.currentScript
    }
  
    // IE 8-10 support script readyState
    // IE 11+ & Firefox support stack trace
    try {
      throw new Error();
    }
    catch (err) {
      // Find the second match for the "at" string to get file src url from stack.
      var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig,
        ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig,
        stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),
        scriptLocation = (stackDetails && stackDetails[1]) || false,
        line = (stackDetails && stackDetails[2]) || false,
        currentLocation = document.location.href.replace(document.location.hash, ''),
        pageSource,
        inlineScriptSourceRegExp,
        inlineScriptSource,
        scripts = document.getElementsByTagName('script'); // Live NodeList collection
  
      if (scriptLocation === currentLocation) {
        pageSource = document.documentElement.outerHTML;
        inlineScriptSourceRegExp = new RegExp('(?:[^\\n]+?\\n){0,' + (line - 2) + '}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*', 'i');
        inlineScriptSource = pageSource.replace(inlineScriptSourceRegExp, '$1').trim();
      }
  
      for (var i = 0; i < scripts.length; i++) {
        // If ready state is interactive, return the script tag
        if (scripts[i].readyState === 'interactive') {
          return scripts[i];
        }
  
        // If src matches, return the script tag
        if (scripts[i].src === scriptLocation) {
          return scripts[i];
        }
  
        // If inline source matches, return the script tag
        if (
          scriptLocation === currentLocation &&
          scripts[i].innerHTML &&
          scripts[i].innerHTML.trim() === inlineScriptSource
        ) {
          return scripts[i];
        }
      }
  
      // If no match, return null
      return null;
    }
  };

  return getCurrentScript
}));


/***/ }),

/***/ "8a4c":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux{background:none;height:100%}.qux.qux-component-screen{height:auto;display:inline-block}.qux-screen{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%;background-size:100%}.qux-action{text-decoration:none}.qux-action,.qux-action *{cursor:pointer}.qux-valign-middle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center}.qux-valign-middle .qux-common-label{width:100%}.qux-valign-bottom{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}.qux-valign-bottom .qux-common-label{width:100%}.qux-overlay-wrapper{width:100%;height:100%;position:absolute;top:0;left:0;z-index:99999}.qux-overlay-wrapper.qux-overlay-wrapper-fixed{position:fixed}.qux-screen-blurred{-webkit-filter:blur(10px);filter:blur(10px)}.qux-resize-left:before{content:\"\";width:3px;background:orange}.qux-resize-right:after{content:\"\";width:3px;background:orange}.qux-common-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.qux-common-valign-center{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.qux-noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.qux-button{display:inline-block;border-style:solid;border-width:0}a.qux-button{text-decoration:none}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "8bbf":
/***/ (function(module, exports) {

module.exports = require("vue");

/***/ }),

/***/ "8bd9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Slider_vue_vue_type_style_index_0_id_1ec537c2_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cc0a");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Slider_vue_vue_type_style_index_0_id_1ec537c2_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Slider_vue_vue_type_style_index_0_id_1ec537c2_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "8efa":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Timeline_vue_vue_type_style_index_0_id_0a766c80_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("58a5");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Timeline_vue_vue_type_style_index_0_id_0a766c80_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Timeline_vue_vue_type_style_index_0_id_0a766c80_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "8f51":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("f4e8");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("f7aa3fbe", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "8ff5":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-toggle{cursor:pointer;-webkit-transition:all .2s;transition:all .2s}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "9137":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_ChildrenToggle_vue_vue_type_style_index_0_id_5ea1dd04_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c7a1");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_ChildrenToggle_vue_vue_type_style_index_0_id_5ea1dd04_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_ChildrenToggle_vue_vue_type_style_index_0_id_5ea1dd04_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "9465":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-date{overflow:hidden}.qux-date .qux-date-header{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:15%;font-size:120%}.qux-date .qux-date-header .qux-date-header-btn{position:relative;width:15%;text-align:center;cursor:pointer}.qux-date .qux-date-header .qux-date-header-label{position:relative;text-align:center;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.qux-date .qux-date-header-label .qux-common-valign-center{width:100%}.qux-date .qux-date-body{width:100%;height:85%}.qux-date .qux-date-body table{width:100%;height:100%;border-spacing:0;border-collapse:collapse;text-align:center}.qux-date .qux-date-body td,.qux-date .qux-date-body th{padding:5px;width:14.3%}.qux-date .qux-date-body td{cursor:pointer}.qux-date .qux-date-body .qux-date-range-end,.qux-date .qux-date-body .qux-date-range-start,.qux-date .qux-date-body .qux-date-selected{background:#333;color:#fff}.qux-date .qux-date-body .qux-date-range-middle{background:#555;color:#fff}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "95b2":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("e7e7");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("6cec7cba", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "a1bb":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("beac");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("36d04c1e", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "a61b":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Chart_vue_vue_type_style_index_0_id_14b478fc_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6359");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Chart_vue_vue_type_style_index_0_id_14b478fc_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Chart_vue_vue_type_style_index_0_id_14b478fc_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "a62f":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("eb39");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("b202a1ae", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "a775":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-icon-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer}.qux-icon-toggle .qux-icon-toggle-label{padding-left:10px}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "aad6":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("771a");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("323e9ee8", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "ab5c":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("1d09");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("1c510ef4", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "ac19":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Image_vue_vue_type_style_index_0_id_7b37ca7e_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1916");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Image_vue_vue_type_style_index_0_id_7b37ca7e_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Image_vue_vue_type_style_index_0_id_7b37ca7e_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "ad9d":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("8a4c");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("0e45268a", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "ae03":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Date_vue_vue_type_style_index_0_id_2653b0e3_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ee07");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Date_vue_vue_type_style_index_0_id_2653b0e3_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Date_vue_vue_type_style_index_0_id_2653b0e3_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "ae5d":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-label{display:inline-block}.qux-label .qux-richtext h1{font-size:150%;font-weight:600}.qux-label .qux-richtext h2{font-size:140%;font-weight:600}.qux-label .qux-richtext h3{font-size:130%;font-weight:600}.qux-label .qux-richtext h4{font-size:120%;font-weight:600}.qux-label .qux-richtext h5,.qux-label .qux-richtext h6{font-size:100%;font-weight:600}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "aee5":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-camera{cursor:pointer;-webkit-transition:all .2s;transition:all .2s;border:1px solid red;position:relative}.qux-camera .qux-camera-icon{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);cursor:pointer}.qux-camera input{height:100%;width:100%;opacity:0;cursor:pointer}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "aeee":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("c325");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("0a9fa113", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "af65":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-date-picker{border:1px solid #333;position:relative}.qux-date-picker .qux-common-placeholder{opacity:.7}.qux-date-picker .qux-date-picker-icon{position:absolute;right:50%;top:50%;-webkit-transform:translateY(-50%) translateX(50%);transform:translateY(-50%) translateX(50%)}.qux-date-picker .qux-date-picker-expend{position:absolute;height:100%;top:0;right:0;width:40px}.qux-date-picker .qux-date-picker-carret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid;display:inline-block;height:0;margin-left:2px;vertical-align:middle;width:0;position:absolute;right:50%;top:50%;-webkit-transform:translateY(-50%) translateX(50%);transform:translateY(-50%) translateX(50%);cursor:pointer}.qux-date-picker .qux-date-picker-popup{position:absolute;top:calc(100% + 1px);left:0;display:none;border:1px solid #333;width:100%;height:300px;max-width:300px;max-height:300px;z-index:1000;background:#fff}.qux-date-picker .qux-date-picker-popup .qux-date{height:100%}.qux-date-picker .qux-date-picker-item{display:block;cursor:pointer}.qux-date-picker.qux-open .qux-date-picker-popup{display:block}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "afc2":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-chart{border:0 solid #333}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "b16e":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RadioGroup_vue_vue_type_style_index_0_id_c691a47a_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f135");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RadioGroup_vue_vue_type_style_index_0_id_c691a47a_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RadioGroup_vue_vue_type_style_index_0_id_c691a47a_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "b9c6":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "ba07":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("af65");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("7b14fb49", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "bac5":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("ae5d");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("68e087e4", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "beac":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-switch{cursor:pointer;position:relative}.qux-switch .qux-switch-cntr{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.qux-switch .qux-switch-cntr.qux-switch-cntr-thin{height:50%;top:50%;transform:translateY(-50%);-webkit-transform:translateY(-50%)}.qux-switch .qux-switch-cntr .qux-switch-on{left:-100%}.qux-switch .qux-switch-cntr .qux-switch-off,.qux-switch .qux-switch-cntr .qux-switch-on{position:absolute;width:100%;height:100%;top:0;-webkit-transition:all .3s;transition:all .3s}.qux-switch .qux-switch-cntr .qux-switch-off{left:0}.qux-switch .qux-switch-handle{position:absolute;top:0;left:0;-webkit-transition:all .3s;transition:all .3s;border:1px solid transparent}.qux-switch.qux-active .qux-switch-handle{position:absolute;top:0;left:auto;right:0}.qux-switch.qux-active .qux-switch-on{left:0}.qux-switch.qux-active .qux-switch-off{left:100%}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "bf15":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-compoment-set{border-style:solid;border-width:0}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "c151":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DatePicker_vue_vue_type_style_index_0_id_732c8e84_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ba07");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DatePicker_vue_vue_type_style_index_0_id_732c8e84_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_DatePicker_vue_vue_type_style_index_0_id_732c8e84_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "c325":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-spinner{border:none;position:relative;overflow:hidden;cursor:pointer}.qux-spinner .qux-spinner-border{position:absolute;height:33.3%;width:100%;top:33.3%;left:0;border-top:1px solid #333;border-bottom:1px solid #333}.qux-spinner .qux-spinner-option-cntr{position:absolute;left:0;height:300%;width:100%}.qux-spinner .qux-spinner-option-cntr.qux-spinner-option-cntr-animated{-webkit-transition:all .33s;transition:all .33s}.qux-spinner .qux-spinner-option{display:block;height:20%;width:100%;opacity:.6;position:relative;text-align:center}.qux-spinner .qux-spinner-option .qux-common-label{width:100%}.qux-spinner .qux-spinner-option.qux-spinner-option-selected{opacity:1}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "c7a1":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("5241");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("1d74e7e9", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "c7aa":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-table{overflow:auto}.qux-table.qux-table-fixed{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.qux-table.qux-table-fixed .qux-table-body{overflow:auto;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.qux-table table{width:100%;height:100%;border-spacing:0;border-collapse:collapse}.qux-table table .qux-table-action{cursor:pointer}.qux-table table .qux-table-action:hover{text-decoration:underline}.qux-table table .qux-table-action-hover{opacity:0}.qux-table table th{cursor:pointer}.qux-table table tr:hover .qux-table-action-hover{opacity:1}.qux-table table .qux-table-action-cntr{text-align:right}.qux-checkbox{display:inline-block;overflow:hidden;cursor:pointer}.qux-checkbox .qux-checkbox-cntr{position:relative;width:100%;height:100%;display:inline-block;vertical-align:top;border:1px solid #333}.qux-checkbox .qux-checkbox-hook{-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity;transition-property:opacity;border-bottom:3px solid #333;border-right:3px solid #333;transform:rotate(45deg);-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);display:inline-block;height:70%;width:30%;left:30%;position:absolute;opacity:0;top:0}.qux-checkbox .qux-checkbox-label{margin-left:10px;vertical-align:middle;cursor:pointer}.qux-checkbox-checked .qux-checkbox-hook{opacity:1}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "ca12":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("aee5");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("54d73212", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "cc0a":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("f21a");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("bece7f60", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "cc39":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-checkbox{display:inline-block;overflow:hidden;cursor:pointer}.qux-checkbox .qux-checkbox-cntr{position:relative;width:100%;height:100%;display:inline-block;vertical-align:top;border:1px solid #333}.qux-checkbox .qux-checkbox-hook{-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity;transition-property:opacity;border-bottom:3px solid #333;border-right:3px solid #333;transform:rotate(45deg);-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);display:inline-block;height:70%;width:30%;left:30%;position:absolute;opacity:0;top:0}.qux-checkbox .qux-checkbox-label{margin-left:10px;vertical-align:middle;cursor:pointer}.qux-checkbox-checked .qux-checkbox-hook{opacity:1}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "cc7d":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RichText_vue_vue_type_style_index_0_id_033a04d5_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("fa6a");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RichText_vue_vue_type_style_index_0_id_033a04d5_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RichText_vue_vue_type_style_index_0_id_033a04d5_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "ced2":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-textbox{border:1px solid #333;-webkit-transition:all .2s;transition:all .2s;padding:0}.qux-textbox:focus{outline:none}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "d0ae":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("4b60");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("87092d34", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "d2a9":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("10c2");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("2fd1c6c1", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "d2f0":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("140a");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("22285934", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "d63c":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Table_vue_vue_type_style_index_0_id_69078851_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8040");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Table_vue_vue_type_style_index_0_id_69078851_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Table_vue_vue_type_style_index_0_id_69078851_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "d8f4":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-rich-text{display:inline-block}.qux-rich-text .qux-common-label{width:100%}.qux-rich-text .qux-common-label span{display:inline}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "d931":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("0488");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("7150d64c", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "d959":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

Object.defineProperty(exports, "__esModule", { value: true });
// runtime helper for setting properties on components
// in a tree-shakable way
exports.default = (sfc, props) => {
    for (const [key, val] of props) {
        sfc[key] = val;
    }
    return sfc;
};


/***/ }),

/***/ "dbbf":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Combo_vue_vue_type_style_index_0_id_5ada1a2c_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("397d");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Combo_vue_vue_type_style_index_0_id_5ada1a2c_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Combo_vue_vue_type_style_index_0_id_5ada1a2c_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "e7e7":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-label{display:inline-block;text-decoration:none}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "eb39":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux{background:none;height:100%}.qux.qux-component-screen{height:auto;display:inline-block}.qux-screen{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%;background-size:100%}.qux-action{text-decoration:none}.qux-action,.qux-action *{cursor:pointer}.qux-valign-middle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center}.qux-valign-middle .qux-common-label{width:100%}.qux-valign-bottom{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-ms-flex-line-pack:end;align-content:flex-end}.qux-valign-bottom .qux-common-label{width:100%}.qux-overlay-wrapper{width:100%;height:100%;position:absolute;top:0;left:0;z-index:99999}.qux-overlay-wrapper.qux-overlay-wrapper-fixed{position:fixed}.qux-screen-blurred{-webkit-filter:blur(10px);filter:blur(10px)}.qux-resize-left:before{content:\"\";width:3px;background:orange}.qux-resize-right:after{content:\"\";width:3px;background:orange}.qux-common-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.qux-common-valign-center{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.qux-noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "ec79":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Toggle_vue_vue_type_style_index_0_id_133dc670_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1dec");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Toggle_vue_vue_type_style_index_0_id_133dc670_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Toggle_vue_vue_type_style_index_0_id_133dc670_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "ed76":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Paging_vue_vue_type_style_index_0_id_2fa03020_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8f51");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Paging_vue_vue_type_style_index_0_id_2fa03020_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Paging_vue_vue_type_style_index_0_id_2fa03020_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "ee07":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("9465");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("1f048245", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "ef5f":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Link_vue_vue_type_style_index_0_id_17dac503_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("95b2");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Link_vue_vue_type_style_index_0_id_17dac503_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Link_vue_vue_type_style_index_0_id_17dac503_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "f0d9":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("a775");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("33d18efe", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "f135":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("84b3");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("2d914847", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "f21a":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-slider{position:relative;cursor:pointer}.qux-slider .qux-slider-track{width:100%;height:34%;position:absolute;top:33%;left:0;border:0;overflow:hidden}.qux-slider .qux-slider-track .qux-slider-progress{height:100%}.qux-slider .qux-slider-handle-cntr{position:absolute;top:0;left:0}.qux-slider .qux-slider-handle{position:absolute;top:0;left:0;width:40px;border-radius:20px;cursor:pointer}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "f4e8":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-paging{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.qux-paging .qux-paging-item{cursor:pointer;position:relative}.qux-paging .qux-paging-item-active{background:#333}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "f761":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-combo{border:none;position:relative;-webkit-transition:all .2s;transition:all .2s}.qux-combo .qux-combo-input{width:100%;height:100%}.qux-combo .qux-combo-input:focus{outline:none}.qux-combo .qux-combo-popup{position:absolute;top:calc(100% + 1px);left:0;display:none;border:1px solid #333;width:100%;z-index:1000;max-height:300px;overflow:auto;background:#fff}.qux-combo .qux-combo-item{display:block;cursor:pointer}.qux-combo.qux-open .qux-combo-popup{display:block}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "fa41":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RadioBox_vue_vue_type_style_index_0_id_c602cd60_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5ebe");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RadioBox_vue_vue_type_style_index_0_id_c602cd60_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_RadioBox_vue_vue_type_style_index_0_id_c602cd60_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "fa6a":
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__("d8f4");
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = __webpack_require__("499e").default
var update = add("3fd3ddf3", content, true, {"sourceMap":false,"shadowMode":false});

/***/ }),

/***/ "fb15":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "createFigmaService", function() { return /* reexport */ createFigmaService; });
__webpack_require__.d(__webpack_exports__, "createModelTransformer", function() { return /* reexport */ createModelTransformer; });
__webpack_require__.d(__webpack_exports__, "createCSSOptimizer", function() { return /* reexport */ createCSSOptimizer; });
__webpack_require__.d(__webpack_exports__, "createCSSFactory", function() { return /* reexport */ createCSSFactory; });
__webpack_require__.d(__webpack_exports__, "createCSSWriter", function() { return /* reexport */ createCSSWriter; });
__webpack_require__.d(__webpack_exports__, "setLogLevel", function() { return /* reexport */ setLogLevel; });
__webpack_require__.d(__webpack_exports__, "createFigmaDesignlets", function() { return /* reexport */ createFigmaDesignlets; });
__webpack_require__.d(__webpack_exports__, "createFigmaDesignSystem", function() { return /* reexport */ createFigmaDesignSystem; });
__webpack_require__.d(__webpack_exports__, "createQUXDesignlets", function() { return /* reexport */ createQUXDesignlets; });
__webpack_require__.d(__webpack_exports__, "createQUXDesignSystem", function() { return /* reexport */ createQUXDesignSystem; });
__webpack_require__.d(__webpack_exports__, "getDesignSystem", function() { return /* reexport */ getDesignSystem; });

// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
// This file is imported into lib/wc client bundles.

if (typeof window !== 'undefined') {
  var currentScript = window.document.currentScript
  if (true) {
    var getCurrentScript = __webpack_require__("8875")
    currentScript = getCurrentScript()

    // for backward compatibility, because previously we directly included the polyfill
    if (!('currentScript' in document)) {
      Object.defineProperty(document, 'currentScript', { get: getCurrentScript })
    }
  }

  var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
  if (src) {
    __webpack_require__.p = src[1] // eslint-disable-line
  }
}

// Indicate to webpack that this file can be concatenated
/* harmony default export */ var setPublicPath = (null);

// CONCATENATED MODULE: ./src/qux/core/Logger.js
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

var Logger = /*#__PURE__*/function () {
  function Logger() {
    _classCallCheck(this, Logger);

    this.logLevel = 0;
  }

  _createClass(Logger, [{
    key: "setLogLevel",
    value: function setLogLevel(l) {
      this.logLevel = l;
    }
  }, {
    key: "warn",
    value: function warn(msg, obj) {
      if (obj !== undefined) {
        console.warn(msg, obj);
      } else {
        console.warn(msg);
      }
    }
  }, {
    key: "error",
    value: function error(msg, obj) {
      if (obj !== undefined) {
        console.error(msg, obj);
      } else {
        console.error(msg);
      }
    }
  }, {
    key: "log",
    value: function log(level, msg, obj) {
      var obj2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";

      if (level < this.logLevel) {
        if (obj !== undefined) {
          console.debug(msg, obj, obj2);
        } else {
          console.debug(msg);
        }
      }
    }
  }]);

  return Logger;
}();

/* harmony default export */ var core_Logger = (new Logger());
// CONCATENATED MODULE: ./src/qux/core/Const.js
var Layout = Object.freeze({
  Row: 'row',
  // row means we render as rows top down. Thjis is different than felx rows!
  Grid: 'grid',
  Wrap: 'wrap',
  AutoHorizontal: 'auto-horizontal',
  AutoVertical: 'auto-vertical'
});
// CONCATENATED MODULE: ./src/qux/figma/FigmaService.js
function FigmaService_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function FigmaService_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function FigmaService_createClass(Constructor, protoProps, staticProps) { if (protoProps) FigmaService_defineProperties(Constructor.prototype, protoProps); if (staticProps) FigmaService_defineProperties(Constructor, staticProps); return Constructor; }




var FigmaService_FigmaService = /*#__PURE__*/function () {
  function FigmaService(key) {
    var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

    FigmaService_classCallCheck(this, FigmaService);

    this.setAccessKey(key);
    this.baseURL = 'https://api.figma.com/v1/';
    this.vectorTypes = ['LINE', 'ELLIPSE', 'VECTOR'];
    this.buttonTypes = ['RECTANGLE', 'TEXT', 'FRAME', 'GROUP', 'INSTANCE', 'COMPONENT', 'VARIANT_COMPONENT', 'COMPONENT_SET'];
    this.ignoredTypes = []; // ['GROUP', 'INSTANCE']

    this.allAsVecor = false;
    this.max_ids = 50;
    this.pluginId = '858477504263032980';
    this.downloadVectors = true;
    this.imageScaleFactor = 2;
    this.throttleRequestThreshold = 10;
    this.throttleRequestTimeout = 1000;
    this.pinnRight = false;
    this.errors = [];
    this.autoLineHeightAsNormal = true;
    this.defaultFontFamily = 'Helvetica Neue,Helvetica,Arial,sans-serif';

    if (config.figma) {
      if (config.figma.throttleRequestThreshold) {
        this.throttleRequestThreshold = config.figma.throttleRequestThreshold;
      }

      if (config.figma.throttleRequestTimeout) {
        this.throttleRequestTimeout = config.figma.throttleRequestTimeout;
      }

      if (config.figma.throttleBatchSize) {
        this.max_ids = config.figma.throttleBatchSize;
      }

      if (config.figma.pinnRight) {
        this.pinnRight = config.figma.pinnRight;
      }

      if (config.figma.downloadVectors === false) {
        this.downloadVectors = false;
      }

      if (config.figma.defaultFontFamily !== '') {
        this.defaultFontFamily = config.figma.defaultFontFamily;
      }
    }

    if (config.css && config.css.autoLineHeightAsNormal === false) {
      core_Logger.log(-1, 'FigmaService.constructor () > Auto Line === 150%');
      this.autoLineHeightAsNormal = false;
    }

    this.figmaAlignMapping = {
      MIN: 'flex-start',
      CENTER: 'center',
      MAX: 'flex-end',
      SPACE_BETWEEN: 'space-between'
    }; // https://www.figma.com/plugin-docs/api/Trigger/

    this.figmaAnimationTypeMapping = {
      'ON_CLICK': 'click',
      'ON_HOVER': 'hover',
      'MOUSE_LEAVE': 'mouseleave',
      'MOUSE_ENTER': 'mouseenter',
      "MOUSE_UP": 'mouseup',
      "MOUSE_DOWN": "mousedown"
    };
    this.figmaAnimationEasingMapping = {};
  }

  FigmaService_createClass(FigmaService, [{
    key: "setImageScaleFactor",
    value: function setImageScaleFactor(factor) {
      this.imageScaleFactor = factor;
      return this;
    }
  }, {
    key: "setAccessKey",
    value: function setAccessKey(key) {
      this.key = key;
      return this;
    }
  }, {
    key: "setDownloadVectors",
    value: function setDownloadVectors(value) {
      this.downloadVectors = value;
      return this;
    }
  }, {
    key: "setBackgroundImages",
    value: function setBackgroundImages(app) {
      var _this = this;

      core_Logger.log('FigmaService.setBackgroundImages()');
      Object.values(app.screens).forEach(function (screen) {
        return _this.setBackgroundImage(screen);
      });
      Object.values(app.widgets).forEach(function (widget) {
        return _this.setBackgroundImage(widget);
      });
      return app;
    }
  }, {
    key: "setBackgroundImage",
    value: function setBackgroundImage(element) {
      if (element.props.figmaImage) {
        element.style.backgroundImage = {
          url: element.props.figmaImage
        };
      }
    }
  }, {
    key: "_createDefaultHeader",
    value: function _createDefaultHeader() {
      var headers = new Headers({
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'X-Figma-Token': this.key
      });
      return headers;
    }
  }, {
    key: "getRaw",
    value: async function getRaw(key) {
      var _this2 = this;

      return new Promise(function (resolve, reject) {
        var url = _this2.baseURL + 'files/' + key + '?geometry=paths&plugin_data=' + _this2.pluginId;
        fetch(url, {
          method: 'get',
          credentials: "same-origin",
          headers: _this2._createDefaultHeader()
        }).then(function (resp) {
          resp.json().then(function (json) {
            try {
              resolve(json);
            } catch (e) {
              core_Logger.error('FigmaService.getRaw() > Error', e);
              resolve(null);
            }
          });
        }, function (err) {
          reject(err);
        });
      });
    }
  }, {
    key: "getPages",
    value: function getPages(fModel) {
      core_Logger.log(-1, 'getPages() > enter');
      var pages = [];
      var fDoc = fModel.document;

      if (fDoc.children) {
        fDoc.children.forEach(function (page) {
          pages.push({
            id: page.id,
            value: page.id,
            label: page.name
          });
        });
      }

      core_Logger.log(-1, 'getPages() > exit', pages);
      return pages;
    }
  }, {
    key: "get",
    value: async function get(key) {
      var _this3 = this;

      var importChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
      var allAsVecor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
      var selectedPages = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
      this.allAsVecor = allAsVecor;
      return new Promise(function (resolve, reject) {
        var url = _this3.baseURL + 'files/' + key + '?geometry=paths&plugin_data=' + _this3.pluginId;
        fetch(url, {
          method: 'get',
          credentials: "same-origin",
          headers: _this3._createDefaultHeader()
        }).then(function (resp) {
          resp.json().then(function (json) {
            try {
              var app = _this3.parse(key, json, importChildren, selectedPages);

              resolve(app);
            } catch (e) {
              core_Logger.error('FigmaService.get() > Error', e);
              resolve(null);
            }
          });
        }, function (err) {
          reject(err);
        });
      });
    }
  }, {
    key: "getImages",
    value: function getImages(key, ids) {
      var _this4 = this;

      return new Promise(function (resolve, reject) {
        /**
         * Get in double resolution
         */
        var url = _this4.baseURL + 'images/' + key + "?format=png&scale=".concat(_this4.imageScaleFactor, "&ids=") + ids;
        fetch(url, {
          method: 'get',
          credentials: "same-origin",
          headers: _this4._createDefaultHeader()
        }).then(function (resp) {
          resp.json().then(function (json) {
            try {
              resolve(json);
            } catch (err) {
              core_Logger.error('FigmaService.getImages() > Error', err);
              reject(err);
            }
          });
        }, function (err) {
          reject(err);
        });
      });
    }
  }, {
    key: "parse",
    value: async function parse(id, fModel) {
      var _this5 = this;

      var importChildren = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
      var selectedPages = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
      core_Logger.log(3, 'FigmaService.parse() > enter importChildren:' + importChildren, fModel);
      this.errors = [];
      var model = this.createApp(id, fModel);
      var fDoc = fModel.document; // add some lookup maps for speedy lookups later

      fModel._elementsById = {};
      fModel._elementsToWidgets = {};

      if (fDoc.children) {
        fDoc.children.forEach(function (page) {
          if (selectedPages.length === 0 || selectedPages.indexOf(page.name) >= 0) {
            core_Logger.log(-1, 'FigmaService.parse() > parse page:' + page.name);

            if (page.children) {
              page.children.forEach(function (child) {
                if (!_this5.isInvisible(child)) {
                  if (_this5.isFrame(child)) {
                    _this5.parseScreen(child, model, fModel, importChildren, page);
                  }

                  if (_this5.isComponet(child) || _this5.isComponentSet(child)) {
                    _this5.parseComponent(child, model, fModel, importChildren, page);
                  }
                }
              });
            }
          }
        });
      }
      /**
       * Set varients for designlets
       */


      this.setVarientComponents(model, fModel);
      /**
       * Fix the lines that are until now with figma ids
       */

      this.setLineTos(model, fModel);
      /**
       * now find the dynamic components
       */

      this.setDynamicComponents(model, fModel);
      /**
       * Get download images for all
       */

      await this.addBackgroundImages(id, model, importChildren);
      /**
       * TODO Add groups?
       */

      return model;
    }
  }, {
    key: "setDynamicComponents",
    value: function setDynamicComponents(qModel, fModel) {
      var _this6 = this;

      core_Logger.log(2, 'FigmaService.setDynamicComponents() > enter');
      /**
       * 1) Check all component lines
       *
       * 2) Take the source
       *
       * 3) Check of teh target is a componnt
       *
       * 5) Find out of the target is in a componentSet
       *
       * 5) If so, make it a dynamic component, including references of the
       */

      Object.values(qModel.widgets).forEach(function (qWidget) {
        if (qWidget.fimgaTransitionNodeID && qWidget.figmaType === 'INSTANCE') {
          var target = fModel._elementsById[qWidget.fimgaTransitionNodeID];

          if (target && target._parent) {
            var parent = target._parent;

            if (parent.type === 'COMPONENT_SET' && parent.children) {
              qWidget.type = _this6.getDynamicType(parent);
              qWidget.props.dynamicChildren = [];
              qWidget.props.dynamicLines = [];
              var parentWidgetId = fModel._elementsToWidgets[parent.id];
              qWidget.props.dynamicParent = parentWidgetId;
              /**
               * Check if the children are all the same, so we can set the animation type to transform...
               */

              parent.children.forEach(function (fChild) {
                var childId = fModel._elementsToWidgets[fChild.id];

                if (childId) {
                  var qChild = qModel.widgets[childId];
                  qWidget.props.dynamicChildren.push(childId);

                  if (fChild.id === qWidget.figmaComponentId) {
                    qWidget.props.dynamicStart = childId;
                  }

                  var figmaLines = _this6.parseFigmaAnitions(qChild.props.figmaAnimation);

                  if (figmaLines && figmaLines.length > 0) {
                    figmaLines.forEach(function (fLine) {
                      var targetId = fModel._elementsToWidgets[fLine.figmaTo];

                      if (targetId) {
                        console.debug('dynamic line', fLine.event, fLine.animation);
                        qWidget.props.dynamicLines.push({
                          from: childId,
                          to: targetId,
                          duration: fLine.duration,
                          animation: fLine.animation,
                          event: fLine.event
                        });
                      }
                    });
                  } else if (fChild.transitionNodeID) {
                    var targetId = fModel._elementsToWidgets[fChild.transitionNodeID];
                    qWidget.props.dynamicLines.push({
                      from: childId,
                      to: targetId,
                      duration: fChild.transitionDuration,
                      animation: 'none',
                      event: 'click'
                    });
                  }
                }
              });
              core_Logger.log(3, 'FigmaService.setDynamicComponents() > ' + qWidget.name, qWidget.props.dynamicStart, qWidget.props.dynamicChildren);
              core_Logger.log(3, 'FigmaService.setDynamicComponents() > ' + qWidget.name, qWidget.props.dynamicLines, qWidget.props.dynamicParent);
            }
          }
        }
      });
    }
  }, {
    key: "parseFigmaAnitions",
    value: function parseFigmaAnitions(figmaAnimations) {
      var _this7 = this;

      if (figmaAnimations) {
        var lines = figmaAnimations.map(function (anim) {
          var line = {};
          line.animation = 'none';
          line.duration = 200;

          if (anim.trigger && anim.action) {
            var trigger = anim.trigger.type;
            var action = anim.action;

            if (_this7.figmaAnimationTypeMapping[trigger]) {
              line.event = _this7.figmaAnimationTypeMapping[trigger];
            }

            line.figmaTo = action.destinationId;
            line.figmaFrom = '';

            if (action.transition) {
              var transition = action.transition;

              if (transition.type === 'SMART_ANIMATE') {
                line.animation = 'transform';
              }

              if (transition.easing && _this7.figmaAnimationEasingMapping[transition.easing]) {
                line.easing = _this7.figmaAnimationEasingMapping[transition.easing];
              }

              line.duration = Math.round(transition.duration * 1000);
            } //console.debug(JSON.stringify(anim), JSON.stringify(line))


            return line;
          }
        });
        return lines;
      }

      return null;
    }
  }, {
    key: "getDynamicType",
    value: function getDynamicType(fComponentSet) {
      core_Logger.log(3, 'FigmaService.getDynamicType()', fComponentSet.name);
      return 'DynamicContainer';
    }
    /**
     * Set for each instance the id to the parent. Why??
     */

  }, {
    key: "setVarientComponents",
    value: function setVarientComponents(qModel) {
      var _this8 = this;

      // console.debug('setInstanceComponents')

      /**
       * Mark all elements of a variant as a component for the
       * design lets
       */
      var varientComponents = {};
      Object.values(qModel.widgets).forEach(function (widget) {
        var parent = qModel.widgets[widget.parentId];

        if (parent && parent.figmaType === 'COMPONENT_SET') {
          widget.props.isComponet = true;
          widget.props.isVaraint = true;
          widget.variant = _this8.parseVariant(widget.name);

          if (!varientComponents[widget.parentId]) {
            varientComponents[widget.parentId] = [];
          }

          varientComponents[widget.parentId].push(widget);
          /**
           * Give a better na,e other wise css will fail
           */

          widget.name = parent.name + '-' + Object.values(widget.variant).join('-');
        }
      });
    }
  }, {
    key: "parseVariant",
    value: function parseVariant(str) {
      var result = {};
      /**
       * Figma somehpw changed the name of the varient...
       */

      if (str.indexOf('-') >= 0) {
        str.split('-').map(function (s) {
          return s.split('=');
        }).filter(function (pair) {
          return pair.length > 1;
        }).forEach(function (pair) {
          return result[pair[0].trim()] = pair[1].trim();
        });
      } else {
        str.split(',').map(function (s) {
          return s.split('=');
        }).filter(function (pair) {
          return pair.length > 1;
        }).forEach(function (pair) {
          return result[pair[0].trim()] = pair[1].trim();
        });
      }

      core_Logger.log(2, 'FigmaService.addBackgroundImages() > parseVariant', str, result);
      return result;
    }
  }, {
    key: "getParentVarientComponent",
    value: function getParentVarientComponent(widget, widgetsByFigmaID, qModel) {
      var parent = widgetsByFigmaID[widget.figmaComponentId];

      while (parent && parent.figmaType !== 'VARIANT_COMPONENT') {
        parent = qModel.widgets[parent.parentId];
      }

      return parent;
    }
  }, {
    key: "setLineTos",
    value: function setLineTos(model) {
      var widgetMapping = {};
      Object.values(model.widgets).forEach(function (w) {
        widgetMapping[w.figmaId] = w.id;
      });
      var screenMapping = {};
      Object.values(model.screens).forEach(function (s) {
        screenMapping[s.figmaId] = s.id;
      });
      Object.values(model.lines).forEach(function (line) {
        line.from = widgetMapping[line.figmaFrom];

        if (screenMapping[line.figmaTo]) {
          line.to = screenMapping[line.figmaTo];
        }

        if (widgetMapping[line.figmaTo]) {
          line.to = widgetMapping[line.figmaTo];
          line.isComponentLine = true;
        }
      });
    }
  }, {
    key: "addBackgroundImages",
    value: async function addBackgroundImages(id, model, importChildren) {
      var _this9 = this;

      core_Logger.log(1, 'FigmaService.addBackgroundImages() > importChildren', importChildren);

      if (this.downloadVectors) {
        var vectorWidgets = this.getElementsWithBackgroundIMage(model, importChildren);

        if (vectorWidgets.length > 0) {
          core_Logger.log(-1, 'FigmaService.addBackgroundImages() > vectors', vectorWidgets.length);
          var batches = this.getChunks(vectorWidgets, this.max_ids);
          var promisses = batches.map(function (batch, i) {
            return _this9.addBackgroundImagesBatch(id, batch, i, batches.length);
          });
          await Promise.all(promisses);
        }
      } else {
        core_Logger.log(3, 'FigmaService.addBackgroundImages() > Skip');
      }

      core_Logger.log(3, 'FigmaService.addBackgroundImages() > exit');
    }
  }, {
    key: "getElementsWithBackgroundIMage",
    value: function getElementsWithBackgroundIMage(model, importChildren) {
      if (importChildren) {
        return Object.values(model.widgets).filter(function (widget) {
          return widget.props.isVector || widget.hasBackgroundImage;
        });
      } else {
        return Object.values(model.screens);
      }
    }
  }, {
    key: "addBackgroundImagesBatch",
    value: async function addBackgroundImagesBatch(id, batch, i, totalNumberOfBatches) {
      var _this10 = this;

      core_Logger.log(1, 'FigmaService.addBackgroundImagesBatch() > start', i);
      return new Promise(function (resolve, reject) {
        setTimeout(function () {
          var vectorWidgetIds = batch.map(function (w) {
            return w.figmaId;
          }).join(',');

          _this10.getImages(id, vectorWidgetIds).then(function (imageResponse) {
            if (imageResponse.err === null) {
              core_Logger.log(3, 'FigmaService.addBackgroundImagesBatch () > end', i);
              var images = imageResponse.images;
              batch.forEach(function (w) {
                var image = images[w.figmaId];

                if (image) {
                  w.props.figmaImage = image;
                } else {
                  core_Logger.error('FigmaService.addBackgroundImagesBatch() > Cannot get image for ', w);

                  _this10.errors.push({
                    type: 'ImageGetError',
                    data: w
                  });
                }

                resolve(batch);
              });
            } else {
              core_Logger.error('FigmaService.addBackgroundImagesBatch () > Could not get images', imageResponse);
              reject(imageResponse.err);
            }
          }, function (err) {
            core_Logger.error('FigmaService.addBackgroundImagesBatch() > Could not get images', err);
            reject(err);
          });
        }, _this10.getImageTimeout(i, totalNumberOfBatches));
      });
    }
  }, {
    key: "getImageTimeout",
    value: function getImageTimeout(i, totalNumberOfBatches) {
      if (totalNumberOfBatches > this.throttleRequestThreshold) {
        core_Logger.warn("igmaService.getImageTimeout () > Throttle requests. Delay request ".concat(i, " by ").concat(i * this.throttleRequestTimeout, " ms"));
        return i * this.throttleRequestTimeout;
      }

      return 0;
    }
  }, {
    key: "getChunks",
    value: function getChunks(array, size) {
      var result = [];

      for (var i = 0; i < array.length; i += size) {
        var chunk = array.slice(i, i + size);
        result.push(chunk);
      }

      return result;
    }
  }, {
    key: "parseComponent",
    value: function parseComponent(fElement, qModel, fModel, importChildren, page) {
      core_Logger.log(3, 'FigmaService.parseComponent()', fElement.name);
      /**
       * We create a wrapper screen!
       */

      var pos = this.getPosition(fElement);
      var qScreen = {
        id: 's' + this.getUUID(qModel),
        figmaId: fElement.id,
        pageName: page.name,
        name: fElement.name + 'Wrapper',
        isComponentScreen: true,
        type: 'Screen',
        x: pos.x,
        y: pos.y,
        w: pos.w,
        h: pos.h,
        props: {},
        children: [],
        style: {
          background: 'transparent'
        }
      };
      qModel.screens[qScreen.id] = qScreen;
      this.getPluginData(fElement, qScreen, fModel);
      this.parseElement(fElement, qScreen, fElement, qModel, fModel, qScreen.id);
    }
  }, {
    key: "parseScreen",
    value: function parseScreen(fScreen, model, fModel, importChildren, page) {
      var _this11 = this;

      core_Logger.log(3, 'FigmaService.parseScreen()', fScreen.name);
      var pos = this.getPosition(fScreen);
      var qScreen = {
        id: 's' + this.getUUID(model),
        figmaId: fScreen.id,
        pageName: page.name,
        name: fScreen.name,
        type: 'Screen',
        x: pos.x,
        y: pos.y,
        w: pos.w,
        h: pos.h,
        props: {},
        children: [],
        layout: {},
        style: this.getStyle(fScreen)
      };
      qScreen = this.getLayout(fScreen, qScreen);
      this.getPluginData(fScreen, qScreen, fModel);

      if (fScreen.children) {
        fScreen.children.forEach(function (child) {
          child._parent = fScreen;

          _this11.parseElement(child, qScreen, fScreen, model, fModel, qScreen.id);
        });
      }
      /**
       * Or check prototypeDevice
       */


      model.screenSize.w = model.screenSize.w === -1 ? pos.w : Math.max(model.screenSize.w, pos.w);
      model.screenSize.h = model.screenSize.h === -1 ? pos.h : Math.max(model.screenSize.h, pos.h);
      model.screens[qScreen.id] = qScreen;
      core_Logger.log(4, 'FigmaService.parseScreen() exit ', fScreen.name, qScreen.id);
      return qScreen;
    }
  }, {
    key: "parseElement",
    value: function parseElement(element, qScreen, fScreen, model, fModel, qParentId) {
      var _this12 = this;

      core_Logger.log(5, 'FigmaService.parseElement() > enter: ' + element.name, element.type);
      var widget = null;

      if (!this.isIgnored(element) && !this.isInvisible(element)) {
        var pos = this.getPosition(element);
        var qID = 'w' + this.getUUID(model);
        widget = {
          id: qID,
          parentId: qParentId,
          name: this.getFigmaName(element, qID),
          type: this.getType(element),
          figmaId: element.id,
          figmaType: element.type,
          figmaComponentId: this.getFigmaComponentId(element),
          fimgaTransitionNodeID: element.transitionNodeID,
          x: pos.x,
          y: pos.y,
          w: pos.w,
          h: pos.h,
          layout: {},
          z: this.getZ(element, model)
        };
        widget.style = this.getStyle(element, widget);
        widget.props = this.getProps(element, widget);
        widget.has = this.getHas(element, widget);
        widget = this.getPluginData(element, widget, fModel);
        widget = this.getLayout(element, widget);
        fModel._elementsById[element.id] = element;
        fModel._elementsToWidgets[element.id] = qID;
        model.widgets[widget.id] = widget;
        qScreen.children.push(widget.id);
        /**
         * Update the parent id, so we can have the correct hierachy
         */

        qParentId = widget.id;
      } else {
        core_Logger.log(4, 'FigmaService.parseElement() >Ignore: ' + element.name, element.type);
        /**
         * What if we have defined the callbacks and on a compomemt?
         */
      }
      /**
       * Go down recursive...
       */


      if (element.children) {
        /**
         * We do not go down on vector elements and hidden elements.
         */
        if (!this.isVector(element) && !this.isInvisible(element) && !this.isCustomVector(element)) {
          element.children.forEach(function (child) {
            if (child.visible !== false) {
              child._parent = element;
              core_Logger.log(3, 'FigmaService.parseElement() > go recursive', element);

              _this12.parseElement(child, qScreen, fScreen, model, fModel, qParentId);
            }
          });
        } else {
          core_Logger.log(6, 'FigmaService.parseElement() > No recursive: ' + element.name, element.type);
        }
      }

      this.addTempLine(element, model, widget);
      return widget;
    }
  }, {
    key: "getFigmaComponentId",
    value: function getFigmaComponentId(fElement) {
      if (fElement.type === 'INSTANCE') {
        return fElement.componentId;
      }

      if (fElement.id.indexOf('I') === 0) {
        var parts = fElement.id.split(';');

        if (parts.length === 2) {
          return parts[1];
        }
      }
    }
  }, {
    key: "getFigmaName",
    value: function getFigmaName(element, qID) {
      /**
       * FIXME: Check if teh name is tool long or has spaces or shit...
       */
      var name = element.name;

      if (name.length > 50) {
        name = qID;
      }

      return name.replace(/#/g, '').replace(/\//g, '-').replace(/&/g, '').replace(/,/g, '-');
    }
  }, {
    key: "addTempLine",
    value: function addTempLine(fElement, model, widget) {
      core_Logger.log(4, 'FigmaService.addLine() > enter', fElement.name, 'transition :' + fElement.transitionNodeID, fElement);

      if (fElement.transitionNodeID) {
        var clickChild = this.getFirstNoIgnoredChild(fElement);
        core_Logger.log(6, 'addLine() >  : ', fElement.name, clickChild);
        var line = {
          id: 'l' + this.getUUID(model),
          from: null,
          to: null,
          figmaFrom: clickChild.id,
          figmaTo: fElement.transitionNodeID,
          points: [],
          event: "click",
          animation: "",
          duration: fElement.transitionDuration
        };

        if (widget && widget.props.figmaAnimation) {// add animation stuff and easing...
        }

        model.lines[line.id] = line;
      }
    }
  }, {
    key: "getFirstNoIgnoredChild",
    value: function getFirstNoIgnoredChild(element) {
      /**
       * We do not render instance wrappers, so we take the first child.
       */
      if (this.isIgnored(element) && element.children.length > 0) {
        core_Logger.log(5, 'FigmaService.getFirstNoIgnoredChild() >  take child ', element.name);
        return this.getFirstNoIgnoredChild(element.children[0]);
      }

      return element;
    }
  }, {
    key: "getPluginData",
    value: function getPluginData(element, widget) {
      if (element.pluginData && element.pluginData[this.pluginId]) {
        var pluginData = element.pluginData[this.pluginId];

        if (pluginData.quxType) {
          core_Logger.log(-1, 'FigmaService.getPluginData() > quxType : ', pluginData.quxType, element.name);
          widget.type = pluginData.quxType;
          widget.props.placeholder = true;
          /**
           * SmartContainer has a subType
           */

          if (pluginData.quxType === 'SmartContainer' && pluginData.quxSmartContainerType) {
            core_Logger.log(2, 'FigmaService.getPluginData() > quxSmartContainerType : ', pluginData.quxSmartContainerType, element.name);
            widget.type = pluginData.quxSmartContainerType;
            widget.smartContainerType = pluginData.quxSmartContainerType;
          }

          if (pluginData.quxType === 'Image' && pluginData.quxDataBindingDefault) {
            widget.type = 'UploadPreview';
          }

          if (pluginData.quxType === 'Vector') {
            widget.props.isVector = true;
          }
        }

        if (pluginData.quxDataValue) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxDataValue: ', pluginData.quxDataValue, element.name);
          widget.props.dataValue = pluginData.quxDataValue;
        }

        if (pluginData.quxLinkUrl) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxLinkUrl: ', pluginData.quxLinkUrl, element.name);
          widget.props.url = pluginData.quxLinkUrl;
        }

        if (pluginData.quxTypeCustom) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxTypeCustom: ', pluginData.quxOnChangeCallback, element.name);
          widget.props.customComponent = pluginData.quxTypeCustom;
        }

        if (pluginData.quxAnimationProps) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxAnimationProps: ', pluginData.quxAnimationProps, element.name);

          try {
            widget.props.figmaAnimation = JSON.parse(pluginData.quxAnimationProps);
          } catch (err) {
            core_Logger.error('FigmaService.getPluginData() > quxAnimationProps Could not parse ', pluginData.quxAnimationProps);
          }
        }

        if (pluginData.quxDataBindingDefault) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxDataBindingDefault : ', pluginData.quxDataBindingDefault, element.name);

          if (!widget.props.databinding) {
            widget.props.databinding = {};
          }

          widget.props.databinding['default'] = pluginData.quxDataBindingDefault;
        }

        if (pluginData.quxDataBindingOutput) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxDataBindingOutput : ', pluginData.quxDataBindingOutput, element.name);

          if (!widget.props.databinding) {
            widget.props.databinding = {};
          }

          widget.props.databinding['output'] = pluginData.quxDataBindingOutput;
        }

        if (pluginData.quxDataBindingOptions) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxDataBindingOptions : ', pluginData.quxDataBindingOptions, element.name);

          if (!widget.props.databinding) {
            widget.props.databinding = {};
          }

          widget.props.databinding['options'] = pluginData.quxDataBindingOptions;
        }

        if (pluginData.quxOnClickCallback) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxOnClickCallback: ', pluginData.quxOnClickCallback, element.name);

          if (!widget.props.callbacks) {
            widget.props.callbacks = {};
          }

          widget.props.callbacks.click = pluginData.quxOnClickCallback;
        }

        if (pluginData.quxOnLoadCallback) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxOnLoadCallback: ', pluginData.quxOnLoadCallback, element.name);

          if (!widget.props.callbacks) {
            widget.props.callbacks = {};
          }

          widget.props.callbacks.load = pluginData.quxOnLoadCallback;
        }

        if (pluginData.quxOnChangeCallback) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxOnChangeCallback: ', pluginData.quxOnChangeCallback, element.name);

          if (!widget.props.callbacks) {
            widget.props.callbacks = {};
          }

          widget.props.callbacks.change = pluginData.quxOnChangeCallback;
        }

        if (pluginData.quxOptions) {
          core_Logger.log(3, 'FigmaService.getPluginData() > quxOptions: ', pluginData.quxOptions, element.name);
          widget.props.options = pluginData.quxOptions.split(';');
        }
        /**
         * Hover
         */


        if (pluginData.quxStyleHoverBackground) {
          this.addDynamicStyle(widget, 'hover', 'background', pluginData.quxStyleHoverBackground);
        }

        if (pluginData.quxStyleHoverBorder) {
          this.addDynamicStyle(widget, 'hover', 'borderColor', pluginData.quxStyleHoverBorder);
        }

        if (pluginData.quxStyleHoverColor) {
          this.addDynamicStyle(widget, 'hover', 'color', pluginData.quxStyleHoverColor);
        }
        /**
         * DropDown
         */


        if (pluginData.quxStyleDropDownColor) {
          this.addDynamicStyle(widget, 'style', 'popupColor', pluginData.quxStyleDropDownColor);
        }

        if (pluginData.quxStyleDropDownBackground) {
          this.addDynamicStyle(widget, 'style', 'popupBackground', pluginData.quxStyleDropDownBackground);
        }

        if (pluginData.quxStyleDropDownBorder) {
          this.addDynamicStyle(widget, 'style', 'popupBorder', pluginData.quxStyleDropDownBorder);
        }
        /**
         * Focus
         */


        if (pluginData.quxStyleFocusBackground) {
          this.addDynamicStyle(widget, 'focus', 'background', pluginData.quxStyleFocusBackground);
        }

        if (pluginData.quxStyleFocusBorder) {
          this.addDynamicStyle(widget, 'focus', 'borderColor', pluginData.quxStyleFocusBorder);
        }

        if (pluginData.quxStyleFocusColor) {
          this.addDynamicStyle(widget, 'focus', 'color', pluginData.quxStyleFocusColor);
        }
        /**
         * Style stuff
         */


        if (pluginData.quxFixedHorizontal === 'true') {
          core_Logger.warn('FigmaService.getPluginData() > DEPRECTAED quxFixedHorizontal: ', pluginData.quxFixedHorizontal, element.name); //this.setFixedHozontal(widget, true)
        }

        if (pluginData.quxFixedVertical === 'true') {
          core_Logger.log('FigmaService.getPluginData() > DEPRECTAED quxFixedVertical: ', pluginData.quxFixedVertical, element.name); // this.setFixedVertical(widget)
        }
        /**
         * Screen stuff
         */


        if (pluginData.quxStartScreen === 'true') {
          core_Logger.log(1, 'FigmaService.getPluginData() > quxStartScreen: ', pluginData.quxStartScreen, element.name);
          widget.props.start = true;
        }

        if (pluginData.quxOverlayScreen === 'true') {
          core_Logger.log(4, 'FigmaService.getPluginData() > quxOverlayScreen: ', pluginData.quxOverlayScreen, element.name);
          widget.style.overlay = true;
        }

        if (pluginData.quxHasOverlayBackground === 'true') {
          core_Logger.log(4, 'FigmaService.getPluginData() > quxHasOverlayBackground: ', pluginData.quxHasOverlayBackground, element.name);
          widget.style.hasBackground = true;
        }
        /**
         * Breakpoints
         */


        if (pluginData.quxBreakpointMobile === 'true') {
          if (!widget.props.breakpoints) {
            widget.props.breakpoints = {};
          }

          core_Logger.log(4, 'FigmaService.getPluginData() > quxBreakpointMobile: ', pluginData.quxBreakpointMobile, element.name);
          widget.props.breakpoints.mobile = true;
        }

        if (pluginData.quxBreakpointTablet === 'true') {
          if (!widget.props.breakpoints) {
            widget.props.breakpoints = {};
          }

          core_Logger.log(4, 'FigmaService.getPluginData() > quxBreakpointTablet: ', pluginData.quxBreakpointTablet, element.name);
          widget.props.breakpoints.tablet = true;
        }

        if (pluginData.quxBreakpointDesktop === 'true') {
          if (!widget.props.breakpoints) {
            widget.props.breakpoints = {};
          }

          core_Logger.log(4, 'FigmaService.getPluginData() > quxBreakpointDesktop: ', pluginData.quxBreakpointDesktop, element.name);
          widget.props.breakpoints.desktop = true;
        }

        if (pluginData.quxStyleDisplay) {
          core_Logger.log(4, 'FigmaService.getPluginData() > quxStyleDisplay: ', pluginData.quxStyleDisplay, element.name);
          widget.style.display = pluginData.quxStyleDisplay;
        }

        if (pluginData.quxStyleCursor) {
          core_Logger.log(4, 'FigmaService.getPluginData() > quxStyleCursor: ', pluginData.quxStyleCursor, element.name);
          widget.style.cursor = pluginData.quxStyleCursor;
        }

        if (pluginData.quxStyleMaxWidth) {
          core_Logger.log(4, 'FigmaService.getPluginData() > quxStyleMaxWidth: ', pluginData.quxStyleMaxWidth, element.name);
          widget.style.maxWidth = pluginData.quxStyleMaxWidth;
        }

        if (pluginData.quxStyleMinWidth) {
          core_Logger.log(4, 'FigmaService.getPluginData() > quxStyleMinWidth: ', pluginData.quxStyleMinWidth, element.name);
          widget.style.minWidth = pluginData.quxStyleMinWidth;
        }

        if (pluginData.quxWrapContent) {
          core_Logger.log(-1, 'FigmaService.getPluginData() > quxWrapContent: ', pluginData.quxWrapContent, element.name);
          widget.style.layout = 'Wrap';
        }
      }

      return widget;
    }
  }, {
    key: "setFixedHozontal",
    value: function setFixedHozontal(widget) {
      var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

      if (!widget.props.resize) {
        widget.props.resize = {};
      }

      widget.props.resize.fixedHorizontal = value;
    }
  }, {
    key: "setHugHozontal",
    value: function setHugHozontal(widget) {
      var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

      if (!widget.props.resize) {
        widget.props.resize = {};
      }

      widget.props.resize.hugHorizontal = value;
    }
  }, {
    key: "setFixedVertical",
    value: function setFixedVertical(widget) {
      var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

      if (!widget.props.resize) {
        widget.props.resize = {};
      }

      widget.props.resize.fixedVertical = value;
    }
  }, {
    key: "setHugVertical",
    value: function setHugVertical(widget) {
      var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

      if (!widget.props.resize) {
        widget.props.resize = {};
      }

      widget.props.resize.hugVertical = value;
    }
  }, {
    key: "addDynamicStyle",
    value: function addDynamicStyle(widget, type, key, value) {
      if (!widget[type]) {
        widget[type] = {};
      }

      widget[type][key] = value;
    }
  }, {
    key: "getProps",
    value: function getProps(element, widget) {
      var props = {};

      if (this.isVector(element)) {
        //console.debug('FigmaService.getProps() > make vector', element)
        props.paths = element.strokeGeometry;
        props.relativeTransform = element.relativeTransform;
        props.isVector = true;
      }

      if (this.isLabel(widget)) {
        if (element.characters) {
          props.label = element.characters;
        } else {
          props.label = element.name;
        }
      }

      if (widget.type === 'RichText') {
        props.richTextLabel = this.getRichText(element, props.label);
      }
      /**
       * Add here constraints.
       * Since 0.5 keep the normaal figma constraints and make elements fixed and not pinned right
       */


      if (this.pinnRight) {
        props.resize = {
          right: true,
          left: true,
          up: false,
          down: false,
          fixedHorizontal: false,
          fixedVertical: false
        };
      } else {
        props.resize = {
          right: false,
          left: true,
          up: false,
          down: false,
          fixedHorizontal: true,
          fixedVertical: false
        };
      }
      /**
       * FIXME: Should come only after plugin data...
       */


      this.setContraints(element, props);
      return props;
    }
  }, {
    key: "getRichText",
    value: function getRichText(fElement, label) {
      core_Logger.log(2, 'FigmaService.getRichText() >', fElement.name, label);
      var children = [];
      var characterStyleOverrides = fElement.characterStyleOverrides;
      var currentChild = {};
      var lastOverride = -1;

      for (var i = 0; i < label.length; i++) {
        // ending zeros are not added
        var override = characterStyleOverrides[i] !== undefined ? characterStyleOverrides[i] : 0 + '';

        if (override !== lastOverride) {
          currentChild = {
            label: '',
            style: this.getRichTextStyle(fElement.styleOverrideTable[override])
          };
          children.push(currentChild);
        }

        currentChild.label += label[i];
        lastOverride = override;
      }

      return children;
    }
  }, {
    key: "getRichTextStyle",
    value: function getRichTextStyle(fStyle) {
      if (fStyle) {
        var result = {};

        if (fStyle.fills) {
          if (fStyle.fills.length === 1) {
            var fill = fStyle.fills[0];

            if (fill.type === 'SOLID') {
              result.color = this.getColor(fill.color, fill);
            }
          }
        }

        this.setTextStyle(fStyle, result);
        return result;
      }

      return undefined;
    }
  }, {
    key: "getLayout",
    value: function getLayout(fElement, qElement) {
      if (fElement.layoutMode === 'HORIZONTAL') {
        qElement.layout.type = Layout.AutoHorizontal;
        qElement.layout.justifyContent = this.mapAlign(fElement.primaryAxisAlignItems);
        qElement.layout.alignItems = this.mapAlign(fElement.counterAxisAlignItems);
      }

      if (fElement.layoutMode === 'VERTICAL') {
        qElement.layout.type = Layout.AutoVertical;
        qElement.layout.justifyContent = this.mapAlign(fElement.primaryAxisAlignItems);
        qElement.layout.alignItems = this.mapAlign(fElement.counterAxisAlignItems);
      }

      if (fElement.itemSpacing !== undefined) {
        qElement.layout.itemSpacing = fElement.itemSpacing;
      }
      /**
       * FXIME: This fucks up the reponsive ness
       */


      if (fElement.layoutGrow === 0.0) {
        this.setFixedHozontal(qElement, true);
      }

      if (fElement.layoutGrow === 1) {
        this.setFixedHozontal(qElement, false);
      }
      /**
       * We set also hug, as the absense of FIXED in a auto layout parent
       */


      if (fElement._parent) {
        if (fElement._parent.layoutMode === 'HORIZONTAL') {
          if (fElement.primaryAxisSizingMode !== "FIXED" && fElement.layoutGrow === 0) {
            this.setHugHozontal(qElement, true);
          }
        }

        if (fElement._parent.layoutMode === 'VERTICAL') {
          if (fElement.primaryAxisSizingMode !== "FIXED" && fElement.layoutGrow === 0) {
            this.setHugVertical(qElement, true);
          }
        }
      }

      if (fElement.layoutAlign !== undefined) {
        if (fElement.layoutAlign === 'STRETCH') {
          // FIXME: here is some werid figma behavior fElement.layoutGrow === 0.0
          this.setFixedHozontal(qElement, false);
        }

        qElement.layout.align = fElement.layoutAlign;
      }
      /** 
       * I am not sure what this means
      if (fElement.primaryAxisSizingMode === "FIXED") {
        this.setFixedHozontal(qElement, true)
      }
      */


      qElement.layout.grow = fElement.layoutGrow;
      /**
       * We have to substract borders, because of the outer border of Figma
       */

      qElement.layout.paddingLeft = this.mapPadding(fElement.paddingLeft, qElement.style.borderLeftWidth);
      qElement.layout.paddingRight = this.mapPadding(fElement.paddingRight, qElement.style.borderRightWidth);
      qElement.layout.paddingTop = this.mapPadding(fElement.paddingTop, qElement.style.borderTopWidth);
      qElement.layout.paddingBottom = this.mapPadding(fElement.paddingBottom, qElement.style.borderBottomWidth);
      return qElement;
    }
  }, {
    key: "mapPadding",
    value: function mapPadding(padding, border) {
      var p = padding ? padding : 0;
      var b = border ? border : 0;
      return p - b;
    }
  }, {
    key: "mapAlign",
    value: function mapAlign(v) {
      if (this.figmaAlignMapping[v]) {
        return this.figmaAlignMapping[v];
      } // default is start


      return 'flex-start';
    }
  }, {
    key: "setContraints",
    value: function setContraints(element, props) {
      if (element.constraints) {
        var horizontal = element.constraints.horizontal;

        switch (horizontal) {
          case 'RIGHT':
            props.resize.left = false;
            props.resize.right = true;
            props.resize.fixedHorizontal = false;
            break;

          case 'LEFT_RIGHT':
            core_Logger.log(2, 'FigmaService.setContraints() > LEFT_RIGHT', element.name);
            props.resize.left = true;
            props.resize.right = true;
            props.resize.fixedHorizontal = false;
            break;

          default:
            break;
        }

        var vertical = element.constraints.vertical;

        switch (vertical) {
          case 'TOP_BOTTOM':
            core_Logger.log(2, 'FigmaService.setContraints() > TOP_BOTTOM', element.name);
            props.resize.up = true;
            props.resize.down = true;
            props.resize.fixedVertical = false;
            break;

          case 'BOTTOM':
            core_Logger.log(2, 'FigmaService.setContraints() > BOTTOM', element.name);
            props.resize.up = false;
            props.resize.down = true;
            break;

          default:
            break;
        }
      }
    }
  }, {
    key: "isIgnored",
    value: function isIgnored(element) {
      // FIXME: check for empty frames
      return this.ignoredTypes.indexOf(element.type) >= 0;
    }
  }, {
    key: "isInvisible",
    value: function isInvisible(element) {
      if (element.visible === false) {
        core_Logger.log(5, 'FigmaService.isInvisible() > exit (visible): ' + element.name, element.type);
        return true;
      }

      if (element.opacity <= 0) {
        core_Logger.log(5, 'FigmaService.isInvisible() > exit (opacity): ' + element.name, element.type);
        return true;
      }

      return false;
    }
  }, {
    key: "isFrame",
    value: function isFrame(element) {
      return element.type === 'FRAME';
    }
  }, {
    key: "isComponet",
    value: function isComponet(element) {
      return element.type === 'COMPONENT';
    }
  }, {
    key: "isComponentSet",
    value: function isComponentSet(element) {
      return element.type === 'COMPONENT_SET';
    }
  }, {
    key: "isVector",
    value: function isVector(element) {
      return this.allAsVecor || !this.isButton(element);
    }
  }, {
    key: "isCustomVector",
    value: function isCustomVector(fElement) {
      if (fElement.pluginData) {
        var pluginData = fElement.pluginData[this.pluginId];

        if (pluginData && pluginData.quxType === 'Vector') {
          return true;
        }
      }

      return false;
    }
  }, {
    key: "isLabel",
    value: function isLabel(widget) {
      return widget && (widget.type === 'Label' || widget.type === 'RichText');
    }
    /**
     * We map to a button / box iff it is not rectangle kind of
     * element (as defined in buttonTypes) and the style is not too
     * complex
     */

  }, {
    key: "isButton",
    value: function isButton(element) {
      if (this.buttonTypes.indexOf(element.type) >= 0) {
        return !this.isTooComplexStyle(element);
      }

      return false;
    }
  }, {
    key: "isVariantContainer",
    value: function isVariantContainer(fElement) {
      return fElement.type === 'VARIANT_COMPONENT';
    }
  }, {
    key: "isTooComplexStyle",
    value: function isTooComplexStyle(element) {
      if (element.fills && element.fills.length > 1) {
        return true;
      }

      if (element.fills && element.fills.length === 1) {
        /**
         * FIXME: Some times elements have iamge fills. They should be containers,
         * but for now there is a weird layout bug
         */
        var fill = element.fills[0];
        return fill.type !== 'SOLID' && fill.type !== 'GRADIENT_LINEAR' && fill.type !== 'GRADIENT_RADIAL'; // && fill.type !== 'IMAGE'
      }

      if (element.effects && element.effects.length > 1) {
        return true;
      }

      if (element.strokes && element.strokes.length > 1) {
        return true;
      }

      return false;
    }
  }, {
    key: "getHas",
    value: function getHas(element, widget) {
      if (widget.type === 'Label') {
        return {
          label: true,
          padding: true,
          advancedText: true
        };
      }

      if (widget.type === 'Button') {
        return {
          label: true,
          backgroundColor: true,
          border: true,
          onclick: true,
          padding: true
        };
      }

      return {};
    }
  }, {
    key: "getStyle",
    value: function getStyle(element, widget) {
      var _this13 = this;

      var style = {
        fontFamily: this.defaultFontFamily,
        borderBottomWidth: 0,
        borderTopWidth: 0,
        borderLeftWidth: 0,
        borderRightWidth: 0
      };
      /**
       * How is this rendered. Which has priority
       */

      if (element.backgroundColor) {
        style.backgroundColor = this.getColor(element.backgroundColor, element);
      }

      if (element.isFixed) {
        style.fixed = true;
        this.setAllChildrenFixed(element);
      }

      if (element.fills) {
        if (element.fills.length === 1) {
          var fill = element.fills[0];

          if (fill.type === 'SOLID') {
            if (this.isLabel(widget)) {
              style.color = this.getColor(fill.color, fill);
              style.backgroundColor = 'transparent';
            } else {
              style.backgroundColor = this.getColor(fill.color, fill);
            }
          }

          if (fill.type === 'GRADIENT_LINEAR') {
            if (!this.isLabel(widget)) {
              style.background = this.getLinearGradient(fill);
            } else {
              core_Logger.log(1, 'getStyle() > gradients not supported fotr labels...');
            }
          }

          if (fill.type === 'GRADIENT_RADIAL') {
            if (!this.isLabel(widget)) {
              style.background = this.getRadialGradient(fill);
            } else {
              core_Logger.log(1, 'getStyle() > gradients not supported for labels...');
            }
          }

          if (fill.type === 'IMAGE') {// Logger.warn('getStyle() > elements with background images cannot have children. all will be rendered as PNG')
            // for now this stuff will be handled as a vector, which cannot have children.
            // maybe we have to change this at some point
            // widget.hasBackgroundImage = true
          }
        }
      }

      if (element.cornerRadius) {
        style.borderBottomLeftRadius = element.cornerRadius;
        style.borderTopLeftRadius = element.cornerRadius;
        style.borderBottomRightRadius = element.cornerRadius;
        style.borderTopRightRadius = element.cornerRadius;
      }

      if (element.rectangleCornerRadii) {
        style.borderTopLeftRadius = element.rectangleCornerRadii[0];
        style.borderTopRightRadius = element.rectangleCornerRadii[1];
        style.borderBottomRightRadius = element.rectangleCornerRadii[2];
        style.borderBottomLeftRadius = element.rectangleCornerRadii[3];
      }
      /**
       * The border stuff we just do for rects and text
       */


      if (!this.isVector(element)) {
        if (element.strokes && element.strokes.length > 0) {
          var stroke = element.strokes[0];

          if (stroke.color) {
            style.borderBottomColor = this.getColor(stroke.color, element);
            style.borderTopColor = this.getColor(stroke.color, element);
            style.borderLeftColor = this.getColor(stroke.color, element);
            style.borderRightColor = this.getColor(stroke.color, element);
          }

          if (element.strokeWeight) {
            style.borderBottomWidth = element.strokeWeight;
            style.borderTopWidth = element.strokeWeight;
            style.borderLeftWidth = element.strokeWeight;
            style.borderRightWidth = element.strokeWeight;
          }

          if (element.strokeAlign !== 'INSIDE' && element.strokeWeight) {
            widget.x -= element.strokeWeight;
            widget.w += element.strokeWeight * 2;
            widget.y -= element.strokeWeight;
            widget.h += element.strokeWeight * 2;
          }
        }

        if (element.effects) {
          element.effects.forEach(function (effect) {
            if (effect.type === 'DROP_SHADOW') {
              style.boxShadow = {
                v: effect.offset.y,
                h: effect.offset.x,
                b: effect.radius,
                s: 0,
                i: false,
                c: _this13.getColor(effect.color, element)
              };
            }

            if (effect.type === 'INNER_SHADOW') {
              style.boxShadow = {
                v: effect.offset.y,
                h: effect.offset.x,
                b: effect.radius,
                s: 0,
                i: true,
                c: _this13.getColor(effect.color, element)
              };
            }
          });
        }

        if (element.style) {
          this.setTextStyle(element.style, style);
        }
      }
      /**
       * Labels with constraints can be vertical middle
       */


      if (this.isLabel(widget) && style.verticalAlign !== 'bottom') {
        if (element.constraints) {
          var constraints = element.constraints;

          if (constraints.vertical === 'TOP_BOTTOM') {
            style.verticalAlign = 'middle';
          }
        }
      }

      return style;
    }
  }, {
    key: "setTextStyle",
    value: function setTextStyle(fStyle, style) {
      style.fontFamily = fStyle.fontFamily;
      style.fontSize = fStyle.fontSize;
      style.fontWeight = fStyle.fontWeight;
      this.setLineHeight(style, fStyle);
      style.letterSpacing = fStyle.letterSpacing;

      if (fStyle.textCase === 'UPPER') {
        style.textTransform = 'uppercase';
      }

      if (fStyle.textCase === 'LOWER') {
        style.textTransform = 'lowercase';
      }

      if (fStyle.textCase === 'TITLE') {
        style.textTransform = 'capitalize';
      }

      if (fStyle.textAlignHorizontal) {
        style.textAlign = fStyle.textAlignHorizontal.toLowerCase();
      }

      if (fStyle.textAlignVertical) {
        var textAlignVertical = fStyle.textAlignVertical;

        switch (textAlignVertical) {
          case 'CENTER':
            style.verticalAlign = 'middle';
            break;

          case 'TOP':
            style.verticalAlign = 'top';
            break;

          case 'BOTTOM':
            style.verticalAlign = 'bottom';
            break;

          default:
            break;
        }
      }
    }
  }, {
    key: "setLineHeight",
    value: function setLineHeight(style, fStyle) {
      /**
       * If we have pixel line height, everything is easy.
       */
      if (fStyle.lineHeightUnit === 'PIXELS') {
        style.lineHeightPX = fStyle.lineHeightPx;
        return;
      }
      /**
       * we might have 'normal', which seems 150%. We set as pixel, because
       * Figma inspect gives the same values.
       */


      if (fStyle.lineHeightUnit === 'INTRINSIC_%' && fStyle.lineHeightPercent) {
        if (this.autoLineHeightAsNormal) {
          style.lineHeight = 'normal';
        } else {
          style.lineHeightPX = Math.round(style.fontSize * 1.5);
        }

        return;
      }
      /**
       * For % we have to take the lineHeightPercentFontSize
       */


      if (fStyle.lineHeightUnit === 'FONT_SIZE_%') {
        style.lineHeight = fStyle.lineHeightPercentFontSize / 100;
        return;
      }
      /**
       * Defautl is line-heigth in percentage
       */


      style.lineHeight = fStyle.lineHeightPercent / 100;
    }
  }, {
    key: "setAllChildrenFixed",
    value: function setAllChildrenFixed(element) {
      var _this14 = this;

      if (element.children) {
        element.children.forEach(function (c) {
          c.isFixed = true;

          _this14.setAllChildrenFixed(c);
        });
      }
    }
  }, {
    key: "getType",
    value: function getType(element) {
      if (this.isVector(element)) {
        return 'Vector';
      }
      /**
       * FIXME: We could have somehow super complex nested shapes that should be handled as a vector...
       */


      if (element.type === 'TEXT') {
        if (element.characterStyleOverrides && element.characterStyleOverrides.length > 0 && element.styleOverrideTable) {
          return 'RichText';
        }

        return 'Label';
      }

      return 'Button';
    }
  }, {
    key: "getLinearGradient",
    value: function getLinearGradient(fill) {
      var _this15 = this;

      core_Logger.log(3, 'getLinearGradient() > enter', fill);
      var start = fill.gradientHandlePositions[0];
      var end = fill.gradientHandlePositions[1];
      var xDiff = start.x - end.x;
      var yDiff = start.y - end.y;
      var dir = Math.round(Math.atan2(yDiff, xDiff) * 180 / Math.PI + 270) % 360;
      var gradientStops = fill.gradientStops;
      var colors = gradientStops.map(function (stop) {
        return {
          c: _this15.getColor(stop.color),
          p: stop.position * 100
        };
      });
      return {
        direction: dir,
        colors: colors
      };
    }
  }, {
    key: "getRadialGradient",
    value: function getRadialGradient(fill) {
      var _this16 = this;

      core_Logger.log(3, 'getLinearGradient() > enter', fill);
      var gradientStops = fill.gradientStops;
      var colors = gradientStops.map(function (stop) {
        return {
          c: _this16.getColor(stop.color),
          p: stop.position * 100
        };
      });
      return {
        radial: true,
        colors: colors
      };
    }
  }, {
    key: "calculateAngle",
    value: function calculateAngle(startHandle, endHandle) {
      var radians = Math.atan(this.calculateGradient(startHandle, endHandle));
      return parseInt(this.radToDeg(radians).toFixed(1));
    }
  }, {
    key: "calculateGradient",
    value: function calculateGradient(startHandle, endHandle) {
      return (endHandle.y - startHandle.y) / (endHandle.x - startHandle.x) * -1;
    }
  }, {
    key: "radToDeg",
    value: function radToDeg(radian) {
      return 180 * radian / Math.PI;
    }
  }, {
    key: "getColor",
    value: function getColor(c, element) {
      if (element && element.visible === false) {
        return '';
      }

      var a = c.a;

      if (element && element.opacity < 1) {
        a = element.opacity;
      }

      return "rgba(".concat(Math.round(c.r * 255), ", ").concat(Math.round(c.g * 255), ", ").concat(Math.round(c.b * 255), ", ").concat(a, ")");
    }
  }, {
    key: "getPosition",
    value: function getPosition(element) {
      if (element.absoluteBoundingBox) {
        var pos = {
          x: Math.round(element.absoluteBoundingBox.x),
          y: Math.round(element.absoluteBoundingBox.y),
          w: Math.round(element.absoluteBoundingBox.width),
          h: Math.round(element.absoluteBoundingBox.height)
        };
        /**
         * We can ignore transformMatrix because absolutePositon gives the right values
         */

        return pos;
      }

      core_Logger.warn('FigmaService.getPosition() > No abs pos', element);
      return {};
    }
  }, {
    key: "getTransformParent",
    value: function getTransformParent(element) {
      if (element._parent) {
        if (element._parent.type === 'FRAME') {
          return element._parent;
        }
      }

      return;
    }
  }, {
    key: "getZ",
    value: function getZ(element, model) {
      model.lastZ++;
      return model.lastZ;
    }
  }, {
    key: "createApp",
    value: function createApp(id, data) {
      return {
        version: 2.1,
        figmaId: id,
        name: data.name,
        description: '',
        screenSize: {
          "w": -1,
          "h": -1
        },
        type: 'smartphone',
        screens: {},
        widgets: {},
        lines: {},
        groups: {},
        lastUUID: 10000,
        lastZ: 1,
        lastUpdate: 0,
        created: 0,
        startScreen: "",
        grid: {
          w: 8,
          h: 8,
          style: "line",
          color: "#cecece",
          visible: false,
          enabled: false
        }
      };
    }
  }, {
    key: "getUUID",
    value: function getUUID(model) {
      var uuid = model.lastUUID++ + "";
      return uuid;
    }
  }]);

  return FigmaService;
}();


// CONCATENATED MODULE: ./src/qux/core/ExportUtil.js


function isLayoutWrap(e) {
  return e.layout && e.layout.type === Layout.Wrap;
}
function isLayoutRow(e) {
  return e.layout && e.layout.type === Layout.Row;
}
function isLayoutGrid(e) {
  return e.layout && e.layout.type === Layout.Grid;
}
function isLayoutGrow(e) {
  return e.layout && e.layout.grow > 0;
}
function isLayoutAuto(e) {
  // why did check for this??? || e.layout.align !== undefined Take a look at auto fixed. This is somehow needed for the growth
  return e.layout !== undefined && (e.layout.type === Layout.AutoHorizontal || e.layout.type === Layout.AutoVertical); //|| e.layout.align !== undefined
}
function isLayoutAutoHorizontal(e) {
  return e.layout && e.layout.type === Layout.AutoHorizontal;
}
function isLayoutAutovertical(e) {
  return e.layout && e.layout.type === Layout.AutoVertical;
}
function getFileName(name) {
  return name.replace(/\s/g, '_');
}
function hasNoChildren(widget) {
  return widget.children && widget.children.length === 0;
}
function hasChildren(widget) {
  return widget.children && widget.children.length > 0;
}
function isScreen(e) {
  return e.type === 'Screen';
}
function isLastChild(widget) {
  if (widget.parent && widget.parent.children) {
    var parent = widget.parent;
    var last = parent.children[parent.children.length - 1];
    return last.id === widget.id;
  }

  return false;
}
/**
 * Advanced widgets cannot have children, e.g. stacked rings
 */

function canHaveChildren(element) {
  if (element.props && element.props.customComponent) {
    return false;
  }

  if (isContainerElement(element) || isInputElement(element)) {
    return true;
  }

  return false;
}
function isInputElement(element) {
  var type = element.type;
  return type === 'TextBox' || type === 'TextArea' || type === 'Password' || type === 'DropDown';
}
function isContainerElement(element) {
  var type = element.type;
  return type === 'Box' || type === 'Button' || type === 'Image' || type === 'ChildrenToggle' || type === 'Repeater' || type === 'DynamicContainer' || type === 'ContainerDropDown';
}
/**
 * Check if the child can be nested in a parent
 * @param {} child The child to be nested
 * @param {*} parent The parent to receiveo
 */

function canBeChild(child, parent) {
  /**
   * Costum widgets cannot have children
   */
  if (parent.props && parent.props.customComponent) {
    return false;
  }
  /**
   * Box likes element can always have children
   */


  if (isContainerElement(parent)) {
    return true;
  }
  /**
   * Input elements can have labels embedded. This is needed to attach the label later
   */


  if (isInputElement(parent) && child.type === 'Label') {
    return true;
  }

  return false;
}
/**
 * Determine if the grid is collection
 * of stacked rows. This is true of arwew no overlaps
 */

function hasRowLayout(widget) {
  if (widget) {
    var nodes = widget.children;
    var length = nodes.length;

    for (var i = 0; i < length; i++) {
      for (var j = 0; j < length; j++) {
        var a = nodes[i];
        var b = nodes[j];

        if (a.id !== b.id) {
          if (isOverLappingY(a, b)) {
            return false;
          }
        }
      }
    }
  }

  return true;
}
function isWrappedContainer(e) {
  return e.style.wrap || e.style.layout === 'Wrap';
}
function isAutoLayoutSpaceBetween(e) {
  return e.layout && e.layout.justifyContent === 'space-between';
}
function isGridContainer(e) {
  return e.style.grid;
}
function isDesignSystemRoot(e) {
  return e.isDesignSystemRoot;
}
function isRepeater(e) {
  if (e) {
    return e.type === 'Repeater';
  }

  return false;
}
function hasComponentScreenParent(e) {
  return e.hasComponentScreenParent;
}
function isRepeaterAuto(e) {
  if (e.type === 'Repeater' && e.props.layout == 'grid' && e.props.auto === true) {
    return true;
  }

  return false;
}
function isFixedPosition(widget) {
  return widget.style.fixed && widget.type !== 'Screen';
}
function isRepeaterGrid(e) {
  if (e.type === 'Repeater' && e.props.layout === 'grid') {
    return true;
  }

  return false;
}
function isBlock(e) {
  return e && e.style && e.style.display === 'block';
}
function hasParentRepeaterGrid(e) {
  if (e.parent) {
    return isRepeaterGrid(e.parent);
  }

  return false;
}
/**
 * Determine if the grid is collection
 * of stacked rows. This is true of arwew no overlaps
 */

function isRowGrid(widget) {
  //console.debug('DEPREACTED isRowGrid()')
  if (widget) {
    var nodes = widget.children;
    var length = nodes.length;

    for (var i = 0; i < length; i++) {
      for (var j = 0; j < length; j++) {
        var a = nodes[i];
        var b = nodes[j];

        if (a.id !== b.id) {
          if (isOverLappingY(a, b)) {
            return false;
          }
        }
      }
    }
  }

  return true;
}
function isOverLappingX(pos, box) {
  return !isLeft(pos, box) && !isRight(pos, box);
}
function isOverLappingY(pos, box) {
  return !isTop(pos, box) && !isBottom(pos, box);
}
function isTop(from, to) {
  return from.y >= to.y + to.h;
}
function isStartingTop(from, to) {
  return from.y >= to.y; // && (from.y + from.h) <= (to.y + to.h);
}
function isBottom(from, to) {
  return from.y + from.h <= to.y;
}
function isLeft(from, to) {
  return from.x > to.x + to.w;
}
function isStartingLeft(from, to) {
  return from.x >= to.x;
}
function isRight(from, to) {
  return from.x + from.w < to.x;
}
function ExportUtil_isFixedHorizontal(e) {
  return e.props && e.props.resize && e.props.resize.fixedHorizontal;
}
function isHugHorizontal(e) {
  return e.props && e.props.resize && e.props.resize.hugHorizontal === true;
}
function isHugVerticall(e) {
  return e.props && e.props.resize && e.props.resize.hugVertical === true;
}
function isFixedVertical(e) {
  if (e.type === 'Box' || e.type === 'Button' || e.type === 'Label' || e.type === 'Container' || e.type === 'Repeater' || e.children && e.children.length > 0) {
    return e.props && e.props.resize && e.props.resize.fixedVertical;
  }

  return true;
}
function ExportUtil_isPinnedLeft(e) {
  return e.props && e.props.resize && e.props.resize.left;
}
function ExportUtil_isPinnedRight(e) {
  return e.props && e.props.resize && e.props.resize.right;
}
function isPinnedUp(e) {
  return e.props && e.props.resize && e.props.resize.up;
}
function isPinnedDown(e) {
  return e.props && e.props.resize && e.props.resize.down;
}
function isFullWidth(e) {
  return e.props && e.props.resize && e.props.resize.fullWidth;
}
function isSingleChildInRow() {
  //if (e.parent){
  //   let inSameRow = e.parent.children.filter(c => c.r === e.r)
  //   console.debug('isSIngleChild', e.name, e.parent.name, inSameRow)
  //    //return inSameRow.length === 1
  //}
  return false;
}
/*
export function isAtBottom(element, model, threshold = 10) {
    if (element && model.screenSize) {
        let dif = getDistanceFromScreenBottom(element, model)
        return dif < threshold
    }
    return false
}
*/

function getDistanceFromScreenBottom(element, model, parentScreen) {
  if (element && model.screenSize && parentScreen) {
    var h = Math.min(parentScreen.h, model.screenSize.h);
    var dif = h - (element.y + element.h);
    return dif;
  }

  return 0;
}
function isCentered(e) {
  if (e.parent) {
    var dif = e.parent.w - (2 * e.x + e.w); // We have a minimum threshold of 3px

    return Math.abs(dif) < Math.max(3, e.parent.w * 0.003);
  }

  return false;
}
function getClickLine(element) {
  if (element.lines) {
    return element.lines.find(function (l) {
      return l.event === 'click';
    });
  }

  return null;
}
function allChildrenAreFixedHorizontal(children) {
  var fixedChildren = children.filter(function (f) {
    return f.props && f.props.resize && f.props.resize.fixedHorizontal;
  });
  return fixedChildren.length === children.length;
}
function isOverlay(screen) {
  return screen.style && screen.style.overlay;
}
function isComponentSet(e) {
  return e.figmaType === 'COMPONENT_SET';
}
function isChildrenToggle(e) {
  return e.type === 'ChildrenToggle' || e.smartContainerType === 'ChildrenToggle';
}
function hasOverlayBackground(screen) {
  return screen.style && screen.style.hasBackground;
}
function hasMinMaxWdith(screen) {
  return screen.style !== undefined && (screen.style.minWidth > 0 || screen.style.maxWidth > 0);
}
function ExportUtil_getImages(app) {
  var images = [];
  var urls = {};
  Object.values(app.widgets).forEach(function (w) {
    if (w.style && w.style.backgroundImage) {
      var backgroundImage = w.style.backgroundImage;
      var url = getImageLocation(w, backgroundImage.url);

      if (!urls[url]) {
        images.push({
          name: url,
          type: 'images',
          id: w.id,
          src: backgroundImage.url
        });
        urls[url] = true;
      }
    }
  });
  Object.values(app.screens).forEach(function (w) {
    if (w.style && w.style.backgroundImage) {
      var backgroundImage = w.style.backgroundImage;
      var url = getImageLocation(w, backgroundImage.url);

      if (!urls[url]) {
        images.push({
          name: url,
          type: 'images',
          id: w.id,
          src: backgroundImage.url
        });
        urls[url] = true;
      }
    }
  });
  return images;
}
function getImageLocation(w, url) {
  var parts = url.split('/');

  if (parts.length === 2) {
    return parts[1];
  }

  return url;
}
function removeCommonPath(a, b) {
  var path = [];
  var aParts = a.split('/');
  var bParts = b.split('/');
  var different = false;
  aParts.forEach(function (p, i) {
    if (p !== bParts[i] || different) {
      path.push(p);
      different = true;
    }
  });
  return path.join('/');
}
/**
 * Generates the css for a given screen. Includes the styles for the screen and all
 * its children. Certain elements, like common, might be excluded.
 *
 * @param {*} screen The screen to genearte for
 * @param {*} code The code object with the styles
 * @param {*} exclude An array of types to be exluded, e.g ['template']
 */

function getScreenCSS(screen, code, exclude) {
  var css = '';
  var normalize = code.styles['$NORMALIZE'];

  if (normalize) {
    css += normalize.map(function (s) {
      return s.code;
    }).join('\n');
  }

  css += screen.styles.map(function (s) {
    return s.code;
  }).join('\n');
  var elements = getAllChildrenForScreen(screen);
  var written = [];
  elements.forEach(function (element) {
    var styles = code.styles[element.id];

    if (exclude) {
      styles = styles.filter(function (s) {
        return exclude.indexOf(s.type) < 0;
      });
    }

    styles.forEach(function (s) {
      if (!written[s.css]) {
        css += s.code + '\n';
        written[s.css] = true;
      }
    }); // css += styles.map(s => s.code).join('\n')
  });
  return css;
}
function getAllChildrenForScreen(screen) {
  var result = [];

  if (screen.model.children) {
    screen.model.children.forEach(function (child) {
      result.push(child);
      getAllChildren(child, result);
    });
  }

  if (screen.model.fixedChildren) {
    screen.model.fixedChildren.forEach(function (child) {
      result.push(child);
    });
  }

  return result;
}
function fixAutos(style, widget) {
  if (style.fontSize === 'Auto') {
    style.fontSize = widget.h;
  }

  return style;
}
/**
 * FIX for old models without z-value
 */

function fixMissingZValue(box) {
  if (box.z === null || box.z === undefined) {
    box.z = 0;
  }
}
/**
 * Get children
 */


function getOrderedWidgets(widgets) {
  var result = [];

  for (var id in widgets) {
    var widget = widgets[id];

    if (widget) {
      fixMissingZValue(widget);
      result.push(widget);
    }
  }

  sortWidgetList(result);
  return result;
}
/**
 * This method is super important for the correct rendering!
 *
 * We sort by:
 *
 *  1) style.fixed: fixed elements will be renderd last, therefore they come
 *  as the last elements in the list
 *
 * 	2) inherited : inherited values come first. They shall be rendered below the
 *  widget of the new screen
 *
 *  3) z : High z values come later
 *
 *  4) id: if the z value is the same, sort by id, which means the order the widgets have been
 *  added to the screen.
 */

function sortWidgetList(result) {
  /**
   * Inline function to determine if a widget is fixed.
   * we have to check if style exists, because the Toolbar.onToolWidgetLayer()
   * call the method without styles.
   */
  var isFixed = function isFixed(w) {
    if (w.style && w.style.fixed) {
      return true;
    }

    return false;
  };

  result.sort(function (a, b) {
    var aFix = isFixed(a);
    var bFix = isFixed(b);
    /**
     * 1) Sort by fixed. If both are fixed or not fixed,
     * continue sorting by inherited.
     */

    if (aFix == bFix) {
      /**
       * If both a inherited or not inherited,
       * continue sorting by z & id
       */
      if (a.inherited && b.inherited || !a.inherited && !b.inherited) {
        /**
         * 4) if the have the same z, sot by id
         */
        if (a.z == b.z && a.id && b.id) {
          return a.id.localeCompare(b.id);
        }
        /**
         * 3) Sort by z. Attention, Chrome
         * needs -1, 0, 1 or one. > does not work
         */


        return a.z - b.z;
      }

      if (a.inherited) {
        return -1;
      }

      return 1;
    }

    if (aFix) {
      return 1;
    }

    return -1;
  });
}
function getAllChildren(node, result) {
  if (node.children) {
    node.children.forEach(function (child) {
      result.push(child);
      getAllChildren(child, result);
    });
  }
}
function isContainedInBox(obj, parent) {
  if (parent) {
    if (obj.x >= parent.x && obj.x + obj.w <= parent.w + parent.x && obj.y >= parent.y && obj.y + obj.h <= parent.y + parent.h) {
      return true;
    }
  }

  return false;
}
function getBoundingBoxByIds(ids, model) {
  var children = ids.map(function (id) {
    if (model.widgets && model.widgets[id]) {
      return model.widgets[id];
    } else {
      core_Logger.log(1, 'ExportUtil.getBoundingBoxByIds() > No child with id', id);
    }

    return null;
  }).filter(function (child) {
    return child !== null;
  });
  return getBoundingBoxByBoxes(children);
}
function getBoundingBoxByBoxes(boxes) {
  var result = {
    x: 100000000,
    y: 100000000,
    w: 0,
    h: 0,
    z: 100000000,
    props: {
      resize: {}
    },
    style: {}
  };

  for (var i = 0; i < boxes.length; i++) {
    var box = boxes[i];
    result.x = Math.min(result.x, box.x);
    result.y = Math.min(result.y, box.y);
    result.w = Math.max(result.w, box.x + box.w);
    result.h = Math.max(result.h, box.y + box.h);
    result.z = Math.max(result.z, box.z);

    if (ExportUtil_isFixedHorizontal(box)) {
      result.props.resize.fixedHorizontal = true;
    }

    if (isFixedVertical(box)) {
      result.props.resize.fixedVertical = true;
    }
  }

  result.h -= result.y;
  result.w -= result.x;
  return result;
}
function createInheritedModel(model) {
  /**
   * Build lookup map for overwrites
   */
  var overwritenWidgets = {};

  for (var screenID in model.screens) {
    var screen = model.screens[screenID];
    overwritenWidgets[screenID] = {};

    for (var i = 0; i < screen.children.length; i++) {
      var widgetID = screen.children[i];
      var widget = model.widgets[widgetID];

      if (widget && widget.parentWidget) {
        overwritenWidgets[screenID][widget.parentWidget] = widgetID;
      }
    }
  }

  var inModel = clone(model);
  inModel.inherited = true;
  /**
   * add container widgets
   */

  createContaineredModel(inModel);
  /**
   * add widgets from parent (master) screens
   */

  for (var _screenID in inModel.screens) {
    /**
     * *ATTENTION* We read from the org model, otherwise we have
     * issues in the loop as we change the screen.
     */
    var _screen = model.screens[_screenID];

    if (_screen.parents && _screen.parents.length > 0) {
      /**
       * add widgets from parent screens
       */
      for (var _i = 0; _i < _screen.parents.length; _i++) {
        var parentID = _screen.parents[_i];

        if (parentID != _screenID) {
          if (model.screens[parentID]) {
            /**
             * *ATTENTION* We read from the org model, otherwise we have
             * issues in the loop as we change the screen!
             */
            var parentScreen = model.screens[parentID];
            var difX = parentScreen.x - _screen.x;
            var difY = parentScreen.y - _screen.y;
            var parentChildren = parentScreen.children;

            for (var j = 0; j < parentChildren.length; j++) {
              var parentWidgetID = parentChildren[j];
              /**
               * *ATTENTION* We read from the org model, otherwise we have
               * issues in the loop as we change the screen!
               */

              var parentWidget = model.widgets[parentWidgetID];

              if (parentWidget) {
                var overwritenWidgetID = overwritenWidgets[_screenID][parentWidgetID];

                if (!overwritenWidgetID) {
                  var copy = clone(parentWidget);
                  /**
                   * Super important the ID mapping!!
                   */

                  copy.id = parentWidget.id + "@" + _screenID;
                  copy.inherited = parentWidget.id;
                  copy.inheritedScreen = _screenID;
                  copy.inheritedOrder = _i + 1;
                  /**
                   * Now lets also put it at the right position!
                   */

                  copy.x -= difX;
                  copy.y -= difY;
                  /**
                   * We write the new widget to the inherited model!
                   *
                   */

                  inModel.widgets[copy.id] = copy;

                  inModel.screens[_screenID].children.push(copy.id);
                  /**
                   * Also add a to the inherited copies
                   * so we can to live updates in canvas
                   */


                  var parentCopy = inModel.widgets[parentWidget.id];

                  if (!parentCopy.copies) {
                    parentCopy.copies = [];
                  }

                  parentCopy.copies.push(copy.id);
                } else {
                  var overwritenWidget = inModel.widgets[overwritenWidgetID];

                  if (overwritenWidget) {
                    overwritenWidget.props = mixin(clone(parentWidget.props), overwritenWidget.props, true);
                    overwritenWidget.style = mixin(clone(parentWidget.style), overwritenWidget.style, true);

                    if (overwritenWidget.hover) {
                      overwritenWidget.hover = mixin(clone(parentWidget.hover), overwritenWidget.hover, true);
                    }

                    if (overwritenWidget.error) {
                      overwritenWidget.error = mixin(clone(parentWidget.error), overwritenWidget.error, true);
                    }
                    /**
                     * Also add a reference to the *INHERITED* copies
                     * so we can to live updates in canvas
                     */


                    var _parentCopy = inModel.widgets[parentWidget.id];

                    if (!_parentCopy.inheritedCopies) {
                      _parentCopy.inheritedCopies = [];
                    }

                    _parentCopy.inheritedCopies.push(overwritenWidget.id);
                    /**
                     * Also inherited positions
                     */


                    if (overwritenWidget.parentWidgetPos) {
                      overwritenWidget.x = parentWidget.x - difX;
                      overwritenWidget.y = parentWidget.y - difY;
                      overwritenWidget.w = parentWidget.w;
                      overwritenWidget.h = parentWidget.h;
                    }

                    overwritenWidget._inheried = true;
                  } else {
                    console.error("createInheritedModel() > No overwriten widget in model");
                  }
                }
              } else {
                console.warn("createInheritedModel() > no parent screen child with id > " + parentID + ">" + parentWidget);
              }
            }

            createInheritedGroups(inModel.screens[_screenID], parentScreen, model, inModel);
          } else {
            console.warn("createInheritedModel() > Deteced Self inheritance...", _screen);
          }
        } else {
          console.warn("createInheritedModel() > no parent screen with id > " + parentID);
        }
      }
    }
  }
  /**
   * Inline designtokens. must come last, otherwise master screen widgets are not correctly filled.
   */


  inModel = inlineModelDesignTokens(inModel);
  return inModel;
}

function createInheritedGroups(inScreen, parentScreen, model, inModel) {
  core_Logger.log(4, 'ExportUtil.createInheritedGroups()');
  var parentGroups = getAllGroupsForScreen(parentScreen, model);
  var widgetParentMapping = {};
  inScreen.children.forEach(function (widgetID) {
    var inheritedWidget = inModel.widgets[widgetID];

    if (inheritedWidget) {
      widgetParentMapping[inheritedWidget.inherited] = widgetID;
    } else {
      console.warn('createInheritedGroups() Could not find widget', widgetID);
    }
  });
  parentGroups.forEach(function (group) {
    var newGroup = {
      name: group.name + "_" + inScreen.name,
      id: group.id + "@" + inScreen.id,
      inherited: group.id,
      inheritedScreen: parentScreen.id,
      props: clone(group.props),
      style: clone(group.style),
      children: []
    };
    group.children.forEach(function (widgetID) {
      var inheritedID = widgetParentMapping[widgetID];

      if (inheritedID) {
        newGroup.children.push(inheritedID);
      } else {
        console.warn('createInheritedGroups() Could not find parent widhet', widgetID);
      }
    });

    if (inModel.groups) {
      inModel.groups[newGroup.id] = newGroup;
    }
  });
}

function createContaineredModel(inModel) {
  for (var screenID in inModel.screens) {
    var screen = inModel.screens[screenID];

    for (var i = 0; i < screen.children.length; i++) {
      var widgetID = screen.children[i];
      var widget = inModel.widgets[widgetID];

      if (widget) {
        if (widget.isContainer) {
          var children = getContainedChildWidgets(widget, inModel);
          widget.children = children.map(function (w) {
            return w.id;
          });
        }
      } else {
        /**
         * FIXME: This can happen for screen copies...
         */
        // console.warn('Core.createContaineredModel() > cannot find widgte', widgetID)
      }
    }
  }
}

function inlineModelDesignTokens(model) {
  /**
   * This is quite costly. Can we do this smarter? Maybe we could do it in the
   * RenderFactory (beawre of hover etc). Then we would have to just add here
   * for all the reference design token the modified?
   */
  if (model.designtokens) {
    for (var widgetID in model.widgets) {
      var widget = model.widgets[widgetID];
      inlineBoxDesignToken(widget, model);
    }

    for (var screenId in model.screens) {
      var scrn = model.screens[screenId];
      inlineBoxDesignToken(scrn, model);
    }
    /**
     * FIXME Add tempaltes
     */

  }

  return model;
}

function inlineBoxDesignToken(box, model) {
  /**
   * If the box is templates, we copy all the designtokens from the template
   */
  if (box && box.template && model.templates && model.templates[box.template]) {
    var template = model.templates[box.template];

    if (template.designtokens) {
      /**
       * We could mix this in....
       */
      box.designtokens = template.designtokens;
    }
  }

  if (box && box.designtokens) {
    var designtokens = box.designtokens;

    for (var state in designtokens) {
      if (!box[state]) {
        box[state] = {};
      }

      var stateTokens = designtokens[state];

      for (var cssProp in stateTokens) {
        var designTokenId = stateTokens[cssProp];
        var designToken = model.designtokens[designTokenId];

        if (designToken) {
          if (designToken.isComplex) {
            box[state][cssProp] = designToken.value[cssProp];
          } else {
            box[state][cssProp] = designToken.value;
          }
        } else {
          console.warn('ModelUtil.inlineBoxDesignToken() > NO token with id or no value:' + designTokenId, designToken);
        }
      }
    }
  }

  return box;
}

function copyTemplateStyles(model) {
  if (model.templates) {
    for (var widgetID in model.widgets) {
      var widget = model.widgets[widgetID];

      if (widget.template) {
        var template = model.templates[widget.template];
        widget._template = template;
      }
    }
  }

  return model;
}
function inlineTemplateStyles(model) {
  for (var widgetID in model.widgets) {
    var widget = model.widgets[widgetID];

    if (widget.template) {
      /**
       * FIXME: What about style?
       */
      var style = this.getTemplatedStyle(widget, model, 'style');

      if (style) {
        widget.style = style;
      }

      var hover = this.getTemplatedStyle(widget, model, 'hover');

      if (hover) {
        widget.hover = hover;
      }

      var error = this.getTemplatedStyle(widget, model, 'error');

      if (error) {
        widget.error = error;
      }

      var focus = this.getTemplatedStyle(widget, model, 'focus');

      if (focus) {
        widget.focus = focus;
      }

      var active = this.getTemplatedStyle(widget, model, 'active');

      if (active) {
        widget.active = active;
      }

      console.debug(widget);
    }
  }

  return model;
}
function getTemplatedStyle(widget, model, prop) {
  if (widget.template) {
    if (model.templates) {
      var t = model.templates[widget.template];
      console.debug(t);

      if (t && t[prop]) {
        /**
         * Merge in overwriten styles
         */
        var merged = clone(t[prop]);

        if (widget[prop]) {
          var props = widget[prop];

          for (var key in props) {
            merged[key] = props[key];
          }
        }

        return merged;
      }
    }
  }

  return widget[prop];
}

function getContainedChildWidgets(container, model) {
  var result = [];
  /*
   * Loop over sorted list
   */

  var sortedWidgets = getOrderedWidgets(model.widgets);
  var found = false;

  for (var i = 0; i < sortedWidgets.length; i++) {
    var widget = sortedWidgets[i];

    if (container.id != widget.id) {
      if (found && isContainedInBox(widget, container)) {
        widget.container = container.id;
        result.push(widget);
      }
    } else {
      found = true;
    }
  }

  return result;
}

function addContainerChildrenToModel(model) {
  /**
   * Add here some function to add the virtual children, so that stuff
   * works also in the analytic canvas. This would mean we would have to
   * copy all the code from the Repeater to here...
   */
  return model;
}
function mixin(a, b, keepTrack) {
  if (a && b) {
    b = clone(b);

    if (keepTrack) {
      b._mixed = {};
    }

    for (var k in a) {
      if (b[k] === undefined || b[k] === null) {
        b[k] = a[k];

        if (keepTrack) {
          b._mixed[k] = true;
        }
      }
    }
  }

  return b;
}
function mixinNotOverwriten(a, b) {
  if (a && b) {
    var mixed = {};

    if (b._mixed) {
      mixed = b._mixed;
    } //console.debug("mixinNotOverwriten", overwriten)


    for (var k in a) {
      if (b[k] === undefined || b[k] === null || mixed[k]) {
        b[k] = a[k];
      }
    }
  }

  return b;
}
function clone(obj) {
  if (!obj) {
    return null;
  }

  var _s = JSON.stringify(obj);

  return JSON.parse(_s);
}
function getLines(widget, model) {
  var result = [];

  if (widget.inherited && model.widgets[widget.inherited]) {
    widget = model.widgets[widget.inherited];
  }

  var widgetID = widget.id;
  var lines = getFromLines(widget, model);

  if (lines && lines.length > 0) {
    return lines;
  }

  var group = getParentGroup(widgetID, model);

  if (group) {
    var groupLine = getFromLines(group, model);

    if (groupLine && groupLine.length > 0) {
      return groupLine;
    }
  }
  /**
   * Since 2.1.3 we use might have sub groups.
   */


  var topGroup = getTopParentGroup(widgetID, model);

  if (topGroup) {
    var _groupLine = getFromLines(topGroup, model);

    if (_groupLine && _groupLine.length > 0) {
      return _groupLine;
    }
  }

  return result;
}
function getTopParentGroup(id, model) {
  var group = getParentGroup(id, model);

  if (group) {
    while (group) {
      var parent = getParentGroup(group.id, model);

      if (parent) {
        group = parent;
      } else {
        /**
         * In contrast the the Layout copz of this, we do not add
         * all children... not sure it this is needed
         */
        return group;
      }
    }
  }

  return null;
}
function getParentGroup(widgetID, model) {
  if (model.groups) {
    for (var id in model.groups) {
      var group = model.groups[id];
      var i = group.children.indexOf(widgetID);

      if (i > -1) {
        return group;
      }
      /**
       * Since 2.13 we have subgroups and check this too
       */


      if (group.groups) {
        var _i2 = group.groups.indexOf(widgetID);

        if (_i2 > -1) {
          return group;
        }
      }
    }
  }

  return null;
}
function getGroup(widgetID, model) {
  if (model.groups) {
    for (var id in model.groups) {
      var group = model.groups[id];
      var i = group.children.indexOf(widgetID);

      if (i > -1) {
        return group;
      }
    }
  }
}
function getAllGroupChildren(group, model) {
  if (!group.children) {
    return [];
  }

  var result = group.children.slice(0);
  /**
   * Check all sub groups
   */

  if (group.groups) {
    group.groups.forEach(function (subId) {
      var sub = model.groups[subId];

      if (sub) {
        var children = getAllGroupChildren(sub, model);
        result = result.concat(children);
      } else {
        console.warn('getAllGroupChildren() No sub group', subId);
      }
    });
  }

  return result;
}
function getAllChildrenWithPosition(group) {
  var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];

  if (group.children) {
    group.children.forEach(function (child) {
      // groups might not have been defined with the width!
      if (child.x != undefined) {
        result.push(child);
      }

      getAllChildrenWithPosition(child, result);
    });
  }

  return result;
}
function getAllGroupsForScreen(screen, model) {
  var result = {};
  screen.children.forEach(function (widgetID) {
    var group = getGroup(widgetID, model);

    if (group) {
      result[group.id] = group;
    }
  });
  return Object.values(result);
}

function getFromLines(box, model) {
  var result = [];

  for (var id in model.lines) {
    var line = model.lines[id];

    if (line.from == box.id) {
      result.push(line);
    }
  }

  return result;
}

function getBoxById(id, model) {
  if (model.screens[id]) {
    return model.screens[id];
  }

  if (model.widgets[id]) {
    return model.widgets[id];
  }
}
function print(screen) {
  var grid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  var hasXY = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  var res = [];
  printElement(res, screen, '', grid, hasXY);
  screen.fixedChildren.forEach(function (e) {
    var pos = grid ? " > col: ".concat(e.gridColumnStart, " - ").concat(e.gridColumnEnd, " > row: ").concat(e.gridRowStart, " - ").concat(e.gridRowEnd) : '';
    var xw = hasXY ? "".concat(e.x, " - ").concat(e.w) : '';
    var actions = ''; // e.lines ? ' -> ' + e.lines.map(l => l.event + ':' + l.screen.name) : ''

    res.push("  ".concat(e.name, "*  ").concat(pos, " ").concat(xw, " ").concat(actions, " "));
  });
  return res.join('\n');
}

function printElement(res, e) {
  var space = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
  var grid = arguments.length > 3 ? arguments[3] : undefined;
  var hasXY = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
  var actions = ''; // e.lines ? ' -> ' + e.lines.map(l => l.event + ':' + l.screen.name) : ''
  ///let parent = e.parent ? e.parent.name + ' '  + e.parent.id :  "null"

  var pos = grid ? " > col: ".concat(e.gridColumnStart, " - ").concat(e.gridColumnEnd, " > row: ").concat(e.gridRowStart, " - ").concat(e.gridRowEnd) : '';
  var xw = hasXY ? "".concat(e.x, " - ").concat(e.w) : '';
  res.push("".concat(space).concat(e.name, " - (").concat(e.layout, ")  ").concat(pos, " ").concat(xw, " ").concat(actions, " "));

  if (e.children) {
    e.children.forEach(function (c) {
      printElement(res, c, space + '  ', grid);
    });
  }
}

function getElementsAsRows(nodes) {
  var rows = [];
  var row;
  var lastRowId = null;
  nodes.forEach(function (n) {
    var rowId = n.row ? n.row : '-1';

    if (rowId != lastRowId) {
      row = [];
      rows.push(row);
    }

    row.push(n);
    lastRowId = rowId;
  });
  return rows;
}
function setCSSClassNames(parent, screenName) {
  var name = parent.name;
  name = name.replace(/\./g, "_");

  if (name.match(/^\d/)) {
    name = "q" + name;
  }

  parent.cssScreen = "".concat(screenName.replace(/\s+/g, "_"));
  parent.cssClass = "".concat(name.replace(/\s+/g, "_"));
  var cssSelector = ".".concat(name.replace(/\s+/g, "_"));

  if (parent.parent) {
    cssSelector = ".".concat(screenName.replace(/\s+/g, "_"), " ").concat(cssSelector);
  } else {
    cssSelector = ".qux-screen".concat(cssSelector);
  }

  parent.cssSelector = cssSelector;

  if (parent && parent.children) {
    parent.children.forEach(function (c) {
      setCSSClassNames(c, screenName);
    });
  }

  if (parent && parent.fixedChildren) {
    parent.fixedChildren.forEach(function (c) {
      setCSSClassNames(c, screenName);
    });
  }
}
function stringToType(value) {
  if (value === 'true') {
    value = true;
  }

  if (value === 'false') {
    value = false;
  }

  return value;
}
// CONCATENATED MODULE: ./src/qux/transformer/GridLayouter.js
 //import { Layout } from "../core/Const"

function addGridToElements(parent) {
  /**
   * FIXME: Just add grdid when needed?
   */
  //if (parent.layout === Layout.Grid) {
  var grid = computeGrid(parent);

  if (grid) {
    parent.grid = grid;

    if (parent.children && parent.children.length > 0) {
      parent.children.forEach(function (e) {
        e.gridColumnStart = 0;
        e.gridColumnEnd = grid.columns.length;
        e.gridRowStart = 0;
        e.gridRowEnd = grid.rows.length;
        grid.columns.forEach(function (c, i) {
          /**
           * FIXME: if we want to use grdiCleanUp we
           * have to use start and end
           */
          if (c.v === e.x) {
            e.gridColumnStart = i;
          } else if (c.v === e.x + e.w) {
            e.gridColumnEnd = i;
          }
        });
        grid.rows.forEach(function (r, i) {
          if (r.v === e.y) {
            e.gridRowStart = i;
          }

          if (r.v === e.y + e.h) {
            e.gridRowEnd = i;
          }
        });
      });
    }
  } //}


  if (parent.children && parent.children.length > 0) {
    parent.children.forEach(function (c) {
      addGridToElements(c);
    });
  }

  return parent;
}
function computeGrid(parent) {
  var fixSmallColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

  if (parent.children && parent.children.length > 0) {
    var rows = {};
    var columns = {};
    /**
     * Collect all the relevant lines. First the parent
     * then all the children
     */

    addGridColumns(columns, 0, parent, true);
    addGridColumns(columns, parent.w, parent, false);
    addGridRow(rows, 0, parent, true);
    addGridRow(rows, parent.h, parent, false);
    parent.children.forEach(function (c) {
      addGridColumns(columns, c.x, c, true);
      addGridColumns(columns, c.x + c.w, c, false);
      addGridRow(rows, c.y, c, true);
      addGridRow(rows, c.y + c.h, c, false);
    });
    /**
     * Set the width and convert objects to arrays
     */

    columns = setGridColumnWidth(columns, parent);
    rows = setGridRowHeight(rows, parent);

    if (fixSmallColumns) {
      /**
       * To make htis work, we need to fix the addGridToElements() to not match values,
       * but go over the start and end thingies.
       */
      columns = computeReducedColumns(columns);
    }
    /**
     * determine fixed columns and rows
     */


    setFixedGirdRowsAndColumns(parent, columns, rows);
    return {
      rows: rows,
      columns: columns
    };
  }

  return null;
}
function computeReducedColumns(columns) {
  var temp = [];
  var last = null;

  for (var c = 0; c < columns.length; c++) {
    var col = columns[c];

    if (last && col.v - last.v < 2) {
      /**
       * This does not work
       */
      var start = last.start.concat(col.start);
      var end = last.end.concat(col.end);
      last.start = start;
      last.end = end;
    } else {
      temp.push(col);
      last = col;
    }
  }

  return temp;
}
function setFixedGirdRowsAndColumns(parent, columns, rows) {
  /**
   * Set fixed. For each child check if the
   * 1) We have fixed Vertical or Horizontal
   * 2) If pinned. e.g. if pinned right, all
   *    columns < e.v must be fixed
   */
  parent.children.forEach(function (e) {
    if (ExportUtil_isFixedHorizontal(e)) {
      columns.forEach(function (column) {
        if (column.v >= e.x && column.v < e.x + e.w) {
          column.fixed = true;
        }
      });
    }

    if (ExportUtil_isPinnedLeft(e)) {
      // FIXME: Just fix the closest
      var before = columns.filter(function (column) {
        return column.v < e.x;
      });

      if (before.length > 0) {
        before[before.length - 1].fixed = true;
      } //columns.forEach(column => {
      //    if (column.v < e.x) {
      //        column.fixed = true
      //    }
      //})

    }

    if (ExportUtil_isPinnedRight(e)) {
      var after = columns.filter(function (column) {
        return column.v >= e.x + e.w;
      });

      if (after.length > 0) {
        after[0].fixed = true;
      } //columns.forEach(column => {
      //    if (column.v >= e.x + e.w) {
      //        column.fixed = true
      //    }
      //})

    }

    if (isFixedVertical(e)) {
      rows.forEach(function (row) {
        if (row.v >= e.y && row.v < e.y + e.h) {
          row.fixed = true;
        }
      });
    }

    if (isPinnedUp(e)) {
      rows.forEach(function (row) {
        if (row.v < e.y) {
          row.fixed = true;
        }
      });
    }

    if (isPinnedDown(e)) {
      rows.forEach(function (row) {
        if (row.v >= e.y + e.h) {
          row.fixed = true;
        }
      });
    }
  });
}
function setGridColumnWidth(columns, parent) {
  columns = Object.values(columns).sort(function (a, b) {
    return a.v - b.v;
  });
  columns.forEach(function (column, i) {
    if (columns[i + 1]) {
      column.l = columns[i + 1].v - column.v;
    } else {
      column.l = parent.w - column.v;
    }
  });
  return columns.filter(function (c) {
    return c.l > 0;
  });
}
function setGridRowHeight(rows, parent) {
  rows = Object.values(rows).sort(function (a, b) {
    return a.v - b.v;
  });
  rows.forEach(function (row, i) {
    if (rows[i + 1]) {
      row.l = rows[i + 1].v - row.v;
    } else {
      row.l = parent.h - row.v;
    }
  });
  return rows.filter(function (r) {
    return r.l > 0;
  });
}
function addGridColumns(columns, x, e, start) {
  if (!columns[x]) {
    columns[x] = {
      v: x,
      start: [],
      end: [],
      fixed: false,
      hasMinMax: false
    };
  }

  if (start) {
    columns[x].start.push(e);
  } else {
    columns[x].end.push(e);
  }
  /**
   * If we have a min max, we will
   * later try to use max-content. This will
   * only work for the longest element.
   * Check CSSPosition.getGridColumnTracks()
   */


  if (hasMinMaxWdith(e)) {
    columns[x].hasMinMax = true;
  }
}
function addGridRow(rows, y, e, start) {
  if (!rows[y]) {
    rows[y] = {
      v: y,
      start: [],
      end: [],
      fixed: false
    };
  }

  if (start) {
    rows[y].start.push(e);
  } else {
    rows[y].end.push(e);
  }
}
// CONCATENATED MODULE: ./src/qux/transformer/Flat2Tree.js



 // import * as Rows from "./RowLayouter"

var cloneID = 0;
/**
 * Inlines some quant-ux stuff
 */

var supportedWidgetTypes = ["Button", "Box", "Label", "Container", "Icon", "Image", "CheckBox", "RadioBox", "RadioBox2", "HotSpot", "TextBox", "Password", "TextArea", "Repeater", "RadioGroup", "CheckBoxGroup", "ToggleButton", "Switch", "DropDown", "MobileDropDown", "Stepper", "HSlider", "Date", "DateDropDown", "SegmentButton", "Rating", "IconToggle", "LabeledIconToggle", "TypeAheadTextBox", "Table", "Paging", "BarChart", "PieChart", "MultiRingChart", "RingChart", "Vector", "Timeline", "Upload", "ChildrenToggle", "Camera", "UploadPreview", "Spinner", "DynamicContainer", "RichText", "Link"];
var textProperties = ["color", "textDecoration", "textAlign", "fontFamily", "fontSize", "fontStyle", "fontWeight", "letterSpacing", "lineHeight", "lineHeightPX"];
function Flat2Tree_transform(model, config) {
  core_Logger.log(1, "Falt2Tree.transform () > enter", config);
  var result = {
    id: model.id,
    name: model.name,
    templates: model.templates ? Object.values(model.templates) : [],
    warnings: [],
    screens: []
  };
  /**
   * IN QUX we want to attach label nodes. In Figma this causes issues. with attachLabels we control for which elements we should use this
   */

  var nodesWithLabelAttachment = config.css && config.css.attachLabels === true ? ["TextBox", "Password", "TextArea", "Box", "Button", "DropDown"] : ["TextBox", "Password", "TextArea", "DropDown"];
  var hasRows = config.css && config.css.grid !== true;

  var _loop = function _loop(screenID) {
    var screen = model.screens[screenID];
    /**
     * First we build a hierachical parent child relation.
     */

    screen = transformScreenToTree(screen, model);
    /**
     * Add rows and grid if needed
     */

    screen = layoutTree(screen, hasRows);
    /**
     * Now we put the fixed stuff in the fixedChildren list
     */

    screen = setFixedChildren(screen, model);
    /**
     * Now we need to layout the shit again, because we have removed the fixed elements.
     * FIXME: Make the layoutTree method faster that it also works with the fixedChildren
     */

    if (screen.fixedChildren && screen.fixedChildren.length > 0) {
      core_Logger.log(1, "Falt2Tree.transform() > fixed elements require double layout");
      screen = layoutTree(screen, model);
    }
    /**
     * Since 0.5 we will set now the layouts.
     */

    /**
     * set screen pos to 0,0
     */


    screen.children.forEach(function (c) {
      c.parent = screen;
    });
    screen.x = 0;
    screen.y = 0;
    attachSingleLabelsInScreen(model, screen, nodesWithLabelAttachment);
    setWidgetTypes(screen);
    Flat2Tree_setCSSClassNames(screen, screen.name);
    result.screens.push(screen);
  };

  for (var screenID in model.screens) {
    _loop(screenID);
  }

  return result;
}

function layoutTree(screen) {
  core_Logger.log('Flat2Tree.layoutTree() > ');
  /**
   * We add lines, because for wrapped groups we need the rows!
   * Attention: In the UI we can not configure this anymore!
   */
  // screen = Rows.addRows(screen)

  /**
   * First we determine the type of layout
   */

  addLayoutType(screen);
  /**
   * Afterwards we re order the elements
   */

  fixParents(screen);
  screen = addGrid(screen);
  return screen;
}

function addLayoutType(element) {
  /**
   * We set here for each element how it should be rendered, if and only if,
   * the layout has not been set by hand, e.g. in Figma.
   *
   * If we set the layout, the options are:
   * 1) Wrap -> defined in UI. Has priority
   * 2) Rows -> if the X over laps
   * 3) Grid -> Default
   */
  var grow = 0;

  if (element.layout && element.layout.grow !== undefined) {
    grow = element.layout.grow;
  }

  if (!isLayoutAuto(element)) {
    /**
     * For Figma Autos, the wrap will be ignored!
     */
    if (isWrappedContainer(element)) {
      element.layout = {
        type: Layout.Wrap,
        grow: grow
      };
      setOrderInWrapper(element, element.children);
    } else if (hasRowLayout(element)) {
      element.layout = {
        type: Layout.Row,
        grow: grow
      };
      setOrderInRow(element, element.children, false);
    } else {
      element.layout = {
        type: Layout.Grid,
        grow: grow
      };
    }
  }

  if (element.children) {
    element.children.forEach(function (child) {
      return addLayoutType(child, element);
    });
  }

  return element;
}

function addGrid(screen) {
  addGridToElements(screen);
  return screen;
}
/**
 * In a column, elements are rendered top to down
 */


function setOrderInRow(parent, nodes) {
  core_Logger.log(5, "Falt2Tree.setOrderInRow() > Column", parent.name);
  nodes.sort(function (a, b) {
    return a.y - b.y;
  });
  var last = 0;
  nodes.forEach(function (n) {
    var top = n.y - last;
    last = n.y + n.h; //n.row = i

    n.top = top;
  });
}
/**
* Sort by bz row and column. After wards set just paddings and mardings
*/


function setOrderInWrapper(parent, nodes) {
  core_Logger.log(3, "Falt2Tree.setOrderInWrapper() > Wrapper Container", parent.name);
  nodes.sort(function (a, b) {
    if (isOverLappingY(a, b)) {
      return a.x - b.x;
    }

    return a.y - b.y;
  });

  if (parent.isGroup) {
    /*
    	* If the parent is group, the offet will be 0! So we calculate instead
    	* the didtance between the first and second row and first and second column.
    	* This is offcourse just guess.
    	*/
    var offsetBottom = 10;
    var offSetRight = 10;
    /**
     * FIXME: This is broken???
     */

    var rows = getElementsAsRows(nodes);

    if (rows[0] && rows[0].length > 1 && rows[1]) {
      var firstRowChild1 = rows[0][0];
      var firstRowChild2 = rows[0][1];
      var secondRowChild2 = rows[1][0];
      offSetRight = firstRowChild2.x - (firstRowChild1.x + firstRowChild1.w);
      offsetBottom = secondRowChild2.y - (firstRowChild1.y + firstRowChild1.h);
    } else {
      core_Logger.log(-1, "Falt2Tree.setOrderAndRelativePositons() > cannot guess offsets for Wrapper Container", parent.name);
    }

    parent.style.paddingTop = 0;
    parent.style.paddingBottom = 0;
    parent.style.paddingLeft = 0;
    parent.style.paddingRight = 0;
    nodes.forEach(function (n) {
      n.wrapOffSetBottom = offsetBottom;
      n.wrapOffSetRight = offSetRight;
      n.wrapOffSetY = 0;
      n.wrapOffSetX = 0;
    });
  } else {
    /**
     * We take as the position, the offset of the first element
     * Then we add half as padding and the rest a masgin for
     * the children
     */
    var firstNode = nodes[0];
    var offSetX = Math.round(firstNode.x / 2);
    var offSetY = Math.round(firstNode.y / 2);
    parent.style.paddingTop = offSetY;
    parent.style.paddingBottom = offSetY;
    parent.style.paddingLeft = offSetX;
    parent.style.paddingRight = offSetX;
    nodes.forEach(function (n) {
      n.wrapOffSetY = offSetY;
      n.wrapOffSetX = offSetX;
    });
  }
}

function setWidgetTypes(parent) {
  parent.qtype = getWidgetType(parent);

  if (parent.children) {
    parent.children.forEach(function (c) {
      setWidgetTypes(c);
    });
  }

  if (parent.fixedChildren) {
    parent.fixedChildren.forEach(function (c) {
      setWidgetTypes(c);
    });
  }

  if (parent.templates) {
    parent.templates.forEach(function (c) {
      setWidgetTypes(c);
    });
  }
}

function Flat2Tree_setCSSClassNames(parent, screenName) {
  return setCSSClassNames(parent, screenName);
}

function getWidgetType(element) {
  /**
   * We check here different component overrides
   */
  if (element.props.customComponent) {
    core_Logger.log(-1, "Falt2Tree.getWidgetType() > Use customComponent", element);
    return element.props.customComponent;
  }

  if (element.type === "ComponentSet") {
    return "qComponentSet";
  }

  if (element.type === "DynamicContainer") {
    return "qDynamicContainer";
  }

  if (element.children && element.children.length > 0) {
    if (element.type === "Repeater") {
      return "qRepeater";
    }

    if (element.type === "ChildrenToggle") {
      return "qChildrenToggle";
    }

    return "qContainer";
  } else {
    if (supportedWidgetTypes.indexOf(element.type) >= 0) {
      return "q".concat(element.type);
    }
    /**
     * There is a raw ase were fixed children might cause an issue
     */


    core_Logger.warn("Falt2Tree.getWidgetType() > Not supported widget type: " + element.type);
    return "qBox";
  }
}

function fixParents(parent) {
  if (parent.children) {
    parent.children.forEach(function (c) {
      c.parent = parent;
      fixParents(c);
    });
  }
}

function attachSingleLabelsInScreen(model, screen) {
  var allowedTypes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
  core_Logger.log(3, "Falt2Tree.attachSingleLabelsInScreen()", allowedTypes);
  screen.children.forEach(function (child) {
    attachSingleLabelsInNodes(model, child, allowedTypes);
  });
  return screen;
}

function attachSingleLabelsInNodes(model, node, allowedTypes) {
  /**
   * If we have a box that has NO label props and contains
   * only one child of type label, we merge this in.
   */
  var type = node.type; //Logger.log(-7, "Falt2Tree.attachSingleLabelsInNodes()", node.name , node.children.length, allowedTypes.indexOf(type) >= 0, )

  if (!node.props.label && node.children.length === 1 && (allowedTypes === null || allowedTypes.indexOf(type) >= 0)) {
    var child = node.children[0];
    /**
     * TODO: We should check here if teh re is a link. What to do with the link?
     * Copy to aprent if it is different?
     */

    var lines = getLines(child, model);

    if (child.type === "Label" && lines.length === 0) {
      core_Logger.log(7, "Falt2Tree.attachSingleLabelsInNodes()", child.name, node.name);
      node.props.label = child.props.label;
      node.children = [];
      /**
       * For none input types set to Box
       */

      if (!isInputElement(node)) {
        node.type = "Box";
        node.qtype = "qBox";
      }

      textProperties.forEach(function (key) {
        if (child.style[key]) {
          node.style[key] = child.style[key];
        }
      });
      node.style.paddingTop = child.y;
      node.style.paddingBottom = node.h - child.h - child.y;
      node.style.paddingLeft = child.x;
      node.style.paddingRight = node.w - child.w - child.x;
      /**
       * If the parent is an auto layout, remove it.
       */

      if (isLayoutAuto(node)) {
        node.layout = {
          type: Layout.Row
        };
      }

      node.style = fixAutos(node.style, child);
      /**
       * Merge in the databinding of the child, if there is no data binding of the parent
       */

      if (child.props.databinding && !node.props.databinding) {
        core_Logger.log(-1, "Falt2Tree.attachSingleLabelsInNodes() copy data binding", child.name, node.name);
        node.props.databinding = child.props.databinding;
      } // remove grid??

    } else {
      /**
       * TODO: We have two conditions that can fail and require us to go deeper.
       * Therefore we need to call this recursive code again. We could have a better check,
       * to make teh code more beautifull
       */
      node.children.forEach(function (child) {
        attachSingleLabelsInNodes(model, child, allowedTypes);
      });
    }
  } else {
    node.children.forEach(function (child) {
      attachSingleLabelsInNodes(model, child, allowedTypes);
    });
  }
}
/**
 * Transforms and screen into a hiearchical presentation. return the root node.
 */


function transformScreenToTree(screen, model) {
  var result = Flat2Tree_clone(screen);
  delete result.children;
  delete result.has;
  result.children = [];
  result.fixedChildren = [];
  /**
   * Get widget in render order. This is important to derive the
   * parent child relations.
   */

  var widgets = getOrderedWidgets(getWidgets(screen, model));
  /**
   *  now build child parent relations
   */

  var parentWidgets = [];
  var elementsById = {};
  widgets.forEach(function (widget) {
    // console.debug('buildTree', widget.name, '    in ', parentWidgets.map(p => p.name).join(', '))
    var element = Flat2Tree_clone(widget);
    element._x = widget.x;
    element._y = widget.y;
    element.children = [];
    var group = getGroup(widget.id, model);
    element.group = group;
    /**
     * Check if the widget has a parent (= is contained) widget.
     * If so, calculate the relative position to the parent,
     * otherwise but the element under the screen.
     */

    var parentWidget = getParentWidget(parentWidgets, element, model);

    if (parentWidget && canBeChild(element, parentWidget)) {
      //  was Util.canHaveChildren(parentWidget)
      element.x = widget.x - parentWidget.x;
      element.y = widget.y - parentWidget.y;
      element.parent = parentWidget;
      elementsById[parentWidget.id].children.push(element);
    } else {
      element.x = widget.x - screen.x;
      element.y = widget.y - screen.y;
      element.parent = null;
      result.children.push(element);
      /**
       * If we have a widget directly under the screen, and we have a negative margin, crop
       * This might happen with figma
       */

      if (element.y < 0) {
        core_Logger.log(2, "Falt2Tree.transformScreenToTree() > fix negative margin", element.name);
        element.h += element.y;
        element.y = 0;
      }
    }
    /**
     * Save the widget, so we can check in the next
     * iteation if this is a parent or not! Only use
     * widgets that can have children
     */


    if (canHaveChildren(widget)) {
      parentWidgets.unshift(widget);
    }

    elementsById[element.id] = element;
  });
  /**
   * Padding messes with the grid :(
   */

  resetPadding(result);
  return result;
}

function setFixedChildren(screen, model) {
  if (screen.children) {
    setFixedChildrenInElement(screen, screen, model);
  }

  return screen;
}

function setFixedChildrenInElement(element, screen, model) {
  var fixBottomNodes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;

  /**
   * Attention. Fixed elements must be set in the model as fixed. Otherwise
   * the oder in the tree method is not correct and the will be wrongly nested!
   */
  if (element.children) {
    var children = [];
    element.children.forEach(function (child) {
      if (child.style.fixed === true) {
        child.x = child._x - screen.x;
        child.y = child._y - screen.y; // the first call if with the element being the screen

        if (element.id !== screen.id) {
          element.parent = screen;
        }

        setAllChildrenAsNotFixed(child);

        if (fixBottomNodes) {
          setFixedBottom(child, model, screen);
        }

        screen.fixedChildren.push(child);
      } else {
        setFixedChildrenInElement(child, screen, model);
        children.push(child);
      }
    });
    element.children = children;
  }
}

function setFixedBottom(element, model, screen) {
  /**
   * IF we have an pinned bottom
   */
  if (isPinnedDown(element)) {
    element.bottom = getDistanceFromScreenBottom(element, model, screen);
  }
}

function setAllChildrenAsNotFixed(element) {
  if (element.children) {
    element.children.forEach(function (child) {
      child.style.fixed = false;
      setAllChildrenAsNotFixed(child);
    });
  }
}

function resetPadding(element) {
  if (element.children) {
    element.children.forEach(function (child) {
      /**
       * If we have more than one child, we have to set the padding to 0.
       * Also, we have to create an label element
       */
      var labelToAdd = null;

      if (child.children && child.children.length > 0) {
        var style = child.style;

        if (child.props.label) {
          var _style = child.style;
          var paddingLeft = _style.paddingLeft ? _style.paddingLeft : 0;
          var paddingRight = _style.paddingRight ? _style.paddingRight : 0;
          var paddingBottom = _style.paddingBottom ? _style.paddingBottom : 0;
          var paddingTop = _style.paddingTop ? _style.paddingTop : 0; // Logger.warn('Falt2Tree.resetPadding() > inline label!', child)

          labelToAdd = {
            id: child.id + "-label",
            name: child.name + "-label",
            type: "Label",
            x: _style.paddingRight,
            y: _style.paddingTop,
            w: child.w - paddingLeft - paddingRight,
            h: child.h - paddingBottom - paddingTop,
            props: clone(child.props),
            style: {
              color: _style.color,
              textAlign: _style.textAlign,
              fontFamily: _style.fontFamily,
              fontSize: _style.fontSize,
              fontStyle: _style.fontStyle,
              fontWeight: _style.fontWeight,
              letterSpacing: _style.letterSpacing,
              lineHeight: _style.lineHeight,
              verticalAlign: _style.verticalAlign
            },
            children: []
          };
        }

        style.paddingBottom = 0;
        style.paddingLeft = 0;
        style.paddingRight = 0;
        style.paddingTop = 0;
        resetPadding(child);

        if (labelToAdd) {
          /**
           * Or add to fron?
           */
          child.children.push(labelToAdd);
        }
      }
    });
  }
}
/**
 * This method will try to find the parent widget. By default,
 * the parent child relation ship is defined as the visual hierachy. This must be done, to
 * get nice nested HTML also from drawing style.
 *
 * Figma, however, might have overflows. Thus we check, if there is no visual parent,
 * also the parentID.
 */


function getParentWidget(potentialParents, element, model) {
  /**
   * First see if the widget is nested in a widget that was rendered before
   */
  for (var p = 0; p < potentialParents.length; p++) {
    var parent = potentialParents[p];

    if (isContainedInBox(element, parent)) {
      return parent;
    }
  }
  /**
   * If not, check of the parent was defined otherwise, e.g. figma.
   */


  if (element.parentId) {
    var _parent = model.widgets[element.parentId];

    if (_parent) {
      return _parent;
    }
  }
}

function getWidgets(screen, model) {
  var widgets = [];

  for (var i = 0; i < screen.children.length; i++) {
    var id = screen.children[i];
    var widget = model.widgets[id];
    widgets.push(widget);
  }

  return widgets;
}

function Flat2Tree_clone(obj) {
  var clone = JSON.parse(JSON.stringify(obj));
  clone._id = cloneID++;
  return clone;
}
// CONCATENATED MODULE: ./src/qux/transformer/Quant2Flat.js


function Quant2Flat_transform(app, config) {
  core_Logger.log(3, "Quant2Flat.transform () > enter", config);
  var model = clone(app);
  var isForcePinnedLeft = config.css && config.css.pinnedLeft === true;
  var isForcePinnedRight = config.css && config.css.pinnedRight === true;
  var isForceFixedHorizontal = config.css && config.css.fixedHorizontal === true;
  /**
   * Before we start, we create an inherited model!
   */

  model = createInheritedModel(model);
  /**
   * Copy templates as _template into widgets so we can use the information later
   * in the CSSPostion.getCorrectedHeight!
   */

  model = copyTemplateStyles(model);
  /**
   * Set forced left and right pinned
   */

  model = addForcedResize(model, isForcePinnedLeft, isForcePinnedRight, isForceFixedHorizontal);
  /**
   * Set default data binding
   */

  if (config.addDefaultDatabinding) {
    model = addDefaultDataBinding(model);
  }
  /**
   * Set certain widgets horizontal fixed
   */


  model = fixHorizontal(model);
  /**
   * Make sure names are unique
   */

  model = fixNames(model);
  /**
   * Add links
   */

  model = addActions(model);
  /**
   * Make sure templates are inlined
   */

  setTemplateStyles(model);
  /**
   * Add here virtual elements for the groups
   */

  for (var screenID in model.screens) {
    var screen = model.screens[screenID];
    model = addGroupWrapper(screen, model);
  }

  return model;
}
/**
 * Set tenplates in widgets
 */

function setTemplateStyles(model) {
  if (model.templates) {
    Object.values(model.templates).forEach(function (t) {
      t.cssSelector = ".qux-template-".concat(t.name);
      t.cssClass = "qux-template-".concat(t.name);
      /**
       * TODO: Make faster with lookup map...
       */

      Object.values(model.widgets).forEach(function (widget) {
        if (widget.template === t.id) {
          if (!widget.sharedCssClasses) {
            widget.sharedCssClasses = [];
          }

          widget.sharedCssClasses.push(t.cssClass);
          /**
           * The vertical align is copied directly... This should be some how handled
           * by the css factory...
           */

          if (t.style && t.style.verticalAlign && !widget.style.verticalAlign) {
            widget.style.verticalAlign = t.style.verticalAlign;
          }
        }
      });
    });
  }
}

function addActions(model) {
  Object.values(model.widgets).forEach(function (w) {
    var lines = getLines(w, model, true);

    if (lines.length > 0) {
      w.lines = lines;
    }
  });
  Object.values(model.screens).forEach(function (s) {
    var lines = getLines(s, model, true);

    if (lines.length > 0) {
      s.lines = lines;
    }
  });
  return model;
}

function addForcedResize(model, isForcePinnedLeft, isForcePinnedRight, isForceFixedHorizontal) {
  if (isForcePinnedLeft || isForcePinnedRight || isForceFixedHorizontal) {
    core_Logger.log(2, "Quant2Flat.addForcedResize()", isForcePinnedLeft, isForcePinnedRight);
    Object.values(model.widgets).forEach(function (w) {
      if (!w.props.resize) {
        w.props.resize = {
          right: false,
          up: false,
          left: false,
          down: false,
          fixedHorizontal: false,
          fixedVertical: false
        };
      }

      if (isForcePinnedLeft) {
        w.props.resize.left = true;
      }

      if (isForceFixedHorizontal && !w.props.right) {
        w.props.resize.fixedHorizontal = true;
      }

      if (isForcePinnedRight && !w.props.fixedHorizontal) {
        w.props.resize.right = true;
      }
    });
  }

  return model;
}

function addDefaultDataBinding(model) {
  var _loop = function _loop(screenId) {
    var screen = model.screens[screenId];
    var children = screen.children;

    if (children) {
      children.forEach(function (widgetId) {
        var widget = model.widgets[widgetId];

        if (widget && widget.props) {
          if (!widget.props.databinding || Object.values(widget.props.databinding) === 0) {
            widget.props.databinding = {
              default: getDefaultDataBinding(screen, widget)
            };
            core_Logger.log(2, "Quant2Flat.addDefaultDataBinding() > ", widget.props.databinding);
          }
        }
      });
    }
  };

  for (var screenId in model.screens) {
    _loop(screenId);
  }

  return model;
}

function getDefaultDataBinding(screen, widget) {
  /**
   * RadioBoxes need some special handling. We create a binding for the group if specified
   */
  if (widget.type === "RadioBox2" && widget.props && widget.props.formGroup) {
    return escapeSpaces("".concat(screen.name, ".").concat(widget.props.formGroup));
  }

  return escapeSpaces("".concat(screen.name, ".").concat(widget.name));
}

function escapeSpaces(s) {
  return s.replace(/\s+/g, "_");
}

function fixHorizontal(model) {
  var fixed = ["Switch", "Stepper"];

  for (var widgetId in model.widgets) {
    var widget = model.widgets[widgetId];

    if (fixed.indexOf(widget.type) >= 0) {
      if (!widget.props.resize) {
        widget.props.resize = {};
      }

      widget.props.resize.fixedHorizontal = true;
    }
  }

  return model;
}

function fixNames(model) {
  var screens = Object.values(model.screens);
  screens.forEach(function (screen, j) {
    screen.name = fixElementName(screen.name);
    var otherScreensWithSameName = screens.filter(function (o) {
      return o.name === screen.name;
    });

    if (otherScreensWithSameName.length > 1) {
      core_Logger.log(3, "Quant2Flat.fixNames() > Fix double screen name:" + screen.name);
      screen.name += "_" + j;
    }

    var children = screen.children;

    if (children) {
      var widgets = children.map(function (widgetId) {
        return model.widgets[widgetId];
      });
      widgets.forEach(function (w, i) {
        w.name = fixElementName(w.name);
        var others = widgets.filter(function (o) {
          return o.name === w.name;
        });

        if (others.length > 1) {
          core_Logger.log(3, "Quant2Flat.fixNames() > Fix double widget name: " + w.name + " in screen " + screen.name);
          w.name += "_" + i;
        }
      });
    }
  });

  if (model.templates) {
    Object.values(model.templates).forEach(function (t) {
      t.name = fixElementName(t.name);
    });
  }
  /**
   * DEPREACTED SHOULD NEVER BE CALLED: We should fix doubles names. With mastre screens
   * we could have overwites! We could rename them, but this
   * would have to be consistant in all screens!
   */


  var _loop2 = function _loop2(screenID) {
    var screen = model.screens[screenID];
    var children = screen.children;
    var names = children.map(function (c) {
      return model.widgets[c].name;
    });
    var count = {};
    names.forEach(function (n) {
      if (count[n]) {
        core_Logger.error("Quant2Flat.fixNames() > Dubplicate name of element '".concat(n, "' in screen '").concat(screen.name, "'"));
      }

      count[n] = true;
    });
  };

  for (var screenID in model.screens) {
    _loop2(screenID);
  }

  return model;
}

function fixElementName(str) {
  return str.replace(/[^0-9a-z-]/gi, '');
}

function addGroupWrapper(screen, model) {
  core_Logger.log(4, "Quant2Flat.addGroupWrapper() > create ", screen.name);
  var widgets = getOrderedWidgets(Quant2Flat_getWidgets(screen, model));
  var createdGroups = {};
  var order = [];
  widgets.forEach(function (widget) {
    var group = getGroup(widget.id, model);

    if (group) {
      createGroupCntr(group, model, createdGroups, order, screen);
    }

    order.push(widget);
  });
  /**
   * Set new z to ensure that the groups are before the
   */

  order.forEach(function (widget, i) {
    widget.z = i;
  });
  return model;
}

function createGroupCntr(group, model, createdGroups, order, screen) {
  /**
   * Create new group container only if needed
   */
  if (!createdGroups[group.id]) {
    core_Logger.log(2, "Quant2Flat.createGroupCntr() > create ", group.name);
    /**
     * 1) check if we need to create parent group. If so we go up hierachy
     */

    var parentGroup = getParentGroup(group.id, model);

    if (parentGroup) {
      createGroupCntr(parentGroup, model, createdGroups, order, screen);
    }
    /**
     * 2) Now create the group cntr
     */


    var allGroupChildren = getAllGroupChildren(group, model);
    var boundingBox = getBoundingBoxByIds(allGroupChildren, model);
    var groupCntr = {
      id: "gc".concat(group.id),
      name: group.name,
      groupId: group.id,
      isGroup: true,
      type: "Box",
      x: boundingBox.x,
      y: boundingBox.y,
      w: boundingBox.w,
      h: boundingBox.h,
      style: group.style ? group.style : {},
      props: {
        resize: group.props && group.props.resize ? group.props.resize : {
          right: false,
          up: false,
          left: false,
          down: false,
          fixedHorizontal: false,
          fixedVertical: false
        }
      }
    };
    /**
     * For inhereted groups make sure that the inherited flag
     * is set, other wise the sortWidgets methods will put
     * it behind it's children and nesting does not work!
     */

    if (group.inherited) {
      groupCntr.inherited = group.inherited;
    }
    /**
     * Add it to the model and link stuff properly
     */


    model.widgets[groupCntr.id] = groupCntr;
    screen.children.push(groupCntr.id);
    createdGroups[group.id] = groupCntr;
    /**
     * Attention, this is imporant! We add the groupCntr here.
     * After this method, the widget will be added! By doing this,
     * we ensure the right order.
     */

    order.push(groupCntr);
  }
}

function Quant2Flat_getWidgets(screen, model) {
  var widgets = [];

  for (var i = 0; i < screen.children.length; i++) {
    var id = screen.children[i];
    var widget = model.widgets[id];
    widgets.push(widget);
  }

  return widgets;
}
// CONCATENATED MODULE: ./src/qux/transformer/Tree2Component.js
// import * as Util from "../core/ExportUtil"


/**
 * Get a sub tree. This
 */

function Tree2Component_transform(tree, selectedName, config) {
  var postFix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '-WrapperScreen';
  core_Logger.log(0, "Tree2Component.transform () > enter", selectedName, postFix);
  var componentTree = {
    id: tree.id,
    name: tree.name,
    templates: tree.templates,
    warnings: [],
    screens: []
  };
  var matches = findElementsByName(tree, selectedName);

  if (matches.length === 1) {
    var match = matches[0];
    /**
     * We create here a wrapping screen
     */

    var screen = {
      id: match.id + postFix,
      name: match.name + postFix,
      x: match.x,
      y: match.y,
      w: match.w,
      h: match.h,
      qType: 'qContainer',
      type: 'Screen',
      cssClass: match.cssClass + postFix,
      cssSelector: ".qux-screen.".concat(match.cssClass).concat(postFix),
      children: [match],
      fixedChildren: [],
      actions: [],
      props: {},
      style: {},
      isComponentScreen: true
    };
    componentTree.screens.push(screen);
    componentTree.id = match.id + '-' + componentTree.id;
    /**
     * We make a special rendering (100% height) in the CSSFactory. This
     * we force a grid, but what ever...
     */

    match.hasComponentScreenParent = true;
    /**
     * Do not forget to update the css Selectors
     */

    Flat2Tree_setCSSClassNames(match, match.name + postFix);
  } else if (matches.length > 1) {
    core_Logger.error('Tree2Component.transform() > ERROR: More than one component with name', selectedName);
  } else {
    core_Logger.error('Tree2Component.transform() > ERROR: No component with name', selectedName);
  }

  return componentTree;
}
function findElementsByName(tree, name) {
  var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];

  if (tree.screens) {
    tree.screens.forEach(function (screen) {
      findElementsByNameInScreen(screen, name, result);
    });
  }

  return result;
}
function findElementsByNameInScreen(e, name) {
  var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];

  if (e.children) {
    e.children.forEach(function (c) {
      if (c.name === name) {
        result.push(c);
      }

      findElementsByName(c, name, result);
    });
  }

  return result;
}
// CONCATENATED MODULE: ./src/qux/transformer/Inline.js


function Inline_transform(treeModel, config) {
  core_Logger.log(3, "Inline.transform () > enter", config);
  var elements = getTreeElements(treeModel);

  var _loop = function _loop(id) {
    var element = elements[id];

    if (element.type === 'DynamicContainer' && element.props.dynamicChildren) {
      core_Logger.log(4, "Inline.transform () > inline", element.name, element.figmaComponentId);
      /**
       * We have to set here the component class
       */

      if (element.props.dynamicParent && elements[element.props.dynamicParent]) {
        var parent = elements[element.props.dynamicParent];
        element.cssComponentClasses = [parent.cssScreen];
      }
      /**
       * Attention. We set here only references. This means the
       * parent and css selectors are per so not correct
       */


      element.children = [];
      element.props.dynamicChildren.forEach(function (childId) {
        var childElement = elements[childId];

        if (childElement) {
          element.children.push(childElement);
        }
      });
    }
  };

  for (var id in elements) {
    _loop(id);
  }

  return treeModel;
}
function createCopy(element) {
  var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var result = {
    id: element.id + ':' + count,
    name: element.name,
    style: clone(element.style),
    props: clone(element.props)
  };
  return result;
}

function getTreeElements(treeModel) {
  var result = {};
  treeModel.screens.forEach(function (screen) {
    getChildElements(screen, result);
  });
  return result;
}

function getChildElements(element, result) {
  result[element.id] = element;

  if (element.children) {
    element.children.forEach(function (child) {
      return getChildElements(child, result);
    });
  }
}
// CONCATENATED MODULE: ./src/qux/core/ModelTransformer.js
function ModelTransformer_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function ModelTransformer_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function ModelTransformer_createClass(Constructor, protoProps, staticProps) { if (protoProps) ModelTransformer_defineProperties(Constructor.prototype, protoProps); if (staticProps) ModelTransformer_defineProperties(Constructor, staticProps); return Constructor; }

//import * as Util from './ExportUtil'





/**
 * This class transforms an absolute quant-ux model into an
 * kind of HTML model, where the elements have a real parent
 * child relation child
 */

var ModelTransformer_ModelTransformer = /*#__PURE__*/function () {
  function ModelTransformer(app) {
    var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    var selected = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;

    ModelTransformer_classCallCheck(this, ModelTransformer);

    this.config = config;
    this.model = app;
    this.selected = selected;
  }

  ModelTransformer_createClass(ModelTransformer, [{
    key: "transform",
    value: function transform() {
      core_Logger.log(0, 'ModelTransformer.transform() > selected: ', this.selected);
      var model = this.model; // 1) Make a flat model, e.g. merge in master screens

      var flatModel = Quant2Flat_transform(model, this.config); // 2) Build a tree and layout everything. This will also layout component sets!

      var treeModel = Flat2Tree_transform(flatModel, this.config); // 3) For dynamic widgets, inline all children.

      var inlineModel = Inline_transform(treeModel, this.config);

      if (this.selected) {
        inlineModel = Tree2Component_transform(inlineModel, this.selected, this.config);
      }

      return inlineModel;
    }
  }]);

  return ModelTransformer;
}();


// CONCATENATED MODULE: ./src/qux/core/CSSOptimizer.js
function CSSOptimizer_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function CSSOptimizer_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function CSSOptimizer_createClass(Constructor, protoProps, staticProps) { if (protoProps) CSSOptimizer_defineProperties(Constructor.prototype, protoProps); if (staticProps) CSSOptimizer_defineProperties(Constructor, staticProps); return Constructor; }




var CSSOptimizer_CSSOptimizer = /*#__PURE__*/function () {
  function CSSOptimizer() {
    CSSOptimizer_classCallCheck(this, CSSOptimizer);

    /**
     *  Keep the order to collapsed Order: top-left | top-right | bottom-right | bottom-left
     */
    this.borderRadius = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"];
    /**
    * Order: top, right, bottom, left
    */

    this.borderWidth = ["borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth"];
    this.borderStyle = ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'];
    this.borderColor = ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'];
    this.padding = ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'];
  }

  CSSOptimizer_createClass(CSSOptimizer, [{
    key: "runFlat",
    value: function runFlat(model) {
      model = clone(model);

      if (model.templates) {
        this.compressDict(model.templates);
      }

      this.compressDict(model.screens);
      this.compressDict(model.widgets);
      return model;
    }
  }, {
    key: "runTree",
    value: function runTree(model) {
      var _this = this;

      var replaceVerticalWithPadding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

      /**
      * Generate the template styles
      */
      model.templates.forEach(function (template) {
        // template groups have no style...
        if (template.style) {
          template.style = _this.compress(template.style, template);
        }
      });
      /**
       * Generate styles for each screen. The templates styles
       * might here be reused!
       */

      model.screens.forEach(function (screen) {
        screen.style = _this.compress(screen.style, screen);
        screen.children.forEach(function (child) {
          _this.compressChildren(child, replaceVerticalWithPadding);
        });

        if (screen.fixedChildren) {
          screen.fixedChildren.forEach(function (child) {
            _this.compressChildren(child, replaceVerticalWithPadding);
          });
        }
      });
      return model;
    }
  }, {
    key: "compressChildren",
    value: function compressChildren(element, replaceVerticalWithPadding) {
      var _this2 = this;

      element.style = this.compress(element.style, element, replaceVerticalWithPadding);

      if (element.children) {
        element.children.forEach(function (child) {
          _this2.compressChildren(child, replaceVerticalWithPadding);
        });
      }
    }
  }, {
    key: "compressDict",
    value: function compressDict(dict) {
      var _this3 = this;

      Object.values(dict).forEach(function (item) {
        item.style = _this3.compress(item.style, item);
      });
    }
  }, {
    key: "compress",
    value: function compress(style, element) {
      var replaceVerticalWithPadding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;

      /**
       * Dynamic componets have children taht will be already compressed as part
       * of the component wrapper screen. We do not want this.
       */
      if (style._isCompressed) {
        return style;
      }

      style._isCompressed = true;

      if (replaceVerticalWithPadding) {
        style = this.removeVAlign(style, element);
      }

      this.compressAttribes(style, this.padding, 'padding', 'px', 0);
      /**
       * Compress and collapse border
       */

      this.compressAttribes(style, this.borderRadius, 'borderRadius', 'px', 0);
      var borderIsEqual = this.compressAttribes(style, this.borderColor, 'borderColor', false, 'transparent');
      var widthIsEqual = this.compressAttribes(style, this.borderWidth, 'borderWidth', 'px', 0);
      var styleIsEqual = this.compressAttribes(style, this.borderStyle, 'borderStyle', false, 'solid');
      /**
       * Merge borders of possible
       */

      if (borderIsEqual && widthIsEqual && styleIsEqual) {
        style.border = "".concat(style.borderWidth, " ").concat(style.borderStyle, " ").concat(style.borderColor);
        delete style.borderColor;
        delete style.borderWidth;
        delete style.borderStyle;
      }
      /**
       * Remove defaults for the all equal case
       */


      if (style.borderStyle === 'solid solid solid solid') {
        delete style.borderStyle;
      }

      if (style.borderStyle === 'solid') {
        delete style.borderStyle;
      } // if (style.border && style.border.indexOf('0px') === 0) {
      //    delete style.border
      //}


      if (style.padding === '0px') {
        delete style.padding;
      }

      if (style.borderRadius === '0px') {
        delete style.borderRadius;
      }

      return style;
    }
  }, {
    key: "removeVAlign",
    value: function removeVAlign(style, element) {
      if (style.verticalAlign === 'middle' && style.fontSize && style.fontSize !== 'auto') {
        core_Logger.log(3, 'CSSOptimizer.removeVAILN() > middle', element.name);
        delete style.verticalAlign;
        style.paddingTop = Math.round((element.h - style.fontSize) / 2);
        style.paddingBottom = element.h - style.fontSize - style.paddingTop;
      }

      if (style.verticalAlign === 'bottom' && style.fontSize && style.fontSize !== 'auto') {
        core_Logger.log(3, 'CSSOptimizer.removeVAILN() > bottom', element.name);
        delete style.verticalAlign;
        style.paddingTop = Math.round(element.h - style.fontSize);
        style.paddingBottom = 0;
      }

      return style;
    }
  }, {
    key: "resizeToBoxModel",
    value: function resizeToBoxModel(widget) {
      if (widget.style) {
        if (widget.style.paddingTop) {
          widget.h -= widget.style.paddingTop;
        }

        if (widget.style.paddingBottom) {
          widget.h -= widget.style.paddingBottom;
        }

        if (widget.style.paddingLeft) {
          widget.w -= widget.style.paddingLeft;
        }

        if (widget.style.paddingRight) {
          widget.w -= widget.style.paddingRight;
        }

        if (widget.style.borderTopWidth) {
          widget.h -= widget.style.borderTopWidth;
        }

        if (widget.style.borderBottomWidth) {
          widget.h -= widget.style.borderBottomWidth;
        }

        if (widget.style.borderLeftWidth) {
          widget.w -= widget.style.borderLeftWidth;
        }

        if (widget.style.borderRightWidth) {
          widget.w -= widget.style.borderRightWidth;
        }
      }

      return widget;
    }
  }, {
    key: "compressAttribes",
    value: function compressAttribes(style, keys, prop, unit, defaultValue) {
      /**
       * Check if we have all the same
       */
      var firstValue = style[keys[0]];

      if (keys.every(function (key) {
        return style[key] === firstValue;
      })) {
        if (firstValue === undefined || firstValue === null) {
          firstValue = defaultValue;
        }

        if (unit) {
          firstValue += unit;
        }

        keys.forEach(function (key) {
          /**
           * Remove but store a backup for CSSFactory to fix box height
           */
          style['_' + key] = style[key];
          delete style[key];
        });
        style[prop] = firstValue;
        return true;
      } else {
        var values = [];
        keys.forEach(function (key) {
          var value = style[key];

          if (value === undefined || value === null) {
            value = defaultValue;
          }

          if (unit) {
            value += unit;
          }

          values.push(value);
          style['_' + key] = style[key];
          delete style[key];
        });
        style[prop] = values.join(' ');
        return false;
      }
    }
  }]);

  return CSSOptimizer;
}();


// CONCATENATED MODULE: ./src/qux/core/ColorUtil.js
function fromRgb(
/*String*/
color) {
  var m = color.toLowerCase().match(/^rgba?\(([\s\\.,0-9]+)\)/);
  return m && fromArray(m[1].split(/\s*,\s*/)); // Color
}
function fromHex(
/*String*/
color) {
  var result = {};
  var bits = color.length == 4 ? 4 : 8;
  var mask = (1 << bits) - 1;
  color = Number("0x" + color.substr(1));

  if (isNaN(color)) {
    return;
  }

  var rgb = ["b", "g", "r"];
  rgb.forEach(function (x) {
    var c = color & mask;
    color >>= bits;
    result[x] = bits == 4 ? 17 * c : c;
  });
  result.a = 1;
  return result;
}
function fromArray(
/** array */
a) {
  var result = {};
  var rgb = ["b", "g", "r"];
  rgb.forEach(function (x, i) {
    result[x] = a[i] * 1;
  });

  if (isNaN(result.a)) {
    result.a = 1;
  }

  return result;
}
function fromString(str) {
  if (str === 'transparent') {
    return {
      r: 0,
      g: 0,
      b: 0,
      a: 0
    };
  } else {
    return fromRgb(str) || fromHex(str);
  }
}
function ColorUtil_toString(color) {
  return "rgba(".concat(color.r, ", ").concat(color.g, ", ").concat(color.b, ", ").concat(color.a, ")");
}
// CONCATENATED MODULE: ./src/qux/web/css/PagingCSS.js
function PagingCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function PagingCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function PagingCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) PagingCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) PagingCSS_defineProperties(Constructor, staticProps); return Constructor; }



var PagingCSS_PaginCSS = /*#__PURE__*/function () {
  function PaginCSS(cssFactory) {
    PagingCSS_classCallCheck(this, PaginCSS);

    core_Logger.log(5, 'PaginCSS.constructor()');
    this.cssFactory = cssFactory;
  }

  PagingCSS_createClass(PaginCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      result += selector + ' .qux-paging-item {\n';
      result += "  width:".concat(style.fontSize * 2, "px;\n");
      result += "  background:".concat(style.background, ";\n");
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.textProperties);
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += '}\n\n';

      if (widget.hover) {
        var hover = widget.hover;
        result += selector + ' .qux-paging-item:hover {\n';
        result += "  background:".concat(hover.background, ";\n");
        result += this.cssFactory.getStyleByKey(hover, widget, this.cssFactory.textProperties);
        result += this.cssFactory.getStyleByKey(hover, widget, this.cssFactory.borderProperties);
        result += '}\n\n';
      }

      if (widget.active) {
        var active = widget.active;
        result += selector + ' .qux-paging-item.qux-paging-item-active {\n';
        result += "  background:".concat(active.background, ";\n");
        result += this.cssFactory.getStyleByKey(active, widget, this.cssFactory.textProperties);
        result += this.cssFactory.getStyleByKey(active, widget, this.cssFactory.borderProperties);
        result += '}\n\n';
      }

      return result;
    }
  }]);

  return PaginCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/TableCSS.js
function TableCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function TableCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function TableCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) TableCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) TableCSS_defineProperties(Constructor, staticProps); return Constructor; }



var TableCSS_TableCSS = /*#__PURE__*/function () {
  function TableCSS(cssFactory) {
    TableCSS_classCallCheck(this, TableCSS);

    core_Logger.log(5, 'TableCSS.constructor()');
    this.cssFactory = cssFactory;
  }

  TableCSS_createClass(TableCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      var borderStyle = this.getTableBorderStyle(widget);
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.textProperties);

      if (borderStyle === 'Out') {
        result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      }

      result += '}\n\n';
      result += selector + ' .qux-table-action,';
      result += selector + ' .qux-table-cell{\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.paddingProperties);
      result += '}\n\n';

      if (borderStyle === 'Cell') {
        result += selector + ' th,';
        result += selector + ' td{\n';
        result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
        result += '}\n\n';
      }

      if (borderStyle === 'VLines') {
        result += selector + ' th,';
        result += selector + ' td{\n';
        result += "  border-right-color:".concat(style._borderBottomColor, ";\n");
        result += "  border-right-width:".concat(style._borderBottomWidth, "px;\n");
        result += "  border-right-style:solid;\n";
        result += '}\n\n';
        result += selector + ' th:last-child,';
        result += selector + ' td:last-Child{\n';
        result += "  border:none;\n";
        result += '}\n\n';
      }

      if (borderStyle === 'HLines') {
        result += selector + ' th,';
        result += selector + ' td{\n';
        result += "  border-bottom-color:".concat(style._borderBottomColor, ";\n");
        result += "  border-bottom-width:".concat(style._borderBottomWidth, "px;\n");
        result += "  border-bottom-style:solid;\n";
        result += '}\n\n';
        result += selector + ' tr:last-child th,';
        result += selector + ' tr:last-Child td{\n';
        result += "  border:none;\n";
        result += '}\n\n';
      }

      result += selector + ' thead tr{\n';
      result += "  background:".concat(style.headerBackground, ";\n");
      result += "  color:".concat(style.headerColor, ";\n");

      if (style.headerFontStyle) {
        result += "  font-style:".concat(style.headerFontStyle, ";\n");
      }

      if (style.headerFontWeight) {
        result += "  font-weight:".concat(style.headerFontWeight, ";\n");
      }

      if (style.headerTextDecoration) {
        result += "  text-decoration:".concat(style.headerTextDecoration, ";\n");
      }

      result += '}\n\n';
      result += selector + ' tbody tr:nth-child(2){\n';
      result += "  background:".concat(style.evenRowBackground, ";\n");
      result += "  color:".concat(style.evenRowColor, ";\n");
      result += '}\n\n';
      result += selector + ' tbody tr:hover{\n';

      if (style.hoverBackground) {
        result += "  background:".concat(style.hoverBackground, ";\n");
      }

      if (style.hoverColor) {
        result += "  color:".concat(style.hoverColor, ";\n");
      }

      result += '}\n\n';

      if (widget.props.tableActions) {
        widget.props.tableActions.forEach(function (action, i) {
          result += selector + ' .qux-table-action-cntr .qux-table-action-' + i + '{\n';

          if (action.color) {
            result += "  color:".concat(action.color, ";\n");
          }

          result += '}\n\n';
        });
      }

      if (style.checkBox) {
        result += selector + ' .qux-checkbox-cntr{\n';
        var s = style.checkBoxSize ? style.checkBoxSize : style.fontSize;
        result += "  width:".concat(s, "px;\n");
        result += "  height:".concat(s, "px;\n");
        result += "  background:".concat(style.checkBoxBackground, ";\n");
        result += "  border-color:".concat(style.checkBoxBorderColor, ";\n");
        result += "  border-radius:".concat(style.checkBoxBorderRadius, "px;\n");
        result += "  border-width:".concat(style.borderWidth, "px;\n");
        result += '}\n\n';
        result += selector + ' .qux-checkbox-hook {\n';
        result += "  border-color:".concat(style.checkBoxHookColor, ";\n");
        result += '}\n\n';
      }

      var widths = this.getTableWidths(widget.props, style);
      widths.forEach(function (w, i) {
        result += selector + ' .qux-table-column-' + i + '{\n';
        result += "  width:".concat(Math.round(w * widget.w), "px;\n");
        result += '}\n\n';
      }); //widths.forEach((w,i) => {
      //  result += selector + ' td:nth-child(' + (i +1 ) + '){\n'
      //  result += `  width:${Math.round(w * widget.w)}px;\n`
      //  result += '}\n\n'
      //})

      return result;
    }
  }, {
    key: "getTableWidths",
    value: function getTableWidths(props, style) {
      var fontFactor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.6;
      var result = [];

      if (props.widths) {
        var widths = props.widths;
        var sum = 0;
        var padding = style._paddingLeft + style._paddingRight;

        if (style.checkBox) {
          var w = style.checkBoxSize ? style.checkBoxSize : style.fontSize;
          widths = [w + padding].concat(widths);
        }

        if (props.tableActions && props.tableActions.length > 0) {
          var text = props.tableActions.map(function (a) {
            return a.label;
          }).join();

          var _w = text.length * style.fontSize * fontFactor + padding * props.tableActions.length;

          widths = widths.concat(_w);
        }

        for (var i = 0; i < widths.length; i++) {
          sum += widths[i];
        }

        for (var _i = 0; _i < widths.length; _i++) {
          result[_i] = widths[_i] / sum;
        }
      }

      return result;
    }
  }, {
    key: "getTableBorderStyle",
    value: function getTableBorderStyle(model) {
      if (model.props.borderStyle) {
        return model.props.borderStyle;
      }

      return "Cell";
    }
  }]);

  return TableCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/ImageCSS.js
function ImageCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function ImageCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function ImageCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) ImageCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) ImageCSS_defineProperties(Constructor, staticProps); return Constructor; }



var ImageCSS_ImageCSS = /*#__PURE__*/function () {
  function ImageCSS(cssFactory) {
    ImageCSS_classCallCheck(this, ImageCSS);

    core_Logger.log(5, 'ImageCSS.constructor()');
    this.cssFactory = cssFactory;
  }

  ImageCSS_createClass(ImageCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);

      if (widget.style.backgroundImage) {
        result += this.cssFactory.getRawStyle(widget.style, widget);
      } else {
        core_Logger.log(5, 'ImageCSS.run()', 'No background for image > ' + widget.name);
        result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
        result += "  background-image:".concat(this.getImagePlaceHolder(widget), ";\n");
        result += "  background-size: 100% 100%;\n";
        result += "  border: 1px solid #333;\n";
      }

      result += '}\n\n';
      return result;
    }
  }, {
    key: "getImagePlaceHolder",
    value: function getImagePlaceHolder(widget) {
      try {
        var w = widget.w * 2;
        var h = widget.h * 2;
        var c = document.createElement("canvas");
        var context = c.getContext("2d");
        c.width = w;
        c.height = h;
        h += 0.5;
        w += 0.5;
        var n = 0.5;
        context.moveTo(n, n);
        context.lineTo(w, h);
        context.moveTo(w, n);
        context.lineTo(n, h);
        context.strokeStyle = "#333";
        context.strokeWidth = 2;
        context.imageSmoothingEnabled = false;
        context.stroke();
        var url = 'url(' + c.toDataURL("image/png") + ')';
        return url;
      } catch (err) {
        /**
         * can happen in jest
         */
        core_Logger.log(5, 'ImageCSS.getImagePlaceHolder() error');
      }
    }
  }]);

  return ImageCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/ScreenCSS.js
function ScreenCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function ScreenCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function ScreenCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) ScreenCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) ScreenCSS_defineProperties(Constructor, staticProps); return Constructor; }




var ScreenCSS_ScreenCSS = /*#__PURE__*/function () {
  function ScreenCSS(cssFactory) {
    ScreenCSS_classCallCheck(this, ScreenCSS);

    core_Logger.log(5, 'ScreenCSS.constructor()');
    this.cssFactory = cssFactory;
    this.imagePrefix = cssFactory.imagePrefix;
  }

  ScreenCSS_createClass(ScreenCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);

      if (!isOverlay(widget) || hasOverlayBackground(widget)) {
        if (style.background) {
          if (style.background.colors) {
            var background = style.background;
            var gradient = "(" + background.direction + "deg";

            for (var i = 0; i < background.colors.length; i++) {
              var color = background.colors[i];
              gradient += "," + color.c + " " + color.p + "% ";
            }

            gradient += ")";
            result += "  background: linear-gradient".concat(gradient, ";\n");
          } else {
            result += "  background-color: ".concat(style.background, ";\n");
          }
        }

        if (style.backgroundColor) {
          result += "  background-color: ".concat(style.backgroundColor, ";\n");
        }

        if (style.backgroundImage && style.backgroundImage.url) {
          if (style.backgroundImage.url.indexOf('http') === 0) {
            result += "  background-image: url(".concat(style.backgroundImage.url, ");\n");
          } else {
            result += "  background-image: url(".concat(this.imagePrefix, "/").concat(style.backgroundImage.url, ");\n");
          }
        }
      }
      /**
       * Check if we have full screen (height = 100%) or fixed size, component
       */


      if (widget.isComponentScreen) {
        result += "  height:".concat(widget.h, "px;\n");
        result += "  width:".concat(widget.w, "px;\n");
        result += this.cssFactory.getStyleByKey(style, widget, ['boxShadow']);
        result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      } else {
        result += '  height:100%;\n';
      }

      result += '}\n\n';
      return result;
    }
  }]);

  return ScreenCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/RepeaterCSS.js
function RepeaterCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function RepeaterCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function RepeaterCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) RepeaterCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) RepeaterCSS_defineProperties(Constructor, staticProps); return Constructor; }




var RepeaterCSS_RepeaterCSS = /*#__PURE__*/function () {
  function RepeaterCSS(cssFactory) {
    RepeaterCSS_classCallCheck(this, RepeaterCSS);

    core_Logger.log(5, 'RepeaterCSS.constructor()');
    this.cssFactory = cssFactory;
  }

  RepeaterCSS_createClass(RepeaterCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getRawStyle(style, widget);
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';

      if (isWrappedContainer(widget)) {
        core_Logger.warn('RepeaterCSS.run () > wrapped container not supported', widget);
      }
      /**
       * If we have just one child, we just take this to male sure we use teh min and max width
       */


      var boundingBox = widget.children.length === 1 ? widget.children[0] : getBoundingBoxByBoxes(widget.children);
      boundingBox.parent = widget;
      result += selector + ' .qux-repeater-child {\n';

      if (isLayoutAuto(widget)) {
        result += this.getChildrenAuto(selector, widget, boundingBox);
      } else if (isRepeaterGrid(widget)) {
        result += this.getChildrenGrid(selector, widget, boundingBox);
      } else {
        result += this.getChildrenRow(selector, widget, boundingBox);
      }

      result += '}\n\n';
      return result;
    }
  }, {
    key: "getChildrenAuto",
    value: function getChildrenAuto(selector, widget, boundingBox) {
      core_Logger.log(3, 'RepeaterCSS.getChildrenAuto () > ', widget, boundingBox);
      var result = '';
      var height = this.cssFactory.getFixedHeight(boundingBox);
      result += "  height: ".concat(height, ";\n");
      result += this.cssFactory.getWrappedWidth(boundingBox);
      return result;
    }
  }, {
    key: "getChildrenRow",
    value: function getChildrenRow(selector, widget, boundingBox) {
      core_Logger.log(3, 'RepeaterCSS.getChildrenRow () > ', widget);
      var result = '';
      result += this.cssFactory.getWrappedWidth(boundingBox);
      result += "  margin-bottom:".concat(widget.props.distanceY, "px;\n");

      if (boundingBox.x > 0) {
        result += "  margin-left:".concat(boundingBox.x, "px;\n");
      }

      if (boundingBox.y > 0) {
        result += "  margin-top:".concat(boundingBox.y, "px;\n");
      }

      return result;
    }
  }, {
    key: "getChildrenGrid",
    value: function getChildrenGrid(selector, widget, boundingBox) {
      core_Logger.log(5, 'RepeaterCSS.getChildrenGrid () > grid', widget);
      var result = '';
      result += '  display: inline-block;\n';
      result += this.cssFactory.getWrappedWidth(boundingBox);
      var height = this.cssFactory.getFixedHeight(boundingBox);
      result += "  height: ".concat(height, ";\n");

      if (!isRepeaterAuto(widget)) {
        result += "  margin-bottom:".concat(widget.props.distanceY, "px;\n");
        result += "  margin-right:".concat(widget.props.distanceX, "px;\n");
      } else {
        /**
         * The last elements should not have a margin...
         */
        var rows = Math.floor(widget.h / boundingBox.h);
        var distance = (widget.h - boundingBox.h * rows) / (rows - 1);
        result += "  margin-bottom:".concat(distance, "px;\n");
      }

      if (boundingBox.x > 0) {
        result += "  margin-left:".concat(boundingBox.x, "px;\n");
      }

      if (boundingBox.y > 0) {
        result += "  margin-top:".concat(boundingBox.y, "px;\n");
      }

      return result;
    }
  }]);

  return RepeaterCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/ChartCSS.js
function ChartCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function ChartCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function ChartCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) ChartCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) ChartCSS_defineProperties(Constructor, staticProps); return Constructor; }



var ChartCSS_ChartCSS = /*#__PURE__*/function () {
  function ChartCSS(cssFactory) {
    ChartCSS_classCallCheck(this, ChartCSS);

    core_Logger.log(5, 'ChartCSS.constructor()');
    this.cssFactory = cssFactory;
  }

  ChartCSS_createClass(ChartCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += '}\n\n';
      return result;
    }
  }]);

  return ChartCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/VectorCSS.js
function VectorCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function VectorCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function VectorCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) VectorCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) VectorCSS_defineProperties(Constructor, staticProps); return Constructor; }



var VectorCSS_VectorCSS = /*#__PURE__*/function () {
  function VectorCSS(cssFactory) {
    VectorCSS_classCallCheck(this, VectorCSS);

    core_Logger.log(5, 'VectorCSS()');
    this.cssFactory = cssFactory;
    this.imagePrefix = cssFactory.imagePrefix;
  }

  VectorCSS_createClass(VectorCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget); // FIXME: make this smarter?

      result += "  height:".concat(this.cssFactory.getCorrectedHeight(widget), ";\n");
      result += "  width:".concat(this.cssFactory.getCorrectedWidth(widget), ";\n");

      if (style.backgroundImage && style.backgroundImage.url) {
        if (style.backgroundImage.url.indexOf('http') === 0) {
          result += "  background-image: url(".concat(style.backgroundImage.url, ");\n");
        } else {
          result += "  background-image: url(".concat(this.imagePrefix, "/").concat(style.backgroundImage.url, ");\n");
        }
      }

      result += '}\n\n';
      return result;
    }
  }]);

  return VectorCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/TimelineCSS.js
function TimelineCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function TimelineCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function TimelineCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) TimelineCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) TimelineCSS_defineProperties(Constructor, staticProps); return Constructor; }



var TimelineCSS_VectorCSS = /*#__PURE__*/function () {
  function VectorCSS(cssFactory) {
    TimelineCSS_classCallCheck(this, VectorCSS);

    core_Logger.log(5, 'Timeline()');
    this.cssFactory = cssFactory;
    this.imagePrefix = cssFactory.imagePrefix;
  }

  TimelineCSS_createClass(VectorCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);

      if (style.elementSpacing === -1) {
        result += "  display:flex;\n";
        result += "  flex-direction: column;\n";
        result += "  justify-content: space-around;\n";
      }

      result += '}\n\n';
      var circleSize = style.circleSize - style.circleBorderWidth;
      var left = (circleSize - style.lineWidth) / 2 + 1;
      result += selector + ' .qux-timeline-line{\n';
      result += "  background:".concat(style.lineBackground, ";\n");
      result += "  width:".concat(style.lineWidth, "px;\n");
      result += "  border-radius:".concat(Math.round(style.lineWidth / 2), "px;\n");
      result += "  left:".concat(Math.round(left), "px;\n");
      result += '}\n\n';

      if (style.elementSpacing > 0) {
        result += selector + ' .qux-timeline-element{\n';
        result += "  margin-top:".concat(style.elementSpacing, "px;\n");
        result += '}\n\n';
      }

      result += selector + ' .qux-timeline-element-selected .qux-timeline-circle{\n';
      result += "  background:".concat(style.cicleActiveBackground, ";\n");
      result += "  border-color:".concat(style.cicleActiveBorderColor, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-timeline-element-selected .qux-timeline-label{\n';
      result += "  color:".concat(style.cicleActiveTextColor, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-timeline-label{\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.textProperties);
      result += '}\n\n';
      result += selector + ' .qux-timeline-circle{\n';
      result += "  background:".concat(style.cicleBackground, ";\n");
      result += "  width:".concat(circleSize, "px;\n");
      result += "  height:".concat(circleSize, "px;\n");
      result += "  border-color:".concat(style.cicleBorderColor, ";\n");
      result += "  border-width:".concat(style.circleBorderWidth, "px;\n");
      result += '}\n\n';
      return result;
    }
  }]);

  return VectorCSS;
}();
/**
 *  "lineWidth": 8,
      "lineBackground": "#333333",
      "lineBorderColor": "#ffffff",
      "lineBorderWidth": 0,
      "circleSize": 32,
      "cicleBackground": "#ffffff",
      "cicleBorderColor": "#333333",
      "circleBorderWidth": 2,
      "elementSpacing": -1,
      "cicleActiveBackground": "#cccccc",
      "cicleActiveTextColor": "#cccccc",
      "cicleActiveBorderColor": "#333333"
 */



// CONCATENATED MODULE: ./src/qux/web/css/SegmentCSS.js
function SegmentCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function SegmentCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function SegmentCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) SegmentCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) SegmentCSS_defineProperties(Constructor, staticProps); return Constructor; }



var SegmentCSS_SegmentCSS = /*#__PURE__*/function () {
  function SegmentCSS(cssFactory) {
    SegmentCSS_classCallCheck(this, SegmentCSS);

    core_Logger.log(5, 'SegmentCSS()');
    this.cssFactory = cssFactory;
    this.imagePrefix = cssFactory.imagePrefix;
  }

  SegmentCSS_createClass(SegmentCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      result += selector + ' .qux-segment-item {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.textProperties);
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += this.cssFactory.getBackGround(style, widget);
      result += "  border-left: none;\n";
      result += "  border-radius: 0px;\n";
      result += '}\n\n';
      result += selector + ' .qux-segment-item:first-child {\n';
      result += "  border-left-color: ".concat(style._borderLeftColor, ";\n");
      var borderLeftStyle = style._borderLeftStyle ? style._borderLeftStyle : 'solid';
      result += "  border-left-style: ".concat(borderLeftStyle, ";\n");
      result += "  border-left-width: ".concat(style._borderLeftWidth, "px;\n");

      if (style._borderTopLeftRadius) {
        result += "  border-top-left-radius: ".concat(style._borderTopLeftRadius, "px;\n");
      }

      if (style._borderBottomLeftRadius) {
        result += "  border-bottom-left-radius: ".concat(style._borderBottomLeftRadius, "px;\n");
      }

      result += '}\n\n';
      result += selector + ' .qux-segment-item:last-child {\n';

      if (style._borderTopRightRadius) {
        result += "  border-top-right-radius: ".concat(style._borderTopRightRadius, "px;\n");
      }

      if (style._borderBottomRightRadius) {
        result += "  border-bottom-right-radius: ".concat(style._borderBottomRightRadius, "px;\n");
      }

      result += '}\n\n';

      if (widget.active) {
        var active = widget.active;
        result += selector + ' .qux-segment-item.qux-segment-item-selected{\n';
        result += "  background:".concat(active.background, ";\n");
        result += "  color:".concat(active.color, ";\n");
        result += this.cssFactory.getStyleByKey(active, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      return result;
    }
  }]);

  return SegmentCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/UploadCSS.js
function UploadCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function UploadCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function UploadCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) UploadCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) UploadCSS_defineProperties(Constructor, staticProps); return Constructor; }



var UploadCSS_UploadCSS = /*#__PURE__*/function () {
  function UploadCSS(cssFactory) {
    UploadCSS_classCallCheck(this, UploadCSS);

    core_Logger.log(5, 'UploadCSS()');
    this.cssFactory = cssFactory;
    this.imagePrefix = cssFactory.imagePrefix;
  }

  UploadCSS_createClass(UploadCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += this.cssFactory.getRawStyle(style, widget);
      result += '}\n\n';

      if (widget.hover) {
        var hover = widget.hover;
        result += selector + ':hover {\n';
        result += "  background:".concat(hover.background, ";\n");
        result += "  color:".concat(hover.color, ";\n");
        result += this.cssFactory.getStyleByKey(hover, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      if (widget.active) {
        var active = widget.active;
        result += selector + '.qux-upload-has-files {\n';
        result += "  background:".concat(active.background, ";\n");
        result += "  color:".concat(active.color, ";\n");
        result += this.cssFactory.getStyleByKey(active, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      return result;
    }
  }]);

  return UploadCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/CameraCSS.js
function CameraCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function CameraCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function CameraCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) CameraCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) CameraCSS_defineProperties(Constructor, staticProps); return Constructor; }



var CameraCSS_CameraCSS = /*#__PURE__*/function () {
  function CameraCSS(cssFactory) {
    CameraCSS_classCallCheck(this, CameraCSS);

    core_Logger.log(5, 'CameraCSS()');
    this.cssFactory = cssFactory;
    this.imagePrefix = cssFactory.imagePrefix;
  }

  CameraCSS_createClass(CameraCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += this.cssFactory.getRawStyle(style, widget);
      result += '}\n\n';

      if (widget.hover) {
        var hover = widget.hover;
        result += selector + ':hover {\n';
        result += "  background:".concat(hover.background, ";\n");
        result += "  color:".concat(hover.color, ";\n");
        result += this.cssFactory.getStyleByKey(hover, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      if (widget.active) {
        var active = widget.active;
        result += selector + '.qux-upload-has-files {\n';
        result += "  background:".concat(active.background, ";\n");
        result += "  color:".concat(active.color, ";\n");
        result += this.cssFactory.getStyleByKey(active, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      result += selector + ' .qux-camera-icon {\n';
      result += "  font-size:".concat(Math.min(widget.w, widget.h) * 0.6, "px;\n");
      result += '}\n\n';
      return result;
    }
  }]);

  return CameraCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/UploadPreviewCSS.js
function UploadPreviewCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function UploadPreviewCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function UploadPreviewCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) UploadPreviewCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) UploadPreviewCSS_defineProperties(Constructor, staticProps); return Constructor; }



var UploadPreviewCSS_UploadPreviewCSS = /*#__PURE__*/function () {
  function UploadPreviewCSS(cssFactory) {
    UploadPreviewCSS_classCallCheck(this, UploadPreviewCSS);

    core_Logger.log(5, 'UploadPreviewCSS.constructor()');
    this.cssFactory = cssFactory;
  }

  UploadPreviewCSS_createClass(UploadPreviewCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += '}\n\n';
      return result;
    }
  }]);

  return UploadPreviewCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/ComponentSetCSS.js
function ComponentSetCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function ComponentSetCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function ComponentSetCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) ComponentSetCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) ComponentSetCSS_defineProperties(Constructor, staticProps); return Constructor; }




var ComponentSetCSS_ComponentSetCSS = /*#__PURE__*/function () {
  function ComponentSetCSS(cssFactory) {
    ComponentSetCSS_classCallCheck(this, ComponentSetCSS);

    core_Logger.log(5, 'ComponentSetCSS.constructor()');
    this.cssFactory = cssFactory;
  }

  ComponentSetCSS_createClass(ComponentSetCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var _this = this;

      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      /**
       * We also layout the childrem here
       */

      widget.children.forEach(function (child) {
        result += child.cssSelector + ' {\n';

        if (ExportUtil_isFixedHorizontal(child)) {
          result += "  width: ".concat(_this.cssFactory.getCorrectedWidth(child), ";\n");
        } else if (hasMinMaxWdith(child)) {
          result += _this.getMinMaxWidth(child, false);
        } else {
          result += "  min-width: ".concat(_this.cssFactory.getCorrectedWidth(child), ";\n");
        }

        if (isFixedVertical(child)) {
          result += "  height: ".concat(_this.cssFactory.getCorrectedHeight(child), ";\n");
        } else {
          result += "  min-height: ".concat(_this.cssFactory.getCorrectedHeight(child), ";\n");
        }

        result += '}\n\n';
      });
      return result;
    }
  }]);

  return ComponentSetCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/SpinnerCSS.js
function SpinnerCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function SpinnerCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function SpinnerCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) SpinnerCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) SpinnerCSS_defineProperties(Constructor, staticProps); return Constructor; }



var SpinnerCSS_SpinnerCSS = /*#__PURE__*/function () {
  function SpinnerCSS(cssFactory) {
    SpinnerCSS_classCallCheck(this, SpinnerCSS);

    core_Logger.log(5, 'SpinnerCSS()');
    this.cssFactory = cssFactory;
    this.imagePrefix = cssFactory.imagePrefix;
  }

  SpinnerCSS_createClass(SpinnerCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.textProperties);
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += '}\n\n';

      if (widget.hover) {
        var hover = widget.hover;
        result += selector + ':hover {\n';
        result += "  color:".concat(hover.color, ";\n");
        result += '}\n\n';
      }

      result += selector + ' .qux-spinner-option-cntr {\n';
      result += "  height:".concat(Math.ceil(widget.h * 3), "px;\n");
      result += '}\n\n';
      result += selector + ' .qux-spinner-option {\n';
      result += "  height:".concat(Math.floor(widget.h / 3), "px;\n");
      result += '}\n\n';
      result += selector + ' .qux-spinner-border {\n';
      result += "  border-top-color:".concat(style.borderBoxColor, ";\n");
      result += "  border-bottom-color:".concat(style.borderBoxColor, ";\n");
      result += '}\n\n';
      return result;
    }
  }]);

  return SpinnerCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/DynamicContainerCSS.js
function DynamicContainerCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function DynamicContainerCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function DynamicContainerCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) DynamicContainerCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) DynamicContainerCSS_defineProperties(Constructor, staticProps); return Constructor; }



var DynamicContainerCSS_DynamicContainerCSS = /*#__PURE__*/function () {
  function DynamicContainerCSS(cssFactory) {
    DynamicContainerCSS_classCallCheck(this, DynamicContainerCSS);

    core_Logger.log(5, 'DynamicContainerCSS.constructor()');
    this.cssFactory = cssFactory;
  }

  DynamicContainerCSS_createClass(DynamicContainerCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      return result;
    }
  }]);

  return DynamicContainerCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/RichTextCSS.js
function RichTextCSS_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function RichTextCSS_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function RichTextCSS_createClass(Constructor, protoProps, staticProps) { if (protoProps) RichTextCSS_defineProperties(Constructor.prototype, protoProps); if (staticProps) RichTextCSS_defineProperties(Constructor, staticProps); return Constructor; }



var RichTextCSS_RichTextCSS = /*#__PURE__*/function () {
  function RichTextCSS(cssFactory) {
    RichTextCSS_classCallCheck(this, RichTextCSS);

    core_Logger.log(5, 'RichTextCSS()');
    this.cssFactory = cssFactory;
    this.imagePrefix = cssFactory.imagePrefix;
  }

  RichTextCSS_createClass(RichTextCSS, [{
    key: "run",
    value: function run(selector, style, widget) {
      var _this = this;

      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += this.cssFactory.getRawStyle(style, widget);
      result += '}\n\n';

      if (widget.props && widget.props.richTextLabel) {
        var richText = widget.props.richTextLabel;
        richText.forEach(function (child, i) {
          if (child.style) {
            result += selector + " .qux-rich-text-child-".concat(i, " {\n");
            result += _this.cssFactory.getRawStyle(child.style, widget);
            result += '}\n\n';
          }
        });
      }

      return result;
    }
  }]);

  return RichTextCSS;
}();


// CONCATENATED MODULE: ./src/qux/web/css/CSSWidgetFactory.js
function CSSWidgetFactory_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function CSSWidgetFactory_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function CSSWidgetFactory_createClass(Constructor, protoProps, staticProps) { if (protoProps) CSSWidgetFactory_defineProperties(Constructor.prototype, protoProps); if (staticProps) CSSWidgetFactory_defineProperties(Constructor, staticProps); return Constructor; }



















var CSSWidgetFactory_CSSWidgetFactory = /*#__PURE__*/function () {
  function CSSWidgetFactory(cssFactory) {
    CSSWidgetFactory_classCallCheck(this, CSSWidgetFactory);

    core_Logger.log(5, 'CSSWidgetFactory.constructor()');
    this.cssFactory = cssFactory;
    this.factories = {
      'Paging': new PagingCSS_PaginCSS(cssFactory),
      'Table': new TableCSS_TableCSS(cssFactory),
      'Image': new ImageCSS_ImageCSS(cssFactory),
      'Screen': new ScreenCSS_ScreenCSS(cssFactory),
      'Repeater': new RepeaterCSS_RepeaterCSS(cssFactory),
      'BarChart': new ChartCSS_ChartCSS(cssFactory),
      'Vector': new VectorCSS_VectorCSS(cssFactory),
      'Timeline': new TimelineCSS_VectorCSS(cssFactory),
      'Segment': new SegmentCSS_SegmentCSS(cssFactory),
      'Upload': new UploadCSS_UploadCSS(cssFactory),
      'Camera': new CameraCSS_CameraCSS(cssFactory),
      'UploadPreview': new UploadPreviewCSS_UploadPreviewCSS(cssFactory),
      'ComponentSet': new ComponentSetCSS_ComponentSetCSS(cssFactory),
      'Spinner': new SpinnerCSS_SpinnerCSS(cssFactory),
      'DynamicContainer': new DynamicContainerCSS_DynamicContainerCSS(cssFactory),
      'RichText': new RichTextCSS_RichTextCSS(cssFactory)
    };
  }

  CSSWidgetFactory_createClass(CSSWidgetFactory, [{
    key: "getCSS_RichText",
    value: function getCSS_RichText(selector, style, widget) {
      core_Logger.log(5, 'getCSS_RichText', widget);
      return this.factories.RichText.run(selector, style, widget);
    }
  }, {
    key: "getCSS_DynamicContainer",
    value: function getCSS_DynamicContainer(selector, style, widget) {
      core_Logger.log(5, 'getDynamicContainer', widget);
      return this.factories.DynamicContainer.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Spinner",
    value: function getCSS_Spinner(selector, style, widget) {
      core_Logger.log(5, 'getSpinner', widget);
      return this.factories.Spinner.run(selector, style, widget);
    }
  }, {
    key: "getCSS_ComponentSet",
    value: function getCSS_ComponentSet(selector, style, widget) {
      core_Logger.log(5, 'getComponentSet', widget);
      return this.factories.ComponentSet.run(selector, style, widget);
    }
  }, {
    key: "getCSS_UploadPreview",
    value: function getCSS_UploadPreview(selector, style, widget) {
      core_Logger.log(5, 'getCSS_UploadPreview', widget);
      return this.factories.UploadPreview.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Camera",
    value: function getCSS_Camera(selector, style, widget) {
      core_Logger.log(5, 'getCSS_Camera', widget);
      return this.factories.Camera.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Upload",
    value: function getCSS_Upload(selector, style, widget) {
      core_Logger.log(5, 'getCSS_Upload', widget);
      return this.factories.Upload.run(selector, style, widget);
    }
  }, {
    key: "getCSS_BarChart",
    value: function getCSS_BarChart(selector, style, widget) {
      core_Logger.log(5, 'getCSS_BarChart', widget);
      return this.factories.BarChart.run(selector, style, widget);
    }
  }, {
    key: "getCSS_RingChart",
    value: function getCSS_RingChart(selector, style, widget) {
      core_Logger.log(5, 'getCSS_RingChart', widget);
      return this.factories.BarChart.run(selector, style, widget);
    }
  }, {
    key: "getCSS_SegmentButton",
    value: function getCSS_SegmentButton(selector, style, widget) {
      core_Logger.log(5, 'getCSS_SegmentButton', widget);
      return this.factories.Segment.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Timeline",
    value: function getCSS_Timeline(selector, style, widget) {
      core_Logger.log(5, 'getCSS_Timeline', widget);
      return this.factories.Timeline.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Vector",
    value: function getCSS_Vector(selector, style, widget) {
      core_Logger.log(5, 'getCSS_Vector', widget);
      return this.factories.Vector.run(selector, style, widget);
    }
  }, {
    key: "getCSS_PieChart",
    value: function getCSS_PieChart(selector, style, widget) {
      core_Logger.log(5, 'getCSS_PieChart', widget);
      return this.factories.BarChart.run(selector, style, widget);
    }
  }, {
    key: "getCSS_MultiRingChart",
    value: function getCSS_MultiRingChart(selector, style, widget) {
      core_Logger.log(5, 'getCSS_MultiRingChart', widget);
      return this.factories.BarChart.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Screen",
    value: function getCSS_Screen(selector, style, widget) {
      core_Logger.log(5, 'getCSS_Screen', widget);
      return this.factories.Screen.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Repeater",
    value: function getCSS_Repeater(selector, style, widget) {
      core_Logger.log(5, 'getCSS_Repeater', widget);
      return this.factories.Repeater.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Icon",
    value: function getCSS_Icon(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getRawStyle(style, widget);
      result += this.cssFactory.getPosition(widget);
      result += "  font-size:".concat(widget.h, "px;\n");
      result += "  line-height:1;\n";
      result += '}\n\n';
      result += selector + ' .mdi:before {\n';
      result += "  font-size:".concat(widget.h, "px;\n");
      result += '}\n\n';
      return result;
    }
  }, {
    key: "getCSS_ChildrenToggle",
    value: function getCSS_ChildrenToggle(selector, style, widget) {
      /**
       * For now we assume this thingy has a fixed width...
       */
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getRawStyle(style, widget);
      result += this.cssFactory.getPosition(widget);
      result += "  width:".concat(widget.w, "px;\n");
      result += '}\n\n';

      if (widget.active) {
        result += selector + '.qux-active {\n';
        result += this.getRawStyle(widget.active, widget);
        result += '}\n\n';
      }
      /**
       * We should add here still some other stuff for children...
       */


      return result;
    }
  }, {
    key: "getCSS_RadioGroup",
    value: function getCSS_RadioGroup(selector, style, widget) {
      var result = '';
      var correctedHeight = this.cssFactory.getCorrectedHeight(widget, false, widget.style.boxHeight);
      var height = widget.style.boxHeight + 'px';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      result += selector + '.qux-radiobox {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += this.cssFactory.getBackGround(style, widget);
      result += "  height:".concat(height, ";\n");
      result += "  width:".concat(height, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-radiobox-cntr {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += this.cssFactory.getBackGround(style, widget);
      result += "  height:".concat(correctedHeight, ";\n");
      result += "  width:".concat(correctedHeight, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-radiobox-hook {\n';
      result += "  background: ".concat(style.colorButton, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-radiobox-label {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.fontProperties);
      result += '}\n\n';

      if (widget.checked) {
        result += selector + '.qux-radiobox-checked .qux-radiobox-cntr {\n';
        result += this.cssFactory.getStyleByKey(widget.checked, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "getCSS_CheckBoxGroup",
    value: function getCSS_CheckBoxGroup(selector, style, widget) {
      var result = '';
      var correctedHeight = this.cssFactory.getCorrectedHeight(widget, false, widget.style.boxHeight);
      var height = widget.style.boxHeight + 'px';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      result += selector + '.qux-checkbox {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += this.cssFactory.getBackGround(style, widget);
      result += "  height:".concat(height, ";\n");
      result += "  width:".concat(height, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-checkbox-cntr {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += this.cssFactory.getBackGround(style, widget);
      result += "  height:".concat(correctedHeight, ";\n");
      result += "  width:".concat(correctedHeight, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-checkbox-hook {\n';
      result += "  border-color: ".concat(style.colorButton, ";\n");
      result += "  border-bottom-width: ".concat(Math.round(height / 10), "px;\n");
      result += "  border-right-width:  ".concat(Math.round(height / 10), "px;\n");
      result += '}\n\n';
      result += selector + ' .qux-checkbox-label {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.fontProperties);
      result += '}\n\n';

      if (widget.checked) {
        result += selector + '.qux-checkbox-checked .qux-checkbox-cntr {\n';
        result += this.cssFactory.getStyleByKey(widget.checked, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "getCSS_RadioBox2",
    value: function getCSS_RadioBox2(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      result += selector + ' .qux-radiobox-cntr {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += this.cssFactory.getBackGround(style, widget);
      result += "  height:".concat(this.cssFactory.getCorrectedHeight(widget), ";\n");
      result += "  width:".concat(this.cssFactory.getCorrectedWidth(widget), ";\n");
      result += '}\n\n';
      result += selector + ' .qux-radiobox-hook {\n';
      result += "  background: ".concat(style.colorButton, ";\n");
      result += '}\n\n';

      if (widget.checked) {
        result += selector + '.qux-radiobox-checked .qux-radiobox-cntr {\n';
        result += this.cssFactory.getStyleByKey(widget.checked, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "getCSS_CheckBox",
    value: function getCSS_CheckBox(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget); // FIXME: we set width and height twice

      result += "  height:".concat(widget.h, "px;\n");
      result += "  width:".concat(widget.w, "px;\n");
      result += '}\n\n';
      result += selector + ' .qux-checkbox-cntr {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += this.cssFactory.getBackGround(style, widget);
      result += "  height:".concat(this.cssFactory.getCorrectedHeight(widget), ";\n");
      result += "  width:".concat(this.cssFactory.getCorrectedWidth(widget), ";\n");
      result += '}\n\n';
      result += selector + ' .qux-checkbox-hook {\n';
      result += "  border-color: ".concat(style.colorButton, ";\n");
      result += "  border-bottom-width: ".concat(Math.round(widget.h / 10), "px;\n");
      result += "  border-right-width:  ".concat(Math.round(widget.h / 10), "px;\n");
      result += '}\n\n';

      if (widget.checked) {
        result += selector + '.qux-checkbox-checked .qux-checkbox-cntr {\n';
        result += this.cssFactory.getStyleByKey(widget.checked, widget, this.cssFactory.borderColorProperties);
        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "getCSS_Switch",
    value: function getCSS_Switch(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      var cntrHeight = this.cssFactory.getCorrectedHeight(widget, false, widget.h);
      var cntrWidth = this.cssFactory.getCorrectedWidth(widget, false, widget.w);

      if (style.cssClass === 'MatcWidgetTypeSwitchThin') {
        cntrHeight = '50%';
      }

      result += selector + ' .qux-switch-cntr {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += "  height:".concat(cntrHeight, ";\n");
      result += "  width:".concat(cntrWidth, ";\n");
      result += '}\n\n';
      var borderWidthButton = style.borderWidthButton ? style.borderWidthButton : 0;
      var borderColorButton = style.borderColorButton ? style.borderColorButton : 'rgba(0,0,0,0)';
      result += selector + ' .qux-switch-handle {\n';
      result += "  background:".concat(style.colorButton, ";\n");
      result += "  border-radius:".concat(style.borderRadius, ";\n");
      result += "  border-width:".concat(borderWidthButton, "px;\n");
      result += "  border-color:".concat(borderColorButton, ";\n");
      result += this.cssFactory.getStyleByKey(style, widget, ['boxShadow']);
      result += "  height: ".concat(widget.h, "px;\n");
      result += "  width: ".concat(widget.h, "px;\n");
      result += '}\n\n';
      result += selector + '.qux-active .qux-switch-handle {\n';
      result += "  left:calc(100% - ".concat(widget.h, "px);\n");
      result += '}\n\n';
      result += selector + ' .qux-switch-on {\n';
      result += "  background:".concat(style.background, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-switch-off {\n';
      result += "  background:".concat(style.colorForeGround, ";\n");
      result += '}\n\n';
      return result;
    }
  }, {
    key: "getCSS_MobileDropDown",
    value: function getCSS_MobileDropDown(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getRawStyle(style, widget);
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n'; // make sure we have always some focus

      result += this.addOpenZIndex(selector);
      result += this._addCaret(selector, widget, style);
      result += selector + ' .qux-dropdown-popup {\n';
      result += "  background:".concat(style.popupBackground, ";\n");
      result += "  color:".concat(style.popupColor, ";\n");
      result += '}\n\n';

      if (widget.focus) {
        result += selector + ':hover {\n';
        result += this.cssFactory.getRawStyle(widget.focus, widget);
        result += '}\n\n';
        result += this._addCaret(selector + ':hover', widget, widget.focus);
        result += selector + ':hover .qux-dropdown-popup {\n';
        result += this.cssFactory.getStyleByKey(widget.focus, widget, this.cssFactory.borderProperties);
        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "getCSS_DropDown",
    value: function getCSS_DropDown(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getRawStyle(style, widget);
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      result += this._addCaret(selector, widget, style); // make sure we have always some focus

      result += this.addOpenZIndex(selector);
      result += selector + ':not(.qux-dropdown-mobile) .qux-dropdown-popup {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);

      if (style.popupBorder) {
        result += "  border-color:".concat(style.popupBorder, ";\n");
      }

      result += '}\n\n';
      result += selector + ':not(.qux-dropdown-mobile) .qux-dropdown-item {\n';
      result += "  background:".concat(style.popupBackground ? style.popupBackground : style.backgroundColor, ";\n");
      result += "  color:".concat(style.popupColor ? style.popupColor : style.color, ";\n");
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.paddingProperties);
      result += '}\n\n';
      result += selector + ':not(.qux-dropdown-mobile) .qux-dropdown-item:hover {\n';
      result += "  background:".concat(style.selectedOptionBackground, ";\n");
      result += "  color:".concat(style.selectedOptionColor, ";\n");
      result += '}\n\n'; // in QUX we have focus

      if (widget.focus) {
        result += selector + ':hover {\n';
        result += this.cssFactory.getRawStyle(widget.focus, widget);
        result += '}\n\n';
        result += this._addCaret(selector + ':hover', widget, widget.focus);
        result += selector + ':hover .qux-dropdown-popup {\n';
        result += this.cssFactory.getStyleByKey(widget.focus, widget, this.cssFactory.borderProperties);
        result += '}\n\n';
      } // in Figma we have hover


      if (widget.hover) {
        result += selector + ':hover {\n';
        result += this.cssFactory.getRawStyle(widget.hover, widget);
        result += '}\n\n';
        result += this._addCaret(selector + ':hover', widget, widget.focus);
        result += selector + ':hover .qux-dropdown-popup {\n';
        result += this.cssFactory.getStyleByKey(widget.hover, widget, this.cssFactory.borderProperties);
        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "_addCaret",
    value: function _addCaret(selector, widget, style) {
      var result = '';

      if (widget.props && widget.props.caretBorderColor) {
        result += selector + ' .qux-dropdown-expend {\n';
        result += "  background:".concat(style._borderRightColor, ";\n");
        result += '}\n\n';
        result += selector + ' .qux-dropdown-carret {\n';
        result += "  color:".concat(style.background, ";\n");
        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "getCSS_Stepper",
    value: function getCSS_Stepper(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getRawStyle(style, widget);
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';

      if (widget.hover) {
        result += selector + ' .qux-stepper-btn:hover {\n';
        result += "  background:".concat(widget.hover.background, ";\n");
        result += "  color:".concat(widget.hover.color, ";\n");
        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "getCSS_HSlider",
    value: function getCSS_HSlider(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      result += selector + ' .qux-slider-track {\n';
      result += "  background:".concat(style.background, ";\n");
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += '}\n\n';
      result += selector + ' .qux-slider-progress {\n';
      result += "  background:".concat(style.barColor, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-slider-handle  {\n';
      result += "  background:".concat(style.handleColor, ";\n");
      result += "  border-radius:".concat(style.handleRadius, "%;\n");
      result += "  height:".concat(style.handleHeight * widget.h, "px;\n");
      result += "  width:".concat(style.handleWidth, "px;\n");
      result += '}\n\n';
      result += selector + ' .qux-slider-handle-cntr  {\n';
      result += "  margin-left: ".concat(style.handleWidth / 2, "px;\n");
      result += "  width: calc(100% - ".concat(style.handleWidth, "px);\n");
      result += '}\n\n';
      return result;
    }
  }, {
    key: "getCSS_Date",
    value: function getCSS_Date(selector, style, widget) {
      var isInPopup = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
      var result = '';

      if (!isInPopup) {
        result += selector + ' {\n';
        result += this.cssFactory.getRawStyle(style, widget);
        result += this.cssFactory.getPosition(widget);
        result += '}\n\n';
      }

      if (style.tableBorderWidth) {
        result += selector + ' table {\n';
        result += "  border-spacing:".concat(style.tableBorderWidth, "px;\n");
        result += "  border-collapse: separate;\n";
        result += '}\n\n';
      }

      result += selector + ' .qux-date-week-days {\n';
      result += "  background:".concat(style.tableHeaderBackground, ";\n");
      result += "  color:".concat(style.tableHeaderColor, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-date-header {\n';
      result += "  background:".concat(style.headerBackground, ";\n");
      result += "  color:".concat(style.headerColor, ";\n");
      result += '}\n\n';

      if (style.weekendBackground && style.weekendColor) {
        result += selector + ' .qux-date-weekend {\n';
        result += "  background:".concat(style.weekendBackground, ";\n");
        result += "  color:".concat(style.weekendColor, ";\n");
        result += '}\n\n';
      }

      if (style.weekdayBackground && style.weekdayColor) {
        result += selector + ' .qux-date-workday {\n';
        result += "  background:".concat(style.weekdayBackground, ";\n");
        result += "  color:".concat(style.weekdayColor, ";\n");
        result += '}\n\n';
      }

      if (widget.props.range) {
        result += selector + ' .qux-date-range-start {\n';
        result += "  background:".concat(style.selectedBackground, ";\n");
        result += "  color:".concat(style.selectedColor, ";\n");

        if (style.itemBorderRadius) {
          result += "  border-radius:".concat(style.itemBorderRadius, "%;\n");
        }

        result += '}\n\n';
        result += selector + ' .qux-date-range-end {\n';
        result += "  background:".concat(style.selectedBackground, ";\n");
        result += "  color:".concat(style.selectedColor, ";\n");

        if (style.itemBorderRadius) {
          result += "  border-radius:".concat(style.itemBorderRadius, "%;\n");
        }

        result += '}\n\n';
        result += selector + ' .qux-date-range-middle {\n';
        result += "  background:".concat(style.selectedInRangeBackground, ";\n");
        result += "  color:".concat(style.selectedInRangeColor, ";\n");

        if (style.itemBorderRadius) {
          result += "  border-radius:".concat(style.itemBorderRadius, "%;\n");
        }

        result += '}\n\n';
      } else {
        result += selector + ' .qux-date-selected {\n';
        result += "  background:".concat(style.selectedBackground, ";\n");
        result += "  color:".concat(style.selectedColor, ";\n");

        if (style.itemBorderRadius) {
          result += "  border-radius:".concat(style.itemBorderRadius, "%;\n");
        }

        result += '}\n\n';
      }

      return result;
    }
  }, {
    key: "getCSS_DateDropDown",
    value: function getCSS_DateDropDown(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getRawStyle(style, widget);
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n'; // make sure we have always some focus

      result += this.addOpenZIndex(selector);
      result += this._addCaret(selector, widget, style);
      result += selector + ' .qux-date-picker-popup {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += "  width:".concat(style.fontSize * 18, "px;\n");
      result += "  height:".concat(style.fontSize * 18, "px;\n");
      result += '}\n\n';
      result += this.getCSS_Date(selector + " .qux-date-picker-popup", style, widget, true);
      return result;
    }
  }, {
    key: "getCSS_Rating",
    value: function getCSS_Rating(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += "  color:".concat(style.color, ";\n");
      result += "  font-size:".concat(widget.h, "px;\n");
      result += '}\n\n';
      return result;
    }
  }, {
    key: "getCSS_LabeledIconToggle",
    value: function getCSS_LabeledIconToggle(selector, style, widget) {
      return this.getCSS_IconToggle(selector, style, widget);
    }
  }, {
    key: "getCSS_IconToggle",
    value: function getCSS_IconToggle(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.textProperties);
      result += "  color:".concat(style.passiveColor, ";\n");
      result += "  font-size:".concat(style.fontSize, "px;\n");
      result += '}\n\n';
      result += selector + '.qux-icon-toggle-selected {\n';
      result += "  color:".concat(style.activeColor, ";\n");
      result += '}\n\n';
      result += selector + ' .qux-icon {\n';
      result += "  font-size:".concat(widget.h, "px;\n");
      result += '}\n\n';
      return result;
    }
  }, {
    key: "getCSS_TypeAheadTextBox",
    value: function getCSS_TypeAheadTextBox(selector, style, widget) {
      var result = '';
      result += selector + ' {\n';
      result += this.cssFactory.getPosition(widget);
      result += '}\n\n';
      result += selector + ' .qux-combo-input {\n';
      result += this.cssFactory.getRawStyle(style, widget);
      var paddingH = style._paddingLeft + style._paddingRight;
      var paddingV = style._paddingTop + style._paddingBottom;
      result += "  width:calc(100% - ".concat(paddingH, "px);\n");
      result += "  height:calc(100% - ".concat(paddingV, "px);\n");
      result += '}\n\n'; // make sure we have always some focus

      result += this.addOpenZIndex(selector);
      result += selector + ' .qux-combo-popup {\n';
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.borderProperties);
      result += '}\n\n';
      result += selector + ' .qux-combo-item {\n';
      result += "  background:".concat(style.background, ";\n");
      result += "  color:".concat(style.color, ";\n");
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.paddingProperties);
      result += '}\n\n';
      result += selector + ' .qux-combo-item:hover,\n';
      result += selector + ' .qux-combo-item-selected {\n';
      result += "  background:".concat(style.selectedOptionBackground, ";\n");
      result += this.cssFactory.getStyleByKey(style, widget, this.cssFactory.paddingProperties);
      result += "  color:".concat(style.selectedOptionColor, ";\n");
      result += '}\n\n'; // FIXME: make here a default style for mobile?

      if (widget.focus) {
        result += selector + ':hover {\n';
        result += this.cssFactory.getRawStyle(widget.focus, widget);
        result += '}\n\n';
        result += this._addCaret(selector + ':hover', widget, widget.focus); //result += selector + ':hover .qux-combo-popup {\n'
        //result += this.cssFactory.getStyleByKey(widget.focus, widget, this.cssFactory.borderProperties)
        //result += '}\n\n'
      }

      return result;
    }
  }, {
    key: "getCSS_Image",
    value: function getCSS_Image(selector, style, widget) {
      return this.factories.Image.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Paging",
    value: function getCSS_Paging(selector, style, widget) {
      return this.factories.Paging.run(selector, style, widget);
    }
  }, {
    key: "getCSS_Table",
    value: function getCSS_Table(selector, style, widget) {
      return this.factories.Table.run(selector, style, widget);
    }
  }, {
    key: "addOpenZIndex",
    value: function addOpenZIndex(selector) {
      var result = '';
      result += selector + '.qux-open {\n';
      result += "  z-index: 1000;\n";
      result += '}\n\n';
      return result;
    }
  }]);

  return CSSWidgetFactory;
}();


// CONCATENATED MODULE: ./src/qux/core/CSSPosition.js
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }

function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }

function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function CSSPosition_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function CSSPosition_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function CSSPosition_createClass(Constructor, protoProps, staticProps) { if (protoProps) CSSPosition_defineProperties(Constructor.prototype, protoProps); if (staticProps) CSSPosition_defineProperties(Constructor, staticProps); return Constructor; }




var CSSPosition_CSSPosition = /*#__PURE__*/function () {
  function CSSPosition(config, f) {
    CSSPosition_classCallCheck(this, CSSPosition);

    this.cssFacotory = f;
    this.gridAutoErrorThreshold = 5;
    this.huggedCanResize = false;

    if (config.css) {
      this.isForceGrid = config.css.grid;
      this.huggedCanResize = config.css.huggedCanResize;
      this.justifyContentInWrapper = config.css.justifyContentInWrapper;
      this.prefix = config.css.prefix ? config.css.prefix : '';
      this.gridAutoErrorThreshold = config.css.gridAutoErrorThreshold ? config.css.gridAutoErrorThreshold : 5;
    }

    if (config.responsive) {
      this.responsive = config.responsive;
    }

    this.ignoreCorrectWidthAndHeigth = ['CheckBox', 'RadioBox', 'RadioBox2', 'Switch', 'Stepper', 'TypeAheadTextBox', 'Paging', 'Camera'];
    this.heightProperties = ['paddingTop', '_paddingTop', 'paddingBottom', '_paddingBottom', 'borderTopWidth', '_borderTopWidth', 'borderBottomWidth', '_borderBottomWidth'];
    this.widthProperties = ['paddingLeft', '_paddingLeft', 'paddingRight', '_paddingRight', 'borderLeftWidth', '_borderLeftWidth', 'borderRightWidth', '_borderRightWidth'];
  }

  CSSPosition_createClass(CSSPosition, [{
    key: "getPostion",
    value: function getPostion(widget) {
      core_Logger.log(3, "CSSPostion.getPostion()" + widget.name, widget.layout);
      /**
       * Special handling for design systems and fixed stuff
       */

      if (isDesignSystemRoot(widget)) {
        return this.getDesignSystemPosition(widget);
      }

      if (hasComponentScreenParent(widget)) {
        return this.getComponentScreenPosition(widget);
      }
      /**
       * Normal layout:
       * 1) Position in parent
       * 2) Set position of childnre
       */


      var result = '';
      var parent = widget.parent;
      result += this.getParentPosition(parent, widget);
      result += this.getChildPosition(widget);
      return result;
    }
  }, {
    key: "getParentPosition",
    value: function getParentPosition(parent, widget) {
      if (!parent) {
        return this.getParentDefault(widget);
      }

      if (isFixedPosition(widget)) {
        return this.getParentFixed(widget);
      }

      if (isRepeater(parent)) {
        return this.getParentRepeater(widget);
      }

      if (isLayoutWrap(parent)) {
        return this.getParentWrap(widget);
      }

      if (isLayoutAutoHorizontal(parent)) {
        return this.getParentAutoHorizontal(widget);
      }

      if (isLayoutAutovertical(parent)) {
        return this.getParentAutoVertical(widget);
      }

      if (isLayoutRow(parent)) {
        return this.getParentRow(widget);
      }

      if (isLayoutGrid(parent)) {
        return this.getParentGrid(widget);
      }

      return '';
    }
  }, {
    key: "getChildPosition",
    value: function getChildPosition(widget) {
      if (!hasChildren(widget)) {
        return '/* no children */';
      }

      if (isRepeater(widget)) {
        return this.setChildrenRepeater(widget);
      }

      if (isLayoutWrap(widget)) {
        return this.getChildrenWrap(widget);
      }

      if (isLayoutAutoHorizontal(widget)) {
        return this.getChildrenAutoHorizontal(widget);
      }

      if (isLayoutAutovertical(widget)) {
        return this.getChildrenAutoVertical(widget);
      }

      if (isLayoutRow(widget)) {
        return this.getChildrenRow(widget);
      }

      if (isLayoutGrid(widget)) {
        return this.getChildrenGrid(widget);
      }

      return '';
    }
  }, {
    key: "getParentDefault",
    value: function getParentDefault(widget) {
      core_Logger.log(5, "CSSPosition.getParentDefault() >" + widget.name);
      var result = '';

      if (this.isForceGrid && isScreen(widget)) {
        result += "  min-height: ".concat(widget.h, "px;\n");
      } else {
        /**
         * This has caused issues with templates and fixed in combination.
         * Thus we do not call getPostion for templates anymore.
         */
        result += "  min-height: 100%;\n";
      }

      return result;
    }
    /*********************************************************************
     * Auto
     *********************************************************************/

  }, {
    key: "getChildrenAutoHorizontal",
    value: function getChildrenAutoHorizontal(widget) {
      core_Logger.log(5, "CSSPosition.getChildrenAutoHorizontal() >" + widget.name);
      var result = '';
      var l = widget.layout;
      result += "  display: flex;\n";
      result += "  flex-direction: row;\n";
      result += "  align-items: ".concat(l.alignItems, ";\n");
      result += "  justify-content: ".concat(l.justifyContent, ";\n");

      if (isWrappedContainer(widget)) {
        result += "  flex-wrap: wrap;\n";
      }

      if (!isAutoLayoutSpaceBetween(widget)) {
        var gap = l.itemSpacing ? l.itemSpacing : 0;
        result += "  gap: ".concat(gap, "px;\n");
      }

      result += "  padding-left: ".concat(l.paddingLeft, "px;\n");
      result += "  padding-right: ".concat(l.paddingRight, "px;\n");
      result += "  padding-top: ".concat(l.paddingTop, "px;\n");
      result += "  padding-bottom: ".concat(l.paddingBottom, "px;\n");
      return result;
    }
  }, {
    key: "getParentAutoHorizontal",
    value: function getParentAutoHorizontal(widget) {
      core_Logger.log(5, "CSSPosition.getParentAutoHorizontal() > " + widget.name);
      var result = '';

      if (isFixedVertical(widget)) {
        result += "  height: ".concat(this.getCorrectedHeight(widget, true), ";\n");
      } else {
        result += "  min-height: ".concat(this.getCorrectedHeight(widget, true), ";\n");
      }

      if (hasMinMaxWdith(widget)) {
        result += this.getMinMaxWidth(widget, false);
        result += "  flex-grow: 1;\n";
      } else if (ExportUtil_isFixedHorizontal(widget)) {
        if (isHugHorizontal(widget)) {//result += `  flex-basis: ${this.getFixedWidth(widget)};\n`
        } else {
          result += "  width: ".concat(this.getFixedWidth(widget), ";\n");
        }
      } else {
        if (isLayoutGrow(widget)) {
          result += "  flex-basis: ".concat(this.getFixedWidth(widget), "; \n");
          result += "  flex-grow: 1;\n";
        } else {
          result += "  width: ".concat(this.getResponsiveWidth(widget), ";\n");
        }
      }

      return result;
    }
  }, {
    key: "getChildrenAutoVertical",
    value: function getChildrenAutoVertical(widget) {
      core_Logger.log(3, "CSSPosition.getChildrenAutoVertical()" + widget.name);
      var result = '';
      var l = widget.layout;
      result += "  display: flex;\n";
      result += "  flex-direction: column;\n";
      result += "  align-items: ".concat(l.alignItems, ";\n");
      result += "  justify-content: ".concat(l.justifyContent, ";\n");
      var gap = l.itemSpacing ? l.itemSpacing : 0;
      result += "  gap: ".concat(gap, "px;\n");
      result += "  padding-left: ".concat(l.paddingLeft, "px;\n");
      result += "  padding-right: ".concat(l.paddingRight, "px;\n");
      result += "  padding-top: ".concat(l.paddingTop, "px;\n");
      result += "  padding-bottom: ".concat(l.paddingBottom, "px;\n");
      return result;
    }
  }, {
    key: "getParentAutoVertical",
    value: function getParentAutoVertical(widget) {
      core_Logger.log(3, "CSSPosition.getParentAutovertical()" + widget.name);
      var result = '';

      if (isLayoutGrow(widget)) {
        result += "  min-height: ".concat(this.getCorrectedHeight(widget, true), ";\n");
        result += "  flex-grow: 1;\n";
      } else {
        result += "  height: ".concat(this.getCorrectedHeight(widget, true), ";\n");
      }
      /**
       * In a vertical layout we might have a strech property. This translates to width 100%
       */


      if (ExportUtil_isFixedHorizontal(widget)) {
        result += "  width: ".concat(this.getFixedWidth(widget), ";\n");
      } else {
        /**
         * If we have an auto alout, we use calc.
         */
        if (widget.layout && widget.layout.paddingLeft >= 0 && widget.layout.paddingRight >= 0) {
          var l = widget.layout;
          var paddingHorizontal = l.paddingLeft + l.paddingRight;
          result += "  width: calc(100% - ".concat(paddingHorizontal, "px);\n");
        } else {
          result += "  width: 100%;\n"; // result += `  box-sizing: border-box;\n` //  FIXME: this can also have some effect rows
        }
      }

      return result;
    }
    /*********************************************************************
     * Grid
     *********************************************************************/

  }, {
    key: "getChildrenGrid",
    value: function getChildrenGrid(widget) {
      core_Logger.log(3, "CSSPosition.getChildrenGrid()" + widget.name);
      var result = '';
      result += "  display: grid;\n";
      result += "  grid-template-columns: " + this.getGridColumnTracks(widget.w, widget.grid.columns, widget) + ";\n";
      result += "  grid-template-rows: " + this.getGridRowTracks(widget.h, widget.grid.rows, widget, true) + ";\n";
      return result;
    }
  }, {
    key: "getParentGrid",
    value: function getParentGrid(widget) {
      core_Logger.log(3, "CSSPosition.getParentGrid()" + widget.name);
      var result = '';
      result += "  grid-column-start: ".concat(widget.gridColumnStart + 1, ";\n");
      result += "  grid-column-end: ".concat(widget.gridColumnEnd + 1, ";\n");
      result += "  grid-row-start: ".concat(widget.gridRowStart + 1, ";\n");
      result += "  grid-row-end: ".concat(widget.gridRowEnd + 1, ";\n");

      if (widget.z) {
        result += "  z-index: ".concat(widget.z, ";\n");
      }

      return result;
    }
    /**
     * Returns the tracks for the grid. It makes sure the biggest element
     * is auto, so the grid is responsive... we could also use minmax()
     */

  }, {
    key: "getGridColumnTracks",
    value: function getGridColumnTracks(total, list) {
      var _this = this;

      core_Logger.log(6, "CSSPosition.getGridColumnTracks() > ", list);

      if (list) {
        /**
         * We get the max not fixed. Still we would
         * need to make sure we get the fixed stuff
         */
        var notFixed = list.filter(function (i) {
          return !i.fixed;
        });

        if (notFixed.length === 0) {
          notFixed = list;
        }

        var max = Math.max.apply(Math, _toConsumableArray(notFixed.map(function (i) {
          return i.l;
        })));
        return list.map(function (i) {
          /**
           * Fixed has priority. For rows we have always fixed...
           */
          if (i.fixed) {
            return i.l + "px";
          }
          /**
           * We might want several autos. This is very sensitive
           * to small changes in the editor. Therefore we give a
           * small error margin. Use minmax to prevent blowout
           * https://css-tricks.com/preventing-a-grid-blowout/
           */


          if (Math.abs(max - i.l) <= _this.gridAutoErrorThreshold) {
            // max === i.l

            /**
             * FIXME: If we have a min max , we use max-content, but only of there
             * is more than one column! Otherwise the resizing will not work
             * correctly!
             */
            // if (i.hasMinMax && list.length > 1) {
            // 	return "minmax(0,max-content)" //'1fr'
            // } else {
            //	return "minmax(0,1fr)" //'1fr'
            // }
            return "minmax(0,1fr)";
          }

          return Math.round(i.l * 1000 / total) / 10 + "%";
        }).join(" ");
      }
    }
  }, {
    key: "getGridRowTracks",
    value: function getGridRowTracks(total, rows) {
      core_Logger.log(6, "CSSPosition.getGridRowTracks() > ", rows);

      if (rows) {
        return rows.map(function (row, index) {
          /**
           * The last row will be free space, if it is
           * not fixed
           */
          if (!row.fixed && index === rows.length - 1) {
            return "1fr";
          }
          /**
           * Fixed rows or spacer (no element starts here, or first)
           * rows have a fixed size. Everything else is minmax
           */


          if (row.fixed || row.start.length === 0 || index === 0) {
            return Math.round(row.l) + "px";
          }

          return "minmax(".concat(Math.round(row.l), "px, auto)");
        }).join(" ");
      }
    }
    /*********************************************************************
     * Fixed Position
     *********************************************************************/

  }, {
    key: "getParentFixed",
    value: function getParentFixed(widget) {
      var result = "  position: fixed;\n";

      if (this.isFixedHorizontal(widget)) {
        result += "  width: ".concat(this.getFixedWidth(widget), ";\n");
      } else {
        result += "  width: ".concat(this.getResponsiveWidth(widget), ";\n");
      }

      if (ExportUtil_isPinnedLeft(widget)) {
        result += "  left: ".concat(this.getPinnedLeft(widget), ";\n");
      } else if (ExportUtil_isPinnedRight(widget)) {
        result += "  right: ".concat(this.getPinnedRight(widget), ";\n");
      } else {
        result += "  left: ".concat(this.getResponsiveLeft(widget), ";\n");
      }

      if (isPinnedDown(widget) && isPinnedUp(widget)) {
        result += "  bottom: ".concat(widget.bottom, "px;\n");
        result += "  top: ".concat(widget.y, "px;\n");
      } else if (isPinnedDown(widget)) {
        result += "  bottom: ".concat(widget.bottom, "px;\n");
        result += "  height: ".concat(this.getCorrectedHeight(widget), ";\n");
      } else {
        result += "  top: ".concat(widget.y, "px;\n");
        result += "  height: ".concat(this.getCorrectedHeight(widget), ";\n");
      }

      return result;
    }
    /*********************************************************************
     * Wrapped
     *********************************************************************/

  }, {
    key: "getParentWrap",
    value: function getParentWrap(widget) {
      core_Logger.log(3, "CSSPosition.getParentWrap()" + widget.name);
      var result = "";
      /**
       * For wrapped we just add margins
       */

      result += "  min-height: ".concat(this.getWrappedHeight(widget), ";\n");
      result += this.getWrappedWidth(widget);

      if (widget.wrapOffSetBottom && widget.wrapOffSetRight && !this.justifyContentInWrapper) {
        result += "  margin-bottom: ".concat(widget.wrapOffSetBottom, "px ;\n");
        result += "  margin-right: ".concat(widget.wrapOffSetRight, "px ;\n");
      } else {
        result += "  margin: ".concat(widget.wrapOffSetY, "px ").concat(widget.wrapOffSetX, "px;\n");
      }

      return result;
    }
  }, {
    key: "getChildrenWrap",
    value: function getChildrenWrap(widget) {
      core_Logger.log(4, "CSSPosition.getChildrenWrap() " + widget.name);
      var result = "";
      result += "  display: flex;\n";
      result += "  flex-direction: row;\n";
      result += "  flex-wrap: wrap;\n";
      result += "  align-items: flex-start;\n";
      result += "  align-content: flex-start;\n";
      /**
       * FIXME:This hsould be configured in the UI
       */

      if (this.justifyContentInWrapper) {
        result += "  justify-content: space-between;\n";
      }

      return result;
    }
  }, {
    key: "getWrappedHeight",
    value: function getWrappedHeight(widget) {
      return this.getCorrectedHeight(widget);
    }
  }, {
    key: "getWrappedWidth",
    value: function getWrappedWidth(widget) {
      core_Logger.log(5, "CSSPosition.getWrappedWidth() " + widget.name, hasMinMaxWdith(widget));

      if (hasMinMaxWdith(widget)) {
        return this.getMinMaxWidth(widget, true);
      }

      if (this.isFixedHorizontal(widget)) {
        return "  width: ".concat(this.getFixedWidth(widget), ";\n");
      }

      return "  width: ".concat(this.getResponsiveWidth(widget), ";\n");
    }
    /*********************************************************************
     * Repeater
     *********************************************************************/

  }, {
    key: "getParentRepeater",
    value: function getParentRepeater(widget) {
      core_Logger.log(5, "CSSPosition.getParentRepeater() " + widget.name);
      var result = "";

      if (isFixedVertical(widget)) {
        result += "  height: ".concat(this.getCorrectedHeight(widget, true), ";\n");
      } else {
        result += "  min-height: ".concat(this.getCorrectedHeight(widget, true), ";\n");
        result += "  height: 100%;\n";
      } // Take the border of the child out!


      result += "  width: calc(100% - ".concat(this.getLeftRightBorder(widget), "px);\n");
      return result;
    }
  }, {
    key: "getLeftRightBorder",
    value: function getLeftRightBorder(widget) {
      var result = 0;

      if (widget.style) {
        this.widthProperties.forEach(function (key) {
          if (widget.style[key]) {
            result += widget.style[key];
          }
        });
      }

      return result;
    }
  }, {
    key: "setChildrenRepeater",
    value: function setChildrenRepeater(widget) {
      core_Logger.log(5, "CSSPosition.setChildrenRepeater() " + widget.name);
      /**
       * First check of we have an auto layout
       */

      if (isLayoutAutoHorizontal(widget)) {
        return this.getChildrenAutoHorizontal(widget);
      }

      if (isLayoutAutovertical(widget)) {
        return this.getChildrenAutoVertical(widget);
      }
      /**
       * Otherwise return standard grid or row style
       */


      var result = "";

      if (isRepeaterGrid(widget)) {
        result += "  display: flex;\n";
        result += "  flex-direction: row;\n";
        result += "  flex-wrap: wrap;\n";
        result += "  align-items: flex-start;\n";
        result += "  align-content: flex-start;\n";

        if (isRepeaterAuto(widget)) {
          result += "  justify-content: space-between;\n";
        }
      } else {
        result += "  display: flex;\n";
        result += "  flex-direction: column;\n";
      }

      return result;
    }
    /*********************************************************************
     * Rows
     *********************************************************************/

  }, {
    key: "getChildrenRow",
    value: function getChildrenRow() {
      var result = "";
      result += "  display: flex;\n";
      result += "  flex-direction: column;\n";
      return result;
    }
  }, {
    key: "getParentRow",
    value: function getParentRow(widget) {
      core_Logger.log(5, "CSSPosition.getParentRow() " + widget.name, widget.props);
      var result = "";
      result += this.getParentRowHorizontal(widget);
      result += this.getParentRowVertical(widget);
      return result;
    }
  }, {
    key: "getParentRowVertical",
    value: function getParentRowVertical(widget) {
      var result = "";

      if (isFixedVertical(widget)) {
        result += "  height: ".concat(this.getCorrectedHeight(widget, true), ";\n");
      } else {
        result += "  min-height: ".concat(this.getCorrectedHeight(widget, true), ";\n");
      }

      result += "  margin-top: ".concat(this.getPinnedTop(widget), ";\n");
      return result;
    }
  }, {
    key: "getParentRowHorizontal",
    value: function getParentRowHorizontal(widget) {
      /**
       * Stronged constraint is left and right pinned!
       */
      if (this.isPinnedLeft(widget) && this.isPinnedRight(widget)) {
        return this.getParentRowPinnedBoth(widget);
      }
      /**
       * Second constraint is centered!
       */


      if (isCentered(widget)) {
        return this.getParentRowCenter(widget);
      }

      if (this.isPinnedLeft(widget)) {
        return this.getParentRowPinnedLeft(widget);
      }

      if (this.isPinnedRight(widget)) {
        return this.getParentRowPinneRight(widget);
      }
      /**
       * Default is more or less quant-ux standard
       */


      return this.getParentRowPinnedNone(widget);
    }
  }, {
    key: "getParentRowCenter",
    value: function getParentRowCenter(widget) {
      var result = '';

      if (hasMinMaxWdith(widget)) {
        result += this.getMinMaxWidth(widget, true);
      } else if (ExportUtil_isFixedHorizontal(widget)) {
        result += "  width: ".concat(this.getFixedWidth(widget), ";\n");
      } else {
        result += "  width: ".concat(this.getResponsiveWidth(widget), ";\n");
      }

      result += "  margin-left: auto;\n";
      result += "  margin-right: auto;\n";
      return result;
    }
  }, {
    key: "getParentRowPinnedBoth",
    value: function getParentRowPinnedBoth(widget) {
      var result = "";
      result += "  margin-left: ".concat(this.getPinnedLeft(widget), ";\n");
      result += "  margin-right: ".concat(this.getPinnedRight(widget), ";\n");
      return result;
    }
  }, {
    key: "getParentRowPinnedLeft",
    value: function getParentRowPinnedLeft(widget) {
      var result = "";

      if (this.isFixedHorizontal(widget)) {
        result += "  width: ".concat(this.getFixedWidth(widget), ";\n");
        result += "  margin-left: ".concat(this.getPinnedLeft(widget), ";\n");
      } else {
        result += "  margin-right: ".concat(this.getResponsiveRight(widget), ";\n");
        result += "  margin-left: ".concat(this.getPinnedLeft(widget), ";\n");
      }

      return result;
    }
  }, {
    key: "getParentRowPinneRight",
    value: function getParentRowPinneRight(widget) {
      var result = "";
      /**
       * This is a tricky one.
       */

      if (this.isFixedHorizontal(widget)) {
        result += "  width: ".concat(this.getFixedWidth(widget), ";\n");
        result += "  margin-left: ".concat(this.getCalcLeft(widget), ";\n");
      } else {
        /**
         * TODO: can we use somehow a reposnive calculated left?
         */
        result += "  margin-left: ".concat(this.getResponsiveLeft(widget), ";\n");
        result += "  margin-right: ".concat(this.getPinnedRight(widget), ";\n");
      }

      return result;
    }
  }, {
    key: "getParentRowPinnedNone",
    value: function getParentRowPinnedNone(widget) {
      var result = "";
      /**
       * Nothing is pinned.
       * We are in a rowGrid, this means the widget is alone. Therefore
       * we can set the margin left and right and not the width.
       */

      if (this.isFixedHorizontal(widget)) {
        /**
         * FIXME: This branch should be dead. We catch this before!
         */
        if (isCentered(widget)) {
          result += "  width: ".concat(this.getFixedWidth(widget), ";\n");
          result += "  margin-left: auto;\n";
          result += "  margin-right: auto;\n";
        } else {
          result += "  width: ".concat(this.getFixedWidth(widget), ";\n");
          result += "  margin-left: ".concat(this.getResponsiveLeft(widget), ";\n");
        }
      } else if (hasMinMaxWdith(widget) && isCentered(widget)) {
        /**
         * If we have min max and center we will use minmax with relative width
         */
        result += this.getMinMaxWidth(widget, true);
        result += "  margin-left: auto;\n";
        result += "  margin-right: auto;\n";
      } else {
        result += "  margin-right: ".concat(this.getResponsiveRight(widget), ";\n");
        result += "  margin-left: ".concat(this.getResponsiveLeft(widget), ";\n");
      }

      return result;
    }
    /*********************************************************************
     * Design System
     *********************************************************************/

  }, {
    key: "getDesignSystemPosition",
    value: function getDesignSystemPosition(widget) {
      core_Logger.log(3, "CSSPosition.getDesignSystemPosition()" + widget.name, widget);
      var result = "";
      /**
       * ComponentSet are just placed as block or inline block. The child will
       * determine the size. This will happen the ComponenSetCSS.js file
       * TODO factor this out...
       */

      if (isComponentSet(widget)) {
        if (isBlock(widget)) {
          result += "  display:block;\n";
        } else {
          result += "  display:inline-block;\n";
        }
      } else {
        /**
         * For all other components we set (inline)grid or block,
         * with and height and a grid of needed-
         */
        if (this.isGrid(widget)) {
          if (isBlock(widget)) {
            result += "  display:grid;\n";
          } else {
            result += "  display:inline-grid;\n";
          }
        } else if (isBlock(widget)) {
          result += "  display:block;\n";
        } else {
          result += "  display:inline-block;\n";
        }
        /**
         * For wrapped we just add margins
         */


        if (ExportUtil_isFixedHorizontal(widget)) {
          result += "  width: ".concat(this.getCorrectedWidth(widget), ";\n");
        } else if (hasMinMaxWdith(widget)) {
          result += this.getMinMaxWidth(widget, false);
        } else {
          result += "  width: auto;\n";
        }

        if (isFixedVertical(widget)) {
          result += "  height: ".concat(this.getCorrectedHeight(widget), ";\n");
        } else {
          result += "  min-height: ".concat(this.getCorrectedHeight(widget), ";\n");
        }

        if (hasChildren(widget)) {
          if (isLayoutGrid(widget)) {
            core_Logger.log(3, "CSSPosition.getComponentScreenPosition() > add grid" + widget.name);
            result += "  grid-template-columns: " + this.getGridColumnTracks(widget.w, widget.grid.columns, widget) + ";\n";
            result += "  grid-template-rows: " + this.getGridRowTracks(widget.h, widget.grid.rows, widget) + ";\n";
          } else {
            result += "  display: flex;\n";
            result += "  flex-direction: column;\n";
          }
        }
      }

      return result;
    }
  }, {
    key: "getMinMaxWidth",
    value: function getMinMaxWidth(widget) {
      var isWrapped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var result = "";

      if (widget.style && widget.style.minWidth) {
        result += "  min-width: ".concat(widget.style.minWidth, "px;\n");
      }

      if (widget.style && widget.style.maxWidth) {
        result += "  max-width: ".concat(widget.style.maxWidth, "px;\n");
      }
      /**
       * We need to make sure that we also include the reponsive with,
       * to make it 'push' outwards
       */


      if (isWrapped) {
        result += "  width: ".concat(this.getResponsiveWidth(widget), ";\n");
      }

      return result;
    }
  }, {
    key: "isInlineBlock",
    value: function isInlineBlock(widget) {
      return widget.qtype !== 'qContainer';
    }
  }, {
    key: "isGrid",
    value: function isGrid(widget) {
      return isLayoutGrid(widget) && hasChildren(widget);
    }
    /*********************************************************************
     * Child of component screen
     *********************************************************************/

  }, {
    key: "getComponentScreenPosition",
    value: function getComponentScreenPosition(widget) {
      core_Logger.log(3, "CSSPosition.getComponentScreenPosition()" + widget.name);
      var result = "";
      /**
       * For wrapped we just add margins
       */

      result += "  height:100%;\n";
      result += "  width: 100%;\n";
      /**
       * FIXME: Add here check for
       */

      if (isLayoutGrid(widget)) {
        core_Logger.log(-1, "CSSPosition.getComponentScreenPosition() > add grid" + widget.name);
        result += "  display: grid;\n";
        result += "  grid-template-columns: " + this.getGridColumnTracks(widget.w, widget.grid.columns, widget) + ";\n";
        result += "  grid-template-rows: " + this.getGridRowTracks(widget.h, widget.grid.rows, widget) + ";\n";
      }

      return result;
    }
    /*********************************************************************
     * Position Helpers
     *********************************************************************/

  }, {
    key: "isPinnedLeft",
    value: function isPinnedLeft(widget) {
      return ExportUtil_isPinnedLeft(widget);
    }
  }, {
    key: "isPinnedRight",
    value: function isPinnedRight(widget) {
      return ExportUtil_isPinnedRight(widget);
    }
  }, {
    key: "getPinnedBottom",
    value: function getPinnedBottom(widget) {
      if (widget.parent) {
        var parent = widget.parent;
        var innerHeight = parent.children.map(function (c) {
          // grid has top
          if (c.top != undefined) {
            return c.h + c.top;
          }

          return c.h + c.y;
        }).reduce(function (a, b) {
          return a + b;
        }, 0);
        return Math.max(0, parent.h - innerHeight) + "px";
      }

      return "auto";
    }
  }, {
    key: "getFixedWidth",
    value: function getFixedWidth(widget) {
      if (isFullWidth(widget)) {
        return "100%";
      }

      return this.getCorrectedWidth(widget);
    }
  }, {
    key: "getFixedTop",
    value: function getFixedTop(widget) {
      return widget.y + "px";
    }
  }, {
    key: "getPinnedTop",
    value: function getPinnedTop(widget) {
      return widget.top + "px";
    }
  }, {
    key: "getCalcLeft",
    value: function getCalcLeft(widget) {
      if (widget.parent) {
        var right = widget.parent.w - (widget.x + widget.w);
        return "calc(100% - ".concat(widget.w + right, "px)");
      }

      return "0px";
    }
  }, {
    key: "getResponsiveLeft",
    value: function getResponsiveLeft(widget) {
      if (widget.parent) {
        return Math.round(widget.x * 100 / widget.parent.w) + "%";
      }

      return widget.x + "px";
    }
  }, {
    key: "getResponsiveRight",
    value: function getResponsiveRight(widget) {
      if (widget.parent) {
        var right = widget.parent.w - (widget.x + widget.w);
        return Math.round(right * 100 / widget.parent.w) + "%";
      }

      return widget.x + "px";
    }
  }, {
    key: "getPinnedLeft",
    value: function getPinnedLeft(widget) {
      return widget.x + "px";
    }
  }, {
    key: "getPinnedRight",
    value: function getPinnedRight(widget) {
      if (widget.parent) {
        if (widget.absX) {
          return widget.parent.w - (widget.absX + widget.w) + "px";
        } else {
          return widget.parent.w - (widget.x + widget.w) + "px";
        }
      }

      return "0px";
    }
  }, {
    key: "getResponsiveWidth",
    value: function getResponsiveWidth(widget) {
      if (widget.parent) {
        /**
         * What about border...
         */
        return Math.round(widget.w * 100 / widget.parent.w) + "%";
      }

      core_Logger.warn("CSSPosition.getResponsiveWidth() > No parent! " + widget.name);
      return "100%";
    }
  }, {
    key: "getFixedHeight",
    value: function getFixedHeight(widget) {
      return widget.h + "px";
    }
  }, {
    key: "getCorrectedHeight",
    value: function getCorrectedHeight(widget) {
      var isPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var h = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;

      if (h < 0) {
        h = widget.h;
      }
      /**
       * when we are positioning, we only sustract
       * for certain widgets
       */


      if (isPosition && this.ignoreCorrectWidthAndHeigth.indexOf(widget.type) >= 0) {
        return h + "px";
      }

      this.heightProperties.forEach(function (key) {
        if (widget.style[key]) {
          h -= widget.style[key];
        }
      });
      /**
       * For auto layouts we have the padding in the layout
       */

      if (isLayoutAuto(widget)) {
        h -= widget.layout.paddingTop;
        h -= widget.layout.paddingBottom;
      }
      /**
       * For templated widgets, we need to also check for
       * template padings. Also check for '_padding' and so...
       */


      if (widget._template) {
        var template = widget._template;
        this.heightProperties.forEach(function (key) {
          if (template.style[key] && !widget.style[key] && !widget.style['_' + key]) {
            h -= template.style[key];
          }
        });
      }

      return h + "px";
    }
  }, {
    key: "getCorrectedWidth",
    value: function getCorrectedWidth(widget) {
      var isPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var w = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;

      if (w < 0) {
        w = widget.w;
      }

      if (isPosition && this.ignoreCorrectWidthAndHeigth.indexOf(widget.type) >= 0) {
        return w + "px";
      }
      /**
       * For auto layouts we have the padding in the layout
       */


      if (isLayoutAuto(widget)) {
        w -= widget.layout.paddingLeft;
        w -= widget.layout.paddingRight;
      }

      this.widthProperties.forEach(function (key) {
        if (widget.style[key]) {
          w -= widget.style[key];
        }
      });
      return w + "px";
    }
  }, {
    key: "isFixedHorizontal",
    value: function isFixedHorizontal(widget) {
      return ExportUtil_isFixedHorizontal(widget);
    }
  }, {
    key: "getSiblings",
    value: function getSiblings(widget) {
      if (widget.parent && widget.parent.children) {
        return widget.parent && widget.parent.children;
      }

      return [];
    }
  }]);

  return CSSPosition;
}();


// CONCATENATED MODULE: ./src/qux/core/CSSFactory.js
function CSSFactory_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function CSSFactory_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function CSSFactory_createClass(Constructor, protoProps, staticProps) { if (protoProps) CSSFactory_defineProperties(Constructor.prototype, protoProps); if (staticProps) CSSFactory_defineProperties(Constructor, staticProps); return Constructor; }







var CSSFactory_CSSFactory = /*#__PURE__*/function () {
  function CSSFactory() {
    var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var imagePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';

    CSSFactory_classCallCheck(this, CSSFactory);

    core_Logger.log(4, 'CSSFactory.constructor() ', config);
    this.marginWhiteSpaceCorrect = 0;
    this.imagePrefix = imagePrefix;
    this.hoverEmbeddedLabel = false;
    this.responsive = {
      mobile: {
        min: 0,
        max: 400
      },
      tablet: {
        min: 401,
        max: 1000
      },
      desktop: {
        min: 1201,
        max: 1000000
      }
    };

    if (config.css) {
      this.prefix = config.css.prefix ? config.css.prefix : '';
    }

    if (config.responsive) {
      this.responsive = config.responsive;
    }

    if (config.css && config.css.hoverEmbeddedLabel) {
      this.hoverEmbeddedLabel = config.css.hoverEmbeddedLabel;
    }

    this.mapping = {
      "color": "color",
      "textAlign": "text-align",
      "fontFamily": "font-family",
      "fontSize": "font-size",
      "fontStyle": "font-style",
      "fontWeight": "font-weight",
      "letterSpacing": "letter-spacing",
      "lineHeight": "line-height",
      "lineHeightPX": "line-height",
      "textTransform": "text-transform",
      "border": "border",
      "borderWidth": "border-width",
      "borderStyle": "border-style",
      "borderColor": "border-color",
      "borderRadius": "border-radius",
      "borderLeft": "border-left",
      "borderRight": "border-right",
      "borderTop": "border-top",
      "borderBottom": "border-bottom",
      "borderBottomColor": "border-bottom-color",
      "borderTopColor": "border-top-color",
      "borderLeftColor": "border-left-color",
      "borderRightColor": "border-right-color",
      "borderBottomLeftRadius": "border-bottom-left-radius",
      "borderTopLeftRadius": "border-top-left-radius",
      "borderBottomRightRadius": "border-bottom-right-radius",
      "borderTopRightRadius": "border-top-right-radius",
      "borderBottomWidth": "border-bottom-width",
      "borderTopWidth": "border-top-width",
      "borderLeftWidth": "border-left-width",
      "borderRightWidth": "border-right-width",
      "borderTopStyle": "border-top-style",
      "borderBottomStyle": "border-bottom-style",
      "borderRightStyle": "border-left-style",
      "borderLeftStyle": "border-right-style",
      "paddingBottom": "padding-bottom",
      "paddingLeft": "padding-left",
      "paddingRight": "padding-right",
      "paddingTop": "padding-top",
      "padding": "padding",
      //"marginBottom" : "margin-bottom",
      //"marginLeft" : "margin-left",
      //"marginRight" : "margin-right",
      //"marginTop": "margin-top",
      "textDecoration": "text-decoration",
      "boxShadow": "box-shadow",
      "textShadow": "text-shadow",
      "opacity": "opacity",
      "cursor": "cursor"
    };
    this.paddingProperties = ["paddingBottom", "paddingLeft", "paddingRight", "paddingTop", "padding"];
    this.borderProperties = ['borderWidth', 'border', 'borderRadius', 'boderColor', 'borderBottomColor', 'borderTopColor', 'borderLeftColor', 'borderRightColor', 'borderTopStyle', 'borderBottomStyle', 'borderRightStyle', 'borderLeftStyle', 'borderBottomWidth', 'borderTopWidth', 'borderLeftWidth', 'borderRightWidth', 'borderBottomLeftRadius', 'borderTopLeftRadius', 'borderBottomRightRadius', 'borderTopRightRadius'];
    this.borderColorProperties = ['borderBottomColor', 'borderTopColor', 'borderLeftColor', 'borderRightColor'];
    this.borderWidthProperties = ['borderBottomWidth', 'borderTopWidth', 'borderLeftWidth', 'borderRightWidth'];
    this.borderStyleProperties = ['borderTopStyle', 'borderBottomStyle', 'borderRightStyle', 'borderLeftStyle'];
    this.borderRadiusProperties = ['borderBottomLeftRadius', 'borderTopLeftRadius', 'borderBottomRightRadius', 'borderTopRightRadius'];
    this.textProperties = ['color', 'textDecoration', 'textAlign', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'letterSpacing', 'lineHeight', 'lineHeightPX'];
    this.isPixel = {
      "borderBottomLeftRadius": true,
      "borderBottomRightRadius": true,
      "borderTopRightRadius": true,
      "borderTopLeftRadius": true,
      "borderBottomWidth": true,
      "borderLeftWidth": true,
      "borderTopWidth": true,
      "borderRightWidth": true,
      "paddingBottom": true,
      "paddingLeft": true,
      "paddingRight": true,
      "paddingTop": true,
      "fontSize": true,
      "letterSpacing": true,
      "lineHeightPX": true
    };
    this.easingMapping = {
      'easeInQuad': 'ease-in',
      'easeOutQuad': 'ease-out',
      'linear': 'linear',
      'easeInOutQuad': 'ease-in-out',
      'easeElasticIn': 'ease-in',
      'easeElasticOut': 'ease-out',
      'easeBounceIn': 'ease-in',
      'easeBounceOut': 'ease-out'
    };
    this.fontProperties = ['color', 'fontSize', 'fontWeight', 'textAlign', 'fontStyle', 'letterSpacing', 'lineHeight']; //this.isAlwaysFixedHorizontal = ['Switch', 'Stepper']

    this.widgetFactory = new CSSWidgetFactory_CSSWidgetFactory(this);
    this.positionFactory = new CSSPosition_CSSPosition(config, this);
  }

  CSSFactory_createClass(CSSFactory, [{
    key: "generate",
    value: function generate(model) {
      var _this = this;

      var start = new Date().getTime();
      var result = {};
      /**
       * Generate the template styles
       */

      model.templates.forEach(function (t) {
        if (t.style) {
          var style = {
            type: 'template',
            css: t.cssSelector,
            global: true,
            code: _this.getTemplateCSS(t, null, false)
          };
          result[t.id] = [style];
        }
      });
      /**
       * Generate styles for each screen. The templates styles
       * might here be reused!
       */

      model.screens.forEach(function (screen) {
        result[screen.id] = [];
        result[screen.id].push({
          type: 'screen',
          css: screen.cssSelector,
          global: false,
          code: _this.getCSS(screen)
        });
        screen.children.forEach(function (child) {
          _this.generateElement(child, result, screen);
        });
        screen.fixedChildren.forEach(function (child) {
          _this.generateElement(child, result, screen);
        });
      });
      /**
       * Add some normalizer styles
       */

      result['$NORMALIZE'] = [];
      result['$NORMALIZE'].push({
        type: 'screen',
        css: '',
        global: true,
        code: this.getGlobalStyles()
      });
      var end = new Date().getTime();
      core_Logger.log(1, 'CSSFactory.generate() > took ', end - start);
      return result;
    }
  }, {
    key: "getGlobalStyles",
    value: function getGlobalStyles() {
      var result = '';
      result += "body {\n  margin:0px;\n  font-family:'Source Sans Pro', 'Helvetica Neue', 'Helvetica', sans-serif;\n}\n\n";
      result += "div {\n  margin:0px;\n}\n\n";
      return result;
    }
  }, {
    key: "generateDesignSystemRoot",
    value: function generateDesignSystemRoot(node) {
      var _this2 = this;

      var result = {};
      var style = {
        type: 'template',
        css: node.cssSelector,
        global: true,
        code: this.getCSS(node, null, false)
      };
      result[node.id] = [style];

      if (node.children) {
        node.children.forEach(function (child) {
          _this2.generateElement(child, result, screen);
        });
      } // add something like inlibe block, and fexl with if no children
      // generate rest like usual


      return result;
    }
  }, {
    key: "generateElement",
    value: function generateElement(node, result, screen) {
      var _this3 = this;

      result[node.id] = [];
      result[node.id].push({
        type: 'widget',
        css: node.cssSelector,
        global: false,
        code: this.getCSS(node, screen),
        inherited: node.inherited,
        inheritedScreen: node.inheritedScreen
      });

      if (node.children) {
        node.children.forEach(function (child) {
          _this3.generateElement(child, result, screen);
        });
      }
    }
  }, {
    key: "getRaw",
    value: function getRaw(model, selectedWidgets) {
      var result = "";

      for (var i = 0; i < selectedWidgets.length; i++) {
        var id = selectedWidgets[i];
        var widget = model.widgets[id];

        if (widget) {
          result += this.getCSS(widget, null, false);
        } else {
          this.logger.warn("getRaw", "No widget with id > " + widget);
        }
      }

      return result;
    }
  }, {
    key: "getSelector",
    value: function getSelector(widget) {
      return widget.cssSelector;
    }
  }, {
    key: "getName",
    value: function getName(box) {
      var name = box.name.replace(/\s+/g, '_');

      if (box.inherited) {
        name += '_Master';
      }

      if (this.prefix) {
        name = "".concat(this.prefix, "_").concat(name);
      }

      return name;
    }
  }, {
    key: "getTemplateCSS",
    value: function getTemplateCSS(widget, screen) {
      var result = "";
      var style = widget.style;
      style = fixAutos(style, widget);
      var selector = this.getSelector(widget, screen);

      if (this.widgetFactory['getCSS_' + widget.type]) {
        result += this.widgetFactory['getCSS_' + widget.type](selector, widget.style, widget);
      } else {
        /**
         * Add normal css
         */
        result += selector + ' {\n';
        result += this.getRawStyle(style, widget);
        result += '}\n\n';

        if (widget.hover) {
          result += selector + ':hover {\n';
          result += '  transition: all 0.2s;\n';
          result += this.getRawStyle(widget.hover, widget);
          result += '}\n\n';
        }

        if (widget.focus) {
          result += selector + ':focus {\n';
          result += this.getRawStyle(widget.focus, widget);
          result += '}\n\n';
        }

        if (widget.error) {
          result += selector + ':invalid {\n';
          result += this.getRawStyle(widget.error, widget);
          result += '}\n\n';
        }

        if (widget.active) {
          result += selector + '.qux-active {\n';
          result += this.getRawStyle(widget.active, widget);
          result += '}\n\n';
        }

        if (isInputElement(widget)) {
          result += selector + '::placeholder {\n';
          result += "  color: ".concat(this.getPlaceHolderColor(style.color), ";\n");
          result += '}\n\n';
        }
      }

      return result;
    }
  }, {
    key: "getCSS",
    value: function getCSS(widget, screen) {
      var result = "";
      var style = widget.style;
      style = fixAutos(style, widget);
      var selector = this.getSelector(widget, screen);

      if (this.widgetFactory['getCSS_' + widget.type]) {
        result += this.widgetFactory['getCSS_' + widget.type](selector, widget.style, widget);
      } else if (widget.isCustomComponent) {
        /**
         * For custom components we just set the position!
         */
        result += selector + ' {\n';
        result += this.getPosition(widget);
        result += '}\n\n';
      } else {
        /**
         * Add normal css
         */
        result += selector + ' {\n';
        result += this.getRawStyle(style, widget);
        result += this.getPosition(widget);
        result += '}\n\n';

        if (widget.hover) {
          result += selector + ':hover {\n';
          result += '  transition: all 0.2s;\n';
          result += this.getRawStyle(widget.hover, widget);
          result += '}\n\n';
          /**
           * We want to functionality only for Figma
           */

          if (this.hoverEmbeddedLabel) {
            result += selector + ':hover .qux-common-label {\n';
            result += this.getStyleByKey(widget.hover, widget, this.textProperties);
            result += '}\n\n';
          }
        }

        if (widget.focus) {
          result += selector + ':focus {\n';
          result += this.getRawStyle(widget.focus, widget);
          result += '}\n\n';
        }

        if (widget.error) {
          result += selector + ':invalid {\n';
          result += this.getRawStyle(widget.error, widget);
          result += '}\n\n';
        }

        if (widget.active) {
          result += selector + '.qux-active {\n';
          result += this.getRawStyle(widget.active, widget);
          result += '}\n\n';
        }

        if (isInputElement(widget)) {
          result += selector + '::placeholder {\n';
          result += "  color: ".concat(this.getPlaceHolderColor(style.color), ";\n");
          result += '}\n\n';
        }
      }
      /**
       * Break points
       */


      result += this.getBreakpoints(selector, widget);
      /**
       * Animation
       */

      if (screen && screen.animation && screen.animation.ScreenLoaded) {
        var animation = screen.animation.ScreenLoaded;

        if (widget.id in animation.widgets) {
          var widgetAnimation = animation.widgets[widget.id];

          if (widgetAnimation) {
            result += this.getAnimation(widgetAnimation, selector, widget, screen);
          }
        }

        if (widget.isGroup && widget.groupId in animation.groups) {
          var groupAnimation = animation.groups[widget.groupId];

          if (groupAnimation) {
            result += this.getAnimation(groupAnimation, selector, widget, screen);
          }
        }
      }

      return result;
    }
  }, {
    key: "getBreakpoints",
    value: function getBreakpoints(selector, widget) {
      var result = '';

      if (widget.props.breakpoints) {
        core_Logger.log(-1, 'CSSFactory.getBreakpoints()', widget.name);
        var breakpoints = widget.props.breakpoints;
        /**
         * Assume at leats one is true
         */

        if (!breakpoints.mobile) {
          result += "@media only screen and (min-width: ".concat(this.responsive.mobile.min, "px) and (max-width: ").concat(this.responsive.mobile.max, "px) {\n");
          result += "  ".concat(selector, " {\n");
          result += '    display: none;\n';
          result += '  }\n';
          result += '}\n\n';
        }

        if (!breakpoints.tablet) {
          result += "@media only screen and (min-width: ".concat(this.responsive.tablet.min, "px) and (max-width: ").concat(this.responsive.tablet.max, "px) {\n");
          result += "  ".concat(selector, " {\n");
          result += '    display: none;\n';
          result += '  }\n';
          result += '}\n\n';
        }

        if (!breakpoints.desktop) {
          result += "@media only screen and (min-width: ".concat(this.responsive.desktop.min, "px) and (max-width: ").concat(this.responsive.desktop.max, "px) {\n");
          result += "  ".concat(selector, " {\n");
          result += '    display: none;\n';
          result += '  }\n';
          result += '}\n\n';
        }
      }

      return result;
    }
  }, {
    key: "getAnimation",
    value: function getAnimation(animation, selector, widget) {
      var result = '';
      var total = animation.delay + animation.duration;
      var delay = Math.round(animation.delay / total * 100);
      var animId = "".concat(widget.id, "-anim-load");
      var easing = animation.easing ? this.getEasing(animation.easing) : 'linear';

      if (animation.type === 'fadeIn') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { opacity:0; }\n';
        result += "  ".concat(delay, "% { opacity: 0;}\n");
        result += "  100% { opacity: 1;}\n";
        result += '}\n\n';
      }

      if (animation.type === 'fadeOut') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { opacity:1; }\n';
        result += "  ".concat(delay, "% { opacity: 1;}\n");
        result += "  100% { opacity: 0;}\n";
        result += '}\n\n';
      }

      if (animation.type === 'zoomIn') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform:scale(0, 0); transform-origin: 50% 50%;}\n';
        result += "  ".concat(delay, "% { transform:scale(0, 0); transform-origin: 50% 50%;}\n");
        result += "  100% { transform:scale(1, 1); transform-origin: 50% 50%;}\n";
        result += '}\n\n';
      }

      if (animation.type === 'fadeOut') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { opacity:1; }\n';
        result += "  ".concat(delay, "% {opacity: 1;}\n");
        result += "  100% {opacity: 0;}\n";
        result += '}\n\n';
      }

      if (animation.type === 'growRight') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform:scale(0, 1); transform-origin: top left;}\n';
        result += "  ".concat(delay, "% { transform:scale(0, 1); transform-origin: top left;}\n");
        result += "  100% { transform:scale(1, 1); transform-origin: top left;}\n";
        result += '}\n\n';
      }

      if (animation.type === 'growLeft') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform:scale(0, 1); transform-origin: top right;}\n';
        result += "  ".concat(delay, "% {transform:scale(0, 1); transform-origin: top right;}\n");
        result += "  100% { transform:scale(1, 1); transform-origin: top right;}\n";
        result += '}\n\n';
      }

      if (animation.type === 'growUp') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform:scale(1, 0); transform-origin: bottom right;}\n';
        result += "  ".concat(delay, "% {transform:scale(1, 0); transform-origin: bottom right;}\n");
        result += "  100% { transform:scale(1, 1); transform-origin: bottom right;}\n";
        result += '}\n\n';
      }

      if (animation.type === 'growDown') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform:scale(1, 0); transform-origin: top right;}\n';
        result += "  ".concat(delay, "% {transform:scale(1, 0); transform-origin: top right;}\n");
        result += "  100% { transform:scale(1, 1); transform-origin: top right;}\n";
        result += '}\n\n';
      }
      /**
       * Use calc(100vh) and so?
       */


      if (animation.type === 'slideRight') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform: translateX(-1000px) }\n';
        result += "  ".concat(delay, "% { transform: translateX(-1000px); }\n");
        result += "  100% { transform:translateX(0); }\n";
        result += '}\n\n';
      }

      if (animation.type === 'slideLeft') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform: translateX(1000px) }\n';
        result += "  ".concat(delay, "% { transform: translateX(1000px); }\n");
        result += "  100% {transform:translateX(0); }\n";
        result += '}\n\n';
      }

      if (animation.type === 'slideDown') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform: translateY(-1000px) }\n';
        result += "  ".concat(delay, "% { transform: translateY(-1000px); }\n");
        result += "  100% {transform:translateY(0); }\n";
        result += '}\n\n';
      }

      if (animation.type === 'slideUp') {
        result += "@keyframes ".concat(animId, "{\n");
        result += '  0% { transform: translateY(1000px) }\n';
        result += "  ".concat(delay, "% { transform: translateY(1000px); }\n");
        result += "  100% {transform:translateY(0); }\n";
        result += '}\n\n';
      }

      result += selector + ' {\n';
      result += "  animation-fill-mode: forwards;\n";
      result += "  animation-name:".concat(animId, ";\n");
      result += "  animation-duration:".concat(total, "ms;\n");
      result += "  animation-timing-function:".concat(easing, ";\n");
      result += '}\n\n';
      return result;
    }
  }, {
    key: "getEasing",
    value: function getEasing(easing) {
      return this.easingMapping[easing];
    }
    /*********************************************************************
     * Position
     *********************************************************************/

  }, {
    key: "getPosition",
    value: function getPosition(widget) {
      /**
       * Default is grid, bit it will also do the row stuff.
       */
      return this.positionFactory.getPostion(widget);
    }
  }, {
    key: "getStyleByKey",
    value: function getStyleByKey(style, widget, keys) {
      var _this4 = this;

      var result = '';
      keys.forEach(function (key) {
        if (style[key] !== undefined && style[key] !== null) {
          var value = style[key];
          result += '  ' + _this4.getKey(key) + ': ' + _this4.getValue(key, value) + ';\n';
        }
      });
      return result;
    }
  }, {
    key: "getRawStyle",
    value: function getRawStyle(style, widget) {
      var result = this.getStyleByKey(style, widget, Object.keys(this.mapping));
      result += this.getBackGround(style, widget);
      return result;
    }
  }, {
    key: "getPlaceHolderColor",
    value: function getPlaceHolderColor(color) {
      if (color) {
        var c = fromString(color);
        c.a = 0.5;
        return ColorUtil_toString(c);
      }

      return 'rgba(0, 0, 0, 0.5)';
    }
  }, {
    key: "getBackGround",
    value: function getBackGround(style, widget) {
      var result = '';

      if (style.background && style.overlay !== true) {
        if (style.background.colors) {
          if (style.background.radial) {
            var background = style.background;
            var gradient = background.colors.map(function (color) {
              return color.c + ' ' + color.p + '%';
            }).join(', ');
            result += "  background: radial-gradient(circle, ".concat(gradient, ");\n");
          } else {
            var _background = style.background;

            var _gradient = "(" + _background.direction + "deg";

            for (var i = 0; i < _background.colors.length; i++) {
              var color = _background.colors[i];
              _gradient += "," + color.c + " " + color.p + "% ";
            }

            _gradient += ")";
            result += "  background: linear-gradient".concat(_gradient, ";\n");
          }
        } else {
          result += "  background-color: ".concat(style.background, ";\n");
        }
      }

      if (style.backgroundColor) {
        result += "  background-color: ".concat(style.backgroundColor, ";\n");
      }

      if (style.backgroundImage && style.backgroundImage.url) {
        if (style.backgroundImage.url.indexOf('http') === 0) {
          result += "  background-image: url(".concat(style.backgroundImage.url, ");\n");
        } else {
          result += "  background-image: url(".concat(this.imagePrefix, "/").concat(style.backgroundImage.url, ");\n");
        }

        if (style.backgroundSize) {
          result += "  background-size: ".concat(style.backgroundSize, "%;\n");
        } else {
          result += "  background-size: 100%;\n";
        }

        if (style.backgroundPosition) {
          var pos = style.backgroundPosition;
          var w = Math.round(pos.left * widget.w);
          var h = Math.round(pos.top * widget.h);
          result += "  background-position: ".concat(w, "px ").concat(h, "px;\n");
        } else {
          result += "  background-position: 0px 0px;\n";
        }

        result += "  background-repeat: no-repeat;\n";
      }

      return result;
    }
  }, {
    key: "getKey",
    value: function getKey(key) {
      return this.mapping[key];
    }
  }, {
    key: "getValue",
    value: function getValue(key, value) {
      var result = '';

      if (key === 'fontFamily') {
        result += this.escapeFontFamily(value);
      } else if (this.isPixel[key]) {
        result += value + 'px';
      } else if (key === "boxShadow") {
        result = value.h + "px " + value.v + "px " + value.b + "px " + value.s + "px " + value.c;

        if (value.i) {
          result += 'inset';
        }
      } else if (key === 'textShadow') {
        result = value.h + "px " + value.v + "px " + value.b + "px " + value.c;
      } else {
        result += value;
      }

      return result;
    }
  }, {
    key: "escapeFontFamily",
    value: function escapeFontFamily(value) {
      return value.split(',').map(function (f) {
        if (f.indexOf(' ') >= 0) {
          return '"' + f + '"';
        }

        return f;
      }).join(', ');
    }
  }, {
    key: "clone",
    value: function clone(obj) {
      if (!obj) {
        return null;
      }

      var _s = JSON.stringify(obj);

      return JSON.parse(_s);
    }
  }, {
    key: "getFixedHeight",
    value: function getFixedHeight(widget) {
      return this.positionFactory.getFixedHeight(widget);
    }
  }, {
    key: "getWrappedWidth",
    value: function getWrappedWidth(widget) {
      return this.positionFactory.getWrappedWidth(widget);
    }
  }, {
    key: "getCorrectedHeight",
    value: function getCorrectedHeight(widget) {
      var isPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var h = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
      return this.positionFactory.getCorrectedHeight(widget, isPosition, h);
    }
  }, {
    key: "getCorrectedWidth",
    value: function getCorrectedWidth(widget) {
      var isPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var w = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
      return this.positionFactory.getCorrectedWidth(widget, isPosition, w);
    }
  }, {
    key: "hasAllwaysFixedHeight",
    value: function hasAllwaysFixedHeight(widget) {
      return widget.type === 'Icon';
    }
  }]);

  return CSSFactory;
}();


// CONCATENATED MODULE: ./src/qux/core/CSSWriter.js
function CSSWriter_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function CSSWriter_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function CSSWriter_createClass(Constructor, protoProps, staticProps) { if (protoProps) CSSWriter_defineProperties(Constructor.prototype, protoProps); if (staticProps) CSSWriter_defineProperties(Constructor, staticProps); return Constructor; }



var CSSWriter_CSSWriter = /*#__PURE__*/function () {
  function CSSWriter() {
    CSSWriter_classCallCheck(this, CSSWriter);

    this.styleElement = {};
  }

  CSSWriter_createClass(CSSWriter, [{
    key: "write",
    value: function write(css) {
      var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
      var head = document.head || document.getElementsByTagName('head')[0];

      if (this.styleElement[id]) {
        /**
         * This can lead to errors when the hash is changed.
         * This is edge case for development (I hope)
         */
        core_Logger.log(5, 'CSSWriter.write() > Clean up old');
        head.removeChild(this.styleElement[id]);
      }

      var style = document.createElement('style');
      style.type = 'text/css';
      style.qux = true;
      style.setAttribute('qux', id);
      style.appendChild(document.createTextNode(css));
      head.appendChild(style);
      this.styleElement[id] = style;
    }
  }]);

  return CSSWriter;
}();

/* harmony default export */ var core_CSSWriter = (new CSSWriter_CSSWriter());
// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__("8bbf");
var external_commonjs_vue_commonjs2_vue_root_Vue_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_vue_commonjs2_vue_root_Vue_);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Button.vue?vue&type=template&id=560e0170

var _hoisted_1 = {
  key: 0,
  class: "qux-common-label"
};
var _hoisted_2 = {
  key: 1,
  class: "qux-common-label"
};
var _hoisted_3 = {
  key: 0,
  class: "qux-common-label"
};
var _hoisted_4 = {
  key: 1,
  class: "qux-common-label"
};
function render(_ctx, _cache, $props, $setup, $data, $options) {
  var _component_router_link = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("router-link");

  return _ctx.hasLink ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_router_link, {
    key: 0,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-button', _ctx.cssClass]),
    to: _ctx.link,
    onClick: _ctx.onClick
  }, {
    default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
      return [_ctx.dataBindingLabel && !_ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", _hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.dataBindingLabel), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", _hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)];
    }),
    _: 3
  }, 8, ["class", "to", "onClick"])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    key: 1,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-button', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, [_ctx.dataBindingLabel && !_ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", _hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.dataBindingLabel), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", _hoisted_4, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2));
}
// CONCATENATED MODULE: ./src/qux/web/Button.vue?vue&type=template&id=560e0170

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/_Base.vue?vue&type=template&id=3ffd0e5a

var _Basevue_type_template_id_3ffd0e5a_hoisted_1 = {
  class: "qux-base"
};
function _Basevue_type_template_id_3ffd0e5a_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _Basevue_type_template_id_3ffd0e5a_hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])($options.label), 1);
}
// CONCATENATED MODULE: ./src/qux/web/_Base.vue?vue&type=template&id=3ffd0e5a

// CONCATENATED MODULE: ./src/qux/core/JSONPath.js
function JSONPath_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function JSONPath_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function JSONPath_createClass(Constructor, protoProps, staticProps) { if (protoProps) JSONPath_defineProperties(Constructor.prototype, protoProps); if (staticProps) JSONPath_defineProperties(Constructor, staticProps); return Constructor; }

//import Vue from 'vue'
var JSONPath = /*#__PURE__*/function () {
  function JSONPath() {
    JSONPath_classCallCheck(this, JSONPath);
  }

  JSONPath_createClass(JSONPath, [{
    key: "get",
    value: function get(data, path) {
      if (data != null && data != undefined) {
        if (data[path] !== null && data[path] !== undefined) {
          return data[path];
        }

        if (path.indexOf('.') >= 0 || path.indexOf('[') >= 0) {
          var elements = this.getJsonPath(path);
          var current = elements.shift();
          var value = data[current];

          while (current != null && current != undefined && value !== null && value != undefined && elements.length > 0) {
            current = elements.shift();
            value = value[current];
          }

          return value;
        }
      }
    }
  }, {
    key: "set",
    value: function set(data, path, value) {
      //console.debug('JSONPath.set()', path, '>' + value + '<')
      var elements = this.getJsonPath(path);
      var current = elements.shift();
      var node = data;
      var i = 0;

      while (current !== null && current !== undefined && i < 100) {
        i++;

        if (elements.length > 0) {
          if (!node[current]) {
            // FIXME: This looks like a bug! This should be always true?? But be careful because of
            // the repeater...
            if (elements[0].toLowerCase) {
              this._set(node, current, {});
            } else {
              this._set(node, current, []);
            }
          }

          node = node[current];
          current = elements.shift();
        } else {
          this._set(node, current, value);
        }
      }

      return data;
    }
  }, {
    key: "_set",
    value: function _set(node, key, value) {
      /**
       * Not sure how this works for new props. Maybe we have to use VUE here
       */
      node[key] = value; //Vue.set(node, key, value)
    }
  }, {
    key: "getJsonPath",
    value: function getJsonPath(path) {
      return path.split('.').flatMap(function (p) {
        if (p.indexOf('[') >= 0) {
          var parts = p.split('[');

          if (parts.length == 2) {
            var key = parts[0];
            var index = parts[1].substring(0, parts[1].length - 1) * 1;
            return [key, index];
          }

          return p.substring(1, p.length - 1) * 1;
        }

        return p;
      });
    }
  }, {
    key: "has",
    value: function has(data, path) {
      //console.debug('JSONPath.has()', path, data)
      if (data != null && data != undefined) {
        if (data[path] != null && data[path] != null) {
          return true;
        }

        if (path.indexOf('.') >= 0 || path.indexOf('[') >= 0) {
          var elements = this.getJsonPath(path);
          var current = elements.shift();
          var value = data[current];

          while (current != null && current != undefined && value !== null && value != undefined && elements.length > 0) {
            current = elements.shift();
            value = value[current];
          }

          return value !== undefined && value !== null;
        }

        return false;
      }

      return false;
    }
  }]);

  return JSONPath;
}();

/* harmony default export */ var core_JSONPath = (new JSONPath());
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/_Base.vue?vue&type=script&lang=js



/* harmony default export */ var _Basevue_type_script_lang_js = ({
  name: '_Base',
  emits: ['update:modelValue', 'qClick', 'click', 'qChange', 'change', 'qKeyPress', 'qFocus', 'qBlur', 'qDesignSystemCallback', 'qScrollTop'],
  props: {
    'model': {
      type: Object
    },
    'element': {
      type: Object
    },
    'config': {
      type: Object
    },
    'value': {},
    'lbl': {
      type: String
    },
    'url': {
      type: String
    },
    'optionList': {
      type: Array
    },
    'isStandAlone': {
      type: Boolean
    }
  },
  inject: ['viewModel'],
  data: function data() {
    return {
      hasLabelInOptions: true
    };
  },
  computed: {
    isDesignSystemRoot: function isDesignSystemRoot() {
      return this.element && this.element.isDesignSystemRoot;
    },
    hasSlot: function hasSlot() {
      return this.$slots.default !== undefined && this.$slots.default !== null;
    },
    hasLink: function hasLink() {
      var _this = this;

      if (this.url && this.url.length > 0) {
        return true;
      }

      if (this.element && this.element.lines && this.element.lines) {
        var line = this.element.lines.find(function (l) {
          return _this.isClick(l);
        });

        if (line) {
          var box = getBoxById(line.to, this.model);

          if (box.type === 'Screen' && !box.style.overlay) {
            return true;
          }
        }
      }

      return false;
    },
    hasHistoryRouter: function hasHistoryRouter() {
      return this.config.isHistoryRouter === true;
    },
    link: function link() {
      var _this2 = this;

      if (this.url) {
        return this.url;
      }

      if (this.element && this.element.lines && this.element.lines.length === 1) {
        var line = this.element.lines.find(function (l) {
          return _this2.isClick(l);
        });

        if (line) {
          var box = getBoxById(line.to, this.model);

          if (box.type === 'Screen') {
            var prefix = '';

            if (this.config && this.config.router && this.config.router.prefix) {
              prefix = this.config.router.prefix + '/';
            }

            if (this.hasHistoryRouter) {//return `/${prefix}${box.name}.html`
            }

            return "/".concat(prefix).concat(box.name, ".html");
          }
        }
      }

      return false;
    },
    hasAction: function hasAction() {
      return this.element && this.element.actions && Object.values(this.element.actions).length > 0 || this.element.lines && this.element.lines.length > 0 || this.element.props.callbacks && this.element.props.callbacks.click;
    },
    label: function label() {
      if (this.lbl) {
        return this.lbl;
      }

      if (this.dataBindingInputPath && this.dataBindingInputPath.indexOf('$') === 0) {
        var dsRoot = this.getDesignSystemRoot();
        var path = this.dataBindingInputPath.substring(1);

        if (dsRoot) {
          if (dsRoot[path]) {
            return dsRoot[path];
          }
        }
      }

      if (this.element && this.element.props && this.element.props.label) {
        return this.escapeLabel(this.element.props.label);
      }

      return '';
    },
    cssComponentClasses: function cssComponentClasses() {
      if (this.element && this.element.cssComponentClasses) {
        return this.element.cssComponentClasses.join(' ');
      }

      return '';
    },
    cssClass: function cssClass() {
      var result = 'qux-element ';

      if (this.element) {
        /**
         * FIXME: Move this to CSSFactory
         */
        if (this.element.style && this.element.style.verticalAlign) {
          result += "qux-valign-".concat(this.element.style.verticalAlign, " ");
        }

        if (this.hasAction) {
          result += "qux-action ";
        }

        if (this.config && this.config.debug && this.config.debug.resize === true) {
          if (this.element.props && this.element.props.resize) {
            var resize = this.element.props.resize;

            for (var direction in resize) {
              if (resize[direction]) {
                result += "qux-resize-".concat(direction, " ");
              }
            }
          }
        }

        if (this.element.sharedCssClasses) {
          result += this.element.sharedCssClasses.join(' ') + ' ';
        }

        result += this.element.cssClass;
      }

      return result;
    },
    dataBinding: function dataBinding() {
      if (this.element && this.element.props && this.element.props.databinding) {
        return this.element.props.databinding;
      }

      return null;
    },
    dataBindingInput: function dataBindingInput() {
      if (this.element && this.element.props && this.element.props.databinding) {
        var path = this.element.props.databinding.default;

        if (path) {
          var value = core_JSONPath.get(this.viewModel, path);
          core_Logger.log(5, '_Base.dataBindingInput() > ' + path, "\"".concat(value, "\""));
          return value;
        }
      }

      return null;
    },
    dataBindingOptions: function dataBindingOptions() {
      if (this.element && this.element.props && this.element.props.databinding) {
        var path = this.element.props.databinding.options;

        if (path) {
          var value = core_JSONPath.get(this.viewModel, path);
          core_Logger.log(5, '_Base.dataBindingOptions() > ' + path, "\"".concat(value, "\""));
          return value;
        }
      }

      return null;
    },
    dataBindingInputPath: function dataBindingInputPath() {
      if (this.element && this.element.props && this.element.props.databinding) {
        var path = this.element.props.databinding.default;
        return path;
      }

      return '';
    },
    dataBindingOutputPath: function dataBindingOutputPath() {
      if (this.element && this.element.props && this.element.props.databinding) {
        var path = this.element.props.databinding.output;
        return path;
      }

      return '';
    },
    dataBindingLabel: function dataBindingLabel() {
      /**
       * First, cgeck if we have set a lbl property
       */
      if (this.lbl) {
        return this.lbl;
      }
      /**
       * Next, check data binding
       */


      if (this.hasDataBinding) {
        /**
         * Check if we have a magic property path like $label
         */
        if (this.dataBindingInputPath && this.dataBindingInputPath.indexOf('$') === 0) {
          core_Logger.log(4, '_Base.dataBindingLabel() > props : ', "\"".concat(this.dataBindingInputPath, "\""));
          var dsRoot = this.getDesignSystemRoot();

          if (dsRoot) {
            var path = this.dataBindingInputPath.substring(1);

            if (dsRoot[path]) {
              return dsRoot[path];
            }
          }
        } else {
          /**
           * If not magic, check if there is a variable
           */
          var value = this.dataBindingInput;

          if (value !== undefined && value != null) {
            core_Logger.log(6, '_Base.dataBindingLabel() > ', "\"".concat(value, "\""));
            return value;
          }
        }
      }
      /**
       * Last, check element properties
       */


      if (this.element && this.element.props && this.element.props.label) {
        return this.escapeLabel(this.element.props.label);
      }

      return '';
    },
    hasError: function hasError() {
      return false;
    },
    options: function options() {
      if (this.optionList) {
        return this.optionList;
      }

      var dataBindingOptions = this.dataBindingOptions;

      if (dataBindingOptions) {
        return dataBindingOptions;
      }

      if (this.element && this.element.props && this.element.props.options) {
        var options = this.element.props.options;

        if (this.element.props.label && this.hasLabelInOptions) {
          options.unshift(this.element.props.label);
        }

        return options;
      }

      return [];
    }
  },
  watch: {},
  methods: {
    stopEvent: function stopEvent(e) {
      core_Logger.warn('_Base.stopEvent()');

      if (e) {
        e.stopPropagation();
      }
    },
    getDesignSystemRoot: function getDesignSystemRoot() {
      var parent = this.$parent;

      while (parent && parent.element && !parent.element.isDesignSystemRoot) {
        parent = parent.$parent;
      }

      if (parent.element && parent.element.isDesignSystemRoot) {
        return parent;
      }
    },
    escapeLabel: function escapeLabel(lbl) {
      lbl = lbl.replace(/&nbsp;/ig, ' ');
      return lbl;
    },
    isClick: function isClick(line) {
      return line.event = 'click';
    },
    hasDataBinding: function hasDataBinding() {
      return this.element && this.element.props && this.element.props.databinding;
    },

    /**
     * Default event handlers which just delegate up
     * the hierachy
     */
    onClick: function onClick(e) {
      this.$emit('qClick', this.element, e, this.getValue());
      this.$emit('click', e);
      this.checkDesignSystemCallback(e, 'click');
      this.fireParentDomEvent('click', e);
    },
    fireParentDomEvent: function fireParentDomEvent(type, e) {
      /**
        * The wrapper stops our events, so we fire DOM event on parent
        */
      if (this.element && this.element.isDesignSystemRoot) {
        this.$parent.$emit(type, e);
      }
    },
    onChange: function onChange(e) {
      this.$emit('qChange', this.element, e, this.getValue());
      this.checkDesignSystemCallback(e, 'change');
      this.fireParentDomEvent('change', e);
    },
    onKeyPress: function onKeyPress(e) {
      this.$emit('qKeyPress', this.element, e, this.getValue());
      this.checkDesignSystemCallback(e, 'change');
      this.fireParentDomEvent('keyPress', e);
    },
    onFocus: function onFocus(e) {
      this.$emit('qFocus', this.element, e);
      this.fireParentDomEvent('focus', e);
    },
    onBlur: function onBlur(e) {
      this.$emit('qBlur', this.element, e);
      this.fireParentDomEvent('blur', e);
    },
    onMouseOver: function onMouseOver(e) {
      this.$emit('qMouseOver', this.element, e);
    },
    onMouseOut: function onMouseOut(e) {
      this.$emit('qMouseOut', this.element, e);
    },
    checkDesignSystemCallback: function checkDesignSystemCallback(e, type) {
      core_Logger.log(4, '_Base.checkDesignSystemCallback() > : ' + type, this.element);

      if (this.element && this.element.props && this.element.props.callbacks) {
        var callback = this.element.props.callbacks[type];

        if (callback) {
          core_Logger.log(1, '_Base.checkDesignSystemCallback() > : ' + this.element.name, type, callback);
          this.$emit('qDesignSystemCallback', this.element, e, type, callback, this.getValue());
          this.emitDesignSystemCallback();
        }
      }
    },
    forwardDesignSystemCallback: function forwardDesignSystemCallback(element, e, type, callback, elementValue) {
      core_Logger.log(5, '_Base.forwardDesignSystemCallback() > : ' + this.element.name, element.name);
      this.$emit('qDesignSystemCallback', element, e, type, callback, elementValue);
      this.emitDesignSystemCallback(element, e, type, callback, elementValue);
    },
    emitDesignSystemCallback: function emitDesignSystemCallback(element, e, type, callback) {
      if (this.element.isDesignSystemRoot && this.$parent) {
        core_Logger.log(1, '_Base.emitDesignSystemCallback() > : ' + this.element.name, callback, this.viewModel);
        /**
         * We have to call on parent, because
         * we have this virtual wrapper around.
         */

        this.$parent.$emit(callback, this.viewModel, e);
      }
    },

    /**
     * Template method which can be implemnted by children to
     * give the current value to the onChange
     */
    getValue: function getValue() {
      return this.dataBindingInput;
    },

    /**
     * Method which sets the value accoridng to the dataBing path.
     */
    onValueChange: function onValueChange(value) {
      var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
      var e = arguments.length > 2 ? arguments[2] : undefined;
      core_Logger.log(3, '_Base.onValueChange() > change : ' + this.element.name, value);

      if (this.element && this.element.props && this.element.props.databinding) {
        var path = this.element.props.databinding[key];

        if (path && this.viewModel != undefined && this.viewModel !== true && this.viewModel !== false) {
          try {
            core_Logger.log(4, '_Base.onValueChange() > change : ' + path, value);
            core_JSONPath.set(this.viewModel, path, value);
          } catch (ex) {
            core_Logger.error('_Base.onValueChange() > Could not set value in path' + path, this.viewModel);
          } //Logger.log(-1, '_Base.onValueChange() > exit : ', JSON.stringify(this.value, null, 2))

        }
      }
      /**
       * We also trigger the change event
       */


      this.$emit('qChange', this.element, e, value);
      /**
       * For design system roots, we also fire event
       */

      if (this.element.isDesignSystemRoot && this.$parent) {
        this.$parent.$emit('update:modelValue', value);
        this.$parent.$emit('change', value);
      }
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/_Base.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js
var exportHelper = __webpack_require__("d959");
var exportHelper_default = /*#__PURE__*/__webpack_require__.n(exportHelper);

// CONCATENATED MODULE: ./src/qux/web/_Base.vue





const __exports__ = /*#__PURE__*/exportHelper_default()(_Basevue_type_script_lang_js, [['render',_Basevue_type_template_id_3ffd0e5a_render]])

/* harmony default export */ var _Base = (__exports__);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Button.vue?vue&type=script&lang=js

/* harmony default export */ var Buttonvue_type_script_lang_js = ({
  name: 'qButton',
  mixins: [_Base],
  data: function data() {
    return {};
  },
  mounted: function mounted() {}
});
// CONCATENATED MODULE: ./src/qux/web/Button.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Button.vue?vue&type=style&index=0&id=560e0170&lang=scss
var Buttonvue_type_style_index_0_id_560e0170_lang_scss = __webpack_require__("760f");

// CONCATENATED MODULE: ./src/qux/web/Button.vue







const Button_exports_ = /*#__PURE__*/exportHelper_default()(Buttonvue_type_script_lang_js, [['render',render]])

/* harmony default export */ var Button = (Button_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Label.vue?vue&type=template&id=0d034c6a

var Labelvue_type_template_id_0d034c6a_hoisted_1 = ["innerHTML"];
var Labelvue_type_template_id_0d034c6a_hoisted_2 = {
  key: 1,
  class: "qux-common-label"
};
var Labelvue_type_template_id_0d034c6a_hoisted_3 = {
  key: 2,
  class: "qux-common-label"
};
var Labelvue_type_template_id_0d034c6a_hoisted_4 = ["innerHTML"];
var _hoisted_5 = {
  key: 1,
  class: "qux-common-label"
};
var _hoisted_6 = {
  key: 2,
  class: "qux-common-label"
};
function Labelvue_type_template_id_0d034c6a_render(_ctx, _cache, $props, $setup, $data, $options) {
  var _component_router_link = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("router-link");

  return _ctx.hasLink ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_router_link, {
    key: 0,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-label', _ctx.cssClass]),
    onClick: _ctx.onClick,
    to: _ctx.link
  }, {
    default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
      return [_ctx.dataBindingLabel && _ctx.dataBindingLabel.type === 'richtext' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
        key: 0,
        class: "qux-richtext",
        innerHTML: _ctx.dataBindingLabel.value
      }, null, 8, Labelvue_type_template_id_0d034c6a_hoisted_1)) : _ctx.dataBindingLabel && !_ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", Labelvue_type_template_id_0d034c6a_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.dataBindingLabel), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", Labelvue_type_template_id_0d034c6a_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)];
    }),
    _: 3
  }, 8, ["class", "onClick", "to"])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("label", {
    key: 1,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-label', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, [$options.isRichText ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
    key: 0,
    class: "qux-richtext",
    innerHTML: _ctx.dataBindingLabel.value
  }, null, 8, Labelvue_type_template_id_0d034c6a_hoisted_4)) : _ctx.dataBindingLabel && !_ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", _hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.dataBindingLabel), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", _hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2));
}
// CONCATENATED MODULE: ./src/qux/web/Label.vue?vue&type=template&id=0d034c6a

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Label.vue?vue&type=script&lang=js

/* harmony default export */ var Labelvue_type_script_lang_js = ({
  name: 'qLabel',
  mixins: [_Base],
  data: function data() {
    return {};
  },
  computed: {
    isRichText: function isRichText() {
      var label = this.dataBindingLabel;

      if (label && label.type === 'richtext') {
        return true;
      }

      return false;
    }
  },
  mounted: function mounted() {}
});
// CONCATENATED MODULE: ./src/qux/web/Label.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Label.vue?vue&type=style&index=0&id=0d034c6a&lang=scss
var Labelvue_type_style_index_0_id_0d034c6a_lang_scss = __webpack_require__("39c2");

// CONCATENATED MODULE: ./src/qux/web/Label.vue







const Label_exports_ = /*#__PURE__*/exportHelper_default()(Labelvue_type_script_lang_js, [['render',Labelvue_type_template_id_0d034c6a_render]])

/* harmony default export */ var Label = (Label_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Icon.vue?vue&type=template&id=2359caee

function Iconvue_type_template_id_2359caee_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-icon', _ctx.cssClass, $options.icon]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, null, 2);
}
// CONCATENATED MODULE: ./src/qux/web/Icon.vue?vue&type=template&id=2359caee

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Icon.vue?vue&type=script&lang=js

/* harmony default export */ var Iconvue_type_script_lang_js = ({
  name: 'qIcon',
  mixins: [_Base],
  data: function data() {
    return {};
  },
  computed: {
    icon: function icon() {
      return this.element.style.icon;
    }
  },
  mounted: function mounted() {//console.debug('Label.mounted()', this.label)
  }
});
// CONCATENATED MODULE: ./src/qux/web/Icon.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Icon.vue?vue&type=style&index=0&id=2359caee&lang=scss
var Iconvue_type_style_index_0_id_2359caee_lang_scss = __webpack_require__("04c7");

// CONCATENATED MODULE: ./src/qux/web/Icon.vue







const Icon_exports_ = /*#__PURE__*/exportHelper_default()(Iconvue_type_script_lang_js, [['render',Iconvue_type_template_id_2359caee_render]])

/* harmony default export */ var Icon = (Icon_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/TextBox.vue?vue&type=template&id=3c21fda5

var TextBoxvue_type_template_id_3c21fda5_hoisted_1 = ["placeholder", "type", "value"];
function TextBoxvue_type_template_id_3c21fda5_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("input", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-textbox qux-text-input', _ctx.cssClass]),
    placeholder: $options.placeholder,
    type: $options.type,
    onFocus: _cache[0] || (_cache[0] = function () {
      return _ctx.onFocus && _ctx.onFocus.apply(_ctx, arguments);
    }),
    onBlur: _cache[1] || (_cache[1] = function () {
      return _ctx.onBlur && _ctx.onBlur.apply(_ctx, arguments);
    }),
    onClick: _cache[2] || (_cache[2] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    }),
    onChange: _cache[3] || (_cache[3] = function () {
      return _ctx.onChange && _ctx.onChange.apply(_ctx, arguments);
    }),
    onKeyup: _cache[4] || (_cache[4] = function () {
      return $options.onKeyPress && $options.onKeyPress.apply($options, arguments);
    }),
    value: $options.selectedValue
  }, null, 42, TextBoxvue_type_template_id_3c21fda5_hoisted_1);
}
// CONCATENATED MODULE: ./src/qux/web/TextBox.vue?vue&type=template&id=3c21fda5

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/TextBox.vue?vue&type=script&lang=js


/* harmony default export */ var TextBoxvue_type_script_lang_js = ({
  name: 'qTestBox',
  mixins: [_Base],
  data: function data() {
    return {};
  },
  computed: {
    type: function type() {
      if (this.element && this.element.type === 'Password') {
        return 'password';
      }

      return 'text';
    },
    placeholder: function placeholder() {
      if (this.element && this.element.props && this.element.props.placeholder) {
        return this.element.props.label;
      }

      return '';
    },
    selectedValue: function selectedValue() {
      if (this.element && this.element.isDesignSystemRoot) {
        return this.value;
      }

      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          if (!input.toLowerCase) {
            if (isNaN(input)) {
              try {
                input = JSON.stringify(input);
              } catch (e) {
                core_Logger.warn('TextBox.selectedValue() > Can stringify ', input);
              }
            }
          }
        }

        return input;
      }

      return '';
    }
  },
  methods: {
    onKeyPress: function onKeyPress(e) {
      var value = e.target.value;
      this.onValueChange(value, 'default');
      this.$emit('qKeyPress', this.element, e, value);
      core_Logger.log(6, 'qTextBox.onKeyPress() > exit', value);
    },
    setFocus: function setFocus() {
      core_Logger.log(0, 'qTextBox.setFocus() > enter');

      if (this.$el) {
        this.$el.focus();
      }
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qTextBox.mounted() enter');

    if (this.element && this.element.props && this.element.props.focus) {
      setTimeout(this.setFocus, 100);
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/TextBox.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/TextBox.vue?vue&type=style&index=0&id=3c21fda5&lang=scss
var TextBoxvue_type_style_index_0_id_3c21fda5_lang_scss = __webpack_require__("435a");

// CONCATENATED MODULE: ./src/qux/web/TextBox.vue







const TextBox_exports_ = /*#__PURE__*/exportHelper_default()(TextBoxvue_type_script_lang_js, [['render',TextBoxvue_type_template_id_3c21fda5_render]])

/* harmony default export */ var TextBox = (TextBox_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Container.vue?vue&type=template&id=1feccc0d

function Containervue_type_template_id_1feccc0d_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-container', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, [_ctx.element ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], {
    key: 0
  }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.element.children, function (child) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDynamicComponent"])(child.qtype), {
      key: child.id,
      element: child,
      model: _ctx.model,
      config: _ctx.config,
      onQDesignSystemCallback: _ctx.forwardDesignSystemCallback,
      onQCallback: $options.forwardCallback,
      onQClick: $options.forwardClick,
      onQChange: $options.forwardChange,
      onQKeyPress: $options.forwardKeyPress,
      onQFocus: $options.forwardFocus,
      onQBlur: $options.forwardBlur,
      onQMouseOver: $options.forwardMouseOver,
      onQMouseOut: $options.forwardMouseOut
    }, null, 8, ["element", "model", "config", "onQDesignSystemCallback", "onQCallback", "onQClick", "onQChange", "onQKeyPress", "onQFocus", "onQBlur", "onQMouseOver", "onQMouseOut"]);
  }), 128)), _ctx.element.fixedChildren ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], {
    key: 0
  }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.element.fixedChildren, function (child) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDynamicComponent"])(child.qtype), {
      key: child.id,
      element: child,
      model: _ctx.model,
      config: _ctx.config,
      onQDesignSystemCallback: _ctx.forwardDesignSystemCallback,
      onQCallback: $options.forwardCallback,
      onQClick: $options.forwardClick,
      onQChange: $options.forwardChange,
      onQKeyPress: $options.forwardKeyPress,
      onQFocus: $options.forwardFocus,
      onQBlur: $options.forwardBlur,
      onQMouseOver: $options.forwardMouseOver,
      onQMouseOut: $options.forwardMouseOut
    }, null, 8, ["element", "model", "config", "onQDesignSystemCallback", "onQCallback", "onQClick", "onQChange", "onQKeyPress", "onQFocus", "onQBlur", "onQMouseOver", "onQMouseOut"]);
  }), 128)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 64)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default", {
    key: 1
  })], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Container.vue?vue&type=template&id=1feccc0d

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Container.vue?vue&type=script&lang=js


/* harmony default export */ var Containervue_type_script_lang_js = ({
  name: 'qContainer',
  mixins: [_Base],
  data: function data() {
    return {
      debug: false
    };
  },
  computed: {
    justifyContent: function justifyContent() {
      if (isWrappedContainer(this.element) && this.config.css.justifyContentInWrapper) {
        return true;
      }

      return false;
    },
    wrapperPlaceHolders: function wrapperPlaceHolders() {
      return [1, 2, 3, 4, 5, 6, 7, 8];
    }
  },
  methods: {
    forwardClick: function forwardClick(element, e, value) {
      this.$emit('qClick', element, e, value);
    },
    forwardChange: function forwardChange(element, e, value) {
      this.$emit('qChange', element, e, value);
    },
    forwardFocus: function forwardFocus(element, e, value) {
      this.$emit('qFocus', element, e, value);
    },
    forwardBlur: function forwardBlur(element, e, value) {
      this.$emit('qBlur', element, e, value);
    },
    forwardMouseOver: function forwardMouseOver(element, e, value) {
      this.$emit('qMouseOver', element, e, value);
    },
    forwardMouseOut: function forwardMouseOut(element, e, value) {
      this.$emit('qMouseOut', element, e, value);
    },
    forwardKeyPress: function forwardKeyPress(element, e, value) {
      this.$emit('qKeyPress', element, e, value);
    },
    forwardCallback: function forwardCallback(element, e, value) {
      this.$emit('qCallback', element, e, value);
    }
  },
  mounted: function mounted() {}
});
// CONCATENATED MODULE: ./src/qux/web/Container.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Container.vue?vue&type=style&index=0&id=1feccc0d&lang=scss
var Containervue_type_style_index_0_id_1feccc0d_lang_scss = __webpack_require__("0393");

// CONCATENATED MODULE: ./src/qux/web/Container.vue







const Container_exports_ = /*#__PURE__*/exportHelper_default()(Containervue_type_script_lang_js, [['render',Containervue_type_template_id_1feccc0d_render]])

/* harmony default export */ var Container = (Container_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Repeater.vue?vue&type=template&id=4a475f68

function Repeatervue_type_template_id_4a475f68_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-repeater', _ctx.cssClass])
  }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.rows, function (row, i) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
      key: i,
      class: "qux-repeater-child"
    }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.element.children, function (child) {
      return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDynamicComponent"])(child.qtype), {
        key: child.id,
        element: $options.getDeepCopy(child, row, i),
        model: _ctx.model,
        config: _ctx.config,
        onQClick: function onQClick($event) {
          return $options.forwardClick(i, $event);
        },
        onQChange: $options.forwardChange,
        onQKeyPress: $options.forwardKeyPress,
        onQFocus: $options.forwardFocus,
        onQBlur: $options.forwardBlur,
        onQMouseOver: $options.forwardMouseOver,
        onQMouseOut: $options.forwardMouseOut
      }, null, 8, ["element", "model", "config", "onQClick", "onQChange", "onQKeyPress", "onQFocus", "onQBlur", "onQMouseOver", "onQMouseOut"]);
    }), 128))]);
  }), 128)), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.placeholders, function (placeholder, i) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
      key: 'p' + i,
      class: "qux-repeater-child qux-repeater-placeholder",
      style: {
        "height": "0px",
        "margin": "0px"
      }
    });
  }), 128))], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Repeater.vue?vue&type=template&id=4a475f68

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Repeater.vue?vue&type=script&lang=js
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }





/* harmony default export */ var Repeatervue_type_script_lang_js = ({
  name: 'qRepeater',
  mixins: [_Base],
  data: function data() {
    return {
      debug: false
    };
  },
  computed: {
    placeholders: function placeholders() {
      /**
       * Make here some better math and calculate hwo many elements i really need?
       */
      if (isLayoutAuto(this.element)) {
        return [];
      }

      return [1, 2, 3, 4, 5, 6, 7];
    },
    rows: function rows() {
      if (this.element && this.element.props && this.element.props.databinding) {
        var path = this.element.props.databinding.default;
        var value = core_JSONPath.get(this.value, path);
        core_Logger.log(5, 'Repeater.rows() > exit path: > ' + path, value);

        if (Array.isArray(value)) {
          return value;
        } else {
          core_Logger.warn('Repeater.rows() > Value is no array: > ' + path, this.value);
        }
      } else {
        return this.getRowsFromTable(this.element);
      }

      return [];
    }
  },
  methods: {
    getDeepCopy: function getDeepCopy(element, row, i) {
      core_Logger.log(4, 'Repeater.getDeepCopy() > exit : > ' + i, row);
      var copy = this.clone(element);
      var path = this.dataBindingInputPath;
      this.updateDataBinding(copy, i, path, true);
      return copy;
    },
    clone: function clone(obj) {
      if (obj === null || _typeof(obj) !== 'object' || 'isActiveClone' in obj) return obj;
      var temp = obj.constructor();

      for (var key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
          if (key !== 'parent') {
            /**
             * FIXME: Make this somehow better
             */
            obj['isActiveClone'] = null;
            temp[key] = this.clone(obj[key]);
            delete obj['isActiveClone'];
          } else {
            temp[key] = obj[key];
          }
        }
      }

      return temp;
    },
    updateDataBinding: function updateDataBinding(copy, i, parentPath) {
      var _this = this;

      var isRoot = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
      core_Logger.log(5, 'Repeater.updateDataBinding() > enter : > ' + i, copy.name + ' @ ' + parentPath);

      if (copy.children && copy.children.length > 0) {
        copy.children.forEach(function (child) {
          /**
           * Update the path for each child
           */
          _this.updateDataBindingKeys(child, i, parentPath);
          /**
           * Go doen recursive
           */


          _this.updateDataBinding(child, i, parentPath);
        });
      } else if (isRoot) {
        /**
         * We might have a special case, where the repeater has only one child.
         */
        core_Logger.log(5, 'Repeater.updateDataBinding() > No wrapper children : > ' + i, copy.name + ' @ ' + parentPath);
        this.updateDataBindingKeys(copy, i, parentPath);
      }
    },
    updateDataBindingKeys: function updateDataBindingKeys(child, i, parentPath) {
      if (child && child.props && child.props.databinding) {
        var databinding = child.props.databinding;

        for (var key in databinding) {
          var path = databinding[key]; // if we have parent path remove

          if (path.indexOf(parentPath) === 0) {
            path = path.substring(parentPath.length);
          } // if path starts with array we remove


          if (path.indexOf('[0]') === 0) {
            path = path.substring(3);
          }

          if (path.indexOf('.') === 0) {
            path = path.substring(1);
          }

          databinding[key] = "".concat(parentPath, "[").concat(i, "].").concat(path);
          core_Logger.log(2, 'Repeater.updateDataBindingKeys() > exit : > ' + databinding[key]);
        }
      }
    },
    forwardClick: function forwardClick(i, element, e) {
      var row = this.dataBindingInputPath ? core_JSONPath.get(this.value, "".concat(this.dataBindingInputPath, "[").concat(i, "]")) : null;

      if (element.lines && element.lines.length > 0) {
        if (this.dataBindingOutputPath && this.dataBindingInputPath) {
          if (row) {
            core_Logger.log(3, 'qRepeater.forwardClick() > Update databidning' + this.dataBindingOutputPath, row);
            /**
             * FIXME: Should we do a copy here???
             */

            core_JSONPath.set(this.value, this.dataBindingOutputPath, row);
          }
        }
      }
      /**
       * We could still check if there is a click method defined on the repeater and dispatch the click on this element
       * if the clicked child does not have a link or call back
       */


      core_Logger.log(5, 'qRepeater.forwardClick() ', JSON.stringify(row));
      this.$emit('qClick', element, e, row);
    },
    forwardChange: function forwardChange(element, e, value) {
      this.$emit('qChange', element, e, value);
    },
    forwardFocus: function forwardFocus(element, e, value) {
      this.$emit('qFocus', element, e, value);
    },
    forwardBlur: function forwardBlur(element, e, value) {
      this.$emit('qBlur', element, e, value);
    },
    forwardMouseOver: function forwardMouseOver(element, e, value) {
      this.$emit('qMouseOver', element, e, value);
    },
    forwardMouseOut: function forwardMouseOut(element, e, value) {
      this.$emit('qMouseOut', element, e, value);
    },
    forwardKeyPress: function forwardKeyPress(element, e, value) {
      this.$emit('qKeyPress', element, e, value);
    },
    forwardCallback: function forwardCallback(element, e, value) {
      this.$emit('qCallback', element, e, value);
    },
    getRowsFromTable: function getRowsFromTable(widget) {
      var result = [];

      if (widget.props.data && widget.props.data.length > 1) {
        var data = widget.props.data;
        this.dataBindingValues = [];
        var header = widget.props.data[0];

        for (var r = 1; r < data.length; r++) {
          var row = {};

          for (var c = 0; c < header.length; c++) {
            var col = header[c];
            row[col] = data[r][c];
          }

          result.push(row);
        }
      }

      return result;
    }
  },
  mounted: function mounted() {
    core_Logger.log(3, 'Repeater.mounted() > enter', this.element);
  }
});
// CONCATENATED MODULE: ./src/qux/web/Repeater.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Repeater.vue?vue&type=style&index=0&id=4a475f68&lang=scss
var Repeatervue_type_style_index_0_id_4a475f68_lang_scss = __webpack_require__("764c");

// CONCATENATED MODULE: ./src/qux/web/Repeater.vue







const Repeater_exports_ = /*#__PURE__*/exportHelper_default()(Repeatervue_type_script_lang_js, [['render',Repeatervue_type_template_id_4a475f68_render]])

/* harmony default export */ var Repeater = (Repeater_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Image.vue?vue&type=template&id=7b37ca7e

function Imagevue_type_template_id_7b37ca7e_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-image', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, null, 2);
}
// CONCATENATED MODULE: ./src/qux/web/Image.vue?vue&type=template&id=7b37ca7e

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Image.vue?vue&type=script&lang=js


/* harmony default export */ var Imagevue_type_script_lang_js = ({
  name: 'qImage',
  mixins: [_Base],
  data: function data() {
    return {};
  },

  /**
   * FIXME: add here some stuff for image uploads
   */
  mounted: function mounted() {
    core_Logger.log(0, 'qImage.mounted()');
  }
});
// CONCATENATED MODULE: ./src/qux/web/Image.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Image.vue?vue&type=style&index=0&id=7b37ca7e&lang=scss
var Imagevue_type_style_index_0_id_7b37ca7e_lang_scss = __webpack_require__("ac19");

// CONCATENATED MODULE: ./src/qux/web/Image.vue







const Image_exports_ = /*#__PURE__*/exportHelper_default()(Imagevue_type_script_lang_js, [['render',Imagevue_type_template_id_7b37ca7e_render]])

/* harmony default export */ var Image = (Image_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/CheckBox.vue?vue&type=template&id=d3268f34


var CheckBoxvue_type_template_id_d3268f34_hoisted_1 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-checkbox-cntr"
}, [/*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
  class: "qux-checkbox-hook"
})], -1);

var CheckBoxvue_type_template_id_d3268f34_hoisted_2 = {
  key: 0,
  class: "qux-checkbox-label"
};
function CheckBoxvue_type_template_id_d3268f34_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-checkbox', _ctx.cssClass, {
      'qux-checkbox-checked': $options.isChecked
    }]),
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.toggle && $options.toggle.apply($options, arguments);
    })
  }, [CheckBoxvue_type_template_id_d3268f34_hoisted_1, _ctx.label ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", CheckBoxvue_type_template_id_d3268f34_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.label), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/CheckBox.vue?vue&type=template&id=d3268f34

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/CheckBox.vue?vue&type=script&lang=js


/* harmony default export */ var CheckBoxvue_type_script_lang_js = ({
  name: 'qCheckBox',
  mixins: [_Base],
  data: function data() {
    return {
      checked: false
    };
  },
  computed: {
    isChecked: function isChecked() {
      if (this.isDesignSystemRoot) {
        return this.value;
      }

      if (this.element) {
        var input = this.dataBindingInput;
        return input === true;
      }

      return this.checked;
    }
  },
  methods: {
    toggle: function toggle() {
      if (this.element) {
        var value = !this.isChecked;
        this.onValueChange(value, 'default');
        core_Logger.log(-1, 'qCheckBox.toggle() >' + this.dataBindingInputPath, value);
      } else {
        this.checked = !this.checked;
        this.$emit('change', this.checked);
        this.$emit('update:modelValue', this.checked);
        core_Logger.log(-1, 'qCheckBox.toggle() >' + this.checked);
      }
    }
  },
  watch: {
    value: function value(v) {
      core_Logger.log(5, 'qCheckBox.watch(value) > enter', v);

      if (v === false || v === true) {
        this.checked = v;
      }
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qCheckBox.mounted() enter');

    if (this.value === true || this.value === true) {
      this.checked = this.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/CheckBox.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/CheckBox.vue?vue&type=style&index=0&id=d3268f34&lang=scss
var CheckBoxvue_type_style_index_0_id_d3268f34_lang_scss = __webpack_require__("2919");

// CONCATENATED MODULE: ./src/qux/web/CheckBox.vue







const CheckBox_exports_ = /*#__PURE__*/exportHelper_default()(CheckBoxvue_type_script_lang_js, [['render',CheckBoxvue_type_template_id_d3268f34_render]])

/* harmony default export */ var CheckBox = (CheckBox_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/CheckBoxGroup.vue?vue&type=template&id=40254c42

function CheckBoxGroupvue_type_template_id_40254c42_render(_ctx, _cache, $props, $setup, $data, $options) {
  var _component_CheckBox = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("CheckBox");

  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-checkgroup', _ctx.cssClass])
  }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.checkBoxOptions, function (option) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_CheckBox, {
      key: option.value,
      lbl: option.label,
      value: $options.isChecked(option.value),
      onChange: function onChange($event) {
        return $options.select(option.value);
      }
    }, null, 8, ["lbl", "value", "onChange"]);
  }), 128))], 2);
}
// CONCATENATED MODULE: ./src/qux/web/CheckBoxGroup.vue?vue&type=template&id=40254c42

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/CheckBoxGroup.vue?vue&type=script&lang=js


 //import Vue from 'vue'

/* harmony default export */ var CheckBoxGroupvue_type_script_lang_js = ({
  name: 'qCheckBoxGroup',
  mixins: [_Base],
  data: function data() {
    return {
      selected: []
    };
  },
  components: {
    'CheckBox': CheckBox
  },
  computed: {
    checkBoxOptions: function checkBoxOptions() {
      if (this.element) {
        return this.options.map(function (o) {
          if (o.toLowerCase) {
            return {
              label: o,
              value: o
            };
          }

          return o;
        });
      }

      return [];
    }
  },
  methods: {
    isChecked: function isChecked(option) {
      core_Logger.log(5, 'qCheckBoxGroup.isChecked() >' + this.dataBindingInputPath, option);
      var input = this.dataBindingInput;

      if (input && Array.isArray(input)) {
        return input.indexOf(option) > -1;
      }

      return false;
    },
    select: function select(option) {
      var input = this.dataBindingInput;

      if (input) {
        if (Array.isArray(input)) {
          var pos = input.indexOf(option);

          if (pos < 0) {
            input.push(option);
          } else {
            input = input.filter(function (item) {
              return item !== option;
            }); //Vue.delete(input, pos)
          }
        }
      } else {
        input = [option];
      }

      this.onValueChange(input, 'default');
      core_Logger.log(5, 'qCheckBoxGroup.select() >' + this.dataBindingInputPath, input);
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qCheckBoxGroup.mounted() enter');
  }
});
// CONCATENATED MODULE: ./src/qux/web/CheckBoxGroup.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/CheckBoxGroup.vue?vue&type=style&index=0&id=40254c42&lang=scss
var CheckBoxGroupvue_type_style_index_0_id_40254c42_lang_scss = __webpack_require__("54ca");

// CONCATENATED MODULE: ./src/qux/web/CheckBoxGroup.vue







const CheckBoxGroup_exports_ = /*#__PURE__*/exportHelper_default()(CheckBoxGroupvue_type_script_lang_js, [['render',CheckBoxGroupvue_type_template_id_40254c42_render]])

/* harmony default export */ var CheckBoxGroup = (CheckBoxGroup_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/RadioBox.vue?vue&type=template&id=c602cd60


var RadioBoxvue_type_template_id_c602cd60_hoisted_1 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-radiobox-cntr"
}, [/*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
  class: "qux-radiobox-hook"
})], -1);

var RadioBoxvue_type_template_id_c602cd60_hoisted_2 = {
  key: 0,
  class: "qux-radiobox-label"
};
function RadioBoxvue_type_template_id_c602cd60_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-radiobox', _ctx.cssClass, {
      'qux-radiobox-checked': $options.isChecked
    }]),
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.toggle && $options.toggle.apply($options, arguments);
    })
  }, [RadioBoxvue_type_template_id_c602cd60_hoisted_1, _ctx.label ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", RadioBoxvue_type_template_id_c602cd60_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.label), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/RadioBox.vue?vue&type=template&id=c602cd60

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/RadioBox.vue?vue&type=script&lang=js


/* harmony default export */ var RadioBoxvue_type_script_lang_js = ({
  name: 'qRadio',
  mixins: [_Base],
  data: function data() {
    return {
      checked: false
    };
  },
  computed: {
    isChecked: function isChecked() {
      if (this.isDesignSystemRoot) {
        // FIXME: make like real checkbox
        return this.value === this.element.name;
      }

      if (this.element) {
        var input = this.dataBindingInput;
        return input === this.element.name;
      }

      core_Logger.log(5, 'qRadioBox.isChecked() >' + this.lbl, this.checked);
      return this.checked;
    }
  },
  methods: {
    toggle: function toggle() {
      if (this.element) {
        var value = !this.isChecked ? this.element.name : null;
        this.onValueChange(value, 'default');
        core_Logger.log(5, 'qRadioBox.toggle() >' + this.dataBindingInputPath, value);
      } else {
        this.checked = !this.checked;
        this.$emit('change', this.checked);
        this.$emit('update:modelValue', this.checked);
        core_Logger.log(5, 'qRadioBox.toggle() >' + this.checked);
      }
    }
  },
  watch: {
    value: function value(v) {
      core_Logger.log(5, 'qRadioBox.watch(value) > enter ' + this.lbl, v);

      if (v === false || v === true) {
        this.checked = v;
      }
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qRadioBox.mounted() enter');

    if (this.value === true || this.value === true) {
      this.checked = this.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/RadioBox.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/RadioBox.vue?vue&type=style&index=0&id=c602cd60&lang=scss
var RadioBoxvue_type_style_index_0_id_c602cd60_lang_scss = __webpack_require__("fa41");

// CONCATENATED MODULE: ./src/qux/web/RadioBox.vue







const RadioBox_exports_ = /*#__PURE__*/exportHelper_default()(RadioBoxvue_type_script_lang_js, [['render',RadioBoxvue_type_template_id_c602cd60_render]])

/* harmony default export */ var RadioBox = (RadioBox_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/RadioGroup.vue?vue&type=template&id=c691a47a

function RadioGroupvue_type_template_id_c691a47a_render(_ctx, _cache, $props, $setup, $data, $options) {
  var _component_RadioBox = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("RadioBox");

  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-radiogroup', _ctx.cssClass])
  }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.options, function (option) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_RadioBox, {
      key: option,
      lbl: option,
      value: $options.isChecked(option),
      onChange: function onChange($event) {
        return $options.select(option);
      }
    }, null, 8, ["lbl", "value", "onChange"]);
  }), 128))], 2);
}
// CONCATENATED MODULE: ./src/qux/web/RadioGroup.vue?vue&type=template&id=c691a47a

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/RadioGroup.vue?vue&type=script&lang=js



/* harmony default export */ var RadioGroupvue_type_script_lang_js = ({
  name: 'qRadioGroup',
  mixins: [_Base],
  data: function data() {
    return {
      selected: null
    };
  },
  components: {
    'RadioBox': RadioBox
  },
  methods: {
    isChecked: function isChecked(option) {
      var input = this.dataBindingInput;
      core_Logger.log(5, 'qRadioGroup.isChecked() >' + option, input);

      if (input) {
        return input === option;
      }

      return false;
    },
    select: function select(option, e) {
      this.onValueChange(option, 'default');
      this.onClick(e);
      core_Logger.log(5, 'qRadioGroup.select() >' + this.dataBindingInputPath, option);
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qRadioGroup.mounted() enter');
  }
});
// CONCATENATED MODULE: ./src/qux/web/RadioGroup.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/RadioGroup.vue?vue&type=style&index=0&id=c691a47a&lang=scss
var RadioGroupvue_type_style_index_0_id_c691a47a_lang_scss = __webpack_require__("b16e");

// CONCATENATED MODULE: ./src/qux/web/RadioGroup.vue







const RadioGroup_exports_ = /*#__PURE__*/exportHelper_default()(RadioGroupvue_type_script_lang_js, [['render',RadioGroupvue_type_template_id_c691a47a_render]])

/* harmony default export */ var RadioGroup = (RadioGroup_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Toggle.vue?vue&type=template&id=133dc670

var Togglevue_type_template_id_133dc670_hoisted_1 = {
  class: "qux-common-label"
};
function Togglevue_type_template_id_133dc670_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-toggle', _ctx.cssClass, {
      'qux-active': $options.isActive
    }]),
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.toggle && $options.toggle.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Togglevue_type_template_id_133dc670_hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.label), 1)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Toggle.vue?vue&type=template&id=133dc670

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Toggle.vue?vue&type=script&lang=js


/* harmony default export */ var Togglevue_type_script_lang_js = ({
  name: 'qToggle',
  mixins: [_Base],
  data: function data() {
    return {
      active: false
    };
  },
  computed: {
    isActive: function isActive() {
      if (this.element) {
        var input = this.dataBindingInput;
        return input === true;
      }

      return this.active;
    }
  },
  methods: {
    toggle: function toggle() {
      if (this.element) {
        var value = !this.isActive;
        this.onValueChange(value, 'default');
        core_Logger.log(5, 'qToggle.toggle() >' + this.dataBindingInputPath, value);
      } else {
        this.active = !this.active;
        this.$emit('change', this.active);
        this.$emit('update:modelValue', this.active);
        core_Logger.log(5, 'qToggle.toggle() >' + this.active);
      }
    }
  },
  watch: {
    value: function value(v) {
      core_Logger.log(5, 'qToggle.watch(value) > enter', v);

      if (v === false || v === true) {
        this.active = v;
      }

      this.value = v;
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qToggle.mounted() enter');

    if (this.value === true || this.value === true) {
      this.active = this.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Toggle.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Toggle.vue?vue&type=style&index=0&id=133dc670&lang=scss
var Togglevue_type_style_index_0_id_133dc670_lang_scss = __webpack_require__("ec79");

// CONCATENATED MODULE: ./src/qux/web/Toggle.vue







const Toggle_exports_ = /*#__PURE__*/exportHelper_default()(Togglevue_type_script_lang_js, [['render',Togglevue_type_template_id_133dc670_render]])

/* harmony default export */ var Toggle = (Toggle_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Switch.vue?vue&type=template&id=4ef03930


var Switchvue_type_template_id_4ef03930_hoisted_1 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-switch-on"
}, null, -1);

var Switchvue_type_template_id_4ef03930_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-switch-off"
}, null, -1);

var Switchvue_type_template_id_4ef03930_hoisted_3 = [Switchvue_type_template_id_4ef03930_hoisted_1, Switchvue_type_template_id_4ef03930_hoisted_2];

var Switchvue_type_template_id_4ef03930_hoisted_4 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-switch-handle"
}, null, -1);

function Switchvue_type_template_id_4ef03930_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-switch', _ctx.cssClass, {
      'qux-active': $options.isActive
    }]),
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.toggle && $options.toggle.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-switch-cntr', {
      'qux-switch-cntr-thin': $options.isThin
    }])
  }, Switchvue_type_template_id_4ef03930_hoisted_3, 2), Switchvue_type_template_id_4ef03930_hoisted_4], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Switch.vue?vue&type=template&id=4ef03930

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Switch.vue?vue&type=script&lang=js


/* harmony default export */ var Switchvue_type_script_lang_js = ({
  name: 'qSwitch',
  mixins: [_Base],
  data: function data() {
    return {
      active: false
    };
  },
  computed: {
    isThin: function isThin() {
      if (this.element && this.element.style.cssClass === 'MatcWidgetTypeSwitchThin') {
        return true;
      }

      return false;
    },
    isActive: function isActive() {
      if (this.element) {
        var input = this.dataBindingInput;
        core_Logger.log(1, 'qSwitch.isActive() >' + this.dataBindingInputPath, input);
        return input === true;
      }

      return this.active;
    }
  },
  methods: {
    toggle: function toggle(e) {
      if (this.element) {
        var value = !this.isActive;
        this.onValueChange(value, 'default');
        this.onClick(e);
        core_Logger.log(5, 'qSwitch.toggle() >' + this.dataBindingInputPath, value);
      } else {
        this.active = !this.active;
        this.$emit('change', this.active);
        this.$emit('update:modelValue', this.active);
        core_Logger.log(5, 'qSwitch.toggle() >' + this.active);
      }
    }
  },
  watch: {
    value: function value(v) {
      core_Logger.log(5, 'qSwitch.watch(value) > enter', v);

      if (v === false || v === true) {
        this.active = v;
      }

      this.value = v;
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qSwitch.mounted() enter');

    if (this.value === true || this.value === true) {
      this.active = this.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Switch.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Switch.vue?vue&type=style&index=0&id=4ef03930&lang=scss
var Switchvue_type_style_index_0_id_4ef03930_lang_scss = __webpack_require__("04be");

// CONCATENATED MODULE: ./src/qux/web/Switch.vue







const Switch_exports_ = /*#__PURE__*/exportHelper_default()(Switchvue_type_script_lang_js, [['render',Switchvue_type_template_id_4ef03930_render]])

/* harmony default export */ var Switch = (Switch_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/DropDown.vue?vue&type=template&id=6ba79bc6

var DropDownvue_type_template_id_6ba79bc6_hoisted_1 = {
  class: "qux-dropdown-label"
};
var DropDownvue_type_template_id_6ba79bc6_hoisted_2 = {
  class: "qux-common-label qux-dropdown-label"
};

var DropDownvue_type_template_id_6ba79bc6_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-dropdown-expend"
}, [/*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
  class: "qux-dropdown-carret"
})], -1);

var DropDownvue_type_template_id_6ba79bc6_hoisted_4 = {
  key: 0,
  class: "qux-dropdown-popup"
};
var DropDownvue_type_template_id_6ba79bc6_hoisted_5 = ["onMousedown"];
function DropDownvue_type_template_id_6ba79bc6_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-dropdown', _ctx.cssClass, {
      'qux-error': _ctx.hasError
    }, {
      'qux-open': _ctx.isOpen
    }, {
      'qux-dropdown-mobile': $options.isMobile
    }]),
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.open && $options.open.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DropDownvue_type_template_id_6ba79bc6_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", DropDownvue_type_template_id_6ba79bc6_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])($options.selectOption), 1), DropDownvue_type_template_id_6ba79bc6_hoisted_3]), _ctx.isOpen ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", DropDownvue_type_template_id_6ba79bc6_hoisted_4, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.dropDownOption, function (o) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
      key: o.label,
      class: "qux-dropdown-item",
      onMousedown: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function ($event) {
        return $options.select(o);
      }, ["stop"])
    }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(o.label), 41, DropDownvue_type_template_id_6ba79bc6_hoisted_5);
  }), 128))])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/DropDown.vue?vue&type=template&id=6ba79bc6

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/_DND.vue?vue&type=template&id=ce4a0802

var _DNDvue_type_template_id_ce4a0802_hoisted_1 = {
  class: "qux-dnd"
};
function _DNDvue_type_template_id_ce4a0802_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", _DNDvue_type_template_id_ce4a0802_hoisted_1);
}
// CONCATENATED MODULE: ./src/qux/web/_DND.vue?vue&type=template&id=ce4a0802

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/_DND.vue?vue&type=script&lang=js

/* harmony default export */ var _DNDvue_type_script_lang_js = ({
  name: '_DND',
  props: {},
  computed: {},
  methods: {
    on: function on(node, event, callback) {
      if (node && node.toLowerCase) {
        node = document.getElementById(node);
      }

      if (node && node.addEventListener) {
        node.addEventListener(event, callback);
        return {
          'callback': callback,
          'node': node,
          'event': event,
          'remove': function remove() {
            this.node.removeEventListener(this.event, this.callback);
          }
        };
      } else {
        core_Logger.warn('_DNDN.on() > Pass a node of valid id');
      }
    },
    body: function body() {
      return document.getElementsByTagName("BODY")[0];
    },
    position: function position(node) {
      var ret = node.getBoundingClientRect();
      ret = {
        x: ret.left,
        y: ret.top,
        w: ret.right - ret.left,
        h: ret.bottom - ret.top
      };
      return ret;
    },
    mouse: function mouse(e) {
      var result = {
        x: 0,
        y: 0
      };

      if (e) {
        if (e.touches && e.touches.length > 0) {
          e = e.touches[0];
          result.x = e.clientX;
          result.y = e.clientY;
        } else if (e.changedTouches && e.changedTouches.length > 0) {
          e = e.changedTouches[0];
          result.x = e.clientX;
          result.y = e.clientY;
        } else {
          result.x = e.pageX;
          result.y = e.pageY;
        }
      }

      return result;
    },
    startDND: function startDND(e, move, up) {
      var _this = this;

      this._dndStartPos = this.mouse(e);
      this._dndMouseUpListener = this.on(this.body(), 'mouseup', function (upEvent) {
        _this.endDND(upEvent, up);
      });
      this._dndMouseMoveListener = this.on(this.body(), 'mousemove', function (moveEvent) {
        _this.moveDND(moveEvent, move);
      });
    },
    moveDND: function moveDND(e, move) {
      if (move) {
        try {
          var currentPos = this.mouse(e);
          var delta = this.getMouseDelta(this._dndStartPos, currentPos);
          move(delta, e);
        } catch (err) {
          core_Logger.error('_DND.moveDND()', err);
          this.cleanDND();
        }
      }
    },
    endDND: function endDND(e, up) {
      if (up) {
        try {
          var currentPos = this.mouse(e);
          var delta = this.getMouseDelta(this._dndStartPos, currentPos);
          up(delta, e);
        } catch (err) {
          core_Logger.error('_DND.endDND()', err);
        }
      }

      this.cleanDND();
    },
    getMouseDelta: function getMouseDelta(start, end) {
      return {
        x: end.x - start.x,
        y: end.y - start.y
      };
    },
    cleanDND: function cleanDND() {
      if (this._dndMouseUpListener) {
        this._dndMouseUpListener.remove();

        delete this._dndMouseUpListener;
      }

      if (this._dndMouseMoveListener) {
        this._dndMouseMoveListener.remove();

        delete this._dndMouseMoveListener;
      }

      delete this._dndStartPos;
    }
  },
  destroyed: function destroyed() {
    this.cleanDND();
  }
});
// CONCATENATED MODULE: ./src/qux/web/_DND.vue?vue&type=script&lang=js
 
// CONCATENATED MODULE: ./src/qux/web/_DND.vue





const _DND_exports_ = /*#__PURE__*/exportHelper_default()(_DNDvue_type_script_lang_js, [['render',_DNDvue_type_template_id_ce4a0802_render]])

/* harmony default export */ var _DND = (_DND_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/DropDown.vue?vue&type=script&lang=js



/* harmony default export */ var DropDownvue_type_script_lang_js = ({
  name: 'qDropDown',
  mixins: [_Base, _DND],
  data: function data() {
    return {
      isOpen: false,
      selected: null,
      hasLabelInOptions: true
    };
  },
  computed: {
    isMobile: function isMobile() {
      if (this.element && this.element.type === 'MobileDropDown') {
        return true;
      }

      var userAgent = navigator.userAgent || navigator.vendor || window.opera;
      return /iPad|iPhone|iPod/.test(userAgent) || /android/i.test(userAgent);
    },
    dropDownOption: function dropDownOption() {
      if (this.element) {
        return this.options.map(function (o) {
          if (o.toLowerCase || typeof o === 'number') {
            return {
              label: o,
              value: o
            };
          }

          return o;
        });
      }

      return [];
    },
    selectOption: function selectOption() {
      if (this.isDesignSystemRoot) {
        return this.value;
      }

      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          var found = this.options.find(function (o) {
            return o.value === input;
          });

          if (found) {
            return found.label;
          }

          return input;
        } else {
          var option = this.options[0];

          if (option.label) {
            return option.label;
          }

          return option;
        }
      }

      return this.selected;
    }
  },
  methods: {
    open: function open() {
      core_Logger.log(5, 'qDropDown.open()');
      this.isOpen = !this.isOpen;

      if (this.isOpen) {
        this._bodyListener = this.on(this.body(), 'mousedown', this.close);
      }
    },
    close: function close() {
      core_Logger.log(5, 'qDropDown.close()');
      this.isOpen = false;

      if (this._bodyListener) {
        this._bodyListener.remove();
      }
    },
    select: function select(option) {
      core_Logger.log(5, 'qDropDown.select()', option);

      if (this.element) {
        this.onValueChange(option.value, 'default');
        core_Logger.log(5, 'qDropDown.toggle() >' + this.dataBindingInputPath, option.value);
      } else {
        this.selected = option.value;
        this.$emit('change', this.selected);
        this.$emit('update:modelValue', this.selected);
        core_Logger.log(5, 'qSwitch.select() >' + this.selected);
      }

      this.close();
    }
  },
  watch: {},
  unmounted: function unmounted() {
    this.close();
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qDropDown.mounted() enter');
  }
});
// CONCATENATED MODULE: ./src/qux/web/DropDown.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/DropDown.vue?vue&type=style&index=0&id=6ba79bc6&lang=scss
var DropDownvue_type_style_index_0_id_6ba79bc6_lang_scss = __webpack_require__("1c90");

// CONCATENATED MODULE: ./src/qux/web/DropDown.vue







const DropDown_exports_ = /*#__PURE__*/exportHelper_default()(DropDownvue_type_script_lang_js, [['render',DropDownvue_type_template_id_6ba79bc6_render]])

/* harmony default export */ var DropDown = (DropDown_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/TextArea.vue?vue&type=template&id=54ddff53

var TextAreavue_type_template_id_54ddff53_hoisted_1 = ["placeholder", "type", "value"];
function TextAreavue_type_template_id_54ddff53_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("textarea", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-textarea qux-text-input', _ctx.cssClass]),
    placeholder: $options.placeholder,
    type: $options.type,
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    }),
    onChange: _cache[1] || (_cache[1] = function () {
      return _ctx.onChange && _ctx.onChange.apply(_ctx, arguments);
    }),
    onKeyup: _cache[2] || (_cache[2] = function () {
      return $options.onKeyPress && $options.onKeyPress.apply($options, arguments);
    }),
    value: _ctx.dataBindingInput
  }, null, 42, TextAreavue_type_template_id_54ddff53_hoisted_1);
}
// CONCATENATED MODULE: ./src/qux/web/TextArea.vue?vue&type=template&id=54ddff53

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/TextArea.vue?vue&type=script&lang=js


/* harmony default export */ var TextAreavue_type_script_lang_js = ({
  name: 'qTestBox',
  mixins: [_Base],
  data: function data() {
    return {};
  },
  computed: {
    type: function type() {
      if (this.element && this.element.type === 'Password') {
        return 'password';
      }

      return 'text';
    },
    placeholder: function placeholder() {
      if (this.element && this.element.props && this.element.props.placeholder) {
        return this.element.props.label;
      }

      return '';
    }
  },
  methods: {
    onKeyPress: function onKeyPress(e) {
      var value = e.target.value;
      this.onValueChange(value, 'default');
      this.$emit('qKeyPress', this.element, e);
      core_Logger.log(3, 'qTextBox.onKeyPress() > exit', value);
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qTextBox.mounted() enter');
  }
});
// CONCATENATED MODULE: ./src/qux/web/TextArea.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/TextArea.vue?vue&type=style&index=0&id=54ddff53&lang=scss
var TextAreavue_type_style_index_0_id_54ddff53_lang_scss = __webpack_require__("3ea0");

// CONCATENATED MODULE: ./src/qux/web/TextArea.vue







const TextArea_exports_ = /*#__PURE__*/exportHelper_default()(TextAreavue_type_script_lang_js, [['render',TextAreavue_type_template_id_54ddff53_render]])

/* harmony default export */ var TextArea = (TextArea_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Stepper.vue?vue&type=template&id=5838e59b


var Steppervue_type_template_id_5838e59b_hoisted_1 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
  class: "qux-stepper-label"
}, "-", -1);

var Steppervue_type_template_id_5838e59b_hoisted_2 = [Steppervue_type_template_id_5838e59b_hoisted_1];

var Steppervue_type_template_id_5838e59b_hoisted_3 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
  class: "qux-stepper-label"
}, " + ", -1);

var Steppervue_type_template_id_5838e59b_hoisted_4 = [Steppervue_type_template_id_5838e59b_hoisted_3];
function Steppervue_type_template_id_5838e59b_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-stepper qux-common-no-select', _ctx.cssClass])
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
    class: "qux-stepper-btn qux-stepper-minus",
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.onMinus && $options.onMinus.apply($options, arguments);
    })
  }, Steppervue_type_template_id_5838e59b_hoisted_2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
    class: "qux-stepper-btn qux-stepper-plus",
    onClick: _cache[1] || (_cache[1] = function () {
      return $options.onPlus && $options.onPlus.apply($options, arguments);
    })
  }, Steppervue_type_template_id_5838e59b_hoisted_4)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Stepper.vue?vue&type=template&id=5838e59b

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Stepper.vue?vue&type=script&lang=js

/* harmony default export */ var Steppervue_type_script_lang_js = ({
  name: 'qStepper',
  mixins: [_Base],
  data: function data() {
    return {
      count: 0
    };
  },
  methods: {
    getCount: function getCount() {
      if (this.element) {
        var count = this.dataBindingInput;

        if (!isNaN(count)) {
          return count;
        }
      }

      return this.count;
    },
    onMinus: function onMinus(e) {
      var count = this.getCount();
      this.count = count - 1;
      this.change();
      this.onClick(e);
    },
    onPlus: function onPlus(e) {
      var count = this.getCount();
      this.count = count + 1;
      this.change();
      this.onClick(e);
    },
    change: function change() {
      if (this.element) {
        this.onValueChange(this.count, 'default');
      } else {
        this.$emit('change', this.count);
        this.$emit('update:modelValue', this.count);
      }
    }
  },
  mounted: function mounted() {
    if (this.element && this.element.props && this.element.props.value) {
      this.count = this.element.props.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Stepper.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Stepper.vue?vue&type=style&index=0&id=5838e59b&lang=scss
var Steppervue_type_style_index_0_id_5838e59b_lang_scss = __webpack_require__("0974");

// CONCATENATED MODULE: ./src/qux/web/Stepper.vue







const Stepper_exports_ = /*#__PURE__*/exportHelper_default()(Steppervue_type_script_lang_js, [['render',Steppervue_type_template_id_5838e59b_render]])

/* harmony default export */ var Stepper = (Stepper_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Slider.vue?vue&type=template&id=1ec537c2

var Slidervue_type_template_id_1ec537c2_hoisted_1 = {
  class: "qux-slider-track"
};
var Slidervue_type_template_id_1ec537c2_hoisted_2 = {
  class: "qux-slider-handle-cntr"
};
function Slidervue_type_template_id_1ec537c2_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-slider', _ctx.cssClass]),
    onClick: _cache[1] || (_cache[1] = function () {
      return $options.onSliderClick && $options.onSliderClick.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Slidervue_type_template_id_1ec537c2_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
    class: "qux-slider-progress",
    style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])({
      'width': $options.progress + '%'
    })
  }, null, 4)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Slidervue_type_template_id_1ec537c2_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
    class: "qux-slider-handle",
    style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])({
      'left': $options.left
    }),
    onMousedown: _cache[0] || (_cache[0] = function () {
      return $options.onHandleDown && $options.onHandleDown.apply($options, arguments);
    })
  }, null, 36)])], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Slider.vue?vue&type=template&id=1ec537c2

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Slider.vue?vue&type=script&lang=js



/* harmony default export */ var Slidervue_type_script_lang_js = ({
  name: 'qSlider',
  mixins: [_Base, _DND],
  data: function data() {
    return {
      count: 0
    };
  },
  computed: {
    domPos: function domPos() {
      return this.position(this.$el);
    },
    handleWidth: function handleWidth() {
      if (this.element) {
        return this.element.style.handleWidth;
      }

      return 40;
    },
    minValue: function minValue() {
      if (this.element && this.element.props) {
        return this.element.props.min;
      }

      return 0;
    },
    maxValue: function maxValue() {
      if (this.element && this.element.props) {
        return this.element.props.max;
      }

      return 100;
    },
    left: function left() {
      var offSet = this.handleWidth / 2;
      var left = this.sliderValue / (this.maxValue - this.minValue);
      left = Math.min(1, left);
      left = Math.max(0, left);
      return "calc(".concat(left * 100, "% - ").concat(offSet, "px)");
    },
    progress: function progress() {
      return this.sliderValue;
    },
    sliderValue: function sliderValue() {
      if (this.element) {
        var count = this.dataBindingInput;

        if (!isNaN(count)) {
          return count;
        }
      }

      return this.count;
    }
  },
  methods: {
    onSliderClick: function onSliderClick(e) {
      this.setByMouse(e);
      this.onClick(e);
    },
    onHandleDown: function onHandleDown(e) {
      var _this = this;

      this.startDND(e, function (move, e) {
        return _this.setByMouse(e);
      });
    },
    setByMouse: function setByMouse(e) {
      var pos = this.domPos;
      var mouse = this.mouse(e);
      var left = (mouse.x - pos.x) / pos.w;
      left = Math.min(1, left);
      left = Math.max(0, left);
      var value = (this.maxValue - this.minValue) * left;
      this.onChange(value);
    },
    onChange: function onChange(value) {
      this.count = Math.round(value);

      if (this.element) {
        this.onValueChange(this.count, 'default');
        this.$emit('qChange', this.element, null, this.count);
      } else {
        this.$emit('change', this.count);
        this.$emit('update:modelValue', this.count);
      }

      core_Logger.log(5, 'qSlider.onChange() exit > ', this.count);
    }
  },
  mounted: function mounted() {
    if (this.element && this.element.props && this.element.props.value) {
      this.count = this.element.props.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Slider.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Slider.vue?vue&type=style&index=0&id=1ec537c2&lang=scss
var Slidervue_type_style_index_0_id_1ec537c2_lang_scss = __webpack_require__("8bd9");

// CONCATENATED MODULE: ./src/qux/web/Slider.vue







const Slider_exports_ = /*#__PURE__*/exportHelper_default()(Slidervue_type_script_lang_js, [['render',Slidervue_type_template_id_1ec537c2_render]])

/* harmony default export */ var Slider = (Slider_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Date.vue?vue&type=template&id=2653b0e3

var Datevue_type_template_id_2653b0e3_hoisted_1 = {
  class: "qux-date-header"
};
var Datevue_type_template_id_2653b0e3_hoisted_2 = {
  class: "qux-common-valign-center"
};
var Datevue_type_template_id_2653b0e3_hoisted_3 = {
  class: "qux-date-header-label"
};
var Datevue_type_template_id_2653b0e3_hoisted_4 = {
  class: "qux-common-valign-center"
};
var Datevue_type_template_id_2653b0e3_hoisted_5 = {
  class: "qux-common-valign-center"
};
var Datevue_type_template_id_2653b0e3_hoisted_6 = {
  class: "qux-date-body"
};
var _hoisted_7 = ["onClick"];
function Datevue_type_template_id_2653b0e3_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-date', _ctx.cssClass]),
    onClick: _cache[2] || (_cache[2] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Datevue_type_template_id_2653b0e3_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
    class: "qux-date-header-btn",
    onClick: _cache[0] || (_cache[0] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function () {
      return $options.onBack && $options.onBack.apply($options, arguments);
    }, ["stop"]))
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Datevue_type_template_id_2653b0e3_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])($options.backLabel), 1)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Datevue_type_template_id_2653b0e3_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Datevue_type_template_id_2653b0e3_hoisted_4, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])($options.dateLabel), 1)]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
    class: "qux-date-header-btn",
    onClick: _cache[1] || (_cache[1] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function () {
      return $options.onNext && $options.onNext.apply($options, arguments);
    }, ["stop"]))
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Datevue_type_template_id_2653b0e3_hoisted_5, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])($options.nextLabel), 1)])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", Datevue_type_template_id_2653b0e3_hoisted_6, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("table", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tbody", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.day_names, function (d) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("th", {
      key: d,
      class: "qux-date-week-days"
    }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(d), 1);
  }), 128))]), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.body, function (week, i) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("tr", {
      key: i
    }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(week, function (d, j) {
      return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("td", {
        key: j,
        onClick: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function ($event) {
          return $options.onSelect(d);
        }, ["stop"]),
        class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])([d.css, {
          'qux-date-weekend': d.weekend
        }, {
          'qux-date-workday': !d.weekend
        }])
      }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(d.day), 11, _hoisted_7);
    }), 128))]);
  }), 128))])])])], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Date.vue?vue&type=template&id=2653b0e3

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Date.vue?vue&type=script&lang=js


/* harmony default export */ var Datevue_type_script_lang_js = ({
  name: 'qDate',
  mixins: [_Base],
  props: ['range'],
  data: function data() {
    return {
      isRange: false,
      selected: new Date(),
      viewDate: new Date(),
      day_names: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
      month_names: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
    };
  },
  computed: {
    backLabel: function backLabel() {
      if (this.element && this.element.props.lastButtonLbl) {
        return '<';
      }

      return '-';
    },
    nextLabel: function nextLabel() {
      if (this.element && this.element.props.nextButtonLbl) {
        return '>';
      }

      return '+';
    },
    dateLabel: function dateLabel() {
      return this.month_names[this.viewDate.getMonth()] + ' ' + this.viewDate.getFullYear();
    },
    selectedDate: function selectedDate() {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          if (input.start && input.end) {
            if (input.start.toLowerCase) {
              input.start = Date.parse(input.start);
            }

            if (input.end.toLowerCase) {
              input.end = Date.parse(input.end);
            }
          }

          if (input.toLowerCase) {
            input = Date.parse(input);
          }

          return input;
        }
      }

      return this.selected;
    },
    body: function body() {
      var year = this.viewDate.getFullYear();
      var month = this.viewDate.getMonth();
      var first = new Date(year, month, 1);
      var offset = first.getDay();
      var week = [];
      var result = []; // male 45 and filter empty last row

      for (var i = 0; i < 35; i++) {
        if (i % 7 == 0) {
          week = [];
          result.push(week);
        }

        var day = {
          day: '',
          year: year,
          month: month,
          weekend: false
        };
        week.push(day);
        /**
         * Chekc if we are in current month
         */

        if (i - offset >= 0) {
          day.day = i - offset + 1 + '';
          var d1 = new Date(year, month, day.day); // check that we are not in next months

          if (d1.getMonth() != month) {
            day.day = '';
          }
        }

        if (i % 7 == 0 || i % 7 == 6) {
          day.weekend = true;
        }

        day.css = this.getSelectedCSS(day);
      }

      return result;
    }
  },
  methods: {
    getSelectedCSS: function getSelectedCSS(day) {
      if (this.isRange) {
        /**
         * Check if we have start range
         */
        if (this.selected.start) {
          var start = this.selected.start;

          if (day.year === start.getFullYear() && day.month === start.getMonth() && day.day == start.getDate()) {
            return 'qux-date-range-start';
          }
        }
        /**
         * Check if end
         */


        if (this.selected.end) {
          var end = this.selected.end;

          if (day.year === end.getFullYear() && day.month === end.getMonth() && day.day == end.getDate()) {
            return 'qux-date-range-end';
          }
        }
        /**
         * Check if between
         */


        if (this.selected.start && this.selected.end) {
          var dayMS = this.getMillis(day);
          var startMS = this.selected.start.getTime();
          var endMS = this.selected.end.getTime();

          if (startMS < dayMS && dayMS < endMS) {
            return 'qux-date-range-middle';
          }
        }
      } else {
        var selected = this.selected;

        if (day.year === selected.getFullYear() && day.month === selected.getMonth() && day.day == selected.getDate()) {
          return 'qux-date-selected';
        }
      }

      return '';
    },
    getMillis: function getMillis(day) {
      return new Date(day.year, day.month, day.day).getTime();
    },
    onBack: function onBack() {
      var date = this.viewDate;
      var day = date.getDay();
      var month = date.getMonth();
      var year = date.getFullYear();
      month--;

      if (month < 0) {
        month = 11;
        year--;
      }

      this.setView(year, month, day);
    },
    onNext: function onNext() {
      var date = this.viewDate;
      var day = date.getDay();
      var month = date.getMonth();
      var year = date.getFullYear();
      month++;

      if (month > 11) {
        month = 0;
        year++;
      }

      this.setView(year, month, day);
    },
    setView: function setView(year, month, day) {
      this.viewDate = new Date(year, month, day);
    },
    onSelect: function onSelect(d) {
      if (this.isRange) {
        if (this.selected.end) {
          this.selected.start = new Date(d.year, d.month, d.day), this.selected.end = null;
        } else {
          this.selected.end = new Date(d.year, d.month, d.day);

          if (this.selected.start > this.selected.end) {
            var help = this.selected.start;
            this.selected.start = this.selected.end;
            this.selected.end = help;
          }
        }

        if (this.selected.end) {
          core_Logger.log(5, 'qDate.select() > range : ', this.selected);

          if (this.element) {
            this.onValueChange({
              start: this.toIsoString(this.selected.start),
              end: this.toIsoString(this.selected.end)
            }, 'default');
          } else {
            this.$emit('change', this.selected);
            this.$emit('update:modelValue', this.selected);
          }
        }
      } else {
        if (d.day !== '') {
          this.selected = new Date(d.year, d.month, d.day);
          core_Logger.log(5, 'qDate.select() > date : ', this.selected);

          if (this.element) {
            /**
             * Here is something wrong with UTC offsets
             */
            this.onValueChange(this.toIsoString(this.selected), 'default');
          } else {
            this.$emit('change', this.selected);
            this.$emit('update:modelValue', this.selected);
          }
        }
      }
    },
    toIsoString: function toIsoString(date) {
      if (date) {
        var month = date.getMonth() + 1;

        if (month < 10) {
          month = '0' + month;
        }

        var day = date.getDate();

        if (day < 10) {
          day = '0' + day;
        }

        return "".concat(date.getFullYear(), "-").concat(month, "-").concat(day);
      }

      return null;
    }
  },
  watch: {},
  mounted: function mounted() {
    if (this.element) {
      this.isRange = this.element.props.range;
    }

    if (this.range === true) {
      this.isRange = true;
    }

    if (this.isRange) {
      this.selected = {
        start: new Date(),
        end: new Date(new Date().getTime() + 86400000 * 4)
      };
    }

    if (!this.element && this.value) {
      core_Logger.log(5, 'qDate.mounted() standalone');
      this.selected = this.value;

      if (this.value.start) {
        // copy value to ensure changes are not leaked
        this.selected = {
          start: this.value.start,
          end: this.value.end
        };
        this.viewDate = this.selected.start;
      } else {
        this.viewDate = this.value;
      }
    }

    core_Logger.log(0, 'qDate.mounted() enter', this.element);
  }
});
// CONCATENATED MODULE: ./src/qux/web/Date.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Date.vue?vue&type=style&index=0&id=2653b0e3&lang=scss
var Datevue_type_style_index_0_id_2653b0e3_lang_scss = __webpack_require__("ae03");

// CONCATENATED MODULE: ./src/qux/web/Date.vue







const Date_exports_ = /*#__PURE__*/exportHelper_default()(Datevue_type_script_lang_js, [['render',Datevue_type_template_id_2653b0e3_render]])

/* harmony default export */ var web_Date = (Date_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/DatePicker.vue?vue&type=template&id=732c8e84

var DatePickervue_type_template_id_732c8e84_hoisted_1 = {
  class: "qux-date-picker-expend"
};
var DatePickervue_type_template_id_732c8e84_hoisted_2 = {
  key: 1,
  class: "qux-date-picker-carret"
};
function DatePickervue_type_template_id_732c8e84_render(_ctx, _cache, $props, $setup, $data, $options) {
  var _component_qDate = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("qDate");

  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-date-picker', _ctx.cssClass, {
      'qux-error': _ctx.hasError
    }, {
      'qux-open': _ctx.isOpen
    }]),
    onClick: _cache[2] || (_cache[2] = function () {
      return $options.open && $options.open.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-common-label', {
      'qux-common-placeholder': !$options.hasValue
    }])
  }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])($options.selectedLabel), 3), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", DatePickervue_type_template_id_732c8e84_hoisted_1, [$options.icon ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
    key: 0,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])($options.icon + ' qux-date-picker-icon')
  }, null, 2)) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", DatePickervue_type_template_id_732c8e84_hoisted_2))]), _ctx.isOpen ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    key: 0,
    class: "qux-date-picker-popup",
    onClick: _cache[0] || (_cache[0] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function () {}, ["stop"])),
    onMousedown: _cache[1] || (_cache[1] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function () {}, ["stop"]))
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_qDate, {
    onChange: $options.select,
    range: _ctx.isRange,
    value: $options.selectedDate
  }, null, 8, ["onChange", "range", "value"])], 32)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/DatePicker.vue?vue&type=template&id=732c8e84

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/DatePicker.vue?vue&type=script&lang=js




/* harmony default export */ var DatePickervue_type_script_lang_js = ({
  name: 'qDatePicker',
  mixins: [_Base, _DND],
  data: function data() {
    return {
      isRange: false,
      isOpen: false,
      selected: null
    };
  },
  components: {
    'qDate': web_Date
  },
  computed: {
    icon: function icon() {
      if (this.element) {
        if (this.element.props.icon) {
          return this.element.props.icon;
        }
      }

      return false;
    },
    dropDownOption: function dropDownOption() {
      if (this.element) {
        return this.options.map(function (o) {
          if (o.toLowerCase) {
            return {
              label: o,
              value: o
            };
          }

          return o;
        });
      }

      return [];
    },
    selectedDate: function selectedDate() {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          return input;
        }
      }

      return this.selected;
    },
    selectedLabel: function selectedLabel() {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          if (input.start && input.end) {
            return this.toDateString(input.start) + ' - ' + this.toDateString(input.end);
          }

          if (input.toLowerCase) {
            input = Date.parse(input);
          }

          return this.toDateString(input);
        }
      }

      if (this.selected) {
        if (this.selected.start && this.selected.end) {
          return this.toDateString(this.selected.start) + ' - ' + this.toDateString(this.selected.end);
        }

        return this.toDateString(this.selected);
      }

      return this.label;
    },
    hasValue: function hasValue() {
      if (this.element) {
        var input = this.dataBindingInput;
        return input !== null && input !== undefined;
      }

      return this.selected !== null && this.selected !== undefined;
    }
  },
  methods: {
    open: function open() {
      core_Logger.log(5, 'qDatePicker.open()');
      this.isOpen = !this.isOpen;

      if (this.isOpen) {
        this._bodyListener = this.on(this.body(), 'mousedown', this.close);
      }
    },
    close: function close() {
      core_Logger.log(5, 'qDatePicker.close()');
      this.isOpen = false;

      if (this._bodyListener) {
        this._bodyListener.remove();
      }
    },
    select: function select(selected) {
      if (this.element) {
        this.onValueChange(selected, 'default');
        core_Logger.log(5, 'qDatePicker.toggle() >' + this.dataBindingInputPath, selected);
      } else {
        this.selected = selected;
        this.$emit('change', this.selected);
        this.$emit('update:modelValue', this.selected);
        core_Logger.log(5, 'qDatePicker.select() >', this.selected);
      }

      setTimeout(this.close, 250);
    },
    toDateString: function toDateString(d) {
      if (d && d.toLocaleDateString) {
        return d.toLocaleDateString();
      }

      return '';
    }
  },
  watch: {},
  unmounted: function unmounted() {
    this.close();
  },
  mounted: function mounted() {
    if (this.element) {
      this.isRange = this.element.props.range;
    }

    if (this.range === true) {
      this.isRange = true;
    }

    core_Logger.log(5, 'qDatePicker.mounted() enter', this.element);
  }
});
// CONCATENATED MODULE: ./src/qux/web/DatePicker.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/DatePicker.vue?vue&type=style&index=0&id=732c8e84&lang=scss
var DatePickervue_type_style_index_0_id_732c8e84_lang_scss = __webpack_require__("c151");

// CONCATENATED MODULE: ./src/qux/web/DatePicker.vue







const DatePicker_exports_ = /*#__PURE__*/exportHelper_default()(DatePickervue_type_script_lang_js, [['render',DatePickervue_type_template_id_732c8e84_render]])

/* harmony default export */ var DatePicker = (DatePicker_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Segment.vue?vue&type=template&id=06af407c

var Segmentvue_type_template_id_06af407c_hoisted_1 = ["onClick"];
var Segmentvue_type_template_id_06af407c_hoisted_2 = {
  class: "qux-segment-item-label"
};
function Segmentvue_type_template_id_06af407c_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-segment', _ctx.cssClass])
  }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.segmentOptions, function (option) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-segment-item', {
        'qux-segment-item-selected': $options.isChecked(option)
      }]),
      key: option.value,
      onClick: function onClick($event) {
        return $options.select(option);
      }
    }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Segmentvue_type_template_id_06af407c_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(option.label), 1)], 10, Segmentvue_type_template_id_06af407c_hoisted_1);
  }), 128))], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Segment.vue?vue&type=template&id=06af407c

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Segment.vue?vue&type=script&lang=js

 //import Vue from 'vue'

/* harmony default export */ var Segmentvue_type_script_lang_js = ({
  name: 'qStepper',
  mixins: [_Base],
  data: function data() {
    return {
      selected: null
    };
  },
  computed: {
    segmentOptions: function segmentOptions() {
      if (this.element) {
        return this.options.map(function (o) {
          if (o.toLowerCase) {
            return {
              label: o,
              value: o
            };
          }

          return o;
        });
      }

      return [];
    },
    isMultiSelect: function isMultiSelect() {
      if (this.element) {
        return this.element.props.multi;
      }

      return false;
    }
  },
  methods: {
    isChecked: function isChecked(option) {
      var input = this.dataBindingInput;

      if (input) {
        if (this.isMultiSelect) {
          core_Logger.log(5, 'qSegmentButton.isChecked() > Mutli : ' + option.value, input);
          return input.indexOf(option.value) >= 0;
        } else {
          core_Logger.log(5, 'qSegmentButton.isChecked() > Single : ' + option.value, input);
          return input === option.value;
        }
      }

      return false;
    },
    select: function select(option) {
      var value = option.value;

      if (this.isMultiSelect) {
        var input = this.dataBindingInput;

        if (input) {
          if (!Array.isArray(input)) {
            input = [input];
          }

          var pos = input.indexOf(value);

          if (pos < 0) {
            input.push(value);
          } else {
            input = input.filter(function (item) {
              return item !== option;
            }); //Vue.delete(input, pos)
          }
        } else {
          input = [value];
        }

        this.onValueChange(input, 'default');
        core_Logger.log(5, 'qSegmentButton.select() > Single: ' + this.dataBindingInputPath);
      } else {
        this.onValueChange(value, 'default');
        core_Logger.log(5, 'qSegmentButton.select() > Single: ' + this.dataBindingInputPath, value);
      }
    }
  },
  mounted: function mounted() {}
});
// CONCATENATED MODULE: ./src/qux/web/Segment.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Segment.vue?vue&type=style&index=0&id=06af407c&lang=scss
var Segmentvue_type_style_index_0_id_06af407c_lang_scss = __webpack_require__("fc9f");

// CONCATENATED MODULE: ./src/qux/web/Segment.vue







const Segment_exports_ = /*#__PURE__*/exportHelper_default()(Segmentvue_type_script_lang_js, [['render',Segmentvue_type_template_id_06af407c_render]])

/* harmony default export */ var Segment = (Segment_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Rating.vue?vue&type=template&id=6338593b

var Ratingvue_type_template_id_6338593b_hoisted_1 = ["onClick"];
function Ratingvue_type_template_id_6338593b_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-rating', _ctx.cssClass])
  }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.ratingOptions, function (option) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-rating-icon']),
      onClick: function onClick($event) {
        return $options.select(option);
      },
      key: option
    }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])($options.getIcon(option))
    }, null, 2)], 8, Ratingvue_type_template_id_6338593b_hoisted_1);
  }), 128))], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Rating.vue?vue&type=template&id=6338593b

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Rating.vue?vue&type=script&lang=js


/* harmony default export */ var Ratingvue_type_script_lang_js = ({
  name: 'qRadioGroup',
  mixins: [_Base],
  data: function data() {
    return {
      selected: null,
      ratingOptions: [1, 2, 3, 4, 5]
    };
  },
  methods: {
    getIcon: function getIcon(option) {
      var input = this.dataBindingInput;
      core_Logger.log(5, 'qRating.isChecked() >' + option, input);

      if (input) {
        if (input >= option) {
          return 'mdi mdi-star';
        }
      }

      return 'mdi mdi-star-outline';
    },
    select: function select(option) {
      this.onValueChange(option, 'default');
      core_Logger.log(5, 'qRating.select() >' + this.dataBindingInputPath, option);
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qRating.mounted() enter');
  }
});
// CONCATENATED MODULE: ./src/qux/web/Rating.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Rating.vue?vue&type=style&index=0&id=6338593b&lang=scss
var Ratingvue_type_style_index_0_id_6338593b_lang_scss = __webpack_require__("783a");

// CONCATENATED MODULE: ./src/qux/web/Rating.vue







const Rating_exports_ = /*#__PURE__*/exportHelper_default()(Ratingvue_type_script_lang_js, [['render',Ratingvue_type_template_id_6338593b_render]])

/* harmony default export */ var Rating = (Rating_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/IconToggle.vue?vue&type=template&id=ee87e65e

var IconTogglevue_type_template_id_ee87e65e_hoisted_1 = {
  key: 0,
  class: "qux-icon-toggle-label"
};
function IconTogglevue_type_template_id_ee87e65e_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-icon-toggle', _ctx.cssClass, {
      'qux-icon-toggle-selected': $options.isSelected
    }]),
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.toggle && $options.toggle.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-icon', $options.icon])
  }, null, 2), _ctx.label ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", IconTogglevue_type_template_id_ee87e65e_hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.label), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/IconToggle.vue?vue&type=template&id=ee87e65e

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/IconToggle.vue?vue&type=script&lang=js


/* harmony default export */ var IconTogglevue_type_script_lang_js = ({
  name: 'qIconToggle',
  mixins: [_Base],
  data: function data() {
    return {
      checked: false
    };
  },
  computed: {
    isSelected: function isSelected() {
      if (this.element) {
        var input = this.dataBindingInput;
        return input;
      }

      return this.checked;
    },
    icon: function icon() {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          return this.element.props.activeIcon;
        } else {
          return this.element.props.passiveIcon;
        }
      }

      return '';
    }
  },
  methods: {
    toggle: function toggle() {
      if (this.element) {
        var value = !this.isSelected;
        this.onValueChange(value, 'default');
        core_Logger.log(1, 'qIconToggle.toggle() >' + this.dataBindingInputPath, value);
      } else {
        this.checked = !this.checked;
        this.$emit('change', this.checked);
        this.$emit('update:modelValue', this.checked);
        core_Logger.log(5, 'qIconToggle.toggle() >' + this.checked);
      }
    }
  },
  mounted: function mounted() {}
});
// CONCATENATED MODULE: ./src/qux/web/IconToggle.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/IconToggle.vue?vue&type=style&index=0&id=ee87e65e&lang=scss
var IconTogglevue_type_style_index_0_id_ee87e65e_lang_scss = __webpack_require__("3f27");

// CONCATENATED MODULE: ./src/qux/web/IconToggle.vue







const IconToggle_exports_ = /*#__PURE__*/exportHelper_default()(IconTogglevue_type_script_lang_js, [['render',IconTogglevue_type_template_id_ee87e65e_render]])

/* harmony default export */ var IconToggle = (IconToggle_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Combo.vue?vue&type=template&id=5ada1a2c

var Combovue_type_template_id_5ada1a2c_hoisted_1 = ["placeholder"];
var Combovue_type_template_id_5ada1a2c_hoisted_2 = {
  key: 0,
  class: "qux-combo-popup"
};
var Combovue_type_template_id_5ada1a2c_hoisted_3 = ["onMousedown"];
function Combovue_type_template_id_5ada1a2c_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-combo', _ctx.cssClass, {
      'qux-error': _ctx.hasError
    }, {
      'qux-open': _ctx.isOpen
    }])
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withDirectives"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
    class: "qux-combo-input",
    onKeyup: _cache[0] || (_cache[0] = function () {
      return $options.onKeyPress && $options.onKeyPress.apply($options, arguments);
    }),
    "onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
      return _ctx.inputValue = $event;
    }),
    placeholder: $options.placeholder,
    onChange: _cache[2] || (_cache[2] = function () {
      return $options.onInputChange && $options.onInputChange.apply($options, arguments);
    }),
    onBlur: _cache[3] || (_cache[3] = function () {
      return $options.onBlur && $options.onBlur.apply($options, arguments);
    }),
    ref: "comboInput"
  }, null, 40, Combovue_type_template_id_5ada1a2c_hoisted_1), [[external_commonjs_vue_commonjs2_vue_root_Vue_["vModelText"], _ctx.inputValue]]), _ctx.isOpen && _ctx.matches.length > 0 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Combovue_type_template_id_5ada1a2c_hoisted_2, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.matches, function (o, i) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
      key: o.label,
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-combo-item', {
        'qux-combo-item-selected': i === _ctx.selectedIndex
      }]),
      onMousedown: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(function ($event) {
        return $options.select(o);
      }, ["stop"])
    }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(o.label), 43, Combovue_type_template_id_5ada1a2c_hoisted_3);
  }), 128))])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Combo.vue?vue&type=template&id=5ada1a2c

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Combo.vue?vue&type=script&lang=js



/* harmony default export */ var Combovue_type_script_lang_js = ({
  name: "qCombo",
  mixins: [_Base, _DND],
  data: function data() {
    return {
      inputValue: "",
      isOpen: false,
      selected: null,
      matches: [],
      selectedIndex: -1
    };
  },
  computed: {
    placeholder: function placeholder() {
      if (this.element && this.element.props && this.element.props.placeholder) {
        return this.element.props.label;
      }

      return '';
    },
    hints: function hints() {
      return this.options.map(function (o) {
        if (o.toLowerCase) {
          return {
            label: o,
            value: o
          };
        }

        return o;
      });
    },
    selectOption: function selectOption() {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          return input;
        } else {
          return this.options[0];
        }
      }

      return this.selected;
    }
  },
  methods: {
    onKeyPress: function onKeyPress(e) {
      if (this.inputValue.length > 2) {
        var search = this.inputValue.toLowerCase();
        this.matches = this.hints.filter(function (hint) {
          return hint.label.toLowerCase().indexOf(search) >= 0;
        });

        if (this.matches.length > 0) {
          this.open();
          this.handleArrows(e);
        }
      } else {
        this.close();
      }
    },
    handleArrows: function handleArrows(e) {
      var key = e.which || e.keyCode;

      if (40 == key) {
        this.selectedIndex = Math.min(this.matches.length, this.selectedIndex + 1);
        return;
      }

      if (38 == key) {
        this.selectedIndex = Math.max(-1, this.selectedIndex - 1);
        return;
      }

      if (27 == key) {
        this.onInputChange();
        this.close();
        return;
      }

      if (13 == key) {
        core_Logger.log(-5, "qCombo.handleArrows()", this.selectedIndex, this.matches);

        if (this.selectedIndex >= 0 && this.selectedIndex < this.matches.length) {
          this.select(this.matches[this.selectedIndex]);
          return;
        }

        this.onInputChange();
        this.close();
        return;
      }

      this.selectedIndex = -1;
    },
    blur: function blur() {
      if (this.$refs.comboInput) {
        this.$refs.comboInput.blur();
      }
    },
    onBlur: function onBlur() {
      this.onInputChange();
      this.close();
    },
    open: function open() {
      core_Logger.log(5, "qCombo.open()");
      this.isOpen = true;

      if (this.isOpen) {
        this._bodyListener = this.on(this.body(), "mousedown", this.close);
      }
    },
    close: function close() {
      core_Logger.log(-5, "qCombo.close()");
      this.isOpen = false;
      this.selectedIndex = -1;

      if (this._bodyListener) {
        this._bodyListener.remove();
      }
    },
    onInputChange: function onInputChange() {
      core_Logger.log(-5, "qCombo.onInputChange()", this.inputValue);

      if (this.element) {
        this.onValueChange(this.inputValue, "default");
      } else {
        this.selected = this.inputValue;
        this.$emit("change", this.selected);
        this.$emit("input", this.selected);
      }
    },
    select: function select(option) {
      core_Logger.log(-5, "qCombo.select()", option.value);

      if (this.element) {
        this.onValueChange(option.value, "default");
        core_Logger.log(5, "qCombo.toggle() >" + this.dataBindingInputPath, option.value);
      } else {
        this.selected = option.value;
        this.$emit("change", this.selected);
        this.$emit("input", this.selected);
        core_Logger.log(5, "qCombo.select() >" + this.selected);
      }

      this.inputValue = option.label;
      this.close();
    }
  },
  watch: {},
  destroyed: function destroyed() {
    this.close();
  },
  mounted: function mounted() {
    core_Logger.log(1, "qCombo.mounted() enter", this.value);

    if (!this.element) {
      this.inputValue = this.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Combo.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Combo.vue?vue&type=style&index=0&id=5ada1a2c&lang=scss
var Combovue_type_style_index_0_id_5ada1a2c_lang_scss = __webpack_require__("dbbf");

// CONCATENATED MODULE: ./src/qux/web/Combo.vue







const Combo_exports_ = /*#__PURE__*/exportHelper_default()(Combovue_type_script_lang_js, [['render',Combovue_type_template_id_5ada1a2c_render]])

/* harmony default export */ var Combo = (Combo_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Table.vue?vue&type=template&id=69078851

var Tablevue_type_template_id_69078851_hoisted_1 = ["onClick"];
var Tablevue_type_template_id_69078851_hoisted_2 = {
  key: 0,
  class: "mdi mdi-chevron-down"
};
var Tablevue_type_template_id_69078851_hoisted_3 = {
  key: 1,
  class: "mdi mdi-chevron-up"
};
var Tablevue_type_template_id_69078851_hoisted_4 = {
  key: 0,
  class: "qux-table-cell"
};
var Tablevue_type_template_id_69078851_hoisted_5 = {
  key: 1,
  class: "qux-table-action-cntr"
};
var Tablevue_type_template_id_69078851_hoisted_6 = ["onClick"];
function Tablevue_type_template_id_69078851_render(_ctx, _cache, $props, $setup, $data, $options) {
  var _component_CheckBox = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("CheckBox");

  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-table', _ctx.cssClass])
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("table", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("thead", null, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tr", null, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.columns, function (col) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("th", {
      key: col.id,
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-table-cell qux-table-column-' + col.id),
      onClick: function onClick($event) {
        return $options.sortBy(col);
      }
    }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(col.label) + " ", 1), _ctx.sortColumn.id == col.id && _ctx.sortOrder === 'asc' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", Tablevue_type_template_id_69078851_hoisted_2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.sortColumn.id == col.id && _ctx.sortOrder !== 'asc' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", Tablevue_type_template_id_69078851_hoisted_3)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, Tablevue_type_template_id_69078851_hoisted_1);
  }), 128))])]), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("tbody", null, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.sortedRows, function (row) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("tr", {
      key: row.id,
      class: "qux-table-row"
    }, [$options.hasCheckBox ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("td", Tablevue_type_template_id_69078851_hoisted_4, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createVNode"])(_component_CheckBox, {
      value: $options.isRowSelected(row),
      onChange: function onChange($event) {
        return $options.selectRow(row);
      }
    }, null, 8, ["value", "onChange"])])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(row.values, function (value, i) {
      return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("td", {
        key: i,
        class: "qux-table-cell"
      }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(value), 1);
    }), 128)), $options.hasActions ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("td", Tablevue_type_template_id_69078851_hoisted_5, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.actions, function (action, i) {
      return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
        onClick: function onClick($event) {
          return $options.onActionClick(action, row);
        },
        key: action.label,
        class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-table-action', 'qux-table-action-' + i, {
          'qux-table-action-hover': action.isHover
        }])
      }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(action.label), 11, Tablevue_type_template_id_69078851_hoisted_6);
    }), 128))])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]);
  }), 128))])])], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Table.vue?vue&type=template&id=69078851

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Table.vue?vue&type=script&lang=js



/* harmony default export */ var Tablevue_type_script_lang_js = ({
  name: 'qTable',
  mixins: [_Base],
  data: function data() {
    return {
      'selected': [],
      'sortColumn': '',
      'sortOrder': 'arc'
    };
  },
  components: {
    'CheckBox': CheckBox
  },
  computed: {
    columns: function columns() {
      if (this.element) {
        var columns = [];

        if (this.element.props.columns && this.element.props.columns.length > 0) {
          columns = this.element.props.columns.map(function (col) {
            return col.label;
          });
        } else {
          var data = this.parseData(this.element.props.data);
          columns = data[0];
        }

        var offset = 0;

        if (this.hasCheckBox) {
          columns.unshift('');
          offset = 1;
        }

        if (this.hasActions) {
          columns.push('');
        }

        return columns.map(function (col, i) {
          return {
            id: i,
            label: col,
            key: i - offset
          };
        });
      }

      return [];
    },
    hasCheckBox: function hasCheckBox() {
      if (this.element) {
        return this.element.style.checkBox === true;
      }

      return false;
    },
    hasActions: function hasActions() {
      if (this.element) {
        return this.element.props.tableActions && this.element.props.tableActions.length > 0;
      }

      return false;
    },
    actions: function actions() {
      if (this.element) {
        return this.element.props.tableActions;
      }

      return [];
    },
    sortedRows: function sortedRows() {
      var _this = this;

      if (this.sortColumn) {
        var key = this.sortColumn.key;
        var rows = this.rows;
        return rows.sort(function (a, b) {
          var valueA = a.values[key];
          var valueB = b.values[key];

          if (valueA.localeCompare && valueB.localeCompare) {
            if (_this.sortOrder === 'asc') {
              return valueA.localeCompare(valueB);
            } else {
              return valueB.localeCompare(valueA);
            }
          }

          if (_this.sortOrder === 'asc') {
            return valueA - valueB;
          } else {
            return valueB - valueA;
          }
        });
      }

      return this.rows;
    },
    rows: function rows() {
      var dataBindingInput = this.dataBindingInput;

      if (dataBindingInput && Array.isArray(dataBindingInput)) {
        if (this.element && this.element.props && this.element.props.columns && this.element.props.columns.length > 0) {
          var cols = this.element.props.columns;
          return dataBindingInput.map(function (row, i) {
            var values = cols.map(function (col) {
              if (row[col.databinding] !== undefined) {
                return row[col.databinding];
              }

              return '';
            });
            return {
              id: i,
              values: values,
              obj: row
            };
          });
        }

        return dataBindingInput;
      } else {
        if (this.element) {
          var data = this.parseData(this.element.props.data);
          return data.filter(function (row, i) {
            return i > 0;
          }).map(function (row, i) {
            return {
              id: i,
              values: row,
              obj: row
            };
          });
        }
      }

      return [];
    }
  },
  methods: {
    sortBy: function sortBy(col) {
      core_Logger.log(0, 'qTable.sortBy() enter > ', col);
      this.sortColumn = col;

      if (this.sortOrder === 'asc') {
        this.sortOrder = 'desc';
      } else {
        this.sortOrder = 'asc';
      }
    },
    onActionClick: function onActionClick(action, row) {
      core_Logger.log(5, 'qTable.onActionClick() enter > ' + action.label, row);
      this.$emit('qCallback', this.element, {
        callback: action.callback,
        params: row.obj
      });
    },
    selectRow: function selectRow(row) {
      var _this2 = this;

      var pos = this.selected.indexOf(row.id);

      if (pos < 0) {
        this.selected.push(row.id);
      } else {
        this.$delete(this.selected, pos);
      }

      var databinding = this.dataBinding;

      if (databinding.output) {
        var values = this.rows.filter(function (row) {
          return _this2.selected.indexOf(row.id) >= 0;
        }).map(function (row) {
          return row.obj;
        });
        this.onValueChange(values, 'output');
      }
    },
    isRowSelected: function isRowSelected(row) {
      return this.selected.indexOf(row.id) >= 0;
    },
    parseData: function parseData(data) {
      /**
       * for now assume csv
       */
      if (data.substring) {
        var table = [];
        var lines = data.split("\n");

        for (var i = 0; i < lines.length; i++) {
          var line = lines[i];
          table.push(line.split(","));
        }

        return table;
      } else {
        return data;
      }
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qTable.mounted() enter');
  }
});
// CONCATENATED MODULE: ./src/qux/web/Table.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Table.vue?vue&type=style&index=0&id=69078851&lang=scss
var Tablevue_type_style_index_0_id_69078851_lang_scss = __webpack_require__("d63c");

// CONCATENATED MODULE: ./src/qux/web/Table.vue







const Table_exports_ = /*#__PURE__*/exportHelper_default()(Tablevue_type_script_lang_js, [['render',Tablevue_type_template_id_69078851_render]])

/* harmony default export */ var Table = (Table_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Paging.vue?vue&type=template&id=2fa03020

var Pagingvue_type_template_id_2fa03020_hoisted_1 = {
  class: /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-common-label')
};
var Pagingvue_type_template_id_2fa03020_hoisted_2 = ["onClick"];
var Pagingvue_type_template_id_2fa03020_hoisted_3 = {
  class: /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-common-label ')
};
var Pagingvue_type_template_id_2fa03020_hoisted_4 = {
  class: /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-common-label  ')
};
function Pagingvue_type_template_id_2fa03020_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-paging qux-common-no-select', _ctx.cssClass])
  }, [$options.hasBack ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
    key: 0,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-paging-item ' + $options.valign),
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.onBack && $options.onBack.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Pagingvue_type_template_id_2fa03020_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])($options.backIcon)
  }, null, 2)])], 2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.pages, function (page) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-paging-item', {
        'qux-paging-item-active': $options.isChecked(page)
      }, $options.valign]),
      key: page.value,
      onClick: function onClick($event) {
        return $options.onSelect(page);
      }
    }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Pagingvue_type_template_id_2fa03020_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(page.label), 1)], 10, Pagingvue_type_template_id_2fa03020_hoisted_2);
  }), 128)), $options.hasNext ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
    key: 1,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-paging-item ' + $options.valign),
    onClick: _cache[1] || (_cache[1] = function () {
      return $options.onNext && $options.onNext.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Pagingvue_type_template_id_2fa03020_hoisted_4, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])($options.nextIcon)
  }, null, 2)])], 2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Paging.vue?vue&type=template&id=2fa03020

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Paging.vue?vue&type=script&lang=js


 //import Vue from 'vue'

/* harmony default export */ var Pagingvue_type_script_lang_js = ({
  name: 'qStepper',
  mixins: [_Base],
  data: function data() {
    return {
      selected: 0,
      offset: 0
    };
  },
  computed: {
    selectedValue: function selectedValue() {
      if (this.element) {
        var dataBindig = this.dataBinding;

        if (dataBindig && dataBindig.output) {
          return core_JSONPath.get(this.value, dataBindig.output);
        }
      }

      return this.selected;
    },
    maxValue: function maxValue() {
      var dataBindig = this.dataBinding;

      if (dataBindig && dataBindig.elements) {
        return core_JSONPath.get(this.value, dataBindig.elements);
      }

      if (this.element) {
        return this.element.props.max;
      }

      return 0;
    },
    hasBack: function hasBack() {
      return this.offset > 0;
    },
    backIcon: function backIcon() {
      if (this.element) {
        return this.element.props.iconBack;
      }

      return '';
    },
    nextIcon: function nextIcon() {
      if (this.element) {
        return this.element.props.iconNext;
      }

      return '';
    },
    hasNext: function hasNext() {
      return this.numberofVisibleElements + this.offset < this.maxValue;
    },
    numberofVisibleElements: function numberofVisibleElements() {
      if (this.element) {
        return this.getNumberOfVisibleElements(this.element, this.element.style, this.element.w);
      }

      return 0;
    },
    valign: function valign() {
      if (this.element.style && this.element.style.verticalAlign) {
        return "qux-valign-".concat(this.element.style.verticalAlign, " ");
      }

      return '';
    },
    pages: function pages() {
      var pages = [];

      for (var i = 0; i < this.numberofVisibleElements; i++) {
        pages.push({
          value: this.offset + i,
          label: this.offset + i + 1
        });
      }

      return pages;
    }
  },
  methods: {
    onBack: function onBack() {
      core_Logger.log(0, 'QPaging', 'onBack');
      this.offset -= this.numberofVisibleElements;

      if (this.offset < 2) {
        this.offset = 0;
      }
    },
    onNext: function onNext() {
      core_Logger.log(0, 'QPaging', 'onNext');
      this.offset += this.numberofVisibleElements;

      if (this.offset > this.maxValue - this.numberofVisibleElements) {
        this.offset = this.maxValue - this.numberofVisibleElements;
      }
    },
    onSelect: function onSelect(page) {
      core_Logger.log(1, 'QPaging', 'onSelect', page.value);
      this.onValueChange(page.value, 'output');
      this.selected = page.value;
    },
    isChecked: function isChecked(page) {
      return page.value === this.selectedValue;
    },
    getNumberOfVisibleElements: function getNumberOfVisibleElements(model, style, width) {
      // keep in szyn
      var elementWidth = style.fontSize * 2;
      var numberofVisibleElements = Math.round(width * 0.9 / elementWidth) - 1;
      numberofVisibleElements = Math.min(numberofVisibleElements, model.props.max);

      if (model.props.maxVisisble > 1) {
        numberofVisibleElements = Math.min(numberofVisibleElements, model.props.maxVisisble);
      }

      if (this.offset > 0) {
        numberofVisibleElements--;
      }

      return numberofVisibleElements;
    }
  },
  mounted: function mounted() {
    core_Logger.log(3, 'QPaging', 'mounted');
  }
});
// CONCATENATED MODULE: ./src/qux/web/Paging.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Paging.vue?vue&type=style&index=0&id=2fa03020&lang=scss
var Pagingvue_type_style_index_0_id_2fa03020_lang_scss = __webpack_require__("ed76");

// CONCATENATED MODULE: ./src/qux/web/Paging.vue







const Paging_exports_ = /*#__PURE__*/exportHelper_default()(Pagingvue_type_script_lang_js, [['render',Pagingvue_type_template_id_2fa03020_render]])

/* harmony default export */ var Paging = (Paging_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Chart.vue?vue&type=template&id=14b478fc

var Chartvue_type_template_id_14b478fc_hoisted_1 = ["src"];
function Chartvue_type_template_id_14b478fc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-chart', _ctx.cssClass, 'qux-chart-' + $options.chartType])
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("img", {
    src: $options.chartImage
  }, null, 8, Chartvue_type_template_id_14b478fc_hoisted_1)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Chart.vue?vue&type=template&id=14b478fc

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Chart.vue?vue&type=script&lang=js

/* harmony default export */ var Chartvue_type_script_lang_js = ({
  name: 'qBarCHart',
  mixins: [_Base],
  data: function data() {
    return {
      scaleFactor: 1
    };
  },
  computed: {
    chartType: function chartType() {
      if (this.element) {
        return this.element.type;
      }

      return '';
    },
    chartImage: function chartImage() {
      if (this.element) {
        var url = this.render(this.element, this.element.style, this.chartData, this.chartValue);
        return url;
      }

      return '';
    },
    chartData: function chartData() {
      var input = this.dataBindingInput;

      if (input) {
        return input;
      }

      if (this.element && this.element.props) {
        return this.element.props.data;
      }

      return [];
    },
    chartValue: function chartValue() {
      var input = this.dataBindingInput;

      if (input !== null && input !== undefined) {
        return input;
      }

      if (this.element && this.element.props) {
        return this.element.props.value;
      }

      return 0;
    }
  },
  methods: {
    render: function render(model, style, data, value) {
      if (model.type == "BarChart") {
        if (model.props.isHorizontal) {
          return this.renderHorizontal(model, style, data, value);
        } else if (model.props.isLine) {
          return this.renderLine(model, style, data, value);
        } else {
          return this.renderVertical(model, style, data, value);
        }
      } else if (model.type == "RingChart") {
        return this.renderRing(model, style, data, value);
      } else if (model.type == "MultiRingChart") {
        var r = Math.round(Math.min(model.w, model.h) / 2);
        var width = Math.min(r, style.lineWidth * this.scaleFactor);
        return this.renderPie(model, style, data, width);
      } else if (model.type == "PieChart") {
        var _width = Math.min(model.w, model.h) / 2;

        return this.renderPie(model, style, data, _width);
      } else {
        console.warn("render() > Not supported type : " + model.type);
      }
    },
    renderRing: function renderRing(model, style, data, p) {
      if (p > 1) {
        p = p / 100;
      }

      var w = model.w * this.scaleFactor;
      var h = model.h * this.scaleFactor;
      var canvas = document.createElement("canvas");
      canvas.width = w;
      canvas.height = h; // let n = 0.5;

      var x = Math.round(Math.min(w, h) / 2);
      var width = Math.min(x, style.lineWidth * this.scaleFactor);
      var ctx = canvas.getContext("2d");
      ctx.beginPath();
      var s = this.degreesToRadians(p * 360);
      var e = this.degreesToRadians(360);
      ctx.arc(x, x, x - width / 2, s, e);
      ctx.strokeStyle = style.background;
      ctx.lineWidth = width;
      ctx.stroke();
      ctx.beginPath();
      s = this.degreesToRadians(0);
      e = this.degreesToRadians(360 * p);
      ctx.arc(x, x, x - width / 2, s, e);
      ctx.strokeStyle = style.color;
      ctx.lineWidth = width;
      ctx.stroke();
      return canvas.toDataURL("image/png");
    },
    renderPie: function renderPie(model, style, data, width) {
      var w = model.w * this.scaleFactor;
      var h = model.h * this.scaleFactor;
      var canvas = document.createElement("canvas");
      canvas.width = w;
      canvas.height = h;
      var x = Math.round(Math.min(w, h) / 2);
      /**
       * ToDo: Check if array of arrays or simple array
       */

      var row = data[0];
      var sum = 0;

      for (var i = 0; i < row.length; i++) {
        sum += row[i] * 1;
      }

      var ctx = canvas.getContext("2d");
      var lastP = 0;

      for (var _i = 0; _i < row.length; _i++) {
        var v = row[_i];
        var p = v / sum + lastP;
        ctx.beginPath();
        var s = this.degreesToRadians(lastP * 360);
        var e = this.degreesToRadians(360 * p);
        ctx.arc(x, x, x - width / 2, s, e);

        if (style["background" + _i]) {
          ctx.strokeStyle = style["background" + _i];
        }

        ctx.strokeStyle = style.color;
        ctx.lineWidth = width;
        ctx.stroke();
        lastP += v / sum;
      }

      return canvas.toDataURL("image/png");
    },
    degreesToRadians: function degreesToRadians(degrees) {
      return degrees * (Math.PI / 180) - Math.PI / 2;
    },
    renderLine: function renderLine(model, style, data) {
      data = this.flip(data);
      var w = model.w * this.scaleFactor;
      var h = model.h * this.scaleFactor;
      var canvas = document.createElement("canvas");
      canvas.width = w;
      canvas.height = h;
      var n = 0.5;
      var ctx = canvas.getContext("2d");
      /**
       * Render lines
       */

      for (var r = 0; r < data.length; r++) {
        var row = data[r];
        var step = Math.round(w / (row.length - 1));
        ctx.beginPath();
        var y = 0;

        for (var c = 0; c < row.length; c++) {
          var v = row[c];
          y = h - Math.round(v * 1 / this.max * h);

          if (c == 0) {
            ctx.moveTo(n, y + n);
          } else {
            ctx.lineTo(c * step + n, y + n);
          }
        }

        if (model.has && model.has.fill) {
          ctx.lineTo(w + n, y + n);
          ctx.lineTo(w + n, h + n);
          ctx.lineTo(n, h + n);
          ctx.closePath();
        }

        if (style.lineWidth) {
          ctx.lineWidth = style.lineWidth * this.scaleFactor;
        }

        if (style["background" + r]) {
          ctx.strokeStyle = style["background" + r];

          if (model.has && model.has.fill) {
            ctx.fillStyle = style["background" + r];
            ctx.fill();
          }
        }

        ctx.stroke();
      }

      return canvas.toDataURL("image/png");
    },
    renderVertical: function renderVertical(model, style, data) {
      var w = model.w * this.scaleFactor;
      var h = model.h * this.scaleFactor;
      var canvas = document.createElement("canvas");
      canvas.width = w;
      canvas.height = h;
      var ctx = canvas.getContext("2d");
      var summary = this.summary(data);
      var groupWidth = w / summary.groups;

      for (var r = 0; r < data.length; r++) {
        var group = data[r];
        var barWidth = Math.floor(groupWidth / (group.length + 1));

        if (barWidth === 100) {
          barWidth = 50;
        }

        var groupOffSet = groupWidth * r + barWidth / 2;

        for (var c = 0; c < group.length; c++) {
          var v = group[c];
          var barHeight = Math.round(h * (v / summary.max));
          var y = Math.round(groupOffSet + c * barWidth);
          ctx.beginPath();
          ctx.lineWidth = "4";
          ctx.strokeStyle = "green";

          if (style["background" + c]) {
            ctx.fillStyle = style["background" + c];
          }

          ctx.fillRect(y, h - barHeight, barWidth, barHeight);
          ctx.stroke();
        }
      }

      return canvas.toDataURL("image/png");
    },
    renderHorizontal: function renderHorizontal(model, style, data) {
      //
      //console.debug(model, style, data)
      var w = model.w * this.scaleFactor;
      var h = model.h * this.scaleFactor;
      var canvas = document.createElement("canvas");
      canvas.width = w;
      canvas.height = h;
      var ctx = canvas.getContext("2d");
      var summary = this.summary(data);
      var groupHeight = w / summary.groups;

      for (var r = 0; r < data.length; r++) {
        var group = data[r];
        var barHeight = Math.floor(groupHeight / (group.length + 1));

        if (barHeight === 100) {
          barHeight = 50;
        }

        var groupOffSet = groupHeight * r + barHeight / 2;

        for (var c = 0; c < group.length; c++) {
          var v = group[c];
          var barWidth = Math.round(h * (v / summary.max));
          var x = Math.round(groupOffSet + c * barHeight);
          ctx.beginPath();
          ctx.lineWidth = "4";
          ctx.strokeStyle = "green";

          if (style["background" + c]) {
            ctx.fillStyle = style["background" + c];
          }

          ctx.fillRect(0, x, barWidth, barHeight);
          ctx.stroke();
        }
      }

      return canvas.toDataURL("image/png");
    },
    summary: function summary(data) {
      var result = {
        max: -10000000,
        groups: data.length
      };

      for (var r = 0; r < data.length; r++) {
        var row = data[r];

        for (var c = 0; c < row.length; c++) {
          result.max = Math.max(result.max, row[c]);
        }
      }

      return result;
    },
    flip: function flip(data) {
      this.max = -10000000;
      this.groups = 0;
      this.count = 0;
      var flipped = [];

      for (var r = 0; r < data.length; r++) {
        var row = data[r];

        for (var c = 0; c < row.length; c++) {
          if (!flipped[c]) {
            flipped[c] = [];
          }

          flipped[c][r] = row[c];
          this.max = Math.max(this.max, row[c]);
          this.count++;
        }
      }

      return flipped;
    },

    /**
     * Can be overwritten by children to have proper type conversion
     */
    _setDataBindingValue: function _setDataBindingValue(v) {
      var data = this.model.props.data;
      var value = this.model.props.value;

      if (this.type == "ring") {
        var v2 = v * 1;

        if (!isNaN(v2)) {
          value = v2;
        } else {
          console.warn('Chart._setDataBindingValue() > Wrong value for ring', v);
          return;
        }
      } else if (this.type === 'pie') {
        /**
         * Expects array with one element of array
         */
        data = [this.objectToArray(v)];
      } else {
        /**
         * Expect columns wise array of arrays
         * [ [1,2], [11, 22]...]
         */
        data = [];
        var temp = this.objectToArray(v);

        for (var r in temp) {
          var row = this.objectToArray(temp[r]);

          for (var c in row) {
            if (!data[c]) {
              data[c] = [];
            }

            data[c].push(row[c]);
          }
        }
      }

      this.renderChart(this.model, this.style, data, value);
      this.setValue(v);
    },
    objectToArray: function objectToArray(v) {
      var result = [];

      for (var key in v) {
        result.push(v[key]);
      }

      return result;
    }
  },
  mounted: function mounted() {//console.debug('Button.mounted()')
  }
});
// CONCATENATED MODULE: ./src/qux/web/Chart.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Chart.vue?vue&type=style&index=0&id=14b478fc&lang=scss
var Chartvue_type_style_index_0_id_14b478fc_lang_scss = __webpack_require__("a61b");

// CONCATENATED MODULE: ./src/qux/web/Chart.vue







const Chart_exports_ = /*#__PURE__*/exportHelper_default()(Chartvue_type_script_lang_js, [['render',Chartvue_type_template_id_14b478fc_render]])

/* harmony default export */ var Chart = (Chart_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Vector.vue?vue&type=template&id=32aacd8d

function Vectorvue_type_template_id_32aacd8d_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-vector', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, null, 2);
}
// CONCATENATED MODULE: ./src/qux/web/Vector.vue?vue&type=template&id=32aacd8d

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Vector.vue?vue&type=script&lang=js


/* harmony default export */ var Vectorvue_type_script_lang_js = ({
  name: 'qVector',
  mixins: [_Base],
  data: function data() {
    return {};
  },

  /**
   * FIXME: add here some stuff for image uploads
   */
  mounted: function mounted() {
    core_Logger.log(4, 'qVector.mounted()', this.element);
  }
});
// CONCATENATED MODULE: ./src/qux/web/Vector.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Vector.vue?vue&type=style&index=0&id=32aacd8d&lang=scss
var Vectorvue_type_style_index_0_id_32aacd8d_lang_scss = __webpack_require__("6381");

// CONCATENATED MODULE: ./src/qux/web/Vector.vue







const Vector_exports_ = /*#__PURE__*/exportHelper_default()(Vectorvue_type_script_lang_js, [['render',Vectorvue_type_template_id_32aacd8d_render]])

/* harmony default export */ var Vector = (Vector_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Timeline.vue?vue&type=template&id=0a766c80


var Timelinevue_type_template_id_0a766c80_hoisted_1 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-timeline-line"
}, null, -1);

var Timelinevue_type_template_id_0a766c80_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-timeline-circle"
}, null, -1);

var Timelinevue_type_template_id_0a766c80_hoisted_3 = {
  class: "qux-timeline-label"
};
function Timelinevue_type_template_id_0a766c80_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-timeline', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, [Timelinevue_type_template_id_0a766c80_hoisted_1, (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.options, function (opt) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-timeline-element', {
        'qux-timeline-element-selected': $options.isChecked(opt)
      }]),
      key: opt
    }, [Timelinevue_type_template_id_0a766c80_hoisted_2, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("label", Timelinevue_type_template_id_0a766c80_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(opt), 1)], 2);
  }), 128))], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Timeline.vue?vue&type=template&id=0a766c80

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Timeline.vue?vue&type=script&lang=js


/* harmony default export */ var Timelinevue_type_script_lang_js = ({
  name: 'qTimeline',
  mixins: [_Base],
  data: function data() {
    return {
      checked: false
    };
  },
  computed: {},
  methods: {
    isChecked: function isChecked(value) {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input !== undefined && input != null) {
          if (isNaN(input)) {
            return input === value;
          }

          var option = this.options[input];
          return option === value;
        }

        if (this.element.props) {
          return this.element.props.selected === value;
        }
      }

      return false;
    }
  },
  watch: {
    value: function value(v) {
      core_Logger.log(5, 'qRadioBox.watch(value) > enter ' + this.lbl, v);

      if (v === false || v === true) {
        this.checked = v;
      }

      this.value = v;
    }
  },
  mounted: function mounted() {
    core_Logger.log(5, 'qRadioBox.mounted() enter');

    if (this.value === true || this.value === true) {
      this.checked = this.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Timeline.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Timeline.vue?vue&type=style&index=0&id=0a766c80&lang=scss
var Timelinevue_type_style_index_0_id_0a766c80_lang_scss = __webpack_require__("8efa");

// CONCATENATED MODULE: ./src/qux/web/Timeline.vue







const Timeline_exports_ = /*#__PURE__*/exportHelper_default()(Timelinevue_type_script_lang_js, [['render',Timelinevue_type_template_id_0a766c80_render]])

/* harmony default export */ var Timeline = (Timeline_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Upload.vue?vue&type=template&id=0e5fb944

var Uploadvue_type_template_id_0e5fb944_hoisted_1 = {
  class: "qux-common-label"
};
function Uploadvue_type_template_id_0e5fb944_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-upload', _ctx.cssClass, {
      'qux-upload-has-files': $options.hasFiles
    }])
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Uploadvue_type_template_id_0e5fb944_hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])($options.label), 1), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
    type: "file",
    class: "MatcWidgetTypeUploadFile",
    ref: "input",
    onChange: _cache[0] || (_cache[0] = function () {
      return $options.onFileChange && $options.onFileChange.apply($options, arguments);
    })
  }, null, 544)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Upload.vue?vue&type=template&id=0e5fb944

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Upload.vue?vue&type=script&lang=js


/* harmony default export */ var Uploadvue_type_script_lang_js = ({
  name: "qUpload",
  mixins: [_Base],
  data: function data() {
    return {};
  },
  components: {},
  computed: {
    hasFiles: function hasFiles() {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          return input !== undefined && input !== null;
        }
      }

      return false;
    },
    label: function label() {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          if (this.maxFiles > 1 && Array.isArray(input)) {
            return input.map(function (f) {
              return f.name;
            }).join(', ');
          } else {
            return input.name;
          }
        }
      }

      if (this.element && this.element.props) {
        return this.element.props.label;
      }

      return '';
    },
    maxFiles: function maxFiles() {
      if (this.element && this.element.props && this.element.props.maxFiles !== undefined) {
        return this.element.props.maxFiles;
      }

      return 1;
    }
  },
  methods: {
    onFileChange: function onFileChange(e) {
      if (this.$refs.input) {
        var files = this.$refs.input.files;

        if (files.length >= this.maxFiles) {
          this.setFiles(files, e);
        }
      }
    },
    setFiles: function setFiles(files, e) {
      core_Logger.log(1, 'Upload.setFiles', files);

      if (this.element) {
        if (this.maxFiles === 1) {
          var value = files[0];
          this.onValueChange(value, 'default', e);
          core_Logger.log(5, 'Upload.setFiles() >' + this.dataBindingInputPath, value);
        } else {
          var _value = Array.from(files);

          this.onValueChange(_value, 'default', e);
          core_Logger.log(5, 'Upload.setFiles(1) >' + this.dataBindingInputPath, _value);
        }
      }
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Upload.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Upload.vue?vue&type=style&index=0&id=0e5fb944&lang=scss
var Uploadvue_type_style_index_0_id_0e5fb944_lang_scss = __webpack_require__("5991");

// CONCATENATED MODULE: ./src/qux/web/Upload.vue







const Upload_exports_ = /*#__PURE__*/exportHelper_default()(Uploadvue_type_script_lang_js, [['render',Uploadvue_type_template_id_0e5fb944_render]])

/* harmony default export */ var Upload = (Upload_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Camera.vue?vue&type=template&id=44f3d424

function Cameravue_type_template_id_44f3d424_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-camera', _ctx.cssClass, {
      'qux-camera-has-files': $options.hasFiles
    }])
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])([$options.icon, 'qux-camera-icon'])
  }, null, 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
    type: "file",
    ref: "input",
    onChange: _cache[0] || (_cache[0] = function () {
      return $options.onFileChange && $options.onFileChange.apply($options, arguments);
    }),
    accept: "image/*",
    capture: "user"
  }, null, 544)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/Camera.vue?vue&type=template&id=44f3d424

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Camera.vue?vue&type=script&lang=js


/* harmony default export */ var Cameravue_type_script_lang_js = ({
  name: "qUpload",
  mixins: [_Base],
  data: function data() {
    return {};
  },
  components: {},
  computed: {
    icon: function icon() {
      if (this.element && this.element.style && this.element.style.icon) {
        return 'mdi ' + this.element.style.icon;
      }

      return '';
    },
    hasFiles: function hasFiles() {
      if (this.element) {
        var input = this.dataBindingInput;

        if (input) {
          return input !== undefined && input !== null;
        }
      }

      return false;
    },
    maxFiles: function maxFiles() {
      if (this.element && this.element.props && this.element.props.maxFiles !== undefined) {
        return this.element.props.maxFiles;
      }

      return 1;
    }
  },
  methods: {
    onFileChange: function onFileChange(e) {
      if (this.$refs.input) {
        var files = this.$refs.input.files;

        if (files.length >= this.maxFiles) {
          this.setFiles(files, e);
        }
      }
    },
    setFiles: function setFiles(files, e) {
      core_Logger.log(1, 'Camera.setFiles', files);

      if (this.element) {
        if (this.maxFiles === 1) {
          var value = files[0];
          this.onValueChange(value, 'default', e);
          core_Logger.log(5, 'Upload.setFiles() >' + this.dataBindingInputPath, value);
        } else {
          var _value = Array.from(files);

          this.onValueChange(_value, 'default', e);
          core_Logger.log(5, 'Upload.setFiles(1) >' + this.dataBindingInputPath, _value);
        }

        this.onClick(e);
      }
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Camera.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Camera.vue?vue&type=style&index=0&id=44f3d424&lang=scss
var Cameravue_type_style_index_0_id_44f3d424_lang_scss = __webpack_require__("32b2");

// CONCATENATED MODULE: ./src/qux/web/Camera.vue







const Camera_exports_ = /*#__PURE__*/exportHelper_default()(Cameravue_type_script_lang_js, [['render',Cameravue_type_template_id_44f3d424_render]])

/* harmony default export */ var Camera = (Camera_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/UploadPreview.vue?vue&type=template&id=3d974a76

function UploadPreviewvue_type_template_id_3d974a76_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-upload-preview', _ctx.cssClass, {
      'qux-upload-preview-border': $options.hasBorder
    }]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    }),
    style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])({
      'backgroundImage': $options.src
    })
  }, null, 6);
}
// CONCATENATED MODULE: ./src/qux/web/UploadPreview.vue?vue&type=template&id=3d974a76

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/UploadPreview.vue?vue&type=script&lang=js


/* harmony default export */ var UploadPreviewvue_type_script_lang_js = ({
  name: 'qUploadPreview',
  mixins: [_Base],
  data: function data() {
    return {
      dataURL: '',
      placeholder: ''
    };
  },
  computed: {
    hasBorder: function hasBorder() {
      var file = this.dataBindingInput;
      return file === null || file === undefined;
    },
    src: function src() {
      var file = this.dataBindingInput;

      if (file && file.name && file.size) {
        this.setFile();
        return this.dataURL;
      }

      if (file && file.url) {
        return "url(".concat(file.url, ")");
      }

      if (file && file.indexOf && file.indexOf('http') === 0) {
        return "url(".concat(file, ")");
      }

      return this.placeholder;
    }
  },
  methods: {
    getImagePlaceHolder: function getImagePlaceHolder(widget) {
      var w = widget.w * 2;
      var h = widget.h * 2;
      var c = document.createElement("canvas");
      var context = c.getContext("2d");
      c.width = w;
      c.height = h;
      h += 0.5;
      w += 0.5;
      var n = 0.5;
      context.moveTo(n, n);
      context.lineTo(w, h);
      context.moveTo(w, n);
      context.lineTo(n, h);
      context.strokeStyle = "#333";
      context.strokeWidth = 2;
      context.imageSmoothingEnabled = false;
      context.stroke();
      var url = 'url(' + c.toDataURL("image/png") + ')';
      return url;
    },
    setFile: function setFile() {
      var _this = this;

      core_Logger.log(1, 'qUploadPreview.setFile()');
      var file = this.dataBindingInput;

      if (file && file.name && file.size) {
        var reader = new FileReader();

        if (reader.readAsDataURL) {
          reader.onload = function () {
            _this.dataURL = 'url(' + reader.result + ')';
          };

          reader.readAsDataURL(file);
        }
      }
    }
  },
  watch: {
    value: function value(v) {
      this.setFile(v);
    }
  },
  mounted: function mounted() {
    core_Logger.log(4, 'qUploadPreview.mounted()');

    if (this.element) {
      this.placeholder = this.getImagePlaceHolder(this.element);
    }

    this.setFile();
  }
});
// CONCATENATED MODULE: ./src/qux/web/UploadPreview.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/UploadPreview.vue?vue&type=style&index=0&id=3d974a76&lang=scss
var UploadPreviewvue_type_style_index_0_id_3d974a76_lang_scss = __webpack_require__("0865");

// CONCATENATED MODULE: ./src/qux/web/UploadPreview.vue







const UploadPreview_exports_ = /*#__PURE__*/exportHelper_default()(UploadPreviewvue_type_script_lang_js, [['render',UploadPreviewvue_type_template_id_3d974a76_render]])

/* harmony default export */ var UploadPreview = (UploadPreview_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/ChildrenToggle.vue?vue&type=template&id=5ea1dd04

function ChildrenTogglevue_type_template_id_5ea1dd04_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-children-toggle', _ctx.cssClass, {
      'qux-active': $options.isActive
    }]),
    onClick: _cache[1] || (_cache[1] = function () {
      return $options.toggle && $options.toggle.apply($options, arguments);
    })
  }, [$options.isActive ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], {
    key: 0
  }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(_ctx.element.children, function (child) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDynamicComponent"])(child.qtype), {
      key: child.id,
      element: child,
      model: _ctx.model,
      config: _ctx.config,
      modelValue: _ctx.value,
      "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
        return _ctx.value = $event;
      }),
      onQDesignSystemCallback: $options.forwardDesignSystemCallback,
      onQCallback: $options.forwardCallback,
      onQClick: $options.forwardClick,
      onQChange: $options.forwardChange,
      onQKeyPress: $options.forwardKeyPress,
      onQFocus: $options.forwardFocus,
      onQBlur: $options.forwardBlur,
      onQMouseOver: $options.forwardMouseOver,
      onQMouseOut: $options.forwardMouseOut
    }, null, 8, ["element", "model", "config", "modelValue", "onQDesignSystemCallback", "onQCallback", "onQClick", "onQChange", "onQKeyPress", "onQFocus", "onQBlur", "onQMouseOver", "onQMouseOut"]);
  }), 128)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/web/ChildrenToggle.vue?vue&type=template&id=5ea1dd04

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/ChildrenToggle.vue?vue&type=script&lang=js


/* harmony default export */ var ChildrenTogglevue_type_script_lang_js = ({
  name: 'qChildrenToggle',
  mixins: [_Base],
  data: function data() {
    return {
      active: true
    };
  },
  computed: {
    isActive: function isActive() {
      if (this.isDesignSystemRoot) {
        /**
         * If no v-model is passed, we take the active
         */
        if (this.value === undefined) {
          return this.active;
        }

        return this.value;
      }

      if (this.element) {
        var input = this.dataBindingInput;
        core_Logger.log(3, 'qChildrenToggle.toggle() >' + this.dataBindingInputPath, input);
        return input === true;
      }

      return this.active;
    }
  },
  methods: {
    toggle: function toggle(e) {
      /**
       * We stop this here, because of the repeater in the demo.
       */
      this.stopEvent(e);

      if (this.element) {
        var value = !this.isActive;
        this.onValueChange(value, 'default');
        this.active = value;
        core_Logger.log(3, 'qChildrenToggle.toggle() >' + this.dataBindingInputPath, value);
      } else {
        this.active = !this.active;
        this.$emit('change', this.active);
        this.$emit('update:modelValue', this.active);
        core_Logger.log(5, 'qChildrenToggle.toggle() >' + this.active);
      }
    },
    forwardClick: function forwardClick(element, e, value) {
      this.$emit('qClick', element, e, value);
    },
    forwardChange: function forwardChange(element, e, value) {
      this.$emit('qChange', element, e, value);
    },
    forwardFocus: function forwardFocus(element, e, value) {
      this.$emit('qFocus', element, e, value);
    },
    forwardBlur: function forwardBlur(element, e, value) {
      this.$emit('qBlur', element, e, value);
    },
    forwardMouseOver: function forwardMouseOver(element, e, value) {
      this.$emit('qMouseOver', element, e, value);
    },
    forwardMouseOut: function forwardMouseOut(element, e, value) {
      this.$emit('qMouseOut', element, e, value);
    },
    forwardKeyPress: function forwardKeyPress(element, e, value) {
      this.$emit('qKeyPress', element, e, value);
    },
    forwardCallback: function forwardCallback(element, e, value) {
      this.$emit('qCallback', element, e, value);
    },
    forwardDesignSystemCallback: function forwardDesignSystemCallback(element, e, type, callback) {
      this.$emit('qDesignSystemCallback', element, e, type, callback);
    }
  },
  watch: {
    value: function value(v) {
      core_Logger.log(-1, 'qChildrenToggle.watch(value) > enter', v);

      if (v === false || v === true) {
        this.active = v;
      }

      this.value = v;
    }
  },
  mounted: function mounted() {
    core_Logger.log(-1, 'qChildrenToggle.mounted() enter', this.value);

    if (this.value === true || this.value === true) {
      this.active = this.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/ChildrenToggle.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/ChildrenToggle.vue?vue&type=style&index=0&id=5ea1dd04&lang=scss
var ChildrenTogglevue_type_style_index_0_id_5ea1dd04_lang_scss = __webpack_require__("9137");

// CONCATENATED MODULE: ./src/qux/web/ChildrenToggle.vue







const ChildrenToggle_exports_ = /*#__PURE__*/exportHelper_default()(ChildrenTogglevue_type_script_lang_js, [['render',ChildrenTogglevue_type_template_id_5ea1dd04_render]])

/* harmony default export */ var ChildrenToggle = (ChildrenToggle_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Spinner.vue?vue&type=template&id=6878191f

var Spinnervue_type_template_id_6878191f_hoisted_1 = {
  class: "qux-common-label"
};

var Spinnervue_type_template_id_6878191f_hoisted_2 = /*#__PURE__*/Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
  class: "qux-spinner-border"
}, null, -1);

function Spinnervue_type_template_id_6878191f_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-spinner qux-noselect ', _ctx.cssClass]),
    onMousedown: _cache[0] || (_cache[0] = function () {
      return $options.onStartDnd && $options.onStartDnd.apply($options, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-spinner-option-cntr', {
      'qux-spinner-option-cntr-animated': _ctx.isAnimating
    }]),
    style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])('top: ' + $options.top)
  }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.visibleOption, function (option, i) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
      key: i,
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-spinner-option qux-valign-middle', {
        'qux-spinner-option-selected': option.value === $options.selectedValue
      }])
    }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", Spinnervue_type_template_id_6878191f_hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(option.label), 1)], 2);
  }), 128))], 6), Spinnervue_type_template_id_6878191f_hoisted_2], 34);
}
// CONCATENATED MODULE: ./src/qux/web/Spinner.vue?vue&type=template&id=6878191f

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Spinner.vue?vue&type=script&lang=js



/* harmony default export */ var Spinnervue_type_script_lang_js = ({
  name: 'qSpinner',
  mixins: [_Base, _DND],
  data: function data() {
    return {
      selected: 0,
      offset: 0,
      isAnimating: false
    };
  },
  computed: {
    optionsAsKeyValue: function optionsAsKeyValue() {
      if (this.element) {
        return this.options.map(function (o) {
          if (o.toLowerCase || typeof o === 'number') {
            return {
              label: o,
              value: o
            };
          }

          return o;
        });
      }

      return [];
    },
    selectedIndex: function selectedIndex() {
      var value = this.selectedValue;
      var options = this.optionsAsKeyValue;
      var index = options.findIndex(function (o) {
        return o.value === value;
      });
      return index;
    },
    visibleOption: function visibleOption() {
      if (this.element) {
        var options = this.optionsAsKeyValue;
        var index = this.selectedIndex;
        var result = [];
        var length = this.length;

        for (var i = index - length; i < index + length + 1; i++) {
          var pos = (i + options.length) % options.length;
          var v = options[pos];
          result.push(v);
        }

        return result;
      }

      return [];
    },
    selectedValue: function selectedValue() {
      if (this.element) {
        var selected = this.dataBindingInput;

        if (selected) {
          return selected;
        }
      }

      return this.selected;
    },
    top: function top() {
      return -33 * (this.length - 1) + this.offset + '%'; //'calc(-66%  + ' + this.offset + 'px)'
    },
    length: function length() {
      return 4;
    },
    domPos: function domPos() {
      return this.position(this.$el);
    }
  },
  methods: {
    onStartDnd: function onStartDnd(e) {
      var _this = this;

      var pos = this.domPos;
      var mouse = this.mouse(e);
      var y = mouse.y - pos.y;
      var p = y / pos.h;
      this._startP = p;
      this.startDND(e, function (move, e) {
        return _this.onMove(move, e);
      }, function (up, e) {
        return _this.onEnd(up, e);
      });
    },
    onMove: function onMove(move, e) {
      var pos = this.domPos;
      var mouse = this.mouse(e);

      if (mouse.y > pos.y && mouse.y < pos.y + pos.h) {
        this.offset = move.y / pos.h * 100;
      }
    },
    onEnd: function onEnd(up, e) {
      var _this2 = this;

      /**
       * Get selected index from
       */
      var pos = this.domPos;
      var p = up.y / pos.h * 100;
      var steps = Math.round(p / 33);

      if (steps === 0) {
        var mouse = this.mouse(e);
        console.debug(mouse.y);

        var _p = (mouse.y - pos.y) / pos.h;

        console.debug(_p);

        if (_p < 0.33) {
          steps = 1;
        }

        if (_p > 0.66) {
          steps = -1;
        }
      }

      var newIndex = (this.selectedIndex - steps + this.options.length) % this.options.length;
      var newValue = this.options[newIndex]; // animate to steps * 33.3

      console.debug(steps, newValue, this.offset);
      this.offset = steps * 33.3;
      this.isAnimating = true;
      setTimeout(function () {
        _this2.isAnimating = false;
        _this2.offset = 0;

        _this2.onChange(newValue);
      }, 330); //this.onChange(newValue)
      // animate and count offset to
      //this.offset = 0
    },
    onChange: function onChange(value) {
      this.selected = value;

      if (this.element) {
        this.onValueChange(this.selected, 'default');
        this.$emit('qChange', this.element, null, this.selected);
      } else {
        this.$emit('change', this.selected);
        this.$emit('update:modelValue', this.selected);
      }

      core_Logger.log(5, 'qSpinner.onChange() exit > ', this.selected);
    }
  },
  mounted: function mounted() {
    if (this.element && this.element.props && this.element.props.value) {
      this.count = this.element.props.value;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/web/Spinner.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Spinner.vue?vue&type=style&index=0&id=6878191f&lang=scss
var Spinnervue_type_style_index_0_id_6878191f_lang_scss = __webpack_require__("4b6f");

// CONCATENATED MODULE: ./src/qux/web/Spinner.vue







const Spinner_exports_ = /*#__PURE__*/exportHelper_default()(Spinnervue_type_script_lang_js, [['render',Spinnervue_type_template_id_6878191f_render]])

/* harmony default export */ var Spinner = (Spinner_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/DynamicContainer.vue?vue&type=template&id=5db800f7

function DynamicContainervue_type_template_id_5db800f7_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-dynamic-container', _ctx.cssClass + ' ' + _ctx.cssComponentClasses]),
    onMouseenter: _cache[0] || (_cache[0] = function () {
      return $options.onMouseHover && $options.onMouseHover.apply($options, arguments);
    }),
    onMouseleave: _cache[1] || (_cache[1] = function () {
      return $options.onMouseOut && $options.onMouseOut.apply($options, arguments);
    })
  }, [$options.selectedChild ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDynamicComponent"])($options.selectedChild.qtype), {
    key: $options.selectedChild.id,
    element: $options.selectedChild,
    model: _ctx.model,
    config: _ctx.config,
    onQDesignSystemCallback: _ctx.forwardDesignSystemCallback,
    onQCallback: $options.forwardCallback,
    onQClick: $options.onClick,
    onQChange: $options.forwardChange,
    onQKeyPress: $options.forwardKeyPress,
    onQFocus: $options.forwardFocus,
    onQBlur: $options.forwardBlur,
    onQMouseOver: _ctx.onMouseOver,
    onQMouseOut: $options.forwardMouseOut
  }, null, 8, ["element", "model", "config", "onQDesignSystemCallback", "onQCallback", "onQClick", "onQChange", "onQKeyPress", "onQFocus", "onQBlur", "onQMouseOver", "onQMouseOut"])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], {
    key: 1
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.qErrorMessage), 1)], 64))], 34);
}
// CONCATENATED MODULE: ./src/qux/web/DynamicContainer.vue?vue&type=template&id=5db800f7

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/DynamicContainer.vue?vue&type=script&lang=js



/* harmony default export */ var DynamicContainervue_type_script_lang_js = ({
  name: 'qDynamicContainer',
  mixins: [_Base],
  data: function data() {
    return {
      selectedValue: null,
      selectedChildIndex: 0,
      dynamicLines: [],
      dynamicChildValues: [],
      qErrorMessage: 'Nothing'
    };
  },
  computed: {
    selectedChild: function selectedChild() {
      if (this.element) {
        var dataBindingInput = this.dataBindingInput;

        if (dataBindingInput !== undefined) {
          var index = this.dynamicChildValues.indexOf(dataBindingInput);

          if (index >= 0 && index < this.element.children.length) {
            var child = this.element.children[index];
            return child;
          }
        }

        return this.element.children[this.selectedChildIndex];
      }

      return null;
    }
  },
  methods: {
    onClick: function onClick(element, e, value) {
      var fromLine = this.dynamicLines.find(function (line) {
        return line.from === element.id && line.event === 'click';
      });
      core_Logger.log(1, 'DynamicContainer.onClick() > ', fromLine);
      this.executeDynamicLine(fromLine);
      this.$emit('qClick', element, e, value);
    },
    onMouseHover: function onMouseHover() {
      var element = this.selectedChild;
      var fromLine = this.dynamicLines.find(function (line) {
        return line.from === element.id && line.event === 'hover';
      });

      if (!fromLine) {
        fromLine = this.dynamicLines.find(function (line) {
          return line.from === element.id && line.event === 'mouseenter';
        });
      }

      core_Logger.log(1, 'DynamicContainer.onMouseOver() > ', fromLine);
      this.executeDynamicLine(fromLine);
    },
    onMouseOut: function onMouseOut() {
      var element = this.selectedChild;
      var fromLine = this.dynamicLines.find(function (line) {
        return line.from === element.id && line.event === 'mouseleave';
      });
      core_Logger.log(-1, 'DynamicContainer.onMouseOut() > ', fromLine);
      this.executeDynamicLine(fromLine);
    },
    executeDynamicLine: function executeDynamicLine(fromLine) {
      if (this.element && this.element.children && fromLine) {
        var toIndex = this.element.children.findIndex(function (c) {
          return c.id === fromLine.to;
        });

        if (toIndex >= 0) {
          core_Logger.log(1, 'DynamicContainer.executeDynamicLine() > select ', fromLine.to, toIndex);
          this.selectedChildIndex = toIndex;
          this.emitDynamicDataBinding(toIndex);
          return;
        }
      }
    },
    emitDynamicDataBinding: function emitDynamicDataBinding(index) {
      var value = this.dynamicChildValues[index];
      this.onValueChange(value);
      core_Logger.log(1, 'DynamicContainer.emitDynamicDataBinding() > ', value);
    },
    forwardClick: function forwardClick(element, e, value) {
      this.$emit('qClick', element, e, value);
    },
    forwardChange: function forwardChange(element, e, value) {
      this.$emit('qChange', element, e, value);
    },
    forwardFocus: function forwardFocus(element, e, value) {
      this.$emit('qFocus', element, e, value);
    },
    forwardBlur: function forwardBlur(element, e, value) {
      this.$emit('qBlur', element, e, value);
    },
    forwardMouseOver: function forwardMouseOver(element, e, value) {
      this.$emit('qMouseOver', element, e, value);
    },
    forwardMouseOut: function forwardMouseOut(element, e, value) {
      this.$emit('qMouseOut', element, e, value);
    },
    forwardKeyPress: function forwardKeyPress(element, e, value) {
      this.$emit('qKeyPress', element, e, value);
    },
    forwardCallback: function forwardCallback(element, e, value) {
      this.$emit('qCallback', element, e, value);
    }
  },
  mounted: function mounted() {
    core_Logger.log(-1, 'DynamicComponent.mounted()', this.element);

    if (this.element && this.element.props) {
      if (this.element.props.dynamicLines) {
        this.dynamicLines = this.element.props.dynamicLines;
      }
    }

    var childDataValues = [];

    if (this.element.children) {
      this.element.children.forEach(function (child, index) {
        if (child.props) {
          var dataValue = child.props.dataValue;

          if (dataValue !== undefined) {
            dataValue = stringToType(dataValue);
          } else {
            dataValue = index;
          }

          childDataValues[index] = dataValue;
        }
      });
    }

    this.dynamicChildValues = childDataValues;
    core_Logger.log(1, 'DynamicComponent.mounted() > dataValues', this.dynamicChildValues);
  }
});
// CONCATENATED MODULE: ./src/qux/web/DynamicContainer.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/DynamicContainer.vue?vue&type=style&index=0&id=5db800f7&lang=scss
var DynamicContainervue_type_style_index_0_id_5db800f7_lang_scss = __webpack_require__("35ed");

// CONCATENATED MODULE: ./src/qux/web/DynamicContainer.vue







const DynamicContainer_exports_ = /*#__PURE__*/exportHelper_default()(DynamicContainervue_type_script_lang_js, [['render',DynamicContainervue_type_template_id_5db800f7_render]])

/* harmony default export */ var DynamicContainer = (DynamicContainer_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/RichText.vue?vue&type=template&id=033a04d5

var RichTextvue_type_template_id_033a04d5_hoisted_1 = {
  class: "qux-common-label"
};
var RichTextvue_type_template_id_033a04d5_hoisted_2 = {
  class: "qux-common-label"
};
function RichTextvue_type_template_id_033a04d5_render(_ctx, _cache, $props, $setup, $data, $options) {
  var _component_router_link = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("router-link");

  return _ctx.hasLink ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_router_link, {
    key: 0,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-rich-text', _ctx.cssClass]),
    onClick: _ctx.onClick,
    to: _ctx.link
  }, {
    default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(function () {
      return [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", RichTextvue_type_template_id_033a04d5_hoisted_1, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.children, function (child, i) {
        return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
          key: i,
          class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-rich-text-child-' + i)
        }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(child), 3);
      }), 128))])];
    }),
    _: 1
  }, 8, ["class", "onClick", "to"])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("label", {
    key: 1,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-rich-text', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    })
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", RichTextvue_type_template_id_033a04d5_hoisted_2, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.children, function (child, i) {
    return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
      key: i,
      class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-rich-text-child-' + i)
    }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(child), 3);
  }), 128))])], 2));
}
// CONCATENATED MODULE: ./src/qux/web/RichText.vue?vue&type=template&id=033a04d5

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/RichText.vue?vue&type=script&lang=js

/* harmony default export */ var RichTextvue_type_script_lang_js = ({
  name: 'qRichText',
  mixins: [_Base],
  data: function data() {
    return {};
  },
  computed: {
    children: function children() {
      if (this.element && this.element.props && this.element.props.richTextLabel) {
        var children = this.element.props.richTextLabel.map(function (t) {
          return t.label;
        });
        return children;
      }

      return [];
    }
  },
  mounted: function mounted() {}
});
// CONCATENATED MODULE: ./src/qux/web/RichText.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/RichText.vue?vue&type=style&index=0&id=033a04d5&lang=scss
var RichTextvue_type_style_index_0_id_033a04d5_lang_scss = __webpack_require__("cc7d");

// CONCATENATED MODULE: ./src/qux/web/RichText.vue







const RichText_exports_ = /*#__PURE__*/exportHelper_default()(RichTextvue_type_script_lang_js, [['render',RichTextvue_type_template_id_033a04d5_render]])

/* harmony default export */ var RichText = (RichText_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Link.vue?vue&type=template&id=17dac503

var Linkvue_type_template_id_17dac503_hoisted_1 = ["href"];
var Linkvue_type_template_id_17dac503_hoisted_2 = ["innerHTML"];
var Linkvue_type_template_id_17dac503_hoisted_3 = {
  key: 1,
  class: "qux-common-label"
};
var Linkvue_type_template_id_17dac503_hoisted_4 = {
  key: 2,
  class: "qux-common-label"
};
function Linkvue_type_template_id_17dac503_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("a", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-label', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return _ctx.onClick && _ctx.onClick.apply(_ctx, arguments);
    }),
    href: $options.linkURL
  }, [_ctx.dataBindingLabel && _ctx.dataBindingLabel.type === 'richtext' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", {
    key: 0,
    class: "qux-richtext",
    innerHTML: _ctx.dataBindingLabel.value
  }, null, 8, Linkvue_type_template_id_17dac503_hoisted_2)) : _ctx.dataBindingLabel && !_ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", Linkvue_type_template_id_17dac503_hoisted_3, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.dataBindingLabel), 1)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), _ctx.hasSlot ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", Linkvue_type_template_id_17dac503_hoisted_4, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "default")])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, Linkvue_type_template_id_17dac503_hoisted_1);
}
// CONCATENATED MODULE: ./src/qux/web/Link.vue?vue&type=template&id=17dac503

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/Link.vue?vue&type=script&lang=js

/* harmony default export */ var Linkvue_type_script_lang_js = ({
  name: 'qLink',
  mixins: [_Base],
  data: function data() {
    return {};
  },
  computed: {
    linkURL: function linkURL() {
      if (this.element && this.element.props && this.element.props.url) {
        return this.element.props.url;
      }

      return '';
    },
    isRichText: function isRichText() {
      var label = this.dataBindingLabel;

      if (label && label.type === 'richtext') {
        return true;
      }

      return false;
    }
  },
  mounted: function mounted() {}
});
// CONCATENATED MODULE: ./src/qux/web/Link.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/Link.vue?vue&type=style&index=0&id=17dac503&lang=scss
var Linkvue_type_style_index_0_id_17dac503_lang_scss = __webpack_require__("ef5f");

// CONCATENATED MODULE: ./src/qux/web/Link.vue







const Link_exports_ = /*#__PURE__*/exportHelper_default()(Linkvue_type_script_lang_js, [['render',Linkvue_type_template_id_17dac503_render]])

/* harmony default export */ var Link = (Link_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/Luisa.vue?vue&type=template&id=7a806424

var Luisavue_type_template_id_7a806424_hoisted_1 = {
  key: 1
};
function Luisavue_type_template_id_7a806424_render(_ctx, _cache, $props, $setup, $data, $options) {
  var _component_qContainer = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("qContainer");

  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux', {
      'qux-component-screen': $options.isComponentScreen
    }])
  }, [$options.currentScreen ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_qContainer, {
    key: 0,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-screen', {
      'qux-screen-blurred': $options.isBluredOverlay
    }]),
    element: $options.currentScreen,
    model: _ctx.model,
    config: _ctx.mergedConfig,
    onQCallback: _ctx.onCallback,
    onQClick: _ctx.onClick,
    onQChange: _ctx.onChange,
    onQKeyPress: _ctx.onKeyPress,
    onQFocus: _ctx.onFocus,
    onQBlur: _ctx.onBlur,
    onQMouseOver: _ctx.onMouseOver,
    onQMouseOut: _ctx.onMouseOut
  }, null, 8, ["class", "element", "model", "config", "onQCallback", "onQClick", "onQChange", "onQKeyPress", "onQFocus", "onQBlur", "onQMouseOver", "onQMouseOut"])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Luisavue_type_template_id_7a806424_hoisted_1, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.msg), 1)), $options.hasOverlay ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    key: 2,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-overlay-wrapper', {
      'qux-overlay-wrapper-fixed': $options.isFixedOverlay
    }]),
    onMousedown: _cache[0] || (_cache[0] = function () {
      return _ctx.popOverlay && _ctx.popOverlay.apply(_ctx, arguments);
    }),
    ref: "overlayWrapper"
  }, [$options.currentOverlay ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_qContainer, {
    key: 0,
    ref: "overlayCntr",
    element: $options.currentOverlay,
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])('qux-screen'),
    model: _ctx.model,
    config: _ctx.mergedConfig,
    onQCallback: _ctx.onCallback,
    onQClick: _ctx.onClick,
    onQChange: _ctx.onChange,
    onQKeyPress: _ctx.onKeyPress,
    onQFocus: _ctx.onFocus,
    onQBlur: _ctx.onBlur,
    onQMouseOver: _ctx.onMouseOver,
    onQMouseOut: _ctx.onMouseOut
  }, null, 8, ["element", "model", "config", "onQCallback", "onQClick", "onQChange", "onQKeyPress", "onQFocus", "onQBlur", "onQMouseOver", "onQMouseOut"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 34)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2);
}
// CONCATENATED MODULE: ./src/qux/Luisa.vue?vue&type=template&id=7a806424

// CONCATENATED MODULE: ./src/qux/core/Config.js
function Config_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function Config_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function Config_createClass(Constructor, protoProps, staticProps) { if (protoProps) Config_defineProperties(Constructor.prototype, protoProps); if (staticProps) Config_defineProperties(Constructor, staticProps); return Constructor; }



var Config_Config = /*#__PURE__*/function () {
  function Config() {
    Config_classCallCheck(this, Config);
  }

  Config_createClass(Config, [{
    key: "getFigmaCSS",
    value: function getFigmaCSS() {
      return {
        isFigma: true,
        grid: true,
        justifyContentInWrapper: false,
        pinnedLeft: false,
        pinnedRight: false,
        fixedHorizontal: false,
        attachLabels: false,
        huggedCanResize: true,
        hoverEmbeddedLabel: true
      };
    }
  }, {
    key: "getDefault",
    value: function getDefault() {
      return {
        debug: {
          logLevel: 0
        },
        designletPrefix: '',
        loadFonts: true,
        figma: {
          varientComponentHoverKey: 'Mouse=Hover',
          varientComponentDefaultKey: 'Mouse=Default',
          downloadVectors: true
        },
        css: {
          grid: true,
          justifyContentInWrapper: false,
          attachLabels: true,
          huggedCanResize: true,
          hoverEmbeddedLabel: false
        },
        router: {
          key: "screenName",
          prefix: ""
        },
        databinding: {
          default: ""
        },
        imageFolder: "/img",
        components: {},
        breakpoints: {
          mobile: {
            min: 0,
            max: 400
          },
          tablet: {
            min: 401,
            max: 1200
          },
          desktop: {
            min: 1201,
            max: 1000000
          }
        },
        addDefaultDatabinding: true
      };
    }
  }, {
    key: "merge",
    value: function merge(config, overwrites) {
      if (overwrites.addDefaultDatabinding !== undefined) {
        config.addDefaultDatabinding = overwrites.addDefaultDatabinding;
      }

      if (overwrites.css) {
        config.css = mixin(config.css, overwrites.css);
      }

      if (overwrites.router) {
        config.router = mixin(config.router, overwrites.router);
      }

      if (overwrites.databinding) {
        config.databinding = mixin(config.databinding, overwrites.databinding);
      }

      if (overwrites.components) {
        config.components = overwrites.components;
      }

      if (overwrites.imageFolder) {
        config.imageFolder = overwrites.imageFolder;
      }

      if (overwrites.debug) {
        config.debug = mixin(config.debug, overwrites.debug);
      }

      if (overwrites.designletPrefix) {
        config.designletPrefix = overwrites.designletPrefix;
      }

      if (overwrites.loadFonts !== undefined) {
        config.loadFonts = overwrites.loadFonts;
      }

      if (overwrites.responsive) {
        config.responsive = overwrites.responsive;
      }

      if (overwrites.figma) {
        config.figma = mixin(config.figma, overwrites.figma);
      }

      return config;
    }
  }]);

  return Config;
}();

/* harmony default export */ var core_Config = (new Config_Config());
// CONCATENATED MODULE: ./src/qux/actions/AbstractAction.js
function AbstractAction_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function AbstractAction_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function AbstractAction_createClass(Constructor, protoProps, staticProps) { if (protoProps) AbstractAction_defineProperties(Constructor.prototype, protoProps); if (staticProps) AbstractAction_defineProperties(Constructor, staticProps); return Constructor; }



var AbstractAction_AbstractAction = /*#__PURE__*/function () {
  function AbstractAction() {
    AbstractAction_classCallCheck(this, AbstractAction);
  }

  AbstractAction_createClass(AbstractAction, [{
    key: "_get",
    value: function _get(url) {
      var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      return new Promise(function (resolve, reject) {
        fetch(url, {
          method: 'get',
          headers: headers
        }).then(function (res) {
          if (res.status === 200) {
            res.json().then(function (j) {
              core_Logger.log(6, '_get', 'exit ');
              resolve(j);
            });
          } else {
            reject(res);
          }
        }).catch(function (err) {
          reject(err);
        });
      });
    }
  }, {
    key: "_post",
    value: function _post(url, data) {
      var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      return new Promise(function (resolve, reject) {
        fetch(url, {
          method: 'post',
          body: JSON.stringify(data),
          headers: headers
        }).then(function (res) {
          if (res.status === 200) {
            res.json().then(function (j) {
              core_Logger.log(6, 'post', 'exit ');
              resolve(j);
            });
          } else {
            reject(res);
          }
        }).catch(function (err) {
          reject(err);
        });
      });
    }
  }]);

  return AbstractAction;
}();


// CONCATENATED MODULE: ./src/qux/actions/Mail.js
function Mail_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { Mail_typeof = function _typeof(obj) { return typeof obj; }; } else { Mail_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return Mail_typeof(obj); }

function Mail_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function Mail_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function Mail_createClass(Constructor, protoProps, staticProps) { if (protoProps) Mail_defineProperties(Constructor.prototype, protoProps); if (staticProps) Mail_defineProperties(Constructor, staticProps); return Constructor; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }

function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }

function _possibleConstructorReturn(self, call) { if (call && (Mail_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }

function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }





var Mail_Mail = /*#__PURE__*/function (_AbstractAction) {
  _inherits(Mail, _AbstractAction);

  var _super = _createSuper(Mail);

  function Mail() {
    var _this;

    Mail_classCallCheck(this, Mail);

    _this = _super.call(this);
    _this.luisaUrl = 'https://api.luisa.cloud';
    return _this;
  }

  Mail_createClass(Mail, [{
    key: "execute",
    value: async function execute(step, viewModel) {
      core_Logger.log(-1, 'Mail.execute() > enter ', step);
      var config = step.config;

      try {
        var data = viewModel;

        if (config.inputVariable) {
          core_Logger.log(-1, 'ActionEngine.execute() > crop view model ', config.inputVariable);
          data = core_JSONPath.get(viewModel, config.inputVariable);
        }

        var response = await this._post("".concat(this.luisaUrl, "/api/actions/").concat(config.appId, "/mail2team"), {
          body: config.body,
          subject: config.subject,
          data: data
        }, {
          'Content-Type': 'application/json',
          'Accept': 'application/json'
        });

        if (response) {
          core_Logger.log(-1, 'ActionEngine.execute() > exit ', response);
        }
      } catch (err) {
        core_Logger.warn('ActionEngine.execute() > Error ', err);
      }
    }
  }]);

  return Mail;
}(AbstractAction_AbstractAction);


// CONCATENATED MODULE: ./src/qux/actions/ContentFul.js
function ContentFul_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ContentFul_typeof = function _typeof(obj) { return typeof obj; }; } else { ContentFul_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ContentFul_typeof(obj); }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function ContentFul_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function ContentFul_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function ContentFul_createClass(Constructor, protoProps, staticProps) { if (protoProps) ContentFul_defineProperties(Constructor.prototype, protoProps); if (staticProps) ContentFul_defineProperties(Constructor, staticProps); return Constructor; }

function ContentFul_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) ContentFul_setPrototypeOf(subClass, superClass); }

function ContentFul_setPrototypeOf(o, p) { ContentFul_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return ContentFul_setPrototypeOf(o, p); }

function ContentFul_createSuper(Derived) { var hasNativeReflectConstruct = ContentFul_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = ContentFul_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = ContentFul_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return ContentFul_possibleConstructorReturn(this, result); }; }

function ContentFul_possibleConstructorReturn(self, call) { if (call && (ContentFul_typeof(call) === "object" || typeof call === "function")) { return call; } return ContentFul_assertThisInitialized(self); }

function ContentFul_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function ContentFul_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }

function ContentFul_getPrototypeOf(o) { ContentFul_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return ContentFul_getPrototypeOf(o); }





var defaultInline = function defaultInline(type, node) {
  return "<span>type: ".concat(type, " id: ").concat(node.data.target.sys.id, "</span>");
};

var ContentFul_ContentFul = /*#__PURE__*/function (_AbstractAction) {
  ContentFul_inherits(ContentFul, _AbstractAction);

  var _super = ContentFul_createSuper(ContentFul);

  function ContentFul() {
    var _this$renderMark, _this$renderNode;

    var _this;

    ContentFul_classCallCheck(this, ContentFul);

    _this = _super.call(this);
    _this.contentfulUrl = 'https://cdn.contentful.com';
    _this.renderMark = (_this$renderMark = {}, _defineProperty(_this$renderMark, 'bold', function bold(text) {
      return "<b>".concat(text, "</b>");
    }), _defineProperty(_this$renderMark, 'italic', function italic(text) {
      return "<i>".concat(text, "</i>");
    }), _defineProperty(_this$renderMark, 'underline', function underline(text) {
      return "<u>".concat(text, "</u>");
    }), _defineProperty(_this$renderMark, 'code', function code(text) {
      return "<code>".concat(text, "</code>");
    }), _this$renderMark);
    _this.renderNode = (_this$renderNode = {}, _defineProperty(_this$renderNode, 'paragraph', function paragraph(node, next) {
      return "<p>".concat(next(node.content), "</p>");
    }), _defineProperty(_this$renderNode, 'heading-1', function heading1(node, next) {
      return "<h1>".concat(next(node.content), "</h1>");
    }), _defineProperty(_this$renderNode, 'heading-2', function heading2(node, next) {
      return "<h2>".concat(next(node.content), "</h2>");
    }), _defineProperty(_this$renderNode, 'heading-3', function heading3(node, next) {
      return "<h3>".concat(next(node.content), "</h3>");
    }), _defineProperty(_this$renderNode, 'heading-4', function heading4(node, next) {
      return "<h4>".concat(next(node.content), "</h4>");
    }), _defineProperty(_this$renderNode, 'heading-5', function heading5(node, next) {
      return "<h5>".concat(next(node.content), "</h5>");
    }), _defineProperty(_this$renderNode, 'heading-6', function heading6(node, next) {
      return "<h6>".concat(next(node.content), "</h6>");
    }), _defineProperty(_this$renderNode, 'embedded-entry-block', function embeddedEntryBlock(node, next) {
      return "<div>".concat(next(node.content), "</div>");
    }), _defineProperty(_this$renderNode, 'unordered-list', function unorderedList(node, next) {
      return "<ul>".concat(next(node.content), "</ul>");
    }), _defineProperty(_this$renderNode, 'ordered-list', function orderedList(node, next) {
      return "<ol>".concat(next(node.content), "</ol>");
    }), _defineProperty(_this$renderNode, 'list-item', function listItem(node, next) {
      return "<li>".concat(next(node.content), "</li>");
    }), _defineProperty(_this$renderNode, 'blockquote', function blockquote(node, next) {
      return "<blockquote>".concat(next(node.content), "</blockquote>");
    }), _defineProperty(_this$renderNode, 'hr', function hr() {
      return '<hr/>';
    }), _defineProperty(_this$renderNode, 'asset-hyperlink', function assetHyperlink(node) {
      return defaultInline('asset-hyperlink', node);
    }), _defineProperty(_this$renderNode, 'entry-hyperlink', function entryHyperlink(node) {
      return defaultInline('entry-hyperlink', node);
    }), _defineProperty(_this$renderNode, 'embedded-entry-inline', function embeddedEntryInline(node) {
      return defaultInline('embedded-entry-inline', node);
    }), _defineProperty(_this$renderNode, 'hyperlink', function hyperlink(node, next) {
      return "<a href=\"".concat(node.data.uri, "\">").concat(next(node.content), "</a>");
    }), _this$renderNode);
    return _this;
  }

  ContentFul_createClass(ContentFul, [{
    key: "execute",
    value: async function execute(step, viewModel) {
      var _this2 = this;

      core_Logger.log(-1, 'ContentFul.execute() > enter ');
      var config = step.config;

      if (config.outputVariable) {
        try {
          var documents = await this._get("".concat(this.contentfulUrl, "/spaces/").concat(config.spaceId, "/environments/").concat(config.envId, "/entries?access_token=").concat(config.apiToken));

          if (documents) {
            var assets = await this._get("".concat(this.contentfulUrl, "/spaces/").concat(config.spaceId, "/environments/").concat(config.envId, "/assets?access_token=").concat(config.apiToken));
            var items = documents.items.map(function (i) {
              return _this2.mapContentFul(i, assets);
            });
            core_JSONPath.set(viewModel, config.outputVariable, items);
            core_Logger.log(-1, 'ContentFul.execute() > exit ', items);
          }
        } catch (err) {
          core_Logger.warn('ContentFul.execute() > Error ', err);
        }
      }
    }
  }, {
    key: "mapContentFul",
    value: function mapContentFul(item, assets) {
      var fields = item.fields;
      var result = {};

      for (var key in fields) {
        var value = fields[key];

        if (value.nodeType === 'document') {
          result[key] = {
            type: 'richtext',
            value: this.documentToHtmlString(value) // get rid of dependency

          };
        } else if (value.sys && value.sys.linkType === 'Asset') {
          (function () {
            var assetId = value.sys.id;
            var asset = assets.items.find(function (a) {
              return a.sys.id === assetId;
            });

            if (asset.fields.file) {
              result[key] = {
                url: 'https:' + asset.fields.file.url
              };
            }
          })();
        } else {
          result[key] = value;
        }
      }

      if (!result.id) {
        result.id = item.sys.id;
      }

      return result;
    }
    /**
     * Serialize a Contentful Rich Text `document` to an html string.
     */

  }, {
    key: "documentToHtmlString",
    value: function documentToHtmlString(richTextDocument) {
      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

      if (!richTextDocument || !richTextDocument.content) {
        return '';
      }

      return this.nodeListToHtmlString(richTextDocument.content, {
        renderNode: Object.assign({}, this.defaultNodeRenderers, options.renderNode),
        renderMark: Object.assign({}, this.defaultMarkRenderers, options.renderMark)
      });
    }
  }, {
    key: "nodeListToHtmlString",
    value: function nodeListToHtmlString(nodes) {
      var _this3 = this;

      return nodes.map(function (node) {
        return _this3.nodeToHtmlString(node);
      }).join('');
    }
  }, {
    key: "nodeToHtmlString",
    value: function nodeToHtmlString(node) {
      var _this4 = this;

      if (this.isText(node)) {
        var nodeValue = this.escape(node.value);

        if (node.marks.length > 0) {
          return node.marks.reduce(function (value, mark) {
            if (!_this4.renderMark[mark.type]) {
              return value;
            }

            return _this4.renderMark[mark.type](value);
          }, nodeValue);
        }

        return nodeValue;
      } else {
        var nextNode = function nextNode(nodes) {
          return _this4.nodeListToHtmlString(nodes);
        };

        if (!node.nodeType || !this.renderNode[node.nodeType]) {
          return '';
        }

        return this.renderNode[node.nodeType](node, nextNode);
      }
    }
  }, {
    key: "isText",
    value: function isText(node) {
      return node.nodeType === 'text';
    }
  }, {
    key: "escape",
    value: function escape(s) {
      return s;
    }
  }]);

  return ContentFul;
}(AbstractAction_AbstractAction);


// CONCATENATED MODULE: ./src/qux/actions/ActionEngine.js
function ActionEngine_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function ActionEngine_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function ActionEngine_createClass(Constructor, protoProps, staticProps) { if (protoProps) ActionEngine_defineProperties(Constructor.prototype, protoProps); if (staticProps) ActionEngine_defineProperties(Constructor, staticProps); return Constructor; }





var ActionEngine_ActionEngine = /*#__PURE__*/function () {
  function ActionEngine(actions) {
    ActionEngine_classCallCheck(this, ActionEngine);

    core_Logger.log(-1, 'ActionEngine()', actions);
    this.actions = actions;
    this.engines = {
      'mail': new Mail_Mail(),
      'contentful': new ContentFul_ContentFul()
    };
  }

  ActionEngine_createClass(ActionEngine, [{
    key: "hasAction",
    value: function hasAction(actionName) {
      var filter = this.actions.filter(function (a) {
        return a.id === actionName;
      });
      return filter.length === 1;
    }
  }, {
    key: "executeAction",
    value: async function executeAction(app, actionName, viewModel) {
      var _this = this;

      core_Logger.log(-1, 'ActionEngine.executeAction()', actionName, viewModel);

      try {
        var action = this.actions.find(function (a) {
          return a.id === actionName;
        });

        if (action && action.steps) {
          action.steps.forEach(async function (step) {
            await _this.executeStep(step, viewModel, actionName);
          });
        } else {
          core_Logger.warn('ActionEngine.executeAction() > No action with id', actionName);
        }
      } catch (err) {
        core_Logger.error('ActionEngine.executeAction() > Error during execution', err);
      }
    }
  }, {
    key: "executeStep",
    value: async function executeStep(step, viewModel, actionName) {
      if (this.engines[step.type]) {
        await this.engines[step.type].execute(step, viewModel);
      } else {
        core_Logger.error('ActionEngine.executeStep() > No method for step', 'execute_' + step.type, actionName);
      }
    }
  }]);

  return ActionEngine;
}();


// CONCATENATED MODULE: ./src/qux/core/FontWriter.js
function FontWriter_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function FontWriter_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function FontWriter_createClass(Constructor, protoProps, staticProps) { if (protoProps) FontWriter_defineProperties(Constructor.prototype, protoProps); if (staticProps) FontWriter_defineProperties(Constructor, staticProps); return Constructor; }



var FontWriter_FontWriter = /*#__PURE__*/function () {
  function FontWriter() {
    FontWriter_classCallCheck(this, FontWriter);

    this.fontElement = {};
    this.defaultFontFamilies = {
      'Helvetica Neue,Helvetica,Arial,sans-serif': true,
      'Arial, sans-serif': true,
      'Comic Sans MS, cursive, sans-serif': true,
      'Impact, Charcoal, sans-serif': true,
      'Times New Roman, Times, serif': true,
      'Courier New, Courier, monospace': true,
      '"Palatino Linotype", "Book Antiqua", Palatino, serif': true,
      'Georgia, serif': true,
      'Roboto': true
    };
  }
  /**
   * https://developers.google.com/fonts/docs/getting_started
   */


  FontWriter_createClass(FontWriter, [{
    key: "write",
    value: function write(model, config) {
      core_Logger.log(1, 'FontWriter.write() > enter');
      var fonts = this.getCustomFonts(model);

      if (config.loadFonts) {
        this.writeImportStatements(fonts);
      } else {
        this.showImportWarning(fonts);
      }
    }
  }, {
    key: "showImportWarning",
    value: function showImportWarning(fonts) {
      if (Object.keys(fonts).length > 0) {
        core_Logger.warn('Vue-Low-Code: Please add the following font imports:');
      }

      for (var font in fonts) {
        var name = font.replace(', sans-serif', "");
        name = font.replace(/\s+/g, "+");
        core_Logger.warn("   <style>@import url('https://fonts.googleapis.com/css2?family=".concat(name, "&display=swap');</style>"));
      }
    }
  }, {
    key: "writeImportStatements",
    value: function writeImportStatements(fonts) {
      var head = document.head || document.getElementsByTagName('head')[0];

      for (var font in fonts) {
        /**
         * We make here a request for each font, because if one font fails, it would crash
         * the entire request...
         */
        if (this.fontElement[font]) {
          core_Logger.log(5, 'FontWriter.write() > Clean up old');
          head.removeChild(this.fontElement[font]);
        }

        var name = font.replace(', sans-serif', "");
        name = name.replace(/\s+/g, "+");
        var css = "@import url('https://fonts.googleapis.com/css2?family=".concat(name, "&display=swap');");
        var style = document.createElement('style');
        style.type = 'text/css';
        style.appendChild(document.createTextNode(css));
        head.appendChild(style);
        this.fontElement[font] = style;
      }
    }
  }, {
    key: "getFontImportStatement",
    value: function getFontImportStatement(fonts) {
      var imports = [];

      for (var font in fonts) {
        var name = font.replace(/\s+/g, "+"); //let weight = fonts[font].map(w => `0,${w}`).join(';')

        imports.push("family=".concat(name));
      }

      return "@import url('https://fonts.googleapis.com/css2?".concat(imports.join('&'), "&display=swap');");
    }
  }, {
    key: "getCustomFonts",
    value: function getCustomFonts(model) {
      var _this = this;

      core_Logger.log(3, 'FontWriter.getCustomFonts() > enter');
      var fonts = {};
      Object.values(model.widgets).forEach(function (w) {
        if (w.style.fontFamily) {
          var family = w.style.fontFamily;

          if (!_this.defaultFontFamilies[family]) {
            if (!fonts[family]) {
              fonts[family] = [];
            }

            fonts[family].push(w.style.fontWeight);
          }
        }
      });
      return fonts;
    }
  }]);

  return FontWriter;
}();

/* harmony default export */ var core_FontWriter = (new FontWriter_FontWriter());
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/mixins/Logic.vue?vue&type=template&id=81df6c48

var Logicvue_type_template_id_81df6c48_hoisted_1 = {
  class: "qux"
};
function Logicvue_type_template_id_81df6c48_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Logicvue_type_template_id_81df6c48_hoisted_1);
}
// CONCATENATED MODULE: ./src/qux/mixins/Logic.vue?vue&type=template&id=81df6c48

// CONCATENATED MODULE: ./src/qux/core/RestEngine.js
function RestEngine_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function RestEngine_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function RestEngine_createClass(Constructor, protoProps, staticProps) { if (protoProps) RestEngine_defineProperties(Constructor.prototype, protoProps); if (staticProps) RestEngine_defineProperties(Constructor, staticProps); return Constructor; }



var RestEngine_RestEngine = /*#__PURE__*/function () {
  function RestEngine() {
    RestEngine_classCallCheck(this, RestEngine);
  }

  RestEngine_createClass(RestEngine, [{
    key: "run",
    value: function run(request, data) {
      if (request.method === "POST" && request.input.type === 'JSON') {
        return this.postOrPut(request, data);
      }

      if (request.method === "POST" && (request.input.type === 'IMAGE' || request.input.type === 'FILE')) {
        return this.postOrPostImage(request, data);
      }

      if (request.method === "GET") {
        return this.get(request, data);
      }

      if (request.method === "PUT" && request.input.type === 'JSON') {
        return this.postOrPut(request, data);
      }

      if (request.method === "PUT" && (request.input.type === 'IMAGE' || request.input.type === 'FILE')) {
        return this.postOrPostImage(request, data);
      }

      if (request.method === "DELETE") {
        return this.delete(request, data);
      }
    }
  }, {
    key: "buildURL",
    value: async function buildURL(request, values) {
      var url = await this.fillString(request.url, values, false);
      core_Logger.log(1, "buildURL", "exit", url);
      return url;
    }
  }, {
    key: "buildData",
    value: async function buildData(request, values) {
      var data = await this.fillString(request.input.template, values, true);
      core_Logger.log(1, "buildData", "exit", data);
      return data;
    }
  }, {
    key: "buildToken",
    value: async function buildToken(request, values) {
      var data = await this.fillString(request.token, values, true);
      core_Logger.log(-1, "RestEngine.buildToken", "exit", data);
      return data;
    }
  }, {
    key: "fillString",
    value: async function fillString(s, values) {
      var encodeFiles = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;

      for (var key in values) {
        var value = await this.getStringFilelValue(values[key], encodeFiles);
        var pattern = "${" + key + "}";
        var i = 0;

        while (s.indexOf(pattern) >= 0 && i < 100) {
          s = s.replace(pattern, value);
          i++;
        }
      }

      if (s.indexOf('${') >= 0) {
        core_Logger.error("buildURL", "exit", s);
        throw new Error("buildURL() > Not all parameters replaced!" + s);
      }

      return s;
    }
  }, {
    key: "getStringFilelValue",
    value: function getStringFilelValue(value, encodeFiles) {
      // FIXME: check if we contain ${} to avoid messz stuff
      if (value && value.name && value.size && encodeFiles) {
        value = this.readFileAsBase64(value);
      }

      return value;
    }
  }, {
    key: "readFileAsBase64",
    value: async function readFileAsBase64(file) {
      var result = await this.base64(file);
      return result;
    }
  }, {
    key: "dataUrl",
    value: function dataUrl(file) {
      return new Promise(function (resolve, reject) {
        var reader = new FileReader();

        reader.onerror = function (error) {
          return reject(error);
        };

        reader.onload = function () {
          return resolve(reader.result);
        };

        reader.readAsDataURL(file);
      });
    }
  }, {
    key: "base64",
    value: function base64(file) {
      return new Promise(function (resolve, reject) {
        var reader = new FileReader();

        reader.onerror = function (error) {
          return reject(error);
        };

        reader.onload = function () {
          var bytes = Array.from(new Uint8Array(reader.result));
          var base64StringFile = btoa(bytes.map(function (item) {
            return String.fromCharCode(item);
          }).join(""));
          resolve(base64StringFile);
        };

        reader.readAsArrayBuffer(file);
      });
    }
  }, {
    key: "handleOutput",
    value: function handleOutput(resolve, request, response) {
      core_Logger.log(2, "handleOutput", "enter", response);

      if (response.status == 200) {
        if (request.output.type === "JSON") {
          try {
            resolve(response.json());
          } catch (e) {
            throw new Error("Could not ".concat(request.method, " ").concat(request.url, ": ").concat(e.message));
          }
        }

        if (request.output.type === "TEXT") {
          resolve(response.text());
        }

        if (request.output.type === "IMAGE") {
          response.arrayBuffer().then(function (buffer) {
            resolve(buffer);
          });
        }

        return;
      }

      throw new Error("Could not ".concat(request.method, " ").concat(request.url, ": ").concat(response.statusText));
    }
  }, {
    key: "get",
    value: function get(request, values) {
      var _this = this;

      return new Promise(async function (resolve, reject) {
        var url = await _this.buildURL(request, values);

        var header = _this.createDefaultHeader(request);

        fetch(url, {
          method: "GET",
          mode: 'cors',
          cache: 'no-cache',
          headers: header,
          redirect: 'follow',
          referrer: 'no-referrer'
        }).then(function (response) {
          _this.handleOutput(resolve, request, response);
        }).catch(function (e) {
          reject(e);
        });
      });
    }
  }, {
    key: "postOrPostImage",
    value: function postOrPostImage(request, values) {
      var _this2 = this;

      return new Promise(async function (resolve, reject) {
        var url = await _this2.buildURL(request, values);

        var header = _this2.createDefaultHeader(request);

        var formData = new FormData();

        for (var key in values) {
          formData.append(key, values[key]);
        }

        fetch(url, {
          method: request.method,
          mode: 'cors',
          cache: 'no-cache',
          headers: header,
          redirect: 'follow',
          referrer: 'no-referrer',
          body: formData
        }).then(function (response) {
          _this2.handleOutput(resolve, request, response);
        }).catch(function (e) {
          reject(e);
          throw e;
        });
      });
    }
  }, {
    key: "postOrPut",
    value: function postOrPut(request, values) {
      var _this3 = this;

      return new Promise(async function (resolve, reject) {
        var url = await _this3.buildURL(request, values);
        var data = await _this3.buildData(request, values);

        var header = _this3.createDefaultHeader(request);

        fetch(url, {
          method: request.method,
          mode: 'cors',
          cache: 'no-cache',
          headers: header,
          redirect: 'follow',
          referrer: 'no-referrer',
          body: data
        }).then(function (response) {
          _this3.handleOutput(resolve, request, response);
        }).catch(function (e) {
          reject(e);
          throw e;
        });
      });
    }
  }, {
    key: "delete",
    value: function _delete(request, values) {
      var _this4 = this;

      return new Promise(async function (resolve, reject) {
        var url = await _this4.buildURL(request, values);

        var header = _this4.createDefaultHeader(request);

        fetch(url, {
          method: "DELETE",
          mode: 'cors',
          cache: 'no-cache',
          headers: header,
          redirect: 'follow',
          referrer: 'no-referrer'
        }).then(function (response) {
          _this4.handleOutput(resolve, request, response);
        }).catch(function (e) {
          reject(e);
          throw e;
        });
      });
    }
  }, {
    key: "createDefaultHeader",
    value: async function createDefaultHeader(request, values) {
      var token = await this.buildToken(request, values);
      var authType = request.authType ? request.authType : 'Bearer';
      var headers = {};

      if (request.input.type === 'JSON') {
        headers['Content-Type'] = 'application/json';
        headers['Accept'] = 'application/json';
      }

      if (request.input.type === 'FORM') {
        headers['Content-Type'] = 'application/x-www-form-urlencoded';
      }

      if (token) {
        headers['Authorization'] = "".concat(authType, " ").concat(token);
      }

      return headers;
    }
  }, {
    key: "getNeededDataBings",
    value: function getNeededDataBings(rest) {
      var result = [];
      this.parseString(rest.url, result);
      this.parseString(rest.token, result);

      if ((rest.method === 'POST' || rest.method === 'PUT') && rest.input.type === 'JSON') {
        this.parseString(rest.input.template, result);
      }

      if ((rest.method === 'POST' || rest.method === 'PUT') && (rest.input.type === 'FILE' || rest.input.type === 'IMAGE')) {
        if (rest.input.fileDataBinding) {
          result.push(rest.input.fileDataBinding);
        }
      }

      return result;
    }
  }, {
    key: "parseString",
    value: function parseString(s, result) {
      var matches = s.match(/\$\{(.*?)\}/g);

      if (matches) {
        matches.forEach(function (m) {
          var variable = m.substring(2, m.length - 1);

          if (result.indexOf(variable) < 0) {
            result.push(variable);
          }
        });
      }
    }
  }]);

  return RestEngine;
}();

/* harmony default export */ var core_RestEngine = (new RestEngine_RestEngine());
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/mixins/Logic.vue?vue&type=script&lang=js




/* harmony default export */ var Logicvue_type_script_lang_js = ({
  name: 'Logic',
  methods: {
    executeLogic: function executeLogic(widget, line) {
      core_Logger.log(0, 'QUX.executeLogic() > enter', widget.props, line);
      var lines = getLines(widget, this.model);
      var nextLine = null;

      if (widget.props && widget.props.isRandom) {
        var random = Math.random();
        var pos = Math.floor(random * lines.length);
        core_Logger.log(0, "QUX.executeLogic", "enter >  do AB:" + widget.id + " >> " + random + " >> " + pos);
        nextLine = lines[pos];
      } else {
        nextLine = this.getRuleMatchingLine(lines);
      }

      if (nextLine) {
        this.executeLine(nextLine);
      } else {
        /**
         * THis can happs as a modelling error!
         */
        core_Logger.warn('QUX.executeLogic() > NO RULE matching', lines);
      }
    },
    executeRest: async function executeRest(widget) {
      var _this = this;

      core_Logger.log(0, 'QUX.executeRest() > enter', widget.props.rest);
      var rest = widget.props.rest;
      /**
       * get al the data we need!
       */

      var requiredDataBindings = core_RestEngine.getNeededDataBings(rest);
      var data = {};
      requiredDataBindings.forEach(function (path) {
        var value = core_JSONPath.get(_this.modelValue, path);
        data[path] = value;
      });
      /**
       * Call rest
       */

      var success = await this.runRestEngine(rest, data);
      /**
       * Find next line to execute
       */

      var lines = getLines(widget, this.model);
      var nextLine = this.getRuleMatchingLine(lines, success);

      if (nextLine) {
        this.executeLine(nextLine);
      } else {
        core_Logger.warn('QUX.executeRest() > NO RULE matching', lines);
      }
    },
    runRestEngine: async function runRestEngine(rest, data) {
      try {
        var result = await core_RestEngine.run(rest, data);
        core_Logger.log(1, "QUX.executeRest", "set data " + rest.output.databinding, result);

        if (rest.output.databinding) {
          core_JSONPath.set(this.modelValue, rest.output.databinding, result);
        }

        return true;
      } catch (e) {
        core_Logger.error("QUX.executeRest", "error", e);

        if (rest.output.databinding) {
          core_JSONPath.set(this.modelValue, rest.output.databinding, 'Error');
        }
      }

      return false;
    },
    getRuleMatchingLine: function getRuleMatchingLine(lines, restSuccess) {
      var matchedLine;

      for (var i = 0; i < lines.length; i++) {
        var line = lines[i];

        if (line.rule) {
          core_Logger.log(4, 'QUX.getRuleMatchingLine() > check', i, line.rule);

          if (line.rule.type === 'widget') {
            core_Logger.error('QUX.getRuleMatchingLine() > widget rules not supported in low code');
          }

          if (line.rule.type === 'databinding') {
            matchedLine = this.checkDataBindingRule(line);
          }

          if (line.rule.type === 'rest') {
            if (line.rule.restResponseStatus === '4xx' && !restSuccess) {
              matchedLine = line;
            }

            if (line.rule.restResponseStatus === '200' && restSuccess) {
              matchedLine = line;
            }
          }

          if (matchedLine) {
            break;
          }
        } else {
          /**
           * The *FIRST* line without a condition will be
           */
          if (!matchedLine) {
            matchedLine = line;
          }
        }
      }

      return matchedLine;
    },
    checkDataBindingRule: function checkDataBindingRule(line) {
      core_Logger.log(4, 'QUX.checkDataBindingRule() > enter', line.rule.databinding);
      var rule = line.rule;
      var value = core_JSONPath.get(this.modelValue, rule.databinding);
      var result = this.isValueMatchingRule(value, true, rule);

      if (result) {
        core_Logger.log(-1, 'QUX.checkDataBindingRule() > match!', line);
        return line;
      }
    },
    isValueMatchingRule: function isValueMatchingRule(value, valid, rule) {
      core_Logger.log(3, 'QUX.isValueMatchingRule() > enter > ' + rule.value + ' ' + rule.operator + ' >' + value + '< / ' + valid);
      var operator = rule.operator;
      /**
       * Special handling for checkbox group.
       * We should have an "in" operation
       */

      if (value && Array.isArray(value) && value.length > 0) {
        value = value[0];
      }

      var result = false;

      switch (operator) {
        case "contains":
          if (value.toLowerCase && rule.value.toLowerCase) {
            var lowerValue = value.toLowerCase();
            var lowerRule = rule.value.toLowerCase();
            result = lowerValue.indexOf(lowerRule) >= 0;
          } else {
            result = false;
          }

          break;

        case "isValid":
          result = valid;
          break;

        case "==":
          result = value == rule.value;
          break;

        case "!=":
          if (rule.value === null || rule.value === undefined) {
            result = value !== null && value !== undefined && value !== '';
          } else {
            result = value != rule.value;
          }

          break;

        case ">":
          if (!value) {
            value = 0;
          }

          result = value * 1 > rule.value * 1;
          break;

        case "<":
          if (!value) {
            value = 0;
          }

          result = value * 1 < rule.value * 1;
          break;

        case ">=":
          if (!value) {
            value = 0;
          }

          result = value * 1 >= rule.value * 1;
          break;

        case "<=":
          if (!value) {
            value = 0;
          }

          result = value * 1 <= rule.value * 1;
          break;

        default:
          core_Logger.warn('QUX.isValueMatchingRule() Not supported operator');
      }

      return result;
    }
  }
});
// CONCATENATED MODULE: ./src/qux/mixins/Logic.vue?vue&type=script&lang=js
 
// CONCATENATED MODULE: ./src/qux/mixins/Logic.vue





const Logic_exports_ = /*#__PURE__*/exportHelper_default()(Logicvue_type_script_lang_js, [['render',Logicvue_type_template_id_81df6c48_render]])

/* harmony default export */ var Logic = (Logic_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/mixins/Event.vue?vue&type=template&id=10442c98

var Eventvue_type_template_id_10442c98_hoisted_1 = {
  class: "qux"
};
function Eventvue_type_template_id_10442c98_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", Eventvue_type_template_id_10442c98_hoisted_1);
}
// CONCATENATED MODULE: ./src/qux/mixins/Event.vue?vue&type=template&id=10442c98

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/mixins/Event.vue?vue&type=script&lang=js



/* harmony default export */ var Eventvue_type_script_lang_js = ({
  name: 'Event',
  methods: {
    onScreenLoaded: function onScreenLoaded(screen) {
      core_Logger.log(3, 'QUX.onScreenLoaded() > ', screen);
      this.setSystemVariable('screen', screen.name);
      this.$emit('qScreenLoad', {
        value: this.modelValue,
        element: screen,
        viewModel: this.modelValue,
        qux: this
      });
      this.dispatchCallback(screen, null, 'load', null);
    },

    /**
     * This event come from now from the table. The event 'e'
     * contains the callback and the data of the row as 'params'.
     */
    onCallback: async function onCallback(element, e) {
      core_Logger.log(5, 'QUX.onCallback() > ' + element.name, e.callback);
      var executor = this.getMethodExcutor();

      if (executor) {
        if (executor[e.callback]) {
          var func = executor[e.callback];

          if (func instanceof Function) {
            var result = await func({
              value: this.modelValue,
              element: element,
              viewModel: this.modelValue,
              qux: this,
              params: e.params,
              event: e
            });
            /**
             * Since 0.4 we check if we can dispatch the result to a screen.
             */

            this.handleCallbackResult(result, e.callback);
            return;
          } else {
            console.warn('QUX.onCallback() > Callback is not method ', e.callback);
          }
        } else {
          console.warn('QUX.onCallback() > no method in executor with name ', e.callback);
        }
      }
    },
    onClick: function onClick(element, e, value) {
      core_Logger.log(4, 'QUX.onClick() > enter', element);

      if (core_Logger.logLevel > 10) {
        core_Logger.log(10, 'QUX.onClick()', e.target);
      }

      if (element.lines) {
        var line = getClickLine(element);

        if (line) {
          this.executeLine(line, value);
          this.stopEvent(e);
        }
      }

      if (element.action) {
        if (element.action.type === 'back') {
          core_Logger.log(0, 'QUX.onClick() > Go back');
          this.stopEvent(e);

          if (this.overlayScreenIds.length > 0) {
            this.removeLastOverlay();
          } else {
            this.$router.go(-1);
          }

          return;
        }
      }

      this.dispatchCallback(element, e, 'click', value);
    },
    stopEvent: function stopEvent(e) {
      if (e) {
        e.stopPropagation();
      }
    },
    executeLine: function executeLine(line, value) {
      core_Logger.log(-1, 'QUX.executeLine() > enter', line, value);

      if (line) {
        var box = getBoxById(line.to, this.model);

        if (box.type === 'Screen') {
          this.navigateToScreen(box, line, value);
          return;
        } else if (box.type === 'Rest') {
          this.executeRest(box, line);
          return;
        } else if (box.type === 'LogicOr') {
          this.executeLogic(box, line);
          return;
        } else {
          if (!line.isComponentLine) {
            core_Logger.warn('QUX.executeLine() > Not supported line target', box);
          }
        }
      } else {
        core_Logger.error('QUX.executeLine() > ERROR. Null passed', line);
      }
    },
    dispatchCallback: async function dispatchCallback(element, e, type, value) {
      core_Logger.log(4, 'QUX.dispatchCallback() > enter > ' + type, element);

      if (element.props && element.props.callbacks) {
        var callback = element.props.callbacks[type];

        if (callback) {
          core_Logger.log(2, 'QUX.dispatchCallback() > callback > ' + type, callback);

          if (this.actionEngine && this.actionEngine.hasAction(callback)) {
            core_Logger.log(-1, 'QUX.dispatchCallback() > action engine: ', callback);
            var result = await this.actionEngine.executeAction(this.app, callback, this.modelValue);
            this.handleCallbackResult(result, callback);
            return;
          }

          var executor = this.getMethodExcutor();

          if (executor) {
            if (executor[callback]) {
              var func = executor[callback];

              if (func instanceof Function) {
                this.stopEvent(e);
                /**
                 * This is crucial. we need to keep this signature the same.
                 */

                var _result = await func({
                  value: value,
                  element: element,
                  viewModel: this.modelValue,
                  qux: this,
                  event: e
                });

                this.handleCallbackResult(_result, callback);
                return;
              } else {
                console.warn('QUX.dispatchCallback() > Callback is not method ', callback);
              }
            } else {
              console.warn('QUX.dispatchCallback() > no method in $parent with name ', callback);
            }
          }
        }
      }
    },
    handleCallbackResult: function handleCallbackResult(result, callback) {
      /**
      * Since 0.4 we check if we can dispatch the result to a screen.
      */
      if (result) {
        core_Logger.log(-1, 'QUX.handleCallbackResult() > callback > ' + callback, result);
        var nextScreen = Object.values(this.model.screens).find(function (s) {
          return s.name === result;
        });

        if (nextScreen) {
          this.setScreen(result);
          this.scrollToTop();
        } else {
          core_Logger.warn('QUX.handleCallbackResult() > no screen with name > ' + result);
        }
      }
    },
    navigateToScreen: function navigateToScreen(screen, line, value) {
      if (screen.style && screen.style.overlay === true) {
        core_Logger.log(1, 'Qux(Event).navigateToScreen() > Overlay', screen.name);
        this.overlayScreenIds.push(screen.id);
      } else {
        core_Logger.log(1, 'Qux(Event).navigateToScreen() > Link', screen.name);
        this.overlayScreenIds = [];
        this.setScreen(screen.name, this.getValueQuery(value));

        if (!line || line.scroll !== true) {
          this.scrollToTop();
        }
      }
    },
    getValueQuery: function getValueQuery(value) {
      /**
       * We have here the magic *id* property that can come from a repeater!
       */
      if (value && value.id) {
        return "id=".concat(value.id);
      }
    },
    scrollToTop: function scrollToTop() {
      core_Logger.log(4, 'Qux(Event).scrollToTop()');
      this.$emit('qScrollTop', {});
    },
    popOverlay: function popOverlay(e) {
      /**
       * Only pop of the screen background was hit.
       */
      if (this.$refs.overlayCntr && e && e.target === this.$refs.overlayCntr.$el) {
        core_Logger.log(4, 'Qux(Event).popOverlay()');
        this.removeLastOverlay();
      }
    },
    removeLastOverlay: function removeLastOverlay() {
      core_Logger.log(4, 'Qux(Event).removeLastOverlay()');

      if (this.overlayScreenIds.length > 0) {
        this.overlayScreenIds.pop();
      }
    },
    closeAllOverlays: function closeAllOverlays() {
      core_Logger.log(4, 'Qux(Event).closeAllOverlays()');
      this.overlayScreenIds = [];
    },
    onChange: function onChange(element, e, value) {
      core_Logger.log(1, 'Qux(Event).onChange() > ', value);
      this.$emit('qChange', element, e);
      this.dispatchCallback(element, e, 'change', value);
    },
    onKeyPress: function onKeyPress(element, e, value) {
      core_Logger.log(2, 'Qux(Event).onKeyPress() > ', value);
      this.$emit('qKeyPress', element, e);
      this.dispatchCallback(element, e, 'change', value);
    },
    onFocus: function onFocus(element, e, value) {
      this.$emit('qFocus', element, e);
      this.dispatchCallback(element, e, 'focus', value);
    },
    onBlur: function onBlur(element, e, value) {
      this.$emit('qBlur', element, e);
      this.dispatchCallback(element, e, 'blur', value);
    },
    onMouseOver: function onMouseOver(element, e) {
      this.$emit('qMouseOver', element, e);
    },
    onMouseOut: function onMouseOut(element, e) {
      this.$emit('qMouseOut', element, e);
    },
    setSystemVariable: function setSystemVariable(key, value) {
      core_JSONPath.set(this.modelValue, '_qux.' + key, value);
    }
  }
});
// CONCATENATED MODULE: ./src/qux/mixins/Event.vue?vue&type=script&lang=js
 
// CONCATENATED MODULE: ./src/qux/mixins/Event.vue





const Event_exports_ = /*#__PURE__*/exportHelper_default()(Eventvue_type_script_lang_js, [['render',Eventvue_type_template_id_10442c98_render]])

/* harmony default export */ var Event = (Event_exports_);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/Luisa.vue?vue&type=script&lang=js













/* harmony default export */ var Luisavue_type_script_lang_js = ({
  mixins: [Event, Logic],
  name: 'Luisa',
  emits: ['update:modelValue', 'qScreenLoad', 'qClick', 'click', 'qChange', 'change', 'qKeyPress', 'qFocus', 'qBlur', 'qDesignSystemCallback', 'qScrollTop'],
  props: {
    'app': {
      default: false
    },
    'design': {},
    'screen': {
      type: String
    },
    'selected': {
      type: String
    },
    'debug': {
      type: String
    },
    'modelValue': {
      type: Object,
      default: function _default() {
        return {};
      }
    },
    'executor': {
      type: Object
    },
    'config': {
      type: Object,
      default: function _default() {
        return {};
      }
    },
    'actions': {
      type: Array
    }
  },
  provide: function provide() {
    return {
      viewModel: this.modelValue
    };
  },
  data: function data() {
    return {
      server: 'https://quant-ux.com',
      model: null,
      mobileModel: null,
      tabletModel: null,
      desktoModel: null,
      selectedScreenId: null,
      overlayScreenIds: [],
      hash: false,
      msg: 'Loading...',
      mergedConfig: core_Config.getDefault(),
      deviceType: ''
    };
  },
  computed: {
    treeModel: function treeModel() {
      if (this.model) {
        var model = this.responsiveModel;
        var transformer = new ModelTransformer_ModelTransformer(model, this.mergedConfig, this.selected);
        var tree = transformer.transform();
        this.setGlobalCSS(tree, this.selected);
        this.setGlobalFonts(model, this.mergedConfig);
        return tree;
      }

      return {
        screens: []
      };
    },
    responsiveModel: function responsiveModel() {
      var model = this.model;

      if (this.mergedConfig.responsive) {
        model = this.getResponsiveModel(model, this.mergedConfig.responsive);
      }

      return model;
    },
    currentScreen: function currentScreen() {
      var _this = this;

      if (this.selectedScreenId) {
        var screen = this.treeModel.screens.filter(function (screen) {
          return screen.isComponentScreen !== true;
        }).find(function (screen) {
          return screen.id === _this.selectedScreenId;
        });

        if (screen) {
          return screen;
        }
      }

      return this.getDefaultScreen();
    },
    isComponentScreen: function isComponentScreen() {
      var s = this.currentScreen;
      return s ? s.isComponentScreen : false;
    },
    imagePrefix: function imagePrefix() {
      if (this.hash) {
        return "".concat(this.server, "/rest/images/").concat(this.hash, "/");
      }

      return this.mergedConfig.imageFolder;
    },
    hasOverlay: function hasOverlay() {
      return this.overlayScreenIds.length > 0;
    },
    currentOverlay: function currentOverlay() {
      var overlayId = this.overlayScreenIds[this.overlayScreenIds.length - 1];
      var overlay = this.treeModel.screens.find(function (screen) {
        return screen.id === overlayId;
      });
      return overlay;
    },
    isFixedOverlay: function isFixedOverlay() {
      var overlayId = this.overlayScreenIds[this.overlayScreenIds.length - 1];
      var overlay = this.treeModel.screens.find(function (screen) {
        return screen.id === overlayId;
      });

      if (overlay) {
        return overlay.style.fixed;
      }

      return false;
    },
    isBluredOverlay: function isBluredOverlay() {
      var overlayId = this.overlayScreenIds[this.overlayScreenIds.length - 1];
      var overlay = this.treeModel.screens.find(function (screen) {
        return screen.id === overlayId;
      });

      if (overlay) {
        return overlay.style.blur;
      }

      return false;
    }
  },
  methods: {
    getResponsiveModel: function getResponsiveModel(model, responsive) {
      var _this2 = this;

      core_Logger.log(-1, 'Luisa.getResponsiveModel() > enter >', responsive);
      var pagesWithTypes = responsive.filter(function (t) {
        return t.types.length > 0;
      });
      /**
       * Makre sure we have some configuration
       */

      if (pagesWithTypes.length > 0) {
        this.setDeviceType();
        model = clone(model);
        var pages = this.mergedConfig.responsive.filter(function (t) {
          return t.types.indexOf(_this2.deviceType) > -1;
        }).map(function (t) {
          return t.page;
        });
        core_Logger.log(2, 'Luisa.getResponsiveModel() > Pages >' + this.deviceType, pages.join(','));
        var filteredScreens = {};
        Object.values(model.screens).forEach(function (s) {
          if (pages.indexOf(s.pageName) > -1) {
            filteredScreens[s.id] = s;
          }
        });

        if (Object.values(filteredScreens).length > 0) {
          core_Logger.log(-1, 'Luisa.getResponsiveModel() > exit :', this.deviceType);
          model.screens = filteredScreens;
          return model;
        }
      }

      return model;
    },
    setGlobalFonts: function setGlobalFonts(model, config) {
      core_FontWriter.write(model, config);
    },
    setGlobalCSS: function setGlobalCSS(tree) {
      var compressed = new CSSOptimizer_CSSOptimizer(this.mergedConfig).runTree(tree);
      var classes = new CSSFactory_CSSFactory(this.mergedConfig, this.imagePrefix).generate(compressed);
      var css = [];
      css = Object.values(classes).flatMap(function (element) {
        return element.map(function (e) {
          return e.code;
        });
      });
      css = css.join('\n');
      core_CSSWriter.write(css, tree.id);
    },
    setFigma: async function setFigma(figma) {
      core_Logger.log(-1, 'Luisa.setFigma()', this.pages);
      var figmaService = new FigmaService_FigmaService(figma.figmaAccessKey, this.mergedConfig);
      var selectedPages = this.pages ? this.pages : [];
      var app = await figmaService.get(figma.figmaFile, true, false, selectedPages);
      app = figmaService.setBackgroundImages(app);
      return app;
    },
    setDesign: async function setDesign(design) {
      core_Logger.log(-1, 'Luisa.setApp() > setDesign', design);

      if (this.config) {
        this.setConfig(this.config, design);
      }

      if (design.figmaFile && design.figmaAccessKey) {
        var app = await this.setFigma(design);
        this.setQUX(app);
      } else {
        this.setQUX(design);
      }
    },
    setConfig: function setConfig(c, design) {
      if (design.figmaId || design.figmaFile && design.figmaAccessKey) {
        core_Logger.log(1, 'Luisa.setConfig() > Set Figma');
        this.mergedConfig.css = core_Config.getFigmaCSS();
      }

      this.mergedConfig = core_Config.merge(this.mergedConfig, c);
      this.initCustomComponents(this.mergedConfig.components);
      core_Logger.setLogLevel(this.mergedConfig.debug.logLevel); //Logger.log(5, 'Luisa.setConfig()', JSON.stringify(this.mergedConfig, null, 2))
    },
    setQUX: async function setQUX(app) {
      if (app.substring) {
        var model = await this.loadAppByKey(app);
        this.model = model;
        this.hash = app;
      } else {
        this.model = app;
      }

      this.initViewModel();
    },
    loadAppByKey: async function loadAppByKey(key) {
      core_Logger.log(3, 'Luisa.loadAppByKey() > enter', key);
      var url = "".concat(this.server, "/rest/invitation/").concat(key, "/app.json");
      var start = new Date().getTime();
      var response = await fetch(url);

      if (response.status === 200) {
        var app = await response.json();
        core_Logger.log(-1, 'Luisa.loadAppByKey() > exit', new Date().getTime() - start);
        return app;
      } else {
        this.msg = 'The debug id is wrong!';
      }
    },
    setScreen: function setScreen(screenName, query) {
      core_Logger.log(-1, 'Luisa.setScreen() > ', screenName, query); // Update url, which will trigger watcher, which will call setScreenByRouter() which will call loadScreen()

      var prefix = '';

      if (this.config && this.config.router && this.config.router.prefix) {
        prefix = this.config.router.prefix + '/';
      }

      var url = "/".concat(prefix).concat(screenName, ".html");

      if (query) {
        url += '?' + query;
      }
      /**
       * In history mode we have to set the entire URL
       */


      this.$router.push(url);
    },
    loadScreen: function loadScreen(name) {
      core_Logger.log(2, 'Luisa.loadScreen() >', name);
      this.closeAllOverlays();

      if (this.model) {
        /**
         * FIXME: Use here tree model
         */
        var model = this.responsiveModel;
        var screen = Object.values(model.screens).find(function (s) {
          return s.name === name;
        });
        core_Logger.log(-1, 'Luisa.loadScreen() > Found ', screen);

        if (screen) {
          // make here somethink like: use router? and updat ethe url as well?
          this.selectedScreenId = screen.id;
          this.onScreenLoaded(screen);
        } else {
          core_Logger.warn('Luisa.loadScreen() > No screen with name', name);
          var startScreen = this.getDefaultScreen();

          if (startScreen) {
            this.selectedScreenId = startScreen.id;
            this.onScreenLoaded(startScreen);
          } else {
            this.msg = "404 - No Screen with name ".concat(this.msg);
          }
        }
      } else {
        core_Logger.warn('Luisa.loadScreen() > No Model');
      }
    },
    getDefaultScreen: function getDefaultScreen() {
      core_Logger.log(1, 'Luisa.getDefaultScreen() > enter');
      var screen = this.treeModel.screens.filter(function (screen) {
        return screen.isComponentScreen !== true;
      }).find(function (screen) {
        return screen.props.start === true;
      });

      if (!screen) {
        screen = this.treeModel.screens.filter(function (screen) {
          return screen.isComponentScreen !== true;
        })[0];
      }

      return screen;
    },
    setStartScreen: function setStartScreen() {
      core_Logger.log(5, 'Luisa.setStartScreen() > enter ');
      var startScreen = this.getDefaultScreen();

      if (startScreen) {
        this.selectedScreenId = startScreen.id;
        this.onScreenLoaded(startScreen);
      } else {
        this.selectedScreenId = null;
      }
    },
    setScreenByRouter: function setScreenByRouter() {
      core_Logger.log(5, 'Luisa.setScreenByRoute() > enter ', this.$route);
      var key = 'screenName';

      if (this.config && this.config.router && this.config.router.key) {
        key = this.config.router.key;
      }

      var screenName = this.$route.params[key];

      if (screenName) {
        core_Logger.log(-1, 'Luisa.setScreenByRoute() > exit ', screenName, "(".concat(key, ")"));
        this.loadScreen(screenName);
      } else {
        core_Logger.log(-1, 'Luisa.setScreenByRoute() > exit > set start');
        this.setStartScreen();
      }
    },
    initCustomComponents: function initCustomComponents(components) {
      core_Logger.log(1, 'Luisa.initCustomComponents()', components); //for (let key in components) {
      //    let c = components[key]
      //    //Vue.component(key, c);
      //}
    },
    initViewModel: function initViewModel() {
      var _this3 = this;

      core_Logger.log(3, 'Luisa.initViewModel > enter');

      if (this.modelValue && this.model) {
        /**
         * Fix screen names
         */
        Object.values(this.model.screens).forEach(function (screen) {
          screen.name = getFileName(screen.name);
        });
        /**
         * Add default databinding if needed. This might have consequences on
         * reactiveness. In general it is not advided to do this.
         */

        var dataBindings = Object.values(this.model.widgets).flatMap(function (widget) {
          if (widget.props && widget.props.databinding) {
            return Object.values(widget.props.databinding);
          }

          return [];
        });
        dataBindings.sort(function (a, b) {
          return a.localeCompare(b);
        });
        var value = this.mergedConfig.databinding.default;
        dataBindings.forEach(function (databinding) {
          /**
           * At some point we should have default values in the model...
           *
           * FIXME: This should be more intelligent and add arrays and so if needed
           */
          var has = core_JSONPath.has(_this3.modelValue, databinding);

          if (!has) {
            core_Logger.log(-1, 'Luisa.initViewModel > Missing data in view model', databinding);
            core_JSONPath.set(_this3.modelValue, databinding, value);
          }
        });
      }
    },
    initReziseListener: function initReziseListener() {
      window.addEventListener("resize", this.onScreenSizeChange);
    },
    onScreenSizeChange: function onScreenSizeChange() {
      core_Logger.log(-1, 'Luisa.onScreenSizeChange > enter');
      this.setDeviceType();
      this.setScreenByRouter();
    },
    setDeviceType: function setDeviceType() {
      core_Logger.log(1, 'Luisa.setDeviceType > enter');
      var w = window.outerWidth;
      var breakpoints = this.mergedConfig.breakpoints;

      if (breakpoints) {
        if (w < breakpoints.mobile.max) {
          core_Logger.log(-1, 'Luisa.setDeviceType > exit mobile', w);
          this.deviceType = 'mobile';
          return;
        }

        if (w < breakpoints.tablet.max) {
          core_Logger.log(-1, 'Luisa.setDeviceType > exit tablet', w);
          this.deviceType = 'tablet';
          return;
        }

        core_Logger.log(-1, 'Luisa.setDeviceType > exit desktop', w);
        this.deviceType = 'desktop';
        return;
      }
    },
    getMethodExcutor: function getMethodExcutor() {
      core_Logger.log(3, 'Luisa.getMethodExcutor() > ');

      if (this.executor) {
        return this.executor;
      }

      return this.$parent;
    }
  },
  watch: {
    '$route': function $route() {
      core_Logger.log(3, 'Luisa.watch(router) > enter');
      this.setScreenByRouter();
    },
    'screen': function screen(v) {
      core_Logger.log(3, 'Luisa.watch(screen) > enter');
      this.setScreen(v);
    },
    'value': function value(v) {
      core_Logger.error('Luisa.watch(value) > enter', v); //this.value = v
      //this.initViewModel()
    },
    'design': function design(v) {
      core_Logger.error('Luisa.watch(design) > enter', v); //this.app = v
      //this.setApp(this.app)
    }
  },
  beforeMount: function beforeMount() {},
  mounted: async function mounted() {
    core_Logger.log(0, 'Luisa.mounted()', this.value);

    if (this.actions && this.actions.length > 0) {
      this.actionEngine = new ActionEngine_ActionEngine(this.actions);
    }

    if (this.design) {
      await this.setDesign(this.design);
    }

    if (this.app) {
      core_Logger.error('Luisa.mounted () > APP is depcreated');
      await this.setDesign(this.app);
    }

    if (this.debug) {
      console.warn('QUX > debug property is decrecated. Use "app" instead.');
      await this.loadAppByKey(this.debug);
    }

    if (!this.selected) {
      if (this.screen) {
        this.loadScreen(this.screen);
      } else {
        this.setScreenByRouter();
      }
    } else {
      core_Logger.log(-1, 'Luisa.mounted() > Selected:', this.selected, this.app);
    }

    if (this.$router && this.$router.mode === 'history') {
      core_Logger.log(-1, 'Luisa.mounted() > Launch router with history', this.$router);
    }

    this.initReziseListener();
  },
  beforeUnmount: function beforeUnmount() {
    window.removeEventListener("resize", this.onResize);
  }
});
// CONCATENATED MODULE: ./src/qux/Luisa.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/Luisa.vue?vue&type=style&index=0&id=7a806424&lang=scss
var Luisavue_type_style_index_0_id_7a806424_lang_scss = __webpack_require__("4cdb");

// CONCATENATED MODULE: ./src/qux/Luisa.vue







const Luisa_exports_ = /*#__PURE__*/exportHelper_default()(Luisavue_type_script_lang_js, [['render',Luisavue_type_template_id_7a806424_render]])

/* harmony default export */ var Luisa = (Luisa_exports_);
// CONCATENATED MODULE: ./src/qux/index.js




































 //import Figma from './figma/Figma.vue'

/* harmony default export */ var qux = ({
  install: function install(app) {
    app.component('Luisa', Luisa); //app.component('Figma', Figma)

    app.component('qHotSpot', Button);
    app.component('qButton', Button);
    app.component('qBox', Button);
    app.component('qLabel', Label);
    app.component('qContainer', Container);
    app.component('qIcon', Icon);
    app.component('qTextBox', TextBox);
    app.component('qPassword', TextBox);
    app.component('qTextArea', TextArea);
    app.component('qRepeater', Repeater);
    app.component('qImage', Image);
    app.component('qCheckBox', CheckBox);
    app.component('qRadioBox', RadioBox);
    app.component('qRadioBox2', RadioBox);
    app.component('qRadioGroup', RadioGroup);
    app.component('qCheckBoxGroup', CheckBoxGroup);
    app.component('qToggleButton', Toggle);
    app.component('qSwitch', Switch);
    app.component('qDropDown', DropDown);
    app.component('qMobileDropDown', DropDown);
    app.component('qStepper', Stepper);
    app.component('qHSlider', Slider);
    app.component('qDate', web_Date);
    app.component('qDateDropDown', DatePicker);
    app.component('qSegmentButton', Segment);
    app.component('qRating', Rating);
    app.component('qIconToggle', IconToggle);
    app.component('qLabeledIconToggle', IconToggle);
    app.component('qTypeAheadTextBox', Combo);
    app.component('qTable', Table);
    app.component('qPaging', Paging);
    app.component('qBarChart', Chart);
    app.component('qPieChart', Chart);
    app.component('qMultiRingChart', Chart);
    app.component('qRingChart', Chart);
    app.component('qVector', Vector);
    app.component('qTimeline', Timeline);
    app.component('qUpload', Upload);
    app.component('qCamera', Camera);
    app.component('qChildrenToggle', ChildrenToggle);
    app.component('qUploadPreview', UploadPreview);
    app.component('qSpinner', Spinner);
    app.component('qDynamicContainer', DynamicContainer);
    app.component('qRichText', RichText);
    app.component('qLink', Link);
  }
});
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/ComponentSet.vue?vue&type=template&id=1ea9ebf0

function ComponentSetvue_type_template_id_1ea9ebf0_render(_ctx, _cache, $props, $setup, $data, $options) {
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
    class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(['qux-compoment-set', _ctx.cssClass]),
    onClick: _cache[0] || (_cache[0] = function () {
      return $options.toggle && $options.toggle.apply($options, arguments);
    })
  }, [$options.selectedChild ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveDynamicComponent"])($options.selectedChild.qtype), {
    key: $options.selectedChild.id,
    element: $options.selectedChild,
    model: _ctx.model,
    config: _ctx.config,
    onQDesignSystemCallback: _ctx.forwardDesignSystemCallback,
    onQCallback: $options.forwardCallback,
    onQClick: $options.forwardClick,
    onQChange: $options.forwardChange,
    onQKeyPress: $options.forwardKeyPress,
    onQFocus: $options.forwardFocus,
    onQBlur: $options.forwardBlur,
    onQMouseOver: $options.forwardMouseOver,
    onQMouseOut: $options.forwardMouseOut
  }, null, 8, ["element", "model", "config", "onQDesignSystemCallback", "onQCallback", "onQClick", "onQChange", "onQKeyPress", "onQFocus", "onQBlur", "onQMouseOver", "onQMouseOut"])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], {
    key: 1
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(_ctx.qErrorMessage), 1)], 64))], 2);
}
// CONCATENATED MODULE: ./src/qux/web/ComponentSet.vue?vue&type=template&id=1ea9ebf0

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist??ref--0-1!./src/qux/web/ComponentSet.vue?vue&type=script&lang=js



/* harmony default export */ var ComponentSetvue_type_script_lang_js = ({
  name: 'qComponentSet',
  mixins: [_Base],
  data: function data() {
    return {
      checked: false,
      qErrorMessage: 'No varient matching!',
      debug: false
    };
  },
  computed: {
    isActive: function isActive() {
      if (this.isDesignSystemRoot) {
        /**
         * If no v-model is passed, we take the checked
         */
        if (this.modelValue === undefined) {
          return this.checked;
        }

        return this.modelValue;
      }

      if (this.element) {
        var input = this.dataBindingInput;
        return input === true;
      }

      return this.checked;
    },
    selectedChild: function selectedChild() {
      if (this.element && this.$parent) {
        var matches = this.getMatchesByVarient();
        core_Logger.log(2, 'qComponentSet.selectedChild() ', matches);

        if (isChildrenToggle(this.element) && this.element.children.length > 1) {
          if (matches.length == 2) {
            /**
             * FIXME: Herre the order matters!
             */
            if (this.isActive) {
              return matches[1];
            } else {
              return matches[0];
            }
          } else {
            core_Logger.error('qComponentSet.selectedChild() > More than 2 matches for toggle', matches);
          }
        } else {
          if (matches.length === 1) {
            return matches[0];
          } else {
            core_Logger.error('qComponentSet.selectedChild() > More than 1 macthes', matches);
          }
        }
      }

      return null;
    },
    justifyContent: function justifyContent() {
      if (isWrappedContainer(this.element) && this.config.css.justifyContentInWrapper) {
        return true;
      }

      return false;
    },
    wrapperPlaceHolders: function wrapperPlaceHolders() {
      return [1, 2, 3, 4, 5, 6, 7, 8];
    }
  },
  methods: {
    toggle: function toggle(e) {
      if (this.element) {
        var value = !this.isActive;
        this.onValueChange(value, 'default');
        core_Logger.log(4, 'qComponentSet.toggle(element) > ' + this.dataBindingInputPath, value);
        this.checked = value;
      } else {
        this.checked = !this.checked;
        this.$emit('change', this.checked);
        this.$emit('update:modelValue', this.checked);
        core_Logger.log(5, 'qComponentSet.toggle() >' + this.checked);
      }
      /**
       * Also fire onClick
       */


      this.onClick(e);
    },
    getMatchesByVarient: function getMatchesByVarient() {
      var _this = this;

      var variantKeys = this.getPresentPropertyKeys();
      core_Logger.log(4, 'qComponentSet.toggle(element) > ' + this.element.name, variantKeys);
      var matches = this.element.children.filter(function (child) {
        if (child.variant) {
          var isMatch = true;
          variantKeys.forEach(function (key) {
            var value = child.variant[key];
            isMatch &= value === _this.$parent.$props[key];
          });
          return isMatch;
        }

        return false;
      });
      return matches;
    },
    getPresentPropertyKeys: function getPresentPropertyKeys() {
      var _this2 = this;

      if (this.element && this.element.children.length > 1) {
        /**
         * Assume the first child has all variants
         */
        var firstChild = this.element.children[0];

        if (firstChild.variant) {
          return Object.keys(firstChild.variant).filter(function (key) {
            var value = _this2.$parent.$props[key];
            return value !== undefined;
          });
        }
      }

      return [];
    },
    getMatchByProps: function getMatchByProps() {
      var _this3 = this;

      var matches = this.element.children.filter(function (child) {
        if (child.variant) {
          var isMatch = true;

          for (var key in child.variant) {
            var value = child.variant[key];
            isMatch &= value === _this3.$parent.$props[key];
          }

          return isMatch;
        }

        return false;
      });
      return matches;
    },
    getValue: function getValue() {
      return this.isActive;
    },
    forwardClick: function forwardClick(element, e, value) {
      this.$emit('qClick', element, e, value);
    },
    forwardChange: function forwardChange(element, e, value) {
      this.$emit('qChange', element, e, value);
    },
    forwardFocus: function forwardFocus(element, e, value) {
      this.$emit('qFocus', element, e, value);
    },
    forwardBlur: function forwardBlur(element, e, value) {
      this.$emit('qBlur', element, e, value);
    },
    forwardMouseOver: function forwardMouseOver(element, e, value) {
      this.$emit('qMouseOver', element, e, value);
    },
    forwardMouseOut: function forwardMouseOut(element, e, value) {
      this.$emit('qMouseOut', element, e, value);
    },
    forwardKeyPress: function forwardKeyPress(element, e, value) {
      this.$emit('qKeyPress', element, e, value);
    },
    forwardCallback: function forwardCallback(element, e, value) {
      this.$emit('qCallback', element, e, value);
    }
  },
  mounted: function mounted() {// console.debug('ComponentSet.mounted()', this.element.name, this.label, this.element)
  }
});
// CONCATENATED MODULE: ./src/qux/web/ComponentSet.vue?vue&type=script&lang=js
 
// EXTERNAL MODULE: ./src/qux/web/ComponentSet.vue?vue&type=style&index=0&id=1ea9ebf0&lang=scss
var ComponentSetvue_type_style_index_0_id_1ea9ebf0_lang_scss = __webpack_require__("109d");

// CONCATENATED MODULE: ./src/qux/web/ComponentSet.vue







const ComponentSet_exports_ = /*#__PURE__*/exportHelper_default()(ComponentSetvue_type_script_lang_js, [['render',ComponentSetvue_type_template_id_1ea9ebf0_render]])

/* harmony default export */ var ComponentSet = (ComponentSet_exports_);
// CONCATENATED MODULE: ./src/qux/ds/QUXDesignSystem.js
function QUXDesignSystem_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function QUXDesignSystem_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function QUXDesignSystem_createClass(Constructor, protoProps, staticProps) { if (protoProps) QUXDesignSystem_defineProperties(Constructor.prototype, protoProps); if (staticProps) QUXDesignSystem_defineProperties(Constructor, staticProps); return Constructor; }








































 // Make here a lightweight version of QUX
// makle clear distrinction between single qwidget and container... maybe in DeisgnSystem I have to decide
// make support for slots???
// map certain properties, like options etc to child



var QUXDesignSystem_QUXDesignSystem = /*#__PURE__*/function () {
  function QUXDesignSystem() {
    QUXDesignSystem_classCallCheck(this, QUXDesignSystem);

    this.server = 'https://quant-ux.com';
    this.components = {};
  }

  QUXDesignSystem_createClass(QUXDesignSystem, [{
    key: "register",
    value: async function register(app) {
      var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var hasComponentSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
      core_Logger.log(2, "QUXDesignSystem.register()", app);

      if (app.substring) {
        config.imageFolder = "".concat(this.server, "/rest/images/").concat(app, "/");
        app = await this.loadAppByKey(app);
      }

      config.addDefaultDatabinding = false;
      this.onAppLoaded(app, core_Config.merge(core_Config.getDefault(), config), hasComponentSet);
    }
  }, {
    key: "onAppLoaded",
    value: function onAppLoaded(app, config, hasComponentSet) {
      var _this = this;

      core_Logger.log(3, "QUXDesignSystem.onAppLoaded() > enter", app, config);
      var start = new Date().getTime();
      var prefix = config.designletPrefix ? config.designletPrefix : '';
      /**
       * Build tree
       */

      var transformer = new ModelTransformer_ModelTransformer(app, config);
      var tree = transformer.transform();
      /**
       * Make nicer css. Also add here a parametert to convert
       * vertAlign to padding
       */

      tree = new CSSOptimizer_CSSOptimizer(config).runTree(tree, true);
      /**
       * Register all qWidget to VUE. This oculd be still smarter...
       */

      this.initComponents();
      var cssFactory = new CSSFactory_CSSFactory(config, config.imageFolder);
      /**
       * Take all first level screen children
       */

      tree.screens.forEach(function (screen) {
        screen.children.forEach(function (widget) {
          _this.registerElement(app, widget, config, cssFactory, hasComponentSet, prefix);
        });
      });
      /**
       * ToDO: Create all templates
       */

      var stop = new Date().getTime();
      core_Logger.log(-1, "DesignSystem.onAppLoaded() > exit", stop - start);
    }
  }, {
    key: "registerElement",
    value: function registerElement(app, element, config, cssFactory, hasComponentSet, prefix) {
      core_Logger.log(-1, "QUXDesignSystem.registerElement() > enter", "<".concat(prefix).concat(element.name, ">/"));
      var props = ['label', 'value', 'options', 'href'];

      if (hasComponentSet && isComponentSet(element)) {
        this.fixComponentSet(element, props);
      }

      this.components["".concat(prefix).concat(element.name)] = {
        name: "".concat(prefix).concat(element.name),
        element: element
      };
      /**
        * Set flag for special handling and reset the cssSelectors
        */

      element.isDesignSystemRoot = true;
      /**
       * Here we create dynamicaly the qWidget that is needed! we also map our internal
       * property names to nice onces, like 'lbl' => 'label'
       */

      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component(prefix + element.name, {
        props: props,
        data: function data() {
          return {
            count: 0
          };
        },
        render: function render(createElement) {
          return createElement(element.qtype, {
            props: {
              element: element,
              model: app,
              lbl: this.label,
              value: this.value,
              url: this.href,
              optionList: this.options
            }
          }, this.$slots.default);
        }
      });
      this.createCSS(app, element, config, cssFactory);
    }
  }, {
    key: "fixComponentSet",
    value: function fixComponentSet(element, props) {
      element.qtype = 'qComponentSet';
      element.type = 'ComponentSet';

      if (element.children && element.children.length > 0) {
        var child = element.children[0];

        if (child.variant) {
          Object.keys(child.variant).forEach(function (key) {
            if (props.indexOf(key) === -1) {
              props.push(key);
            }
          });
        }

        core_Logger.log(3, "QUXDesignSystem.fixComponentSet() > component set", "<".concat(element.name, " >/"), props);
      }
    }
  }, {
    key: "createCSS",
    value: function createCSS(app, element, config, cssFactory) {
      core_Logger.log(4, "QUXDesignSystem.createCSS() > register", element.name);
      /**
       * Reset all css selectord
       */

      setCSSClassNames(element, element.cssClass);
      element.cssSelector = '.' + element.cssClass;
      var classes = cssFactory.generateDesignSystemRoot(element);
      var css = [];
      css = Object.values(classes).flatMap(function (element) {
        return element.map(function (e) {
          return e.code;
        });
      });
      css = css.join('\n');
      core_CSSWriter.write(css, app.id + '-' + element.id);
    }
  }, {
    key: "loadAppByKey",
    value: async function loadAppByKey(key) {
      core_Logger.log(2, "QUXDesignSystem.loadAppByKey() > enter", key);
      var url = "".concat(this.server, "/rest/invitation/").concat(key, "/app.json");
      var start = new Date().getTime();
      var response = await fetch(url);

      if (response.status === 200) {
        var app = await response.json();
        core_Logger.log(-1, "QUXDesignSystem.loadAppByKey() > exit", new Date().getTime() - start);
        return app;
      } else {
        core_Logger.error("QUXDesignSystem.loadAppByKey() > Could not load");
      }
    }
  }, {
    key: "mergeConfig",
    value: function mergeConfig(conf) {
      if (!conf.imageFolder) {
        conf.imageFolder = '/img/';
      }

      return conf;
    }
  }, {
    key: "initComponents",
    value: function initComponents() {
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qHotSpot', Button);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qButton', Button);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qBox', Button);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qLabel', Label);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qContainer', Container);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qIcon', Icon);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qTextBox', TextBox);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qPassword', TextBox);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qTextArea', TextArea);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qRepeater', Repeater);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qImage', Image);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qCheckBox', CheckBox);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qRadioBox', RadioBox);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qRadioBox2', RadioBox);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qRadioGroup', RadioGroup);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qCheckBoxGroup', CheckBoxGroup);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qToggleButton', Toggle);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qSwitch', Switch);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qDropDown', DropDown);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qMobileDropDown', DropDown);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qStepper', Stepper);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qHSlider', Slider);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qDate', web_Date);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qDateDropDown', DatePicker);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qSegmentButton', Segment);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qRating', Rating);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qIconToggle', IconToggle);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qLabeledIconToggle', IconToggle);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qTypeAheadTextBox', Combo);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qTable', Table);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qPaging', Paging);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qBarChart', Chart);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qPieChart', Chart);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qMultiRingChart', Chart);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qRingChart', Chart);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qVector', Vector);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qTimeline', Timeline);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qUpload', Upload);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qCamera', Camera);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qChildrenToggle', ChildrenToggle);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qUploadPreview', UploadPreview);
      external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component('qComponentSet', ComponentSet);
    }
  }]);

  return QUXDesignSystem;
}();

/* harmony default export */ var ds_QUXDesignSystem = (new QUXDesignSystem_QUXDesignSystem());
// CONCATENATED MODULE: ./src/qux/ds/FigmaDesignSystem.js
function FigmaDesignSystem_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function FigmaDesignSystem_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function FigmaDesignSystem_createClass(Constructor, protoProps, staticProps) { if (protoProps) FigmaDesignSystem_defineProperties(Constructor.prototype, protoProps); if (staticProps) FigmaDesignSystem_defineProperties(Constructor, staticProps); return Constructor; }





var FigmaDesignSystem_FigmaDesignSystem = /*#__PURE__*/function () {
  function FigmaDesignSystem() {
    FigmaDesignSystem_classCallCheck(this, FigmaDesignSystem);
  }

  FigmaDesignSystem_createClass(FigmaDesignSystem, [{
    key: "register",
    value: async function register(figmaFile, figmaAccessKey, config) {
      core_Logger.log(-1, "FigmaDesignSystem.register()", figmaFile);
      var app = figmaFile;

      if (figmaFile && figmaAccessKey) {
        /**
         * Force the design system we pinn right for now
         */
        if (!config) {
          config = {};
        }

        config.figma = {
          pinnRight: false
        };
        var figmaService = new FigmaService_FigmaService(figmaAccessKey, config);
        app = await figmaService.get(figmaFile, true);
        app = figmaService.setBackgroundImages(app);
      }
      /**
       * Pass here also the hasComponentSet = true!
       */


      return ds_QUXDesignSystem.register(app, config, true);
    }
  }]);

  return FigmaDesignSystem;
}();

/* harmony default export */ var ds_FigmaDesignSystem = (new FigmaDesignSystem_FigmaDesignSystem());
// CONCATENATED MODULE: ./src/index.js









/* harmony default export */ var src_0 = ({
  install: function install(app) {
    qux.install(app);
  }
});
function createFigmaService(key) {
  return new FigmaService_FigmaService(key);
}
function createModelTransformer(app) {
  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  var selected = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
  return new ModelTransformer_ModelTransformer(app, config, selected);
}
function createCSSOptimizer() {
  return new CSSOptimizer_CSSOptimizer();
}
function createCSSFactory() {
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  var imagePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  return new CSSFactory_CSSFactory(config, imagePrefix);
}
function createCSSWriter(css) {
  var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
  return new core_CSSWriter(css, id);
}
function setLogLevel(level) {
  core_Logger.setLogLevel(level);
}
async function createFigmaDesignlets(figmaFile, figmaAcessKey, config) {
  return ds_FigmaDesignSystem.register(figmaFile, figmaAcessKey, config);
}
async function createFigmaDesignSystem(figmaFile, figmaAcessKey, config) {
  return ds_FigmaDesignSystem.register(figmaFile, figmaAcessKey, config);
}
async function createQUXDesignlets(app, config) {
  return ds_QUXDesignSystem.register(app, config);
}
async function createQUXDesignSystem(app, config) {
  return ds_QUXDesignSystem.register(app, config);
}
function getDesignSystem() {
  return ds_QUXDesignSystem;
}
// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js


/* harmony default export */ var entry_lib = __webpack_exports__["default"] = (src_0);



/***/ }),

/***/ "fb8c":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-icon{display:inline-block}", ""]);
// Exports
module.exports = exports;


/***/ }),

/***/ "fc9f":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Segment_vue_vue_type_style_index_0_id_06af407c_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d0ae");
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Segment_vue_vue_type_style_index_0_id_06af407c_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_v16_dist_index_js_ref_0_1_Segment_vue_vue_type_style_index_0_id_06af407c_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */


/***/ }),

/***/ "ffe2":
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".qux-upload-preview{background-size:100%;background-repeat:no-repeat}.qux-upload-preview.qux-upload-preview-border{border:0 solid #333}", ""]);
// Exports
module.exports = exports;


/***/ })

/******/ });
//# sourceMappingURL=luisa-vue3.common.js.map