YetiForceCompany/YetiForceCRM

View on GitHub
public_html/layouts/resources/views/KnowledgeBase/KnowledgeBase.vue.js.map

Summary

Maintainability
Test Coverage
{"version":3,"file":"KnowledgeBase.vue.js","sources":["../../../../src/node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../../../../src/components/YfIcon.vue","../../../../src/node_modules/vue-runtime-helpers/dist/inject-style/browser.mjs","../../../../src/components/YfIcon.vue?rollup-plugin-vue=script.js","../../../../src/components/IconInfo.vue?rollup-plugin-vue=script.js","../../../../src/components/ColumnsGrid.vue?rollup-plugin-vue=script.js","../../../../src/components/ColumnsGrid.vue","../../../../src/layouts/resources/views/KnowledgeBase/components/Carousel.vue?rollup-plugin-vue=script.js","../../../../src/node_modules/rollup-plugin-node-globals/src/global.js","../../../../src/node_modules/process-es6/browser.js","../../../../src/node_modules/vuex/dist/vuex.esm.js","../../../../src/layouts/resources/views/KnowledgeBase/components/ArticlesList.vue?rollup-plugin-vue=script.js","../../../../src/node_modules/vue-drag-resize/src/components/vue-drag-resize.js","../../../../src/components/DragResize.vue?rollup-plugin-vue=script.js","../../../../src/mixins/DragResize.js","../../../../src/node_modules/vue-drag-resize/src/components/vue-drag-resize.vue","../../../../src/layouts/resources/views/KnowledgeBase/components/ArticlePreviewContent.vue?rollup-plugin-vue=script.js","../../../../src/layouts/resources/views/KnowledgeBase/components/ArticlePreview.vue?rollup-plugin-vue=script.js","../../../../src/layouts/resources/views/KnowledgeBase/components/CategoriesList.vue?rollup-plugin-vue=script.js","../../../../src/layouts/resources/views/KnowledgeBase/KnowledgeBase.vue?rollup-plugin-vue=script.js","../../../../src/components/ButtonGrab.vue?rollup-plugin-vue=script.js","../../../../src/layouts/resources/views/KnowledgeBase/KnowledgeBaseModal.vue?rollup-plugin-vue=script.js","../../../../src/layouts/resources/views/KnowledgeBase/ArticlePreviewModal.vue?rollup-plugin-vue=script.js","../../../../src/store/index.js","../../../../src/layouts/resources/views/KnowledgeBase/store/index.js","../../../../src/layouts/resources/views/KnowledgeBase/KnowledgeBase.js"],"sourcesContent":["function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n    if (typeof shadowMode !== 'boolean') {\r\n        createInjectorSSR = createInjector;\r\n        createInjector = shadowMode;\r\n        shadowMode = false;\r\n    }\r\n    // Vue.extend constructor export interop.\r\n    const options = typeof script === 'function' ? script.options : script;\r\n    // render functions\r\n    if (template && template.render) {\r\n        options.render = template.render;\r\n        options.staticRenderFns = template.staticRenderFns;\r\n        options._compiled = true;\r\n        // functional template\r\n        if (isFunctionalTemplate) {\r\n            options.functional = true;\r\n        }\r\n    }\r\n    // scopedId\r\n    if (scopeId) {\r\n        options._scopeId = scopeId;\r\n    }\r\n    let hook;\r\n    if (moduleIdentifier) {\r\n        // server build\r\n        hook = function (context) {\r\n            // 2.3 injection\r\n            context =\r\n                context || // cached call\r\n                    (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n                    (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n            // 2.2 with runInNewContext: true\r\n            if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n                context = __VUE_SSR_CONTEXT__;\r\n            }\r\n            // inject component styles\r\n            if (style) {\r\n                style.call(this, createInjectorSSR(context));\r\n            }\r\n            // register component module identifier for async chunk inference\r\n            if (context && context._registeredComponents) {\r\n                context._registeredComponents.add(moduleIdentifier);\r\n            }\r\n        };\r\n        // used by ssr in case component is cached and beforeCreate\r\n        // never gets called\r\n        options._ssrRegister = hook;\r\n    }\r\n    else if (style) {\r\n        hook = shadowMode\r\n            ? function (context) {\r\n                style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n            }\r\n            : function (context) {\r\n                style.call(this, createInjector(context));\r\n            };\r\n    }\r\n    if (hook) {\r\n        if (options.functional) {\r\n            // register for functional component in vue file\r\n            const originalRender = options.render;\r\n            options.render = function renderWithStyleInjection(h, context) {\r\n                hook.call(context);\r\n                return originalRender(h, context);\r\n            };\r\n        }\r\n        else {\r\n            // inject component registration as beforeCreate hook\r\n            const existing = options.beforeCreate;\r\n            options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n        }\r\n    }\r\n    return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","<!--\r\n/**\r\n * YfIcon component\r\n *\r\n * @description Global component\r\n * @license YetiForce Public License 6.5\r\n * @author Tomasz Poradzewski <t.poradzewski@yetiforce.com>\r\n */\r\n-->\r\n<template>\r\n\t<div class=\"flex\">\r\n\t\t<q-icon v-if=\"/^mdi|^fa/.test(icon)\" key=\"icon-lib\" :name=\"icon\" :size=\"size\" dense />\r\n\t\t<q-avatar v-else-if=\"icon.includes('/')\" key=\"icon-img\" :size=\"size\">\r\n\t\t\t<q-img :src=\"icon\" />\r\n\t\t</q-avatar>\r\n\t\t<q-icon v-else key=\"icon-yf\" :class=\"[icon, 'q-icon']\" :style=\"{ 'font-size': size ? size : '1.4em' }\" />\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\tname: 'YfIcon',\r\n\tprops: {\r\n\t\ticon: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false,\r\n\t\t},\r\n\t},\r\n}\r\n</script>\r\n\r\n<style scoped></style>\r\n","const isOldIE = typeof navigator !== 'undefined' &&\r\n    /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\r\nfunction createInjector(context) {\r\n    return (id, style) => addStyle(id, style);\r\n}\r\nlet HEAD;\r\nconst styles = {};\r\nfunction addStyle(id, css) {\r\n    const group = isOldIE ? css.media || 'default' : id;\r\n    const style = styles[group] || (styles[group] = { ids: new Set(), styles: [] });\r\n    if (!style.ids.has(id)) {\r\n        style.ids.add(id);\r\n        let code = css.source;\r\n        if (css.map) {\r\n            // https://developer.chrome.com/devtools/docs/javascript-debugging\r\n            // this makes source maps inside style tags work properly in Chrome\r\n            code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\r\n            // http://stackoverflow.com/a/26603875\r\n            code +=\r\n                '\\n/*# sourceMappingURL=data:application/json;base64,' +\r\n                    btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) +\r\n                    ' */';\r\n        }\r\n        if (!style.element) {\r\n            style.element = document.createElement('style');\r\n            style.element.type = 'text/css';\r\n            if (css.media)\r\n                style.element.setAttribute('media', css.media);\r\n            if (HEAD === undefined) {\r\n                HEAD = document.head || document.getElementsByTagName('head')[0];\r\n            }\r\n            HEAD.appendChild(style.element);\r\n        }\r\n        if ('styleSheet' in style.element) {\r\n            style.styles.push(code);\r\n            style.element.styleSheet.cssText = style.styles\r\n                .filter(Boolean)\r\n                .join('\\n');\r\n        }\r\n        else {\r\n            const index = style.ids.size - 1;\r\n            const textNode = document.createTextNode(code);\r\n            const nodes = style.element.childNodes;\r\n            if (nodes[index])\r\n                style.element.removeChild(nodes[index]);\r\n            if (nodes.length)\r\n                style.element.insertBefore(textNode, nodes[index]);\r\n            else\r\n                style.element.appendChild(textNode);\r\n        }\r\n    }\r\n}\n\nexport default createInjector;\n//# sourceMappingURL=browser.mjs.map\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n\tname: 'YfIcon',\r\n\tprops: {\r\n\t\ticon: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false,\r\n\t\t},\r\n\t},\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n\tname: 'IconInfo',\r\n\tprops: {\r\n\t\tcustomOptions: {\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tsearchInfoShow: false,\r\n\t\t\toptions: {\r\n\t\t\t\ticonSize: 'inherit',\r\n\t\t\t\ttooltipFont: '14px',\r\n\t\t\t\tbackgroundClass: 'bg-primary',\r\n\t\t\t},\r\n\t\t\ttooltipId: `tooltip-id-${Quasar.utils.uid()}`,\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tthis.options = Object.assign(this.options, this.customOptions)\r\n\t\tdocument.addEventListener('click', (e) => {\r\n\t\t\tif (this.searchInfoShow && !e.target.offsetParent.classList.contains(this.tooltipId) && !e.target.classList.contains(this.tooltipId)) {\r\n\t\t\t\tthis.searchInfoShow = false\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n\tname: 'ColumnsGrid',\r\n\tprops: {\r\n\t\tcolumnBlocks: {\r\n\t\t\ttype: Array,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t},\r\n}\r\n","<!--\r\n/**\r\n * ColumnsGrid component\r\n *\r\n * @description Records columns component\r\n * @license YetiForce Public License 6.5\r\n * @author Tomasz Poradzewski <t.poradzewski@yetiforce.com>\r\n */\r\n-->\r\n<template>\r\n\t<div\r\n\t\tclass=\"columns-grid__container\"\r\n\t\t:style=\"{\r\n\t\t\t'-webkit-column-count': columnBlocks.length,\r\n\t\t\t'-moz-column-count': columnBlocks.length,\r\n\t\t\t'column-count': columnBlocks.length,\r\n\t\t}\"\r\n\t>\r\n\t\t<template v-for=\"relatedBlock in columnBlocks\">\r\n\t\t\t<div :key=\"relatedBlock\" class=\"columns-grid__block\">\r\n\t\t\t\t<slot :relatedBlock=\"relatedBlock\"></slot>\r\n\t\t\t</div>\r\n\t\t</template>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n\tname: 'ColumnsGrid',\r\n\tprops: {\r\n\t\tcolumnBlocks: {\r\n\t\t\ttype: Array,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t},\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.columns-grid__container {\r\n\t-webkit-column-width: 27rem;\r\n\t-moz-column-width: 27rem;\r\n\tcolumn-width: 27rem;\r\n}\r\n.columns-grid__block {\r\n\twidth: 100%;\r\n\tpadding-bottom: 16px;\r\n\t-webkit-column-break-inside: avoid;\r\n\tpage-break-inside: avoid;\r\n\tbreak-inside: avoid-column;\r\n}\r\n</style>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n  name: 'Carousel',\r\n  data() {\r\n    return {\r\n      slide: 0,\r\n      height: '90vh',\r\n      report: 0,\r\n      fullscreen: false\r\n    }\r\n  },\r\n  props: {\r\n    record: {\r\n      type: Object,\r\n      required: true\r\n    }\r\n  },\r\n  watch: {\r\n    fullscreen: function(val) {\r\n      if (val) {\r\n        this.$q.fullscreen.request()\r\n      } else {\r\n        this.$q.fullscreen.exit()\r\n      }\r\n    },\r\n    '$q.fullscreen.isActive'(val) {\r\n      this.fullscreen = val\r\n    }\r\n  },\r\n  methods: {\r\n    onTransition(size) {\r\n      const scrollbarWidth = 17\r\n      $(this.$refs.carousel.$el)\r\n        .find('img')\r\n        .css('max-width', $(this.$refs.carousel.$el).width() - scrollbarWidth)\r\n    }\r\n  }\r\n}\r\n","export default (typeof global !== \"undefined\" ? global :\n            typeof self !== \"undefined\" ? self :\n            typeof window !== \"undefined\" ? window : {});\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n    cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n    cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\nexport function nextTick(fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n    throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n    throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n  performance.now        ||\n  performance.mozNow     ||\n  performance.msNow      ||\n  performance.oNow       ||\n  performance.webkitNow  ||\n  function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n  var clocktime = performanceNow.call(performance)*1e-3\n  var seconds = Math.floor(clocktime)\n  var nanoseconds = Math.floor((clocktime%1)*1e9)\n  if (previousTimestamp) {\n    seconds = seconds - previousTimestamp[0]\n    nanoseconds = nanoseconds - previousTimestamp[1]\n    if (nanoseconds<0) {\n      seconds--\n      nanoseconds += 1e9\n    }\n  }\n  return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n  var currentTime = new Date();\n  var dif = currentTime - startTime;\n  return dif / 1000;\n}\n\nexport default {\n  nextTick: nextTick,\n  title: title,\n  browser: browser,\n  env: env,\n  argv: argv,\n  version: version,\n  versions: versions,\n  on: on,\n  addListener: addListener,\n  once: once,\n  off: off,\n  removeListener: removeListener,\n  removeAllListeners: removeAllListeners,\n  emit: emit,\n  binding: binding,\n  cwd: cwd,\n  chdir: chdir,\n  umask: umask,\n  hrtime: hrtime,\n  platform: platform,\n  release: release,\n  config: config,\n  uptime: uptime\n};\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n  var version = Number(Vue.version.split('.')[0]);\n\n  if (version >= 2) {\n    Vue.mixin({ beforeCreate: vuexInit });\n  } else {\n    // override init and inject vuex init procedure\n    // for 1.x backwards compatibility.\n    var _init = Vue.prototype._init;\n    Vue.prototype._init = function (options) {\n      if ( options === void 0 ) options = {};\n\n      options.init = options.init\n        ? [vuexInit].concat(options.init)\n        : vuexInit;\n      _init.call(this, options);\n    };\n  }\n\n  /**\n   * Vuex init hook, injected into each instances init hooks list.\n   */\n\n  function vuexInit () {\n    var options = this.$options;\n    // store injection\n    if (options.store) {\n      this.$store = typeof options.store === 'function'\n        ? options.store()\n        : options.store;\n    } else if (options.parent && options.parent.$store) {\n      this.$store = options.parent.$store;\n    }\n  }\n}\n\nvar target = typeof window !== 'undefined'\n  ? window\n  : typeof global !== 'undefined'\n    ? global\n    : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n  if (!devtoolHook) { return }\n\n  store._devtoolHook = devtoolHook;\n\n  devtoolHook.emit('vuex:init', store);\n\n  devtoolHook.on('vuex:travel-to-state', function (targetState) {\n    store.replaceState(targetState);\n  });\n\n  store.subscribe(function (mutation, state) {\n    devtoolHook.emit('vuex:mutation', mutation, state);\n  }, { prepend: true });\n\n  store.subscribeAction(function (action, state) {\n    devtoolHook.emit('vuex:action', action, state);\n  }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n  return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n  if ( cache === void 0 ) cache = [];\n\n  // just return if obj is immutable value\n  if (obj === null || typeof obj !== 'object') {\n    return obj\n  }\n\n  // if obj is hit, it is in circular structure\n  var hit = find(cache, function (c) { return c.original === obj; });\n  if (hit) {\n    return hit.copy\n  }\n\n  var copy = Array.isArray(obj) ? [] : {};\n  // put the copy into cache at first\n  // because we want to refer it in recursive deepCopy\n  cache.push({\n    original: obj,\n    copy: copy\n  });\n\n  Object.keys(obj).forEach(function (key) {\n    copy[key] = deepCopy(obj[key], cache);\n  });\n\n  return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n  Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n  return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n  if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n  return function () {\n    return fn(arg)\n  }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n  this.runtime = runtime;\n  // Store some children item\n  this._children = Object.create(null);\n  // Store the origin module object which passed by programmer\n  this._rawModule = rawModule;\n  var rawState = rawModule.state;\n\n  // Store the origin module's state\n  this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n  return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n  this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n  delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n  return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n  return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n  this._rawModule.namespaced = rawModule.namespaced;\n  if (rawModule.actions) {\n    this._rawModule.actions = rawModule.actions;\n  }\n  if (rawModule.mutations) {\n    this._rawModule.mutations = rawModule.mutations;\n  }\n  if (rawModule.getters) {\n    this._rawModule.getters = rawModule.getters;\n  }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n  forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n  if (this._rawModule.getters) {\n    forEachValue(this._rawModule.getters, fn);\n  }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n  if (this._rawModule.actions) {\n    forEachValue(this._rawModule.actions, fn);\n  }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n  if (this._rawModule.mutations) {\n    forEachValue(this._rawModule.mutations, fn);\n  }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n  // register root module (Vuex.Store options)\n  this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n  return path.reduce(function (module, key) {\n    return module.getChild(key)\n  }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n  var module = this.root;\n  return path.reduce(function (namespace, key) {\n    module = module.getChild(key);\n    return namespace + (module.namespaced ? key + '/' : '')\n  }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n  update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n    var this$1 = this;\n    if ( runtime === void 0 ) runtime = true;\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assertRawModule(path, rawModule);\n  }\n\n  var newModule = new Module(rawModule, runtime);\n  if (path.length === 0) {\n    this.root = newModule;\n  } else {\n    var parent = this.get(path.slice(0, -1));\n    parent.addChild(path[path.length - 1], newModule);\n  }\n\n  // register nested modules\n  if (rawModule.modules) {\n    forEachValue(rawModule.modules, function (rawChildModule, key) {\n      this$1.register(path.concat(key), rawChildModule, runtime);\n    });\n  }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n  var parent = this.get(path.slice(0, -1));\n  var key = path[path.length - 1];\n  var child = parent.getChild(key);\n\n  if (!child) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.warn(\n        \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n        \"not registered\"\n      );\n    }\n    return\n  }\n\n  if (!child.runtime) {\n    return\n  }\n\n  parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n  var parent = this.get(path.slice(0, -1));\n  var key = path[path.length - 1];\n\n  if (parent) {\n    return parent.hasChild(key)\n  }\n\n  return false\n};\n\nfunction update (path, targetModule, newModule) {\n  if ((process.env.NODE_ENV !== 'production')) {\n    assertRawModule(path, newModule);\n  }\n\n  // update target module\n  targetModule.update(newModule);\n\n  // update nested modules\n  if (newModule.modules) {\n    for (var key in newModule.modules) {\n      if (!targetModule.getChild(key)) {\n        if ((process.env.NODE_ENV !== 'production')) {\n          console.warn(\n            \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n            'manual reload is needed'\n          );\n        }\n        return\n      }\n      update(\n        path.concat(key),\n        targetModule.getChild(key),\n        newModule.modules[key]\n      );\n    }\n  }\n}\n\nvar functionAssert = {\n  assert: function (value) { return typeof value === 'function'; },\n  expected: 'function'\n};\n\nvar objectAssert = {\n  assert: function (value) { return typeof value === 'function' ||\n    (typeof value === 'object' && typeof value.handler === 'function'); },\n  expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n  getters: functionAssert,\n  mutations: functionAssert,\n  actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n  Object.keys(assertTypes).forEach(function (key) {\n    if (!rawModule[key]) { return }\n\n    var assertOptions = assertTypes[key];\n\n    forEachValue(rawModule[key], function (value, type) {\n      assert(\n        assertOptions.assert(value),\n        makeAssertionMessage(path, key, type, value, assertOptions.expected)\n      );\n    });\n  });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n  var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n  if (path.length > 0) {\n    buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n  }\n  buf += \" is \" + (JSON.stringify(value)) + \".\";\n  return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n  var this$1 = this;\n  if ( options === void 0 ) options = {};\n\n  // Auto install if it is not done yet and `window` has `Vue`.\n  // To allow users to avoid auto-installation in some cases,\n  // this code should be placed here. See #731\n  if (!Vue && typeof window !== 'undefined' && window.Vue) {\n    install(window.Vue);\n  }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n    assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n    assert(this instanceof Store, \"store must be called with the new operator.\");\n  }\n\n  var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n  var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n  // store internal state\n  this._committing = false;\n  this._actions = Object.create(null);\n  this._actionSubscribers = [];\n  this._mutations = Object.create(null);\n  this._wrappedGetters = Object.create(null);\n  this._modules = new ModuleCollection(options);\n  this._modulesNamespaceMap = Object.create(null);\n  this._subscribers = [];\n  this._watcherVM = new Vue();\n  this._makeLocalGettersCache = Object.create(null);\n\n  // bind commit and dispatch to self\n  var store = this;\n  var ref = this;\n  var dispatch = ref.dispatch;\n  var commit = ref.commit;\n  this.dispatch = function boundDispatch (type, payload) {\n    return dispatch.call(store, type, payload)\n  };\n  this.commit = function boundCommit (type, payload, options) {\n    return commit.call(store, type, payload, options)\n  };\n\n  // strict mode\n  this.strict = strict;\n\n  var state = this._modules.root.state;\n\n  // init root module.\n  // this also recursively registers all sub-modules\n  // and collects all module getters inside this._wrappedGetters\n  installModule(this, state, [], this._modules.root);\n\n  // initialize the store vm, which is responsible for the reactivity\n  // (also registers _wrappedGetters as computed properties)\n  resetStoreVM(this, state);\n\n  // apply plugins\n  plugins.forEach(function (plugin) { return plugin(this$1); });\n\n  var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n  if (useDevtools) {\n    devtoolPlugin(this);\n  }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n  return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(false, \"use store.replaceState() to explicit replace store state.\");\n  }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n    var this$1 = this;\n\n  // check object-style commit\n  var ref = unifyObjectStyle(_type, _payload, _options);\n    var type = ref.type;\n    var payload = ref.payload;\n    var options = ref.options;\n\n  var mutation = { type: type, payload: payload };\n  var entry = this._mutations[type];\n  if (!entry) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.error((\"[vuex] unknown mutation type: \" + type));\n    }\n    return\n  }\n  this._withCommit(function () {\n    entry.forEach(function commitIterator (handler) {\n      handler(payload);\n    });\n  });\n\n  this._subscribers\n    .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n    .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n  if (\n    (process.env.NODE_ENV !== 'production') &&\n    options && options.silent\n  ) {\n    console.warn(\n      \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n      'Use the filter functionality in the vue-devtools'\n    );\n  }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n    var this$1 = this;\n\n  // check object-style dispatch\n  var ref = unifyObjectStyle(_type, _payload);\n    var type = ref.type;\n    var payload = ref.payload;\n\n  var action = { type: type, payload: payload };\n  var entry = this._actions[type];\n  if (!entry) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.error((\"[vuex] unknown action type: \" + type));\n    }\n    return\n  }\n\n  try {\n    this._actionSubscribers\n      .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n      .filter(function (sub) { return sub.before; })\n      .forEach(function (sub) { return sub.before(action, this$1.state); });\n  } catch (e) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.warn(\"[vuex] error in before action subscribers: \");\n      console.error(e);\n    }\n  }\n\n  var result = entry.length > 1\n    ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n    : entry[0](payload);\n\n  return new Promise(function (resolve, reject) {\n    result.then(function (res) {\n      try {\n        this$1._actionSubscribers\n          .filter(function (sub) { return sub.after; })\n          .forEach(function (sub) { return sub.after(action, this$1.state); });\n      } catch (e) {\n        if ((process.env.NODE_ENV !== 'production')) {\n          console.warn(\"[vuex] error in after action subscribers: \");\n          console.error(e);\n        }\n      }\n      resolve(res);\n    }, function (error) {\n      try {\n        this$1._actionSubscribers\n          .filter(function (sub) { return sub.error; })\n          .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n      } catch (e) {\n        if ((process.env.NODE_ENV !== 'production')) {\n          console.warn(\"[vuex] error in error action subscribers: \");\n          console.error(e);\n        }\n      }\n      reject(error);\n    });\n  })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n  return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n  var subs = typeof fn === 'function' ? { before: fn } : fn;\n  return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n    var this$1 = this;\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n  }\n  return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n    var this$1 = this;\n\n  this._withCommit(function () {\n    this$1._vm._data.$$state = state;\n  });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n    if ( options === void 0 ) options = {};\n\n  if (typeof path === 'string') { path = [path]; }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(Array.isArray(path), \"module path must be a string or an Array.\");\n    assert(path.length > 0, 'cannot register the root module by using registerModule.');\n  }\n\n  this._modules.register(path, rawModule);\n  installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n  // reset store to update getters...\n  resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n    var this$1 = this;\n\n  if (typeof path === 'string') { path = [path]; }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(Array.isArray(path), \"module path must be a string or an Array.\");\n  }\n\n  this._modules.unregister(path);\n  this._withCommit(function () {\n    var parentState = getNestedState(this$1.state, path.slice(0, -1));\n    Vue.delete(parentState, path[path.length - 1]);\n  });\n  resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n  if (typeof path === 'string') { path = [path]; }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(Array.isArray(path), \"module path must be a string or an Array.\");\n  }\n\n  return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n  this._modules.update(newOptions);\n  resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n  var committing = this._committing;\n  this._committing = true;\n  fn();\n  this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n  if (subs.indexOf(fn) < 0) {\n    options && options.prepend\n      ? subs.unshift(fn)\n      : subs.push(fn);\n  }\n  return function () {\n    var i = subs.indexOf(fn);\n    if (i > -1) {\n      subs.splice(i, 1);\n    }\n  }\n}\n\nfunction resetStore (store, hot) {\n  store._actions = Object.create(null);\n  store._mutations = Object.create(null);\n  store._wrappedGetters = Object.create(null);\n  store._modulesNamespaceMap = Object.create(null);\n  var state = store.state;\n  // init all modules\n  installModule(store, state, [], store._modules.root, true);\n  // reset vm\n  resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n  var oldVm = store._vm;\n\n  // bind store public getters\n  store.getters = {};\n  // reset local getters cache\n  store._makeLocalGettersCache = Object.create(null);\n  var wrappedGetters = store._wrappedGetters;\n  var computed = {};\n  forEachValue(wrappedGetters, function (fn, key) {\n    // use computed to leverage its lazy-caching mechanism\n    // direct inline function use will lead to closure preserving oldVm.\n    // using partial to return function with only arguments preserved in closure environment.\n    computed[key] = partial(fn, store);\n    Object.defineProperty(store.getters, key, {\n      get: function () { return store._vm[key]; },\n      enumerable: true // for local getters\n    });\n  });\n\n  // use a Vue instance to store the state tree\n  // suppress warnings just in case the user has added\n  // some funky global mixins\n  var silent = Vue.config.silent;\n  Vue.config.silent = true;\n  store._vm = new Vue({\n    data: {\n      $$state: state\n    },\n    computed: computed\n  });\n  Vue.config.silent = silent;\n\n  // enable strict mode for new vm\n  if (store.strict) {\n    enableStrictMode(store);\n  }\n\n  if (oldVm) {\n    if (hot) {\n      // dispatch changes in all subscribed watchers\n      // to force getter re-evaluation for hot reloading.\n      store._withCommit(function () {\n        oldVm._data.$$state = null;\n      });\n    }\n    Vue.nextTick(function () { return oldVm.$destroy(); });\n  }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n  var isRoot = !path.length;\n  var namespace = store._modules.getNamespace(path);\n\n  // register in namespace map\n  if (module.namespaced) {\n    if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n      console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n    }\n    store._modulesNamespaceMap[namespace] = module;\n  }\n\n  // set state\n  if (!isRoot && !hot) {\n    var parentState = getNestedState(rootState, path.slice(0, -1));\n    var moduleName = path[path.length - 1];\n    store._withCommit(function () {\n      if ((process.env.NODE_ENV !== 'production')) {\n        if (moduleName in parentState) {\n          console.warn(\n            (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n          );\n        }\n      }\n      Vue.set(parentState, moduleName, module.state);\n    });\n  }\n\n  var local = module.context = makeLocalContext(store, namespace, path);\n\n  module.forEachMutation(function (mutation, key) {\n    var namespacedType = namespace + key;\n    registerMutation(store, namespacedType, mutation, local);\n  });\n\n  module.forEachAction(function (action, key) {\n    var type = action.root ? key : namespace + key;\n    var handler = action.handler || action;\n    registerAction(store, type, handler, local);\n  });\n\n  module.forEachGetter(function (getter, key) {\n    var namespacedType = namespace + key;\n    registerGetter(store, namespacedType, getter, local);\n  });\n\n  module.forEachChild(function (child, key) {\n    installModule(store, rootState, path.concat(key), child, hot);\n  });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n  var noNamespace = namespace === '';\n\n  var local = {\n    dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n      var args = unifyObjectStyle(_type, _payload, _options);\n      var payload = args.payload;\n      var options = args.options;\n      var type = args.type;\n\n      if (!options || !options.root) {\n        type = namespace + type;\n        if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n          console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n          return\n        }\n      }\n\n      return store.dispatch(type, payload)\n    },\n\n    commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n      var args = unifyObjectStyle(_type, _payload, _options);\n      var payload = args.payload;\n      var options = args.options;\n      var type = args.type;\n\n      if (!options || !options.root) {\n        type = namespace + type;\n        if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n          console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n          return\n        }\n      }\n\n      store.commit(type, payload, options);\n    }\n  };\n\n  // getters and state object must be gotten lazily\n  // because they will be changed by vm update\n  Object.defineProperties(local, {\n    getters: {\n      get: noNamespace\n        ? function () { return store.getters; }\n        : function () { return makeLocalGetters(store, namespace); }\n    },\n    state: {\n      get: function () { return getNestedState(store.state, path); }\n    }\n  });\n\n  return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n  if (!store._makeLocalGettersCache[namespace]) {\n    var gettersProxy = {};\n    var splitPos = namespace.length;\n    Object.keys(store.getters).forEach(function (type) {\n      // skip if the target getter is not match this namespace\n      if (type.slice(0, splitPos) !== namespace) { return }\n\n      // extract local getter type\n      var localType = type.slice(splitPos);\n\n      // Add a port to the getters proxy.\n      // Define as getter property because\n      // we do not want to evaluate the getters in this time.\n      Object.defineProperty(gettersProxy, localType, {\n        get: function () { return store.getters[type]; },\n        enumerable: true\n      });\n    });\n    store._makeLocalGettersCache[namespace] = gettersProxy;\n  }\n\n  return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n  var entry = store._mutations[type] || (store._mutations[type] = []);\n  entry.push(function wrappedMutationHandler (payload) {\n    handler.call(store, local.state, payload);\n  });\n}\n\nfunction registerAction (store, type, handler, local) {\n  var entry = store._actions[type] || (store._actions[type] = []);\n  entry.push(function wrappedActionHandler (payload) {\n    var res = handler.call(store, {\n      dispatch: local.dispatch,\n      commit: local.commit,\n      getters: local.getters,\n      state: local.state,\n      rootGetters: store.getters,\n      rootState: store.state\n    }, payload);\n    if (!isPromise(res)) {\n      res = Promise.resolve(res);\n    }\n    if (store._devtoolHook) {\n      return res.catch(function (err) {\n        store._devtoolHook.emit('vuex:error', err);\n        throw err\n      })\n    } else {\n      return res\n    }\n  });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n  if (store._wrappedGetters[type]) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.error((\"[vuex] duplicate getter key: \" + type));\n    }\n    return\n  }\n  store._wrappedGetters[type] = function wrappedGetter (store) {\n    return rawGetter(\n      local.state, // local state\n      local.getters, // local getters\n      store.state, // root state\n      store.getters // root getters\n    )\n  };\n}\n\nfunction enableStrictMode (store) {\n  store._vm.$watch(function () { return this._data.$$state }, function () {\n    if ((process.env.NODE_ENV !== 'production')) {\n      assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n    }\n  }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n  return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n  if (isObject(type) && type.type) {\n    options = payload;\n    payload = type;\n    type = type.type;\n  }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n  }\n\n  return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n  if (Vue && _Vue === Vue) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.error(\n        '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n      );\n    }\n    return\n  }\n  Vue = _Vue;\n  applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n  var res = {};\n  if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n    console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n  }\n  normalizeMap(states).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedState () {\n      var state = this.$store.state;\n      var getters = this.$store.getters;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n        if (!module) {\n          return\n        }\n        state = module.context.state;\n        getters = module.context.getters;\n      }\n      return typeof val === 'function'\n        ? val.call(this, state, getters)\n        : state[val]\n    };\n    // mark vuex getter for devtools\n    res[key].vuex = true;\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n  var res = {};\n  if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n    console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n  }\n  normalizeMap(mutations).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedMutation () {\n      var args = [], len = arguments.length;\n      while ( len-- ) args[ len ] = arguments[ len ];\n\n      // Get the commit method from store\n      var commit = this.$store.commit;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n        if (!module) {\n          return\n        }\n        commit = module.context.commit;\n      }\n      return typeof val === 'function'\n        ? val.apply(this, [commit].concat(args))\n        : commit.apply(this.$store, [val].concat(args))\n    };\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n  var res = {};\n  if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n    console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n  }\n  normalizeMap(getters).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    // The namespace has been mutated by normalizeNamespace\n    val = namespace + val;\n    res[key] = function mappedGetter () {\n      if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n        return\n      }\n      if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n        console.error((\"[vuex] unknown getter: \" + val));\n        return\n      }\n      return this.$store.getters[val]\n    };\n    // mark vuex getter for devtools\n    res[key].vuex = true;\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n  var res = {};\n  if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n    console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n  }\n  normalizeMap(actions).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedAction () {\n      var args = [], len = arguments.length;\n      while ( len-- ) args[ len ] = arguments[ len ];\n\n      // get dispatch function from store\n      var dispatch = this.$store.dispatch;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n        if (!module) {\n          return\n        }\n        dispatch = module.context.dispatch;\n      }\n      return typeof val === 'function'\n        ? val.apply(this, [dispatch].concat(args))\n        : dispatch.apply(this.$store, [val].concat(args))\n    };\n  });\n  return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n  mapState: mapState.bind(null, namespace),\n  mapGetters: mapGetters.bind(null, namespace),\n  mapMutations: mapMutations.bind(null, namespace),\n  mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n  if (!isValidMap(map)) {\n    return []\n  }\n  return Array.isArray(map)\n    ? map.map(function (key) { return ({ key: key, val: key }); })\n    : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n  return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n  return function (namespace, map) {\n    if (typeof namespace !== 'string') {\n      map = namespace;\n      namespace = '';\n    } else if (namespace.charAt(namespace.length - 1) !== '/') {\n      namespace += '/';\n    }\n    return fn(namespace, map)\n  }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n  var module = store._modulesNamespaceMap[namespace];\n  if ((process.env.NODE_ENV !== 'production') && !module) {\n    console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n  }\n  return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n  if ( ref === void 0 ) ref = {};\n  var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n  var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n  var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n  var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n  var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n  var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n  var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n  var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n  var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n  return function (store) {\n    var prevState = deepCopy(store.state);\n\n    if (typeof logger === 'undefined') {\n      return\n    }\n\n    if (logMutations) {\n      store.subscribe(function (mutation, state) {\n        var nextState = deepCopy(state);\n\n        if (filter(mutation, prevState, nextState)) {\n          var formattedTime = getFormattedTime();\n          var formattedMutation = mutationTransformer(mutation);\n          var message = \"mutation \" + (mutation.type) + formattedTime;\n\n          startMessage(logger, message, collapsed);\n          logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n          logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n          logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n          endMessage(logger);\n        }\n\n        prevState = nextState;\n      });\n    }\n\n    if (logActions) {\n      store.subscribeAction(function (action, state) {\n        if (actionFilter(action, state)) {\n          var formattedTime = getFormattedTime();\n          var formattedAction = actionTransformer(action);\n          var message = \"action \" + (action.type) + formattedTime;\n\n          startMessage(logger, message, collapsed);\n          logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n          endMessage(logger);\n        }\n      });\n    }\n  }\n}\n\nfunction startMessage (logger, message, collapsed) {\n  var startMessage = collapsed\n    ? logger.groupCollapsed\n    : logger.group;\n\n  // render\n  try {\n    startMessage.call(logger, message);\n  } catch (e) {\n    logger.log(message);\n  }\n}\n\nfunction endMessage (logger) {\n  try {\n    logger.groupEnd();\n  } catch (e) {\n    logger.log('—— log end ——');\n  }\n}\n\nfunction getFormattedTime () {\n  var time = new Date();\n  return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n  return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n  return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n  Store: Store,\n  install: install,\n  version: '3.6.2',\n  mapState: mapState,\n  mapMutations: mapMutations,\n  mapGetters: mapGetters,\n  mapActions: mapActions,\n  createNamespacedHelpers: createNamespacedHelpers,\n  createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport YfIcon from '~/components/YfIcon.vue'\r\nimport { createNamespacedHelpers } from 'vuex'\r\nconst { mapGetters, mapActions } = createNamespacedHelpers('KnowledgeBase')\r\nexport default {\r\n  name: 'ArticlesList',\r\n  components: { YfIcon },\r\n  props: {\r\n    data: {\r\n      type: Array,\r\n      default: []\r\n    },\r\n    title: {\r\n      type: String,\r\n      default: ''\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      pagination: {\r\n        rowsPerPage: 0\r\n      },\r\n      columns: [\r\n        {\r\n          name: 'desc',\r\n          required: true,\r\n          label: 'Title',\r\n          align: 'left',\r\n          field: row => row.subject,\r\n          format: val => `${val}`,\r\n          sortable: true\r\n        },\r\n        { name: 'short_time', align: 'center', label: 'Short time', field: 'short_time', sortable: true },\r\n        { name: 'introduction', align: 'center', label: 'Introduction', field: 'introduction', sortable: true }\r\n      ]\r\n    }\r\n  },\r\n  computed: {\r\n    ...mapGetters(['tree', 'iconSize', 'moduleName']),\r\n    hasData() {\r\n      return this.data.length\r\n    }\r\n  },\r\n  methods: {\r\n    ...mapActions(['fetchRecord']),\r\n    onClickRecord(id) {\r\n      this.fetchRecord(id).then(() => {\r\n        this.$emit('onClickRecord', id)\r\n      })\r\n    }\r\n  }\r\n}\r\n","const styleMapping = {\r\n    y: {\r\n        t: 'top',\r\n        m: 'marginTop',\r\n        b: 'bottom',\r\n    },\r\n    x: {\r\n        l: 'left',\r\n        m: 'marginLeft',\r\n        r: 'right',\r\n    },\r\n};\r\n\r\nfunction addEvents(events) {\r\n    events.forEach((cb, eventName) => {\r\n        document.documentElement.addEventListener(eventName, cb);\r\n    });\r\n}\r\n\r\nfunction removeEvents(events) {\r\n    events.forEach((cb, eventName) => {\r\n        document.documentElement.removeEventListener(eventName, cb);\r\n    });\r\n}\r\n\r\nexport default {\r\n    name: 'vue-drag-resize',\r\n\r\n    emits: ['clicked', 'dragging', 'dragstop', 'resizing', 'resizestop', 'activated', 'deactivated'],\r\n\r\n    props: {\r\n        stickSize: {\r\n            type: Number, default: 8,\r\n        },\r\n        parentScaleX: {\r\n            type: Number, default: 1,\r\n        },\r\n        parentScaleY: {\r\n            type: Number, default: 1,\r\n        },\r\n        isActive: {\r\n            type: Boolean, default: false,\r\n        },\r\n        preventActiveBehavior: {\r\n            type: Boolean, default: false,\r\n        },\r\n        isDraggable: {\r\n            type: Boolean, default: true,\r\n        },\r\n        isResizable: {\r\n            type: Boolean, default: true,\r\n        },\r\n        aspectRatio: {\r\n            type: Boolean, default: false,\r\n        },\r\n        parentLimitation: {\r\n            type: Boolean, default: false,\r\n        },\r\n        snapToGrid: {\r\n            type: Boolean, default: false,\r\n        },\r\n        gridX: {\r\n            type: Number,\r\n            default: 50,\r\n            validator(val) {\r\n                return val >= 0;\r\n            },\r\n        },\r\n        gridY: {\r\n            type: Number,\r\n            default: 50,\r\n            validator(val) {\r\n                return val >= 0;\r\n            },\r\n        },\r\n        parentW: {\r\n            type: Number,\r\n            default: 0,\r\n            validator(val) {\r\n                return val >= 0;\r\n            },\r\n        },\r\n        parentH: {\r\n            type: Number,\r\n            default: 0,\r\n            validator(val) {\r\n                return val >= 0;\r\n            },\r\n        },\r\n        w: {\r\n            type: [String, Number],\r\n            default: 200,\r\n            validator(val) {\r\n                return (typeof val === 'string') ? val === 'auto' : val >= 0;\r\n            },\r\n        },\r\n        h: {\r\n            type: [String, Number],\r\n            default: 200,\r\n            validator(val) {\r\n                return (typeof val === 'string') ? val === 'auto' : val >= 0;\r\n            },\r\n        },\r\n        minw: {\r\n            type: Number,\r\n            default: 50,\r\n            validator(val) {\r\n                return val >= 0;\r\n            },\r\n        },\r\n        minh: {\r\n            type: Number,\r\n            default: 50,\r\n            validator(val) {\r\n                return val >= 0;\r\n            },\r\n        },\r\n        x: {\r\n            type: Number,\r\n            default: 0,\r\n            validator(val) {\r\n                return typeof val === 'number';\r\n            },\r\n        },\r\n        y: {\r\n            type: Number,\r\n            default: 0,\r\n            validator(val) {\r\n                return typeof val === 'number';\r\n            },\r\n        },\r\n        z: {\r\n            type: [String, Number],\r\n            default: 'auto',\r\n            validator(val) {\r\n                return (typeof val === 'string') ? val === 'auto' : val >= 0;\r\n            },\r\n        },\r\n        dragHandle: {\r\n            type: String,\r\n            default: null,\r\n        },\r\n        dragCancel: {\r\n            type: String,\r\n            default: null,\r\n        },\r\n        sticks: {\r\n            type: Array,\r\n            default() {\r\n                return ['tl', 'tm', 'tr', 'mr', 'br', 'bm', 'bl', 'ml'];\r\n            },\r\n        },\r\n        axis: {\r\n            type: String,\r\n            default: 'both',\r\n            validator(val) {\r\n                return ['x', 'y', 'both', 'none'].indexOf(val) !== -1;\r\n            },\r\n        },\r\n        contentClass: {\r\n            type: String,\r\n            required: false,\r\n            default: '',\r\n        },\r\n    },\r\n\r\n    data() {\r\n        return {\r\n            fixAspectRatio: null,\r\n            active: null,\r\n            zIndex: null,\r\n            parentWidth: null,\r\n            parentHeight: null,\r\n            left: null,\r\n            top: null,\r\n            right: null,\r\n            bottom: null,\r\n            minHeight: null,\r\n        };\r\n    },\r\n\r\n    beforeCreate() {\r\n        this.stickDrag = false;\r\n        this.bodyDrag = false;\r\n        this.dimensionsBeforeMove = { pointerX: 0, pointerY: 0, x: 0, y: 0, w: 0, h: 0 };\r\n        this.limits = {\r\n            left: { min: null, max: null },\r\n            right: { min: null, max: null },\r\n            top: { min: null, max: null },\r\n            bottom: { min: null, max: null },\r\n        };\r\n\r\n        this.currentStick = null;\r\n    },\r\n\r\n    mounted() {\r\n        this.parentElement = this.$el.parentNode;\r\n        this.parentWidth = this.parentW ? this.parentW : this.parentElement.clientWidth;\r\n        this.parentHeight = this.parentH ? this.parentH : this.parentElement.clientHeight;\r\n\r\n        this.left = this.x;\r\n        this.top = this.y;\r\n        this.right = this.parentWidth - (this.w === 'auto' ? this.$refs.container.scrollWidth : this.w) - this.left;\r\n        this.bottom = this.parentHeight - (this.h === 'auto' ? this.$refs.container.scrollHeight : this.h) - this.top;\r\n\r\n        this.domEvents = new Map([\r\n            ['mousemove', this.move],\r\n            ['mouseup', this.up],\r\n            ['mouseleave', this.up],\r\n            ['mousedown', this.deselect],\r\n            ['touchmove', this.move],\r\n            ['touchend', this.up],\r\n            ['touchcancel', this.up],\r\n            ['touchstart', this.up],\r\n        ]);\r\n\r\n        addEvents(this.domEvents);\r\n\r\n        if (this.dragHandle) {\r\n            [...this.$el.querySelectorAll(this.dragHandle)].forEach((dragHandle) => {\r\n                dragHandle.setAttribute('data-drag-handle', this._uid);\r\n            });\r\n        }\r\n\r\n        if (this.dragCancel) {\r\n            [...this.$el.querySelectorAll(this.dragCancel)].forEach((cancelHandle) => {\r\n                cancelHandle.setAttribute('data-drag-cancel', this._uid);\r\n            });\r\n        }\r\n    },\r\n\r\n    beforeDestroy() {\r\n        removeEvents(this.domEvents);\r\n    },\r\n\r\n    methods: {\r\n        deselect() {\r\n            if (this.preventActiveBehavior) {\r\n                return;\r\n            }\r\n            this.active = false;\r\n        },\r\n\r\n        move(ev) {\r\n            if (!this.stickDrag && !this.bodyDrag) {\r\n                return;\r\n            }\r\n\r\n            ev.stopPropagation();\r\n\r\n            const pageX = typeof ev.pageX !== 'undefined' ? ev.pageX : ev.touches[0].pageX;\r\n            const pageY = typeof ev.pageY !== 'undefined' ? ev.pageY : ev.touches[0].pageY;\r\n\r\n            const { dimensionsBeforeMove } = this;\r\n\r\n            const delta = {\r\n                x: (dimensionsBeforeMove.pointerX - pageX) / this.parentScaleX,\r\n                y: (dimensionsBeforeMove.pointerY - pageY) / this.parentScaleY,\r\n            };\r\n\r\n            if (this.stickDrag) {\r\n                this.stickMove(delta);\r\n            }\r\n\r\n            if (this.bodyDrag) {\r\n                if (this.axis === 'x') {\r\n                    delta.y = 0;\r\n                } else if (this.axis === 'y') {\r\n                    delta.x = 0;\r\n                } else if (this.axis === 'none') {\r\n                    return;\r\n                }\r\n                this.bodyMove(delta);\r\n            }\r\n        },\r\n\r\n        up(ev) {\r\n            if (this.stickDrag) {\r\n                this.stickUp(ev);\r\n            } else if (this.bodyDrag) {\r\n                this.bodyUp(ev);\r\n            }\r\n        },\r\n\r\n        bodyDown(ev) {\r\n            const { target, button } = ev;\r\n\r\n            if (!this.preventActiveBehavior) {\r\n                this.active = true;\r\n            }\r\n\r\n            if (button && button !== 0) {\r\n                return;\r\n            }\r\n\r\n            this.$emit('clicked', ev);\r\n\r\n            if (!this.active) {\r\n                return;\r\n            }\r\n\r\n            if (this.dragHandle && target.getAttribute('data-drag-handle') !== this._uid.toString()) {\r\n                return;\r\n            }\r\n\r\n            if (this.dragCancel && target.getAttribute('data-drag-cancel') === this._uid.toString()) {\r\n                return;\r\n            }\r\n\r\n            if (typeof ev.stopPropagation !== 'undefined') {\r\n                ev.stopPropagation();\r\n            }\r\n\r\n            if (typeof ev.preventDefault !== 'undefined') {\r\n                ev.preventDefault();\r\n            }\r\n\r\n            if (this.isDraggable) {\r\n                this.bodyDrag = true;\r\n            }\r\n\r\n            const pointerX = typeof ev.pageX !== 'undefined' ? ev.pageX : ev.touches[0].pageX;\r\n            const pointerY = typeof ev.pageY !== 'undefined' ? ev.pageY : ev.touches[0].pageY;\r\n\r\n            this.saveDimensionsBeforeMove({ pointerX, pointerY });\r\n\r\n            if (this.parentLimitation) {\r\n                this.limits = this.calcDragLimitation();\r\n            }\r\n        },\r\n\r\n        bodyMove(delta) {\r\n            const { dimensionsBeforeMove, parentWidth, parentHeight, gridX, gridY, width, height } = this;\r\n\r\n            let newTop = dimensionsBeforeMove.top - delta.y;\r\n            let newBottom = dimensionsBeforeMove.bottom + delta.y;\r\n            let newLeft = dimensionsBeforeMove.left - delta.x;\r\n            let newRight = dimensionsBeforeMove.right + delta.x;\r\n\r\n            if (this.snapToGrid) {\r\n                let alignTop = true;\r\n                let alignLeft = true;\r\n\r\n                let diffT = newTop - Math.floor(newTop / gridY) * gridY;\r\n                let diffB = (parentHeight - newBottom) - Math.floor((parentHeight - newBottom) / gridY) * gridY;\r\n                let diffL = newLeft - Math.floor(newLeft / gridX) * gridX;\r\n                let diffR = (parentWidth - newRight) - Math.floor((parentWidth - newRight) / gridX) * gridX;\r\n\r\n                if (diffT > (gridY / 2)) {\r\n                    diffT -= gridY;\r\n                }\r\n                if (diffB > (gridY / 2)) {\r\n                    diffB -= gridY;\r\n                }\r\n                if (diffL > (gridX / 2)) {\r\n                    diffL -= gridX;\r\n                }\r\n                if (diffR > (gridX / 2)) {\r\n                    diffR -= gridX;\r\n                }\r\n\r\n                if (Math.abs(diffB) < Math.abs(diffT)) {\r\n                    alignTop = false;\r\n                }\r\n                if (Math.abs(diffR) < Math.abs(diffL)) {\r\n                    alignLeft = false;\r\n                }\r\n\r\n                newTop -= (alignTop ? diffT : diffB);\r\n                newBottom = parentHeight - height - newTop;\r\n                newLeft -= (alignLeft ? diffL : diffR);\r\n                newRight = parentWidth - width - newLeft;\r\n            }\r\n\r\n            ({\r\n                newLeft: this.left,\r\n                newRight: this.right,\r\n                newTop: this.top,\r\n                newBottom: this.bottom,\r\n            } = this.rectCorrectionByLimit({ newLeft, newRight, newTop, newBottom }));\r\n\r\n            this.$emit('dragging', this.rect);\r\n        },\r\n\r\n        bodyUp() {\r\n            this.bodyDrag = false;\r\n            this.$emit('dragging', this.rect);\r\n            this.$emit('dragstop', this.rect);\r\n\r\n            this.dimensionsBeforeMove = { pointerX: 0, pointerY: 0, x: 0, y: 0, w: 0, h: 0 };\r\n\r\n            this.limits = {\r\n                left: { min: null, max: null },\r\n                right: { min: null, max: null },\r\n                top: { min: null, max: null },\r\n                bottom: { min: null, max: null },\r\n            };\r\n        },\r\n\r\n        stickDown(stick, ev, force = false) {\r\n            if ((!this.isResizable || !this.active) && !force) {\r\n                return;\r\n            }\r\n\r\n            this.stickDrag = true;\r\n\r\n            const pointerX = typeof ev.pageX !== 'undefined' ? ev.pageX : ev.touches[0].pageX;\r\n            const pointerY = typeof ev.pageY !== 'undefined' ? ev.pageY : ev.touches[0].pageY;\r\n\r\n            this.saveDimensionsBeforeMove({ pointerX, pointerY });\r\n\r\n            this.currentStick = stick;\r\n\r\n            this.limits = this.calcResizeLimits();\r\n        },\r\n\r\n        saveDimensionsBeforeMove({ pointerX, pointerY }) {\r\n            this.dimensionsBeforeMove.pointerX = pointerX;\r\n            this.dimensionsBeforeMove.pointerY = pointerY;\r\n\r\n            this.dimensionsBeforeMove.left = this.left;\r\n            this.dimensionsBeforeMove.right = this.right;\r\n            this.dimensionsBeforeMove.top = this.top;\r\n            this.dimensionsBeforeMove.bottom = this.bottom;\r\n\r\n            this.dimensionsBeforeMove.width = this.width;\r\n            this.dimensionsBeforeMove.height = this.height;\r\n\r\n            this.aspectFactor = this.width / this.height;\r\n        },\r\n\r\n        stickMove(delta) {\r\n            const {\r\n                currentStick,\r\n                dimensionsBeforeMove,\r\n                gridY,\r\n                gridX,\r\n                snapToGrid,\r\n                parentHeight,\r\n                parentWidth,\r\n            } = this;\r\n\r\n            let newTop = dimensionsBeforeMove.top;\r\n            let newBottom = dimensionsBeforeMove.bottom;\r\n            let newLeft = dimensionsBeforeMove.left;\r\n            let newRight = dimensionsBeforeMove.right;\r\n            switch(currentStick[0]) {\r\n                case 'b':\r\n                    newBottom = dimensionsBeforeMove.bottom + delta.y;\r\n\r\n                    if (snapToGrid) {\r\n                        newBottom = parentHeight - Math.round((parentHeight - newBottom) / gridY) * gridY;\r\n                    }\r\n\r\n                    break;\r\n\r\n                case 't':\r\n                    newTop = dimensionsBeforeMove.top - delta.y;\r\n\r\n                    if (snapToGrid) {\r\n                        newTop = Math.round(newTop / gridY) * gridY;\r\n                    }\r\n\r\n                    break;\r\n                default:\r\n                    break;\r\n            }\r\n\r\n            switch(currentStick[1]) {\r\n                case 'r':\r\n                    newRight = dimensionsBeforeMove.right + delta.x;\r\n\r\n                    if (snapToGrid) {\r\n                        newRight = parentWidth - Math.round((parentWidth - newRight) / gridX) * gridX;\r\n                    }\r\n\r\n                    break;\r\n\r\n                case 'l':\r\n                    newLeft = dimensionsBeforeMove.left - delta.x;\r\n\r\n                    if (snapToGrid) {\r\n                        newLeft = Math.round(newLeft / gridX) * gridX;\r\n                    }\r\n\r\n                    break;\r\n                default:\r\n                    break;\r\n            }\r\n\r\n            ({\r\n                newLeft,\r\n                newRight,\r\n                newTop,\r\n                newBottom,\r\n            } = this.rectCorrectionByLimit({ newLeft, newRight, newTop, newBottom }));\r\n\r\n            if (this.aspectRatio) {\r\n                ({\r\n                    newLeft,\r\n                    newRight,\r\n                    newTop,\r\n                    newBottom,\r\n                } = this.rectCorrectionByAspectRatio({ newLeft, newRight, newTop, newBottom }));\r\n            }\r\n\r\n            this.left = newLeft;\r\n            this.right = newRight;\r\n            this.top = newTop;\r\n            this.bottom = newBottom;\r\n\r\n            this.$emit('resizing', this.rect);\r\n        },\r\n\r\n        stickUp() {\r\n            this.stickDrag = false;\r\n            this.dimensionsBeforeMove = {\r\n                pointerX: 0,\r\n                pointerY: 0,\r\n                x: 0,\r\n                y: 0,\r\n                w: 0,\r\n                h: 0,\r\n            };\r\n            this.limits = {\r\n                left: { min: null, max: null },\r\n                right: { min: null, max: null },\r\n                top: { min: null, max: null },\r\n                bottom: { min: null, max: null },\r\n            };\r\n\r\n            this.$emit('resizing', this.rect);\r\n            this.$emit('resizestop', this.rect);\r\n        },\r\n\r\n        calcDragLimitation() {\r\n            const { parentWidth, parentHeight } = this;\r\n\r\n            return {\r\n                left: { min: 0, max: parentWidth - this.width },\r\n                right: { min: 0, max: parentWidth - this.width },\r\n                top: { min: 0, max: parentHeight - this.height },\r\n                bottom: { min: 0, max: parentHeight - this.height },\r\n            };\r\n        },\r\n\r\n        calcResizeLimits() {\r\n            const { aspectFactor, width, height, bottom, top, left, right } = this;\r\n            let { minh: minHeight, minw: minWidth } = this;\r\n\r\n            const parentLim = this.parentLimitation ? 0 : null;\r\n\r\n            if (this.aspectRatio) {\r\n                if (minWidth / minHeight > aspectFactor) {\r\n                    minHeight = minWidth / aspectFactor;\r\n                } else {\r\n                    minWidth = aspectFactor * minHeight;\r\n                }\r\n            }\r\n\r\n            const limits = {\r\n                left: { min: parentLim, max: left + (width - minWidth) },\r\n                right: { min: parentLim, max: right + (width - minWidth) },\r\n                top: { min: parentLim, max: top + (height - minHeight) },\r\n                bottom: { min: parentLim, max: bottom + (height - minHeight) },\r\n            };\r\n\r\n            if (this.aspectRatio) {\r\n                const aspectLimits = {\r\n                    left: {\r\n                        min: left - (Math.min(top, bottom) * aspectFactor) * 2,\r\n                        max: left + ((((height - minHeight) / 2) * aspectFactor) * 2),\r\n                    },\r\n                    right: {\r\n                        min: right - (Math.min(top, bottom) * aspectFactor) * 2,\r\n                        max: right + ((((height - minHeight) / 2) * aspectFactor) * 2),\r\n                    },\r\n                    top: {\r\n                        min: top - (Math.min(left, right) / aspectFactor) * 2,\r\n                        max: top + ((((width - minWidth) / 2) / aspectFactor) * 2),\r\n                    },\r\n                    bottom: {\r\n                        min: bottom - (Math.min(left, right) / aspectFactor) * 2,\r\n                        max: bottom + ((((width - minWidth) / 2) / aspectFactor) * 2),\r\n                    },\r\n                };\r\n\r\n                if (this.currentStick[0] === 'm') {\r\n                    limits.left = {\r\n                        min: Math.max(limits.left.min, aspectLimits.left.min),\r\n                        max: Math.min(limits.left.max, aspectLimits.left.max),\r\n                    };\r\n                    limits.right = {\r\n                        min: Math.max(limits.right.min, aspectLimits.right.min),\r\n                        max: Math.min(limits.right.max, aspectLimits.right.max),\r\n                    };\r\n\r\n                } else if (this.currentStick[1] === 'm') {\r\n                    limits.top = {\r\n                        min: Math.max(limits.top.min, aspectLimits.top.min),\r\n                        max: Math.min(limits.top.max, aspectLimits.top.max),\r\n                    };\r\n                    limits.bottom = {\r\n                        min: Math.max(limits.bottom.min, aspectLimits.bottom.min),\r\n                        max: Math.min(limits.bottom.max, aspectLimits.bottom.max),\r\n                    };\r\n                }\r\n            }\r\n\r\n            return limits;\r\n        },\r\n\r\n        sideCorrectionByLimit(limit, current) {\r\n            let value = current;\r\n\r\n            if (limit.min !== null && current < limit.min) {\r\n                value = limit.min;\r\n            } else if (limit.max !== null && limit.max < current) {\r\n                value = limit.max;\r\n            }\r\n\r\n            return value;\r\n        },\r\n\r\n        rectCorrectionByLimit(rect) {\r\n            const { limits } = this;\r\n            let { newRight, newLeft, newBottom, newTop } = rect;\r\n\r\n            newLeft = this.sideCorrectionByLimit(limits.left, newLeft);\r\n            newRight = this.sideCorrectionByLimit(limits.right, newRight);\r\n            newTop = this.sideCorrectionByLimit(limits.top, newTop);\r\n            newBottom = this.sideCorrectionByLimit(limits.bottom, newBottom);\r\n\r\n            return {\r\n                newLeft,\r\n                newRight,\r\n                newTop,\r\n                newBottom,\r\n            };\r\n        },\r\n\r\n        rectCorrectionByAspectRatio(rect) {\r\n            let { newLeft, newRight, newTop, newBottom } = rect;\r\n            const { parentWidth, parentHeight, currentStick, aspectFactor, dimensionsBeforeMove } = this;\r\n\r\n            let newWidth = parentWidth - newLeft - newRight;\r\n            let newHeight = parentHeight - newTop - newBottom;\r\n\r\n            if (currentStick[1] === 'm') {\r\n                const deltaHeight = newHeight - dimensionsBeforeMove.height;\r\n\r\n                newLeft -= (deltaHeight * aspectFactor) / 2;\r\n                newRight -= (deltaHeight * aspectFactor) / 2;\r\n            } else if (currentStick[0] === 'm') {\r\n                const deltaWidth = newWidth - dimensionsBeforeMove.width;\r\n\r\n                newTop -= (deltaWidth / aspectFactor) / 2;\r\n                newBottom -= (deltaWidth / aspectFactor) / 2;\r\n            } else if (newWidth / newHeight > aspectFactor) {\r\n                newWidth = aspectFactor * newHeight;\r\n\r\n                if (currentStick[1] === 'l') {\r\n                    newLeft = parentWidth - newRight - newWidth;\r\n                } else {\r\n                    newRight = parentWidth - newLeft - newWidth;\r\n                }\r\n            } else {\r\n                newHeight = newWidth / aspectFactor;\r\n\r\n                if (currentStick[0] === 't') {\r\n                    newTop = parentHeight - newBottom - newHeight;\r\n                } else {\r\n                    newBottom = parentHeight - newTop - newHeight;\r\n                }\r\n            }\r\n\r\n            return { newLeft, newRight, newTop, newBottom };\r\n        },\r\n    },\r\n\r\n    computed: {\r\n        positionStyle() {\r\n            return {\r\n                top: this.top + 'px',\r\n                left: this.left + 'px',\r\n                zIndex: this.zIndex,\r\n            };\r\n        },\r\n\r\n        sizeStyle(){\r\n            return {\r\n                width: this.w == 'auto' ? 'auto' : this.width + 'px',\r\n                height: this.h == 'auto' ? 'auto' : this.height + 'px'\r\n            };\r\n        },\r\n\r\n        vdrStick() {\r\n            return (stick) => {\r\n                const stickStyle = {\r\n                    width: `${this.stickSize / this.parentScaleX}px`,\r\n                    height: `${this.stickSize / this.parentScaleY}px`,\r\n                };\r\n                stickStyle[styleMapping.y[stick[0]]] = `${this.stickSize / this.parentScaleX / -2}px`;\r\n                stickStyle[styleMapping.x[stick[1]]] = `${this.stickSize / this.parentScaleX / -2}px`;\r\n                return stickStyle;\r\n            };\r\n        },\r\n\r\n        width() {\r\n            return this.parentWidth - this.left - this.right;\r\n        },\r\n\r\n        height() {\r\n            return this.parentHeight - this.top - this.bottom;\r\n        },\r\n\r\n        rect() {\r\n            return {\r\n                left: Math.round(this.left),\r\n                top: Math.round(this.top),\r\n                width: Math.round(this.width),\r\n                height: Math.round(this.height),\r\n            };\r\n        },\r\n    },\r\n\r\n    watch: {\r\n        active(isActive) {\r\n            if (isActive) {\r\n                this.$emit('activated');\r\n            } else {\r\n                this.$emit('deactivated');\r\n            }\r\n        },\r\n\r\n        isActive: {\r\n            immediate: true,\r\n            handler(val) {\r\n                this.active = val;\r\n            },\r\n        },\r\n\r\n        z: {\r\n            immediate: true,\r\n            handler(val) {\r\n                if (val >= 0 || val === 'auto') {\r\n                    this.zIndex = val;\r\n                }\r\n            },\r\n        },\r\n\r\n        x: {\r\n            handler(newVal, oldVal) {\r\n                if (this.stickDrag || this.bodyDrag || (newVal === this.left)) {\r\n                    return;\r\n                }\r\n\r\n                const delta = oldVal - newVal;\r\n\r\n                this.bodyDown({ pageX: this.left, pageY: this.top });\r\n                this.bodyMove({ x: delta, y: 0 });\r\n\r\n                this.$nextTick(() => {\r\n                    this.bodyUp();\r\n                });\r\n            },\r\n        },\r\n\r\n        y: {\r\n            handler(newVal, oldVal) {\r\n                if (this.stickDrag || this.bodyDrag || (newVal === this.top)) {\r\n                    return;\r\n                }\r\n\r\n                const delta = oldVal - newVal;\r\n\r\n                this.bodyDown({ pageX: this.left, pageY: this.top });\r\n                this.bodyMove({ x: 0, y: delta });\r\n\r\n                this.$nextTick(() => {\r\n                    this.bodyUp();\r\n                });\r\n            },\r\n        },\r\n\r\n        w: {\r\n            handler(newVal, oldVal) {\r\n                if (this.stickDrag || this.bodyDrag || (newVal === this.width)) {\r\n                    return;\r\n                }\r\n\r\n                const stick = 'mr';\r\n                const delta = oldVal - newVal;\r\n\r\n                this.stickDown(stick, { pageX: this.right, pageY: this.top + (this.height / 2) }, true);\r\n                this.stickMove({ x: delta, y: 0 });\r\n\r\n                this.$nextTick(() => {\r\n                    this.stickUp();\r\n                });\r\n            },\r\n        },\r\n\r\n        h: {\r\n            handler(newVal, oldVal) {\r\n                if (this.stickDrag || this.bodyDrag || (newVal === this.height)) {\r\n                    return;\r\n                }\r\n\r\n                const stick = 'bm';\r\n                const delta = oldVal - newVal;\r\n\r\n                this.stickDown(stick, { pageX: this.left + (this.width / 2), pageY: this.bottom }, true);\r\n                this.stickMove({ x: 0, y: delta });\r\n\r\n                this.$nextTick(() => {\r\n                    this.stickUp();\r\n                });\r\n            },\r\n        },\r\n\r\n        parentW(val) {\r\n            this.right = val - this.width - this.left;\r\n            this.parentWidth = val;\r\n        },\r\n\r\n        parentH(val) {\r\n            this.bottom = val - this.height - this.top;\r\n            this.parentHeight = val;\r\n        },\r\n    },\r\n};\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport VueDragResize from '~/node_modules/vue-drag-resize/src/components/vue-drag-resize.vue'\r\nimport { keepElementInWindow } from '~/mixins/DragResize'\r\nexport default {\r\n\tname: 'DragResize',\r\n\tmixins: [keepElementInWindow],\r\n\tcomponents: { VueDragResize },\r\n\tprops: {\r\n\t\tmaximized: {\r\n\t\t\ttype: Boolean,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t\tcoordinates: {\r\n\t\t\ttype: Object,\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t\tsticks: {\r\n\t\t\ttype: Array,\r\n\t\t\tdefault: function () {\r\n\t\t\t\treturn ['br', 'bl', 'tr', 'tl']\r\n\t\t\t},\r\n\t\t},\r\n\t\tstickStyle: {\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: function () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\theight: '15px',\r\n\t\t\t\t\twidth: '15px',\r\n\t\t\t\t\tborder: 'none',\r\n\t\t\t\t\t'box-shadow': 'none',\r\n\t\t\t\t\t'background-color': 'transparent',\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tactive: false,\r\n\t\t\tminHeight: 300,\r\n\t\t\tminWidth: 300,\r\n\t\t\tminVisibleHeight: 32,\r\n\t\t\tminVisibleWidth: 120,\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tresize(newRect, e) {\r\n\t\t\tthis.$emit('update:coordinates', {\r\n\t\t\t\twidth: newRect.width,\r\n\t\t\t\theight: newRect.height,\r\n\t\t\t\ttop: newRect.top,\r\n\t\t\t\tleft: newRect.left,\r\n\t\t\t})\r\n\t\t},\r\n\t\tcorrectCoordinates(rect) {\r\n\t\t\tlet computedRect = Object.assign({}, rect)\r\n\r\n\t\t\tif (rect.width > window.innerWidth) {\r\n\t\t\t\tcomputedRect.width = window.innerWidth\r\n\t\t\t\tcomputedRect.left = 0\r\n\t\t\t} else if (rect.left + rect.width - this.minVisibleWidth < 0) {\r\n\t\t\t\tcomputedRect.left = this.minVisibleWidth - rect.width\r\n\t\t\t} else if (rect.width + rect.left > window.innerWidth) {\r\n\t\t\t\tcomputedRect.left = window.innerWidth - rect.width\r\n\t\t\t}\r\n\r\n\t\t\tif (rect.height > window.innerHeight) {\r\n\t\t\t\tcomputedRect.height = window.innerHeight\r\n\t\t\t\tcomputedRect.top = 0\r\n\t\t\t} else if (rect.top < 0) {\r\n\t\t\t\tcomputedRect.top = 0\r\n\t\t\t} else if (rect.top > window.innerHeight - this.minVisibleHeight) {\r\n\t\t\t\tcomputedRect.top = window.innerHeight - this.minVisibleHeight\r\n\t\t\t}\r\n\t\t\tthis.$emit('update:coordinates', computedRect)\r\n\t\t\tthis.$emit('dragstop', true)\r\n\t\t},\r\n\t\tonActivated() {\r\n\t\t\tconst sticks = this.$refs.resize.$el.querySelectorAll('.vdr-stick')\r\n\t\t\tArray.prototype.map.call(sticks, (element) => {\r\n\t\t\t\tfor (let prop in this.stickStyle) {\r\n\t\t\t\t\telement.style[prop] = this.stickStyle[prop]\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t},\r\n\t\tgetWindowWidth() {\r\n\t\t\treturn window.screen.availWidth - (window.outerWidth - window.innerWidth)\r\n\t\t},\r\n\t\tgetWindowHeight() {\r\n\t\t\treturn window.screen.availHeight - (window.outerHeight - window.innerHeight)\r\n\t\t},\r\n\t},\r\n\tmounted() {\r\n\t\tthis.active = true\r\n\t},\r\n}\r\n","/**\n * DragResize mixins\n *\n * @description Mixins for drag-resize components\n * @license YetiForce Public License 6.5\n * @author Tomasz Poradzewski <t.poradzewski@yetiforce.com>\n */\nexport const keepElementInWindow = {\n\tmethods: {\n\t\tkeepElementInWindow() {\n\t\t\tthis.correctCoordinates(this.coordinates)\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.keepElementInWindow(this.coordinates)\n\t\twindow.addEventListener('resize', this.keepElementInWindow)\n\t},\n}\n","<template src=\"./vue-drag-resize.html\"></template>\r\n<script src=\"./vue-drag-resize.js\"></script>\r\n<style src=\"./vue-drag-resize.css\"></style>","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport YfIcon from '~/components/YfIcon.vue'\r\nimport ColumnsGrid from '~/components/ColumnsGrid.vue'\r\nimport Carousel from './Carousel.vue'\r\nimport ArticlesList from './ArticlesList.vue'\r\n\r\nimport { createNamespacedHelpers } from 'vuex'\r\nconst { mapGetters, mapActions } = createNamespacedHelpers('KnowledgeBase')\r\nexport default {\r\n  name: 'ArticlePreviewContent',\r\n  components: { YfIcon, Carousel, ArticlesList, ColumnsGrid },\r\n  props: {\r\n    height: {\r\n      type: Number,\r\n      default: 0\r\n    },\r\n    previewMaximized: {\r\n      type: Boolean\r\n    }\r\n  },\r\n  computed: {\r\n    ...mapGetters(['tree', 'record', 'iconSize']),\r\n    relatedRecords() {\r\n      if (this.record) {\r\n        let arr = Object.keys(this.record.related.dynamic).map(key => {\r\n          return this.record.related.dynamic[key].length !== 0 ? key : false\r\n        })\r\n        return arr.filter(function(item) {\r\n          return typeof item === 'string'\r\n        })\r\n      } else {\r\n        return []\r\n      }\r\n    },\r\n    hasRelatedArticles() {\r\n      return this.record\r\n        ? this.record.related.base.Articles.length !== 0\r\n        : false\r\n    },\r\n    hasRelatedComments() {\r\n      return this.record\r\n        ? this.record.related.base.ModComments.length !== 0\r\n        : false\r\n    }\r\n  },\r\n  methods: {\r\n    ...mapActions(['fetchCategories', 'fetchRecord', 'initState']),\r\n    onResize(size) {\r\n      if (this.$refs.content !== undefined) {\r\n        $(this.$refs.content)\r\n          .find('img')\r\n          .css('max-width', size.width)\r\n      }\r\n    },\r\n    toggleMaximized() {\r\n\t  let classList = this.$el.parentElement.parentElement.classList\r\n\t  this.previewMaximized ? classList.remove('fit') : classList.add('fit')\r\n      this.$emit('update:previewMaximized', !this.previewMaximized)\r\n    }\r\n  }\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport DragResize from 'components/DragResize.vue'\r\nimport ArticlePreviewContent from './ArticlePreviewContent.vue'\r\nimport { createNamespacedHelpers } from 'vuex'\r\nconst { mapGetters } = createNamespacedHelpers('KnowledgeBase')\r\nexport default {\r\n  name: 'ArticlePreview',\r\n  components: { ArticlePreviewContent, DragResize },\r\n  props: {\r\n    isDragResize: {\r\n      type: Boolean,\r\n      default: true\r\n    },\r\n    maximizedOnly: {\r\n      type: Boolean,\r\n      default: false\r\n    },\r\n    previewDialog: {\r\n      type: Boolean,\r\n      default: false\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      coordinates: {\r\n        width: Quasar.plugins.Screen.width - 100,\r\n        height: Quasar.plugins.Screen.height - 100,\r\n        top: 0,\r\n        left:\r\n          Quasar.plugins.Screen.width - (Quasar.plugins.Screen.width - 100 / 2)\r\n      },\r\n      previewMaximized: !Quasar.Platform.is.desktop\r\n    }\r\n  },\r\n  computed: {\r\n    dialog: {\r\n      get() {\r\n        return this.previewDialog\r\n      },\r\n      set(val) {\r\n        this.$emit('update:previewDialog', val)\r\n      }\r\n    }\r\n  }\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport YfIcon from '~/components/YfIcon.vue'\r\n\r\nimport { createNamespacedHelpers } from 'vuex'\r\nconst { mapGetters } = createNamespacedHelpers('KnowledgeBase')\r\nexport default {\r\n  name: 'CategoriesList',\r\n  components: { YfIcon },\r\n  data() {\r\n    return {\r\n      show: true,\r\n      animationIn: 'animate__slideInLeft',\r\n      animationOut: 'animate__slideOutRight',\r\n      animationChildClassIn: 'animate__slideInRight',\r\n      animationChildClassOut: 'animate__slideOutLeft',\r\n      animationParentClassIn: 'animate__slideInLeft',\r\n      animationParentClassOut: 'animate__slideOutRight',\r\n      activeCategoryDelayed: ''\r\n    }\r\n  },\r\n  props: {\r\n    activeCategory: {\r\n      type: String,\r\n      required: true\r\n    },\r\n    data: {\r\n      type: Object,\r\n      required: true\r\n    }\r\n  },\r\n  computed: {\r\n    ...mapGetters(['tree', 'iconSize', 'defaultTreeIcon'])\r\n  },\r\n  watch: {\r\n    data() {\r\n      this.activeCategoryDelayed = this.activeCategory\r\n      this.show = true\r\n    }\r\n  },\r\n  methods: {\r\n    fetchParentCategoryData() {\r\n      this.animationIn = this.animationParentClassIn\r\n      this.animationOut = this.animationParentClassOut\r\n      this.show = false\r\n      this.data.categories = []\r\n      let parentCategory = ''\r\n      const parentTreeArray = this.tree.categories[this.activeCategory]\r\n        .parentTree\r\n      if (parentTreeArray.length !== 1) {\r\n        parentCategory = parentTreeArray[parentTreeArray.length - 2]\r\n      }\r\n      this.$emit('fetchData', parentCategory)\r\n    },\r\n    fetchChildCategoryData(categoryValue) {\r\n      this.animationIn = this.animationChildClassIn\r\n      this.animationOut = this.animationChildClassOut\r\n      this.show = false\r\n      this.data.categories = []\r\n      this.$emit('fetchData', categoryValue)\r\n    }\r\n  },\r\n  mounted() {\r\n    this.activeCategoryDelayed = this.activeCategory\r\n  }\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport YfIcon from '~/components/YfIcon.vue'\r\nimport IconInfo from '~/components/IconInfo.vue'\r\nimport ColumnsGrid from '~/components/ColumnsGrid.vue'\r\nimport Carousel from './components/Carousel.vue'\r\nimport ArticlesList from './components/ArticlesList.vue'\r\nimport ArticlePreview from './components/ArticlePreview.vue'\r\nimport CategoriesList from './components/CategoriesList.vue'\r\nimport { createNamespacedHelpers } from 'vuex'\r\nconst { mapGetters, mapActions } = createNamespacedHelpers('KnowledgeBase')\r\nexport default {\r\n\tname: 'KnowledgeBase',\r\n\tcomponents: { YfIcon, IconInfo, Carousel, ArticlesList, ArticlePreview, ColumnsGrid, CategoriesList },\r\n\tprops: {\r\n\t\tcoordinates: {\r\n\t\t\ttype: Object,\r\n\t\t\tdefault: () => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\twidth: 0,\r\n\t\t\t\t\theight: 0,\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tdrawerBehaviour: 'desktop',\r\n\t\t\tminiState: false,\r\n\t\t\tleft: true,\r\n\t\t\tfilter: '',\r\n\t\t\taccountSearch: '',\r\n\t\t\tcategorySearch: false,\r\n\t\t\tsearchData: false,\r\n\t\t\tactiveCategory: '',\r\n\t\t\tactiveAccount: '',\r\n\t\t\tpreviewDialog: false,\r\n\t\t\ttab: 'categories',\r\n\t\t\tshowAccounts: false,\r\n\t\t\tdata: {\r\n\t\t\t\tcategories: [],\r\n\t\t\t\trecords: [],\r\n\t\t\t\tfeatured: {},\r\n\t\t\t},\r\n\t\t\taccountsData: {\r\n\t\t\t\tcategories: [],\r\n\t\t\t\trecords: [],\r\n\t\t\t\tfeatured: {},\r\n\t\t\t},\r\n\t\t\taccounts: [],\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['tree', 'record', 'iconSize', 'moduleName', 'maximized', 'defaultTreeIcon']),\r\n\t\taccountsList() {\r\n\t\t\tif (this.accountSearch === '') {\r\n\t\t\t\treturn this.accounts\r\n\t\t\t} else {\r\n\t\t\t\treturn this.accounts.filter((account) => {\r\n\t\t\t\t\treturn account.name.toLowerCase().includes(this.accountSearch.toLowerCase())\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t},\r\n\t\tselectedTabData() {\r\n\t\t\treturn this.tab === 'categories' ? this.data : this.accountsData\r\n\t\t},\r\n\t\tsearchDataArray() {\r\n\t\t\treturn this.searchData ? this.searchData : []\r\n\t\t},\r\n\t\tfeaturedCategories() {\r\n\t\t\tif (typeof this.selectedTabData.featured.length === 'undefined' && this.selectedTabData.categories) {\r\n\t\t\t\tlet arr = this.selectedTabData.categories.map((e) => {\r\n\t\t\t\t\treturn this.selectedTabData.featured[e] ? e : false\r\n\t\t\t\t})\r\n\t\t\t\treturn arr.filter(function (item) {\r\n\t\t\t\t\treturn typeof item === 'string'\r\n\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\treturn []\r\n\t\t\t}\r\n\t\t},\r\n\t\tinputFocus: {\r\n\t\t\tset(val) {\r\n\t\t\t\treturn false\r\n\t\t\t},\r\n\t\t\tget() {\r\n\t\t\t\treturn this.filter.length > 0\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions(['fetchRecord', 'fetchCategories']),\r\n\t\tonTabChange(tabName) {\r\n\t\t\tif (this.accounts.length === 0 && tabName === 'accounts') {\r\n\t\t\t\tthis.fetchAccounts()\r\n\t\t\t}\r\n\t\t},\r\n\t\tfetchAccounts() {\r\n\t\t\tconst aDeferred = $.Deferred()\r\n\t\t\tconst progressIndicatorElement = $.progressIndicator({\r\n\t\t\t\tblockInfo: { enabled: true },\r\n\t\t\t})\r\n\t\t\treturn AppConnector.request({\r\n\t\t\t\tmodule: this.moduleName,\r\n\t\t\t\taction: 'KnowledgeBaseAjax',\r\n\t\t\t\tmode: 'getAccounts',\r\n\t\t\t}).done((data) => {\r\n\t\t\t\tlet listData = data.result\r\n\t\t\t\tif (listData) {\r\n\t\t\t\t\tlistData = Object.keys(listData).map(function (key) {\r\n\t\t\t\t\t\treturn { name: listData[key], id: key }\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\tthis.accounts = listData\r\n\t\t\t\tprogressIndicatorElement.progressIndicator({ mode: 'hide' })\r\n\t\t\t\taDeferred.resolve(listData)\r\n\t\t\t})\r\n\t\t},\r\n\t\tsearch() {\r\n\t\t\tif (this.filter.length >= 3) {\r\n\t\t\t\tthis.debouncedSearch()\r\n\t\t\t} else {\r\n\t\t\t\tthis.searchData = false\r\n\t\t\t}\r\n\t\t},\r\n\t\tclearSearch() {\r\n\t\t\tthis.filter = ''\r\n\t\t\tthis.searchData = false\r\n\t\t},\r\n\t\tfetchData(category = '', accountId = '') {\r\n\t\t\tconst aDeferred = $.Deferred()\r\n\t\t\tif (category !== null) {\r\n\t\t\t\tthis.activeCategory = category\r\n\t\t\t}\r\n\t\t\tconst progressIndicatorElement = $.progressIndicator({\r\n\t\t\t\tblockInfo: { enabled: true },\r\n\t\t\t})\r\n\t\t\treturn AppConnector.request({\r\n\t\t\t\tmodule: this.moduleName,\r\n\t\t\t\taction: 'KnowledgeBaseAjax',\r\n\t\t\t\tmode: 'list',\r\n\t\t\t\tcategory: category,\r\n\t\t\t\taccountid: accountId,\r\n\t\t\t}).done((data) => {\r\n\t\t\t\tlet listData = data.result\r\n\t\t\t\tif (listData.showAccounts) {\r\n\t\t\t\t\tthis.showAccounts = true\r\n\t\t\t\t}\r\n\t\t\t\tif (listData.records) {\r\n\t\t\t\t\tlistData.records = Object.keys(listData.records).map(function (key) {\r\n\t\t\t\t\t\treturn { ...listData.records[key], id: key }\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\tif (accountId !== '') {\r\n\t\t\t\t\tthis.accountsData = listData\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.data = listData\r\n\t\t\t\t}\r\n\t\t\t\tprogressIndicatorElement.progressIndicator({ mode: 'hide' })\r\n\t\t\t\taDeferred.resolve(listData)\r\n\t\t\t})\r\n\t\t},\r\n\t\topenQuickCreateModal() {\r\n\t\t\tApp.Components.QuickCreate.createRecord(this.moduleName)\r\n\t\t},\r\n\t\tshowArticlePreview(id) {\r\n\t\t\tthis.fetchRecord(id).then(() => {\r\n\t\t\t\tthis.previewDialog = true\r\n\t\t\t})\r\n\t\t},\r\n\t\ttoggleDrawer() {\r\n\t\t\tif (!this.$refs.drawer.belowBreakpoint) {\r\n\t\t\t\tthis.miniState = !this.miniState\r\n\t\t\t} else {\r\n\t\t\t\tthis.left = !this.left\r\n\t\t\t}\r\n\t\t},\r\n\t\tonDialogToggle(val) {\r\n\t\t\tthis.previewDialog = val\r\n\t\t},\r\n\t},\r\n\tcreated() {\r\n\t\tthis.fetchCategories().then((_) => {\r\n\t\t\tthis.fetchData()\r\n\t\t})\r\n\t},\r\n\tmounted() {\r\n\t\tconst debounceDelay = 1000\r\n\t\tthis.debouncedSearch = Quasar.utils.debounce(() => {\r\n\t\t\tif (this.filter.length < 3) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tconst aDeferred = $.Deferred()\r\n\t\t\tconst progressIndicatorElement = $.progressIndicator({\r\n\t\t\t\tblockInfo: { enabled: true },\r\n\t\t\t})\r\n\t\t\tAppConnector.request({\r\n\t\t\t\tmodule: this.moduleName,\r\n\t\t\t\taction: 'KnowledgeBaseAjax',\r\n\t\t\t\tmode: 'search',\r\n\t\t\t\tvalue: this.filter,\r\n\t\t\t\tcategory: this.categorySearch ? this.activeCategory : '',\r\n\t\t\t}).done((data) => {\r\n\t\t\t\tlet listData = data.result\r\n\t\t\t\tif (listData) {\r\n\t\t\t\t\tlistData = Object.keys(listData).map(function (key) {\r\n\t\t\t\t\t\treturn { ...listData[key], id: key }\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\tthis.searchData = listData\r\n\t\t\t\taDeferred.resolve(listData)\r\n\t\t\t\tprogressIndicatorElement.progressIndicator({ mode: 'hide' })\r\n\t\t\t\treturn listData\r\n\t\t\t})\r\n\t\t}, debounceDelay)\r\n\t},\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n\tname: 'ButtonGrab',\r\n\tprops: {\r\n\t\tgrabClass: {\r\n\t\t\ttype: String,\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false,\r\n\t\t},\r\n\t\tlinkClass: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: 'q-px-xs',\r\n\t\t},\r\n\t},\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport DragResize from 'components/DragResize.vue'\r\nimport ButtonGrab from 'components/ButtonGrab.vue'\r\nimport KnowledgeBase from './KnowledgeBase.vue'\r\nimport { createNamespacedHelpers } from 'vuex'\r\nconst { mapGetters, mapActions } = createNamespacedHelpers('KnowledgeBase')\r\nexport default {\r\n\tname: 'KnowledgeBaseModal',\r\n\tcomponents: { KnowledgeBase, DragResize, ButtonGrab },\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcoordinates: {\r\n\t\t\t\twidth: Quasar.plugins.Screen.width - 100,\r\n\t\t\t\theight: Quasar.plugins.Screen.height - 100,\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: Quasar.plugins.Screen.width - (Quasar.plugins.Screen.width - 100 / 2),\r\n\t\t\t},\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['maximized', 'moduleName']),\r\n\t\tdialog: {\r\n\t\t\tset(val) {\r\n\t\t\t\tthis.$store.commit('KnowledgeBase/setDialog', val)\r\n\t\t\t},\r\n\t\t\tget() {\r\n\t\t\t\treturn this.$store.getters['KnowledgeBase/dialog']\r\n\t\t\t},\r\n\t\t},\r\n\t\tmaximized: {\r\n\t\t\tset(val) {\r\n\t\t\t\tthis.$store.commit('KnowledgeBase/setMaximized', val)\r\n\t\t\t},\r\n\t\t\tget() {\r\n\t\t\t\treturn this.$store.getters['KnowledgeBase/maximized']\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions(['fetchCategories', 'initState']),\r\n\t},\r\n\tcreated() {\r\n\t\tthis.initState(this.$options.state)\r\n\t},\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport ArticlePreview from './components/ArticlePreview.vue'\r\nimport { createNamespacedHelpers } from 'vuex'\r\nconst { mapGetters, mapActions } = createNamespacedHelpers('KnowledgeBase')\r\nexport default {\r\n\tname: 'ArticlePreviewModal',\r\n\tcomponents: { ArticlePreview },\r\n\tcreated() {\r\n\t\tthis.initState(this.$options.state)\r\n\t\tthis.fetchCategories()\r\n\t\tthis.fetchRecord(this.$options.state.recordId)\r\n\t\tdocument.addEventListener('keyup', (evt) => {\r\n\t\t\tif (evt.keyCode === 27) {\r\n\t\t\t\tthis.hideModal()\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\thideModal() {\r\n\t\t\tapp.hideModalWindow()\r\n\t\t\tthis.initState({\r\n\t\t\t\trecord: false,\r\n\t\t\t})\r\n\t\t\tthis.$destroy()\r\n\t\t},\r\n\t\t...mapActions(['fetchCategories', 'fetchRecord', 'initState']),\r\n\t},\r\n}\r\n","/**\n * Vuex store\n *\n * @description Vuex store initialization\n * @license YetiForce Public License 6.5\n * @author Tomasz Poradzewski <t.poradzewski@yetiforce.com>\n */\n\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nconst debug = process.env.NODE_ENV !== 'production'\nif (window.vuexStore === undefined) {\n\twindow.vuexStore = new Vuex.Store({\n\t\tstrict: debug,\n\t})\n}\nexport default window.vuexStore\n","/**\n * Knowledge base module\n *\n * @description Knowledge base vuex module\n * @license YetiForce Public License 6.5\n * @author Tomasz Poradzewski <t.poradzewski@yetiforce.com>\n */\n\nconst state = {\n\tdefaultTreeIcon: 'mdi-subdirectory-arrow-right',\n\trecord: false,\n\tdialog: false,\n\tmaximized: true,\n\tmoduleName: '',\n\ticonSize: '18px',\n\ttree: {\n\t\ttopCategory: {\n\t\t\ticon: 'mdi-file-tree',\n\t\t\tlabel: 'JS_KB_MAIN_CATEGORIES',\n\t\t},\n\t\tcategories: {},\n\t},\n}\n\n// getters\nconst getters = {\n\tmoduleName(state) {\n\t\treturn state.moduleName\n\t},\n\trecord(state) {\n\t\treturn state.record\n\t},\n\tdialog(state) {\n\t\treturn state.dialog\n\t},\n\tmaximized(state) {\n\t\treturn state.maximized\n\t},\n\tpreviewDialog(state) {\n\t\treturn state.previewDialog\n\t},\n\tpreviewMaximized(state) {\n\t\treturn state.previewMaximized\n\t},\n\tcoordinates(state) {\n\t\treturn state.coordinates\n\t},\n\ticonSize(state) {\n\t\treturn state.iconSize\n\t},\n\ttree(state) {\n\t\treturn state.tree\n\t},\n\tdefaultTreeIcon(state) {\n\t\treturn state.defaultTreeIcon\n\t},\n}\n\n// actions\nconst actions = {\n\tfetchRecord({ state, commit, getters }, id) {\n\t\tconst aDeferred = $.Deferred()\n\t\tconst progressIndicatorElement = $.progressIndicator({\n\t\t\tblockInfo: { enabled: true },\n\t\t})\n\t\treturn AppConnector.request({\n\t\t\tmodule: getters.moduleName,\n\t\t\taction: 'KnowledgeBaseAjax',\n\t\t\tmode: 'detail',\n\t\t\trecord: id,\n\t\t}).done((data) => {\n\t\t\tlet recordData = data.result\n\t\t\tif (recordData.related.base.Articles) {\n\t\t\t\trecordData.related.base.Articles = Object.keys(recordData.related.base.Articles).map(function (key) {\n\t\t\t\t\treturn { ...recordData.related.base.Articles[key], id: key }\n\t\t\t\t})\n\t\t\t}\n\t\t\tcommit('setRecord', recordData)\n\t\t\tprogressIndicatorElement.progressIndicator({ mode: 'hide' })\n\t\t\taDeferred.resolve(recordData)\n\t\t})\n\t},\n\tfetchCategories({ state, commit, getters }) {\n\t\tconst aDeferred = $.Deferred()\n\t\treturn AppConnector.request({\n\t\t\tmodule: getters.moduleName,\n\t\t\taction: 'KnowledgeBaseAjax',\n\t\t\tmode: 'categories',\n\t\t}).done((data) => {\n\t\t\tcommit('setTreeCategories', data.result)\n\t\t\taDeferred.resolve(data.result)\n\t\t})\n\t},\n\tinitState({ state, commit }, data) {\n\t\tcommit('setState', data)\n\t},\n}\n\n// mutations\nconst mutations = {\n\tsetState(state, payload) {\n\t\tstate = Object.assign(state, payload)\n\t},\n\tsetRecord(state, payload) {\n\t\tstate.record = payload\n\t},\n\tsetDialog(state, payload) {\n\t\tstate.dialog = payload\n\t},\n\tsetMaximized(state, payload) {\n\t\tstate.maximized = payload\n\t},\n\tsetCoordinates(state, payload) {\n\t\tstate.coordinates = payload\n\t},\n\tsetTreeCategories(state, payload) {\n\t\tstate.tree.categories = payload\n\t},\n}\n\nexport default {\n\tnamespaced: true,\n\tstate,\n\tgetters,\n\tactions,\n\tmutations,\n}\n","/**\n * KnowledgeBase components initializations\n *\n * @description KnowledgeBase views' instances\n * @license YetiForce Public License 6.5\n * @author Tomasz Poradzewski <t.poradzewski@yetiforce.com>\n */\n\nimport KnowledgeBaseComponent from './KnowledgeBase.vue'\nimport KnowledgeBaseModal from './KnowledgeBaseModal.vue'\nimport ArticlePreviewComponent from './ArticlePreviewModal.vue'\nimport store from 'store'\nimport moduleStore from './store'\nimport { createNamespacedHelpers } from 'vuex'\nVue.config.productionTip = false\n\nconst { mapActions } = createNamespacedHelpers('KnowledgeBase')\nstore.registerModule('KnowledgeBase', moduleStore)\n\nVue.mixin({\n\tmethods: {\n\t\ttranslate(key) {\n\t\t\treturn app.vtranslate(key)\n\t\t},\n\t},\n})\nwindow.KnowledgeBase = {\n\tcomponent: KnowledgeBaseComponent,\n\tmount(config) {\n\t\tKnowledgeBaseComponent.state = config.state\n\t\treturn new Vue({\n\t\t\tstore,\n\t\t\trender: (h) => h(KnowledgeBaseComponent),\n\t\t\tmethods: {\n\t\t\t\t...mapActions(['fetchCategories', 'initState']),\n\t\t\t},\n\t\t\tcreated() {\n\t\t\t\tthis.initState(config.state)\n\t\t\t},\n\t\t}).$mount(config.el)\n\t},\n}\nwindow.ArticlePreviewVueComponent = {\n\tcomponent: ArticlePreviewComponent,\n\tmount(config) {\n\t\tArticlePreviewComponent.state = config.state\n\t\treturn new Vue({\n\t\t\tstore,\n\t\t\trender: (h) => h(ArticlePreviewComponent),\n\t\t}).$mount(config.el)\n\t},\n}\nwindow.KnowledgeBaseModalVueComponent = {\n\tcomponent: KnowledgeBaseModal,\n\tmount(config) {\n\t\tKnowledgeBaseModal.state = config.state\n\t\treturn new Vue({\n\t\t\tstore,\n\t\t\trender: (h) => h(KnowledgeBaseModal),\n\t\t}).$mount(config.el)\n\t},\n}\n"],"names":["normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","const","hook","options","render","staticRenderFns","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","HEAD","name","props","icon","type","String","required","size","customOptions","Object","default","data","searchInfoShow","iconSize","tooltipFont","backgroundClass","tooltipId","Quasar","utils","uid","created","assign","document","addEventListener","e","target","offsetParent","classList","contains","script$b","columnBlocks","Array","isOldIE","navigator","test","userAgent","toLowerCase","id","css","group","media","styles","ids","Set","has","let","code","source","map","sources","btoa","unescape","encodeURIComponent","JSON","stringify","element","createElement","setAttribute","undefined","head","getElementsByTagName","appendChild","push","styleSheet","cssText","filter","Boolean","join","index","textNode","createTextNode","nodes","childNodes","removeChild","length","insertBefore","addStyle","slide","height","report","fullscreen","record","watch","val","$q","request","exit","methods","onTransition","$","$refs","carousel","$el","find","width","global$1","global","self","window","setTimeout","clearTimeout","Item","fun","array","prototype","run","apply","performance","now","mozNow","msNow","oNow","webkitNow","Date","process","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","deepCopy","obj","cache","f","hit","c","original","copy","isArray","keys","forEach","key","forEachValue","fn","isObject","assert","condition","msg","Error","Module","rawModule","runtime","_children","create","_rawModule","rawState","state","prototypeAccessors","namespaced","configurable","get","addChild","module","getChild","hasChild","update","actions","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","defineProperties","ModuleCollection","rawRootModule","register","path","targetModule","newModule","NODE_ENV","assertRawModule","modules","console","warn","reduce","root","getNamespace","namespace","this$1","slice","rawChildModule","unregister","child","isRegistered","Vue","functionAssert","value","expected","assertTypes","handler","assertOptions","buf","makeAssertionMessage","Store","install","Promise","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","store","dispatch","commit","payload","installModule","resetStoreVM","plugin","devtools","config","_devtoolHook","emit","on","targetState","replaceState","subscribe","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","subs","indexOf","unshift","i","splice","resetStore","hot","oldVm","_vm","wrappedGetters","computed","arg","partial","defineProperty","enumerable","silent","$$state","$watch","_data","deep","sync","enableStrictMode","_withCommit","nextTick","$destroy","rootState","isRoot","error","parentState","getNestedState","moduleName","set","local","noNamespace","_type","_payload","_options","args","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","res","rootGetters","then","resolve","catch","err","registerAction","getter","rawGetter","registerGetter","_Vue","Number","version","split","mixin","vuexInit","_init","init","$store","applyMixin","v","ref","entry","sub","before","result","all","reject","after","cb","registerModule","preserveState","unregisterModule","delete","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","isValidMap","normalizeMap","getModuleByNamespace","vuex","mapMutations","len","arguments","mapGetters","mapActions","createNamespacedHelpers","bind","charAt","helper","startMessage","logger","message","collapsed","groupCollapsed","log","endMessage","groupEnd","getFormattedTime","time","pad","getHours","getMinutes","getSeconds","getMilliseconds","num","maxLength","str","times","toString","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","formattedMutation","formattedAction","Vuex","components","YfIcon","title","pagination","rowsPerPage","columns","label","align","field","row","subject","format","sortable","hasData","onClickRecord","fetchRecord","$emit","styleMapping","t","m","b","l","r","script$8","emits","stickSize","parentScaleX","parentScaleY","isActive","preventActiveBehavior","isDraggable","isResizable","aspectRatio","parentLimitation","snapToGrid","gridX","validator","gridY","parentW","parentH","w","minw","minh","x","y","z","dragHandle","dragCancel","sticks","axis","contentClass","fixAspectRatio","active","zIndex","parentWidth","parentHeight","left","top","right","bottom","minHeight","stickDrag","bodyDrag","dimensionsBeforeMove","pointerX","pointerY","limits","min","max","currentStick","mounted","parentElement","parentNode","clientWidth","clientHeight","container","scrollWidth","scrollHeight","domEvents","Map","move","up","deselect","eventName","documentElement","querySelectorAll","_uid","cancelHandle","beforeDestroy","removeEventListener","ev","stopPropagation","pageX","touches","pageY","delta","stickMove","bodyMove","stickUp","bodyUp","bodyDown","button","getAttribute","preventDefault","saveDimensionsBeforeMove","calcDragLimitation","newTop","newBottom","newLeft","newRight","alignTop","alignLeft","diffT","Math","floor","diffB","diffL","diffR","abs","rectCorrectionByLimit","rect","stickDown","stick","force","calcResizeLimits","aspectFactor","round","assign$1","rectCorrectionByAspectRatio","minWidth","parentLim","aspectLimits","sideCorrectionByLimit","limit","current","newWidth","newHeight","deltaHeight","deltaWidth","positionStyle","sizeStyle","vdrStick","stickStyle","immediate","newVal","oldVal","$nextTick","mixins","keepElementInWindow","correctCoordinates","coordinates","VueDragResize","maximized","border","minVisibleHeight","minVisibleWidth","resize","newRect","computedRect","innerWidth","innerHeight","onActivated","prop","getWindowWidth","screen","availWidth","outerWidth","getWindowHeight","availHeight","outerHeight","Carousel","ArticlesList","ColumnsGrid","previewMaximized","relatedRecords","related","dynamic","item","hasRelatedArticles","base","Articles","hasRelatedComments","ModComments","onResize","content","toggleMaximized","remove","ArticlePreviewContent","DragResize","isDragResize","maximizedOnly","previewDialog","Screen","Platform","is","desktop","dialog","show","animationIn","animationOut","animationChildClassIn","animationChildClassOut","animationParentClassIn","animationParentClassOut","activeCategoryDelayed","activeCategory","fetchParentCategoryData","categories","parentCategory","parentTreeArray","tree","parentTree","fetchChildCategoryData","categoryValue","IconInfo","ArticlePreview","CategoriesList","drawerBehaviour","miniState","accountSearch","categorySearch","searchData","activeAccount","tab","showAccounts","records","featured","accountsData","accounts","accountsList","account","includes","selectedTabData","searchDataArray","featuredCategories","inputFocus","onTabChange","tabName","fetchAccounts","aDeferred","Deferred","progressIndicatorElement","progressIndicator","blockInfo","enabled","AppConnector","mode","done","listData","search","debouncedSearch","clearSearch","fetchData","category","accountId","accountid","openQuickCreateModal","App","Components","QuickCreate","createRecord","showArticlePreview","toggleDrawer","drawer","belowBreakpoint","onDialogToggle","fetchCategories","_","debounce","grabClass","linkClass","KnowledgeBase","ButtonGrab","initState","recordId","evt","keyCode","hideModal","app","hideModalWindow","use","debug","vuexStore","recordData","setState","setRecord","setDialog","setMaximized","setCoordinates","setTreeCategories","moduleStore","defaultTreeIcon","topCategory","productionTip","translate","vtranslate","component","KnowledgeBaseComponent","mount","$mount","el","ArticlePreviewVueComponent","ArticlePreviewComponent","KnowledgeBaseModalVueComponent","KnowledgeBaseModal"],"mappings":"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"}