{"version":3,"file":"components/product-right.js","sources":["webpack:///./node_modules/element-ui/src/utils/dom.js","webpack:///./node_modules/element-ui/src/utils/types.js","webpack:///./node_modules/element-ui/src/utils/util.js","webpack:///./node_modules/element-ui/src/utils/merge.js","webpack:///./components/Tinymce/index.vue?8f5c","webpack:///./components/Tinymce/index.vue","webpack:///./components/Tinymce/index.vue?d718","webpack:///./components/Tinymce/index.vue?f614","webpack:///./node_modules/element-ui/packages/image/src/image-viewer.vue","webpack:///./node_modules/element-ui/src/utils/popup/popup-manager.js","webpack:///./node_modules/element-ui/src/utils/scrollbar-width.js","webpack:///./node_modules/element-ui/src/utils/popup/index.js","webpack:///./node_modules/element-ui/packages/image/src/image-viewer.vue?cc7b","webpack:///./node_modules/element-ui/packages/image/src/image-viewer.vue?6307","webpack:///./components/Tinymce/plugins.js","webpack:///./components/Tinymce/toolbar.js","webpack:///./components/Tinymce/dynamicLoadScript.js","webpack:///./components/table/NewPriceTable.vue?9dc5","webpack:///./components/table/TotalTable.vue?452f","webpack:///./components/table/UnitTable.vue?29b6","webpack:///./components/TabNav.vue?018f","webpack:///./components/Tinymce/index.vue?889b","webpack:///./components/FormDialog.vue?6216","webpack:///./components/product/Quote.vue?74f5","webpack:///./components/table/StockTable.vue?2948","webpack:///./components/table/ChangeTable.vue?6706","webpack:///./components/TabNav.vue","webpack:///./components/TabNav.vue?f732","webpack:///./components/TabNav.vue?f4a8","webpack:///./components/table/NewPriceTable.vue?5b85","webpack:///./components/table/TotalTable.vue?bb49","webpack:///./components/table/UnitTable.vue?1994","webpack:///./components/TabNav.vue?74f0","webpack:///./components/FormDialog.vue?98fe","webpack:///./components/table/NewPriceTable.vue","webpack:///./components/table/NewPriceTable.vue?e7b8","webpack:///./components/table/NewPriceTable.vue?e6a6","webpack:///./components/table/TotalTable.vue","webpack:///./components/table/TotalTable.vue?ef20","webpack:///./components/table/TotalTable.vue?c108","webpack:///./components/table/UnitTable.vue","webpack:///./components/table/UnitTable.vue?b71d","webpack:///./components/table/UnitTable.vue?a1ce","webpack:///./components/table/MailTable.vue","webpack:///./components/table/MailTable.vue?6878","webpack:///./components/table/MailTable.vue?447d","webpack:///./components/FormDialog.vue","webpack:///./components/FormDialog.vue?d330","webpack:///./components/FormDialog.vue?d22e","webpack:///./components/PriceToImg.vue","webpack:///./components/PriceToImg.vue?2004","webpack:///./components/PriceToImg.vue?8df8","webpack:///./components/product/Quote.vue?673b","webpack:///./components/table/StockTable.vue?1b13","webpack:///./components/table/ChangeTable.vue?d224","webpack:///./components/product/ProductRight.vue?f88d","webpack:///./components/product/Quote.vue","webpack:///./components/product/Quote.vue?2674","webpack:///./components/product/Quote.vue?680f","webpack:///./components/table/StockTable.vue","webpack:///./components/table/StockTable.vue?0db1","webpack:///./components/table/StockTable.vue?db8c","webpack:///./components/table/ChangeTable.vue","webpack:///./components/table/ChangeTable.vue?abcd","webpack:///./components/table/ChangeTable.vue?fe0b","webpack:///./assets/img/lineart.png","webpack:///./assets/img/email.png","webpack:///./assets/img/product.png","webpack:///./assets/img/cataloque.png","webpack:///./assets/img/instruction.png","webpack:///./components/product/ProductRight.vue?279f","webpack:///./components/product/ProductRight.vue","webpack:///./components/product/ProductRight.vue?72c9","webpack:///./components/product/ProductRight.vue?96d1"],"sourcesContent":["/* istanbul ignore next */\n\nimport Vue from 'vue';\n\nconst isServer = Vue.prototype.$isServer;\nconst SPECIAL_CHARS_REGEXP = /([\\:\\-\\_]+(.))/g;\nconst MOZ_HACK_REGEXP = /^moz([A-Z])/;\nconst ieVersion = isServer ? 0 : Number(document.documentMode);\n\n/* istanbul ignore next */\nconst trim = function(string) {\n return (string || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n};\n/* istanbul ignore next */\nconst camelCase = function(name) {\n return name.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {\n return offset ? letter.toUpperCase() : letter;\n }).replace(MOZ_HACK_REGEXP, 'Moz$1');\n};\n\n/* istanbul ignore next */\nexport const on = (function() {\n if (!isServer && document.addEventListener) {\n return function(element, event, handler) {\n if (element && event && handler) {\n element.addEventListener(event, handler, false);\n }\n };\n } else {\n return function(element, event, handler) {\n if (element && event && handler) {\n element.attachEvent('on' + event, handler);\n }\n };\n }\n})();\n\n/* istanbul ignore next */\nexport const off = (function() {\n if (!isServer && document.removeEventListener) {\n return function(element, event, handler) {\n if (element && event) {\n element.removeEventListener(event, handler, false);\n }\n };\n } else {\n return function(element, event, handler) {\n if (element && event) {\n element.detachEvent('on' + event, handler);\n }\n };\n }\n})();\n\n/* istanbul ignore next */\nexport const once = function(el, event, fn) {\n var listener = function() {\n if (fn) {\n fn.apply(this, arguments);\n }\n off(el, event, listener);\n };\n on(el, event, listener);\n};\n\n/* istanbul ignore next */\nexport function hasClass(el, cls) {\n if (!el || !cls) return false;\n if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n if (el.classList) {\n return el.classList.contains(cls);\n } else {\n return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;\n }\n};\n\n/* istanbul ignore next */\nexport function addClass(el, cls) {\n if (!el) return;\n var curClass = el.className;\n var classes = (cls || '').split(' ');\n\n for (var i = 0, j = classes.length; i < j; i++) {\n var clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.add(clsName);\n } else if (!hasClass(el, clsName)) {\n curClass += ' ' + clsName;\n }\n }\n if (!el.classList) {\n el.setAttribute('class', curClass);\n }\n};\n\n/* istanbul ignore next */\nexport function removeClass(el, cls) {\n if (!el || !cls) return;\n var classes = cls.split(' ');\n var curClass = ' ' + el.className + ' ';\n\n for (var i = 0, j = classes.length; i < j; i++) {\n var clsName = classes[i];\n if (!clsName) continue;\n\n if (el.classList) {\n el.classList.remove(clsName);\n } else if (hasClass(el, clsName)) {\n curClass = curClass.replace(' ' + clsName + ' ', ' ');\n }\n }\n if (!el.classList) {\n el.setAttribute('class', trim(curClass));\n }\n};\n\n/* istanbul ignore next */\nexport const getStyle = ieVersion < 9 ? function(element, styleName) {\n if (isServer) return;\n if (!element || !styleName) return null;\n styleName = camelCase(styleName);\n if (styleName === 'float') {\n styleName = 'styleFloat';\n }\n try {\n switch (styleName) {\n case 'opacity':\n try {\n return element.filters.item('alpha').opacity / 100;\n } catch (e) {\n return 1.0;\n }\n default:\n return (element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null);\n }\n } catch (e) {\n return element.style[styleName];\n }\n} : function(element, styleName) {\n if (isServer) return;\n if (!element || !styleName) return null;\n styleName = camelCase(styleName);\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n try {\n var computed = document.defaultView.getComputedStyle(element, '');\n return element.style[styleName] || computed ? computed[styleName] : null;\n } catch (e) {\n return element.style[styleName];\n }\n};\n\n/* istanbul ignore next */\nexport function setStyle(element, styleName, value) {\n if (!element || !styleName) return;\n\n if (typeof styleName === 'object') {\n for (var prop in styleName) {\n if (styleName.hasOwnProperty(prop)) {\n setStyle(element, prop, styleName[prop]);\n }\n }\n } else {\n styleName = camelCase(styleName);\n if (styleName === 'opacity' && ieVersion < 9) {\n element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';\n } else {\n element.style[styleName] = value;\n }\n }\n};\n\nexport const isScroll = (el, vertical) => {\n if (isServer) return;\n\n const determinedDirection = vertical !== null && vertical !== undefined;\n const overflow = determinedDirection\n ? vertical\n ? getStyle(el, 'overflow-y')\n : getStyle(el, 'overflow-x')\n : getStyle(el, 'overflow');\n\n return overflow.match(/(scroll|auto|overlay)/);\n};\n\nexport const getScrollContainer = (el, vertical) => {\n if (isServer) return;\n\n let parent = el;\n while (parent) {\n if ([window, document, document.documentElement].includes(parent)) {\n return window;\n }\n if (isScroll(parent, vertical)) {\n return parent;\n }\n parent = parent.parentNode;\n }\n\n return parent;\n};\n\nexport const isInContainer = (el, container) => {\n if (isServer || !el || !container) return false;\n\n const elRect = el.getBoundingClientRect();\n let containerRect;\n\n if ([window, document, document.documentElement, null, undefined].includes(container)) {\n containerRect = {\n top: 0,\n right: window.innerWidth,\n bottom: window.innerHeight,\n left: 0\n };\n } else {\n containerRect = container.getBoundingClientRect();\n }\n\n return elRect.top < containerRect.bottom &&\n elRect.bottom > containerRect.top &&\n elRect.right > containerRect.left &&\n elRect.left < containerRect.right;\n};\n","import Vue from 'vue';\n\nexport function isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\n\nexport function isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isHtmlElement(node) {\n return node && node.nodeType === Node.ELEMENT_NODE;\n}\n\n/**\n * - Inspired:\n * https://github.com/jashkenas/underscore/blob/master/modules/isFunction.js\n */\nlet isFunction = (functionToCheck) => {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n};\n\nif (typeof /./ !== 'function' && typeof Int8Array !== 'object' && (Vue.prototype.$isServer || typeof document.childNodes !== 'function')) {\n isFunction = function(obj) {\n return typeof obj === 'function' || false;\n };\n}\n\nexport {\n isFunction\n};\n\nexport const isUndefined = (val)=> {\n return val === void 0;\n};\n\nexport const isDefined = (val) => {\n return val !== undefined && val !== null;\n};\n","import Vue from 'vue';\nimport { isString, isObject } from 'element-ui/src/utils/types';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport function noop() {};\n\nexport function hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n};\n\nfunction extend(to, _from) {\n for (let key in _from) {\n to[key] = _from[key];\n }\n return to;\n};\n\nexport function toObject(arr) {\n var res = {};\n for (let i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n};\n\nexport const getValueByPath = function(object, prop) {\n prop = prop || '';\n const paths = prop.split('.');\n let current = object;\n let result = null;\n for (let i = 0, j = paths.length; i < j; i++) {\n const path = paths[i];\n if (!current) break;\n\n if (i === j - 1) {\n result = current[path];\n break;\n }\n current = current[path];\n }\n return result;\n};\n\nexport function getPropByPath(obj, path, strict) {\n let tempObj = obj;\n path = path.replace(/\\[(\\w+)\\]/g, '.$1');\n path = path.replace(/^\\./, '');\n\n let keyArr = path.split('.');\n let i = 0;\n for (let len = keyArr.length; i < len - 1; ++i) {\n if (!tempObj && !strict) break;\n let key = keyArr[i];\n if (key in tempObj) {\n tempObj = tempObj[key];\n } else {\n if (strict) {\n throw new Error('please transfer a valid prop path to form item!');\n }\n break;\n }\n }\n return {\n o: tempObj,\n k: keyArr[i],\n v: tempObj ? tempObj[keyArr[i]] : null\n };\n};\n\nexport const generateId = function() {\n return Math.floor(Math.random() * 10000);\n};\n\nexport const valueEquals = (a, b) => {\n // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript\n if (a === b) return true;\n if (!(a instanceof Array)) return false;\n if (!(b instanceof Array)) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i !== a.length; ++i) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n\nexport const escapeRegexpString = (value = '') => String(value).replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n// TODO: use native Array.find, Array.findIndex when IE support is dropped\nexport const arrayFindIndex = function(arr, pred) {\n for (let i = 0; i !== arr.length; ++i) {\n if (pred(arr[i])) {\n return i;\n }\n }\n return -1;\n};\n\nexport const arrayFind = function(arr, pred) {\n const idx = arrayFindIndex(arr, pred);\n return idx !== -1 ? arr[idx] : undefined;\n};\n\n// coerce truthy value to array\nexport const coerceTruthyValueToArray = function(val) {\n if (Array.isArray(val)) {\n return val;\n } else if (val) {\n return [val];\n } else {\n return [];\n }\n};\n\nexport const isIE = function() {\n return !Vue.prototype.$isServer && !isNaN(Number(document.documentMode));\n};\n\nexport const isEdge = function() {\n return !Vue.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1;\n};\n\nexport const isFirefox = function() {\n return !Vue.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i);\n};\n\nexport const autoprefixer = function(style) {\n if (typeof style !== 'object') return style;\n const rules = ['transform', 'transition', 'animation'];\n const prefixes = ['ms-', 'webkit-'];\n rules.forEach(rule => {\n const value = style[rule];\n if (rule && value) {\n prefixes.forEach(prefix => {\n style[prefix + rule] = value;\n });\n }\n });\n return style;\n};\n\nexport const kebabCase = function(str) {\n const hyphenateRE = /([^-])([A-Z])/g;\n return str\n .replace(hyphenateRE, '$1-$2')\n .replace(hyphenateRE, '$1-$2')\n .toLowerCase();\n};\n\nexport const capitalize = function(str) {\n if (!isString(str)) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nexport const looseEqual = function(a, b) {\n const isObjectA = isObject(a);\n const isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n return JSON.stringify(a) === JSON.stringify(b);\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n } else {\n return false;\n }\n};\n\nexport const arrayEquals = function(arrayA, arrayB) {\n arrayA = arrayA || [];\n arrayB = arrayB || [];\n\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n for (let i = 0; i < arrayA.length; i++) {\n if (!looseEqual(arrayA[i], arrayB[i])) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const isEqual = function(value1, value2) {\n if (Array.isArray(value1) && Array.isArray(value2)) {\n return arrayEquals(value1, value2);\n }\n return looseEqual(value1, value2);\n};\n\nexport const isEmpty = function(val) {\n // null or undefined\n if (val == null) return true;\n\n if (typeof val === 'boolean') return false;\n\n if (typeof val === 'number') return !val;\n\n if (val instanceof Error) return val.message === '';\n\n switch (Object.prototype.toString.call(val)) {\n // String or Array\n case '[object String]':\n case '[object Array]':\n return !val.length;\n\n // Map or Set or File\n case '[object File]':\n case '[object Map]':\n case '[object Set]': {\n return !val.size;\n }\n // Plain Object\n case '[object Object]': {\n return !Object.keys(val).length;\n }\n }\n\n return false;\n};\n\nexport function rafThrottle(fn) {\n let locked = false;\n return function(...args) {\n if (locked) return;\n locked = true;\n window.requestAnimationFrame(_ => {\n fn.apply(this, args);\n locked = false;\n });\n };\n}\n\nexport function objToArray(obj) {\n if (Array.isArray(obj)) {\n return obj;\n }\n return isEmpty(obj) ? [] : [obj];\n}\n\nexport const isMac = function() {\n return !Vue.prototype.$isServer && /macintosh|mac os x/i.test(navigator.userAgent);\n};\n","export default function(target) {\n for (let i = 1, j = arguments.length; i < j; i++) {\n let source = arguments[i] || {};\n for (let prop in source) {\n if (source.hasOwnProperty(prop)) {\n let value = source[prop];\n if (value !== undefined) {\n target[prop] = value;\n }\n }\n }\n }\n\n return target;\n};\n","// Exports\nmodule.exports = {\n\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"tinymce-container\",class:{fullscreen:_vm.fullscreen},style:({width:_vm.containerWidth})},[_vm._ssrNode(\"\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--2-0!../../node_modules/@nuxt/components/dist/loader.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--2-0!../../node_modules/@nuxt/components/dist/loader.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a9d38a5e&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nfunction injectStyles (context) {\n \n var style0 = require(\"./index.vue?vue&type=style&index=0&id=a9d38a5e&prod&lang=scss&scoped=true\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n \"a9d38a5e\",\n \"2f101c14\"\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"viewer-fade\"}},[_c('div',{ref:\"el-image-viewer__wrapper\",staticClass:\"el-image-viewer__wrapper\",style:({ 'z-index': _vm.viewerZIndex }),attrs:{\"tabindex\":\"-1\"}},[_c('div',{staticClass:\"el-image-viewer__mask\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.handleMaskClick.apply(null, arguments)}}}),_vm._v(\" \"),_c('span',{staticClass:\"el-image-viewer__btn el-image-viewer__close\",on:{\"click\":_vm.hide}},[_c('i',{staticClass:\"el-icon-close\"})]),_vm._v(\" \"),(!_vm.isSingle)?[_c('span',{staticClass:\"el-image-viewer__btn el-image-viewer__prev\",class:{ 'is-disabled': !_vm.infinite && _vm.isFirst },on:{\"click\":_vm.prev}},[_c('i',{staticClass:\"el-icon-arrow-left\"})]),_vm._v(\" \"),_c('span',{staticClass:\"el-image-viewer__btn el-image-viewer__next\",class:{ 'is-disabled': !_vm.infinite && _vm.isLast },on:{\"click\":_vm.next}},[_c('i',{staticClass:\"el-icon-arrow-right\"})])]:_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"el-image-viewer__btn el-image-viewer__actions\"},[_c('div',{staticClass:\"el-image-viewer__actions__inner\"},[_c('i',{staticClass:\"el-icon-zoom-out\",on:{\"click\":function($event){return _vm.handleActions('zoomOut')}}}),_vm._v(\" \"),_c('i',{staticClass:\"el-icon-zoom-in\",on:{\"click\":function($event){return _vm.handleActions('zoomIn')}}}),_vm._v(\" \"),_c('i',{staticClass:\"el-image-viewer__actions__divider\"}),_vm._v(\" \"),_c('i',{class:_vm.mode.icon,on:{\"click\":_vm.toggleMode}}),_vm._v(\" \"),_c('i',{staticClass:\"el-image-viewer__actions__divider\"}),_vm._v(\" \"),_c('i',{staticClass:\"el-icon-refresh-left\",on:{\"click\":function($event){return _vm.handleActions('anticlocelise')}}}),_vm._v(\" \"),_c('i',{staticClass:\"el-icon-refresh-right\",on:{\"click\":function($event){return _vm.handleActions('clocelise')}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"el-image-viewer__canvas\"},_vm._l((_vm.urlList),function(url,i){return (i === _vm.index)?_c('img',{key:url,ref:\"img\",refInFor:true,staticClass:\"el-image-viewer__img\",style:(_vm.imgStyle),attrs:{\"src\":_vm.currentImg},on:{\"load\":_vm.handleImgLoad,\"error\":_vm.handleImgError,\"mousedown\":_vm.handleMouseDown}}):_vm._e()}),0)],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { addClass, removeClass } from 'element-ui/src/utils/dom';\n\nlet hasModal = false;\nlet hasInitZIndex = false;\nlet zIndex;\n\nconst getModal = function() {\n if (Vue.prototype.$isServer) return;\n let modalDom = PopupManager.modalDom;\n if (modalDom) {\n hasModal = true;\n } else {\n hasModal = false;\n modalDom = document.createElement('div');\n PopupManager.modalDom = modalDom;\n\n modalDom.addEventListener('touchmove', function(event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n modalDom.addEventListener('click', function() {\n PopupManager.doOnModalClick && PopupManager.doOnModalClick();\n });\n }\n\n return modalDom;\n};\n\nconst instances = {};\n\nconst PopupManager = {\n modalFade: true,\n\n getInstance: function(id) {\n return instances[id];\n },\n\n register: function(id, instance) {\n if (id && instance) {\n instances[id] = instance;\n }\n },\n\n deregister: function(id) {\n if (id) {\n instances[id] = null;\n delete instances[id];\n }\n },\n\n nextZIndex: function() {\n return PopupManager.zIndex++;\n },\n\n modalStack: [],\n\n doOnModalClick: function() {\n const topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topItem) return;\n\n const instance = PopupManager.getInstance(topItem.id);\n if (instance && instance.closeOnClickModal) {\n instance.close();\n }\n },\n\n openModal: function(id, zIndex, dom, modalClass, modalFade) {\n if (Vue.prototype.$isServer) return;\n if (!id || zIndex === undefined) return;\n this.modalFade = modalFade;\n\n const modalStack = this.modalStack;\n\n for (let i = 0, j = modalStack.length; i < j; i++) {\n const item = modalStack[i];\n if (item.id === id) {\n return;\n }\n }\n\n const modalDom = getModal();\n\n addClass(modalDom, 'v-modal');\n if (this.modalFade && !hasModal) {\n addClass(modalDom, 'v-modal-enter');\n }\n if (modalClass) {\n let classArr = modalClass.trim().split(/\\s+/);\n classArr.forEach(item => addClass(modalDom, item));\n }\n setTimeout(() => {\n removeClass(modalDom, 'v-modal-enter');\n }, 200);\n\n if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {\n dom.parentNode.appendChild(modalDom);\n } else {\n document.body.appendChild(modalDom);\n }\n\n if (zIndex) {\n modalDom.style.zIndex = zIndex;\n }\n modalDom.tabIndex = 0;\n modalDom.style.display = '';\n\n this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });\n },\n\n closeModal: function(id) {\n const modalStack = this.modalStack;\n const modalDom = getModal();\n\n if (modalStack.length > 0) {\n const topItem = modalStack[modalStack.length - 1];\n if (topItem.id === id) {\n if (topItem.modalClass) {\n let classArr = topItem.modalClass.trim().split(/\\s+/);\n classArr.forEach(item => removeClass(modalDom, item));\n }\n\n modalStack.pop();\n if (modalStack.length > 0) {\n modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;\n }\n } else {\n for (let i = modalStack.length - 1; i >= 0; i--) {\n if (modalStack[i].id === id) {\n modalStack.splice(i, 1);\n break;\n }\n }\n }\n }\n\n if (modalStack.length === 0) {\n if (this.modalFade) {\n addClass(modalDom, 'v-modal-leave');\n }\n setTimeout(() => {\n if (modalStack.length === 0) {\n if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);\n modalDom.style.display = 'none';\n PopupManager.modalDom = undefined;\n }\n removeClass(modalDom, 'v-modal-leave');\n }, 200);\n }\n }\n};\n\nObject.defineProperty(PopupManager, 'zIndex', {\n configurable: true,\n get() {\n if (!hasInitZIndex) {\n zIndex = zIndex || (Vue.prototype.$ELEMENT || {}).zIndex || 2000;\n hasInitZIndex = true;\n }\n return zIndex;\n },\n set(value) {\n zIndex = value;\n }\n});\n\nconst getTopPopup = function() {\n if (Vue.prototype.$isServer) return;\n if (PopupManager.modalStack.length > 0) {\n const topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n if (!topPopup) return;\n const instance = PopupManager.getInstance(topPopup.id);\n\n return instance;\n }\n};\n\nif (!Vue.prototype.$isServer) {\n // handle `esc` key when the popup is shown\n window.addEventListener('keydown', function(event) {\n if (event.keyCode === 27) {\n const topPopup = getTopPopup();\n\n if (topPopup && topPopup.closeOnPressEscape) {\n topPopup.handleClose\n ? topPopup.handleClose()\n : (topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close());\n }\n }\n });\n}\n\nexport default PopupManager;\n","import Vue from 'vue';\n\nlet scrollBarWidth;\n\nexport default function() {\n if (Vue.prototype.$isServer) return 0;\n if (scrollBarWidth !== undefined) return scrollBarWidth;\n\n const outer = document.createElement('div');\n outer.className = 'el-scrollbar__wrap';\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n outer.style.position = 'absolute';\n outer.style.top = '-9999px';\n document.body.appendChild(outer);\n\n const widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n\n const inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n\n const widthWithScroll = inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n scrollBarWidth = widthNoScroll - widthWithScroll;\n\n return scrollBarWidth;\n};\n","import Vue from 'vue';\nimport merge from 'element-ui/src/utils/merge';\nimport PopupManager from 'element-ui/src/utils/popup/popup-manager';\nimport getScrollBarWidth from '../scrollbar-width';\nimport { getStyle, addClass, removeClass, hasClass } from '../dom';\n\nlet idSeed = 1;\n\nlet scrollBarWidth;\n\nexport default {\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n openDelay: {},\n closeDelay: {},\n zIndex: {},\n modal: {\n type: Boolean,\n default: false\n },\n modalFade: {\n type: Boolean,\n default: true\n },\n modalClass: {},\n modalAppendToBody: {\n type: Boolean,\n default: false\n },\n lockScroll: {\n type: Boolean,\n default: true\n },\n closeOnPressEscape: {\n type: Boolean,\n default: false\n },\n closeOnClickModal: {\n type: Boolean,\n default: false\n }\n },\n\n beforeMount() {\n this._popupId = 'popup-' + idSeed++;\n PopupManager.register(this._popupId, this);\n },\n\n beforeDestroy() {\n PopupManager.deregister(this._popupId);\n PopupManager.closeModal(this._popupId);\n\n this.restoreBodyStyle();\n },\n\n data() {\n return {\n opened: false,\n bodyPaddingRight: null,\n computedBodyPaddingRight: 0,\n withoutHiddenClass: true,\n rendered: false\n };\n },\n\n watch: {\n visible(val) {\n if (val) {\n if (this._opening) return;\n if (!this.rendered) {\n this.rendered = true;\n Vue.nextTick(() => {\n this.open();\n });\n } else {\n this.open();\n }\n } else {\n this.close();\n }\n }\n },\n\n methods: {\n open(options) {\n if (!this.rendered) {\n this.rendered = true;\n }\n\n const props = merge({}, this.$props || this, options);\n\n if (this._closeTimer) {\n clearTimeout(this._closeTimer);\n this._closeTimer = null;\n }\n clearTimeout(this._openTimer);\n\n const openDelay = Number(props.openDelay);\n if (openDelay > 0) {\n this._openTimer = setTimeout(() => {\n this._openTimer = null;\n this.doOpen(props);\n }, openDelay);\n } else {\n this.doOpen(props);\n }\n },\n\n doOpen(props) {\n if (this.$isServer) return;\n if (this.willOpen && !this.willOpen()) return;\n if (this.opened) return;\n\n this._opening = true;\n\n const dom = this.$el;\n\n const modal = props.modal;\n\n const zIndex = props.zIndex;\n if (zIndex) {\n PopupManager.zIndex = zIndex;\n }\n\n if (modal) {\n if (this._closing) {\n PopupManager.closeModal(this._popupId);\n this._closing = false;\n }\n PopupManager.openModal(this._popupId, PopupManager.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);\n if (props.lockScroll) {\n this.withoutHiddenClass = !hasClass(document.body, 'el-popup-parent--hidden');\n if (this.withoutHiddenClass) {\n this.bodyPaddingRight = document.body.style.paddingRight;\n this.computedBodyPaddingRight = parseInt(getStyle(document.body, 'paddingRight'), 10);\n }\n scrollBarWidth = getScrollBarWidth();\n let bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;\n let bodyOverflowY = getStyle(document.body, 'overflowY');\n if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) {\n document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px';\n }\n addClass(document.body, 'el-popup-parent--hidden');\n }\n }\n\n if (getComputedStyle(dom).position === 'static') {\n dom.style.position = 'absolute';\n }\n\n dom.style.zIndex = PopupManager.nextZIndex();\n this.opened = true;\n\n this.onOpen && this.onOpen();\n\n this.doAfterOpen();\n },\n\n doAfterOpen() {\n this._opening = false;\n },\n\n close() {\n if (this.willClose && !this.willClose()) return;\n\n if (this._openTimer !== null) {\n clearTimeout(this._openTimer);\n this._openTimer = null;\n }\n clearTimeout(this._closeTimer);\n\n const closeDelay = Number(this.closeDelay);\n\n if (closeDelay > 0) {\n this._closeTimer = setTimeout(() => {\n this._closeTimer = null;\n this.doClose();\n }, closeDelay);\n } else {\n this.doClose();\n }\n },\n\n doClose() {\n this._closing = true;\n\n this.onClose && this.onClose();\n\n if (this.lockScroll) {\n setTimeout(this.restoreBodyStyle, 200);\n }\n\n this.opened = false;\n\n this.doAfterClose();\n },\n\n doAfterClose() {\n PopupManager.closeModal(this._popupId);\n this._closing = false;\n },\n\n restoreBodyStyle() {\n if (this.modal && this.withoutHiddenClass) {\n document.body.style.paddingRight = this.bodyPaddingRight;\n removeClass(document.body, 'el-popup-parent--hidden');\n }\n this.withoutHiddenClass = true;\n }\n }\n};\n\nexport {\n PopupManager\n};\n","import mod from \"-!../../../../babel-loader/lib/index.js??ref--2-0!../../../../@nuxt/components/dist/loader.js??ref--0-0!../../../../vue-loader/lib/index.js??vue-loader-options!./image-viewer.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../babel-loader/lib/index.js??ref--2-0!../../../../@nuxt/components/dist/loader.js??ref--0-0!../../../../vue-loader/lib/index.js??vue-loader-options!./image-viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./image-viewer.vue?vue&type=template&id=44a7b0fb\"\nimport script from \"./image-viewer.vue?vue&type=script&lang=js\"\nexport * from \"./image-viewer.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n \"17d24eb5\"\n \n)\n\nexport default component.exports","// Any plugins you want to use has to be imported\n// Detail plugins list see https://www.tinymce.com/docs/plugins/\n// Custom builds see https://www.tinymce.com/download/custom-builds/\n\nconst plugins = ['advlist autolink autosave code colorpicker colorpicker contextmenu directionality fullscreen hr insertdatetime link lists nonbreaking noneditable paste preview print save spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount']\n//anchor codesample emoticons pagebreak searchreplace image imagetools media\nexport default plugins\n","// Here is a list of the toolbar\n// Detail list see https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols\n\nconst toolbar = ['searchreplace bold italic underline strikethrough alignleft aligncenter alignright outdent indent blockquote undo redo removeformat subscript superscript code codesample', 'hr bullist numlist link image charmap preview anchor pagebreak insertdatetime media table emoticons forecolor backcolor fullscreen']\n\nexport default toolbar\n","let callbacks = []\n\nfunction loadedTinymce() {\n // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144\n // check is successfully downloaded script\n return window.tinymce\n}\n\nconst dynamicLoadScript = (src, callback) => {\n const existingScript = document.getElementById(src)\n const cb = callback || function() {}\n\n if (!existingScript) {\n const script = document.createElement('script')\n script.src = src // src url for the third-party library being loaded.\n script.id = src\n document.body.appendChild(script)\n callbacks.push(cb)\n const onEnd = 'onload' in script ? stdOnEnd : ieOnEnd\n onEnd(script)\n }\n\n if (existingScript && cb) {\n if (loadedTinymce()) {\n cb(null, existingScript)\n } else {\n callbacks.push(cb)\n }\n }\n\n function stdOnEnd(script) {\n script.onload = function() {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n for (const cb of callbacks) {\n cb(null, script)\n }\n callbacks = null\n }\n script.onerror = function() {\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + src), script)\n }\n }\n\n function ieOnEnd(script) {\n script.onreadystatechange = function() {\n if (this.readyState !== 'complete' && this.readyState !== 'loaded') return\n this.onreadystatechange = null\n for (const cb of callbacks) {\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n callbacks = null\n }\n }\n}\n\nexport default dynamicLoadScript\n","// Exports\nmodule.exports = {\n\n};\n","// Exports\nmodule.exports = {\n\n};\n","// Exports\nmodule.exports = {\n\n};\n","// Exports\nmodule.exports = {\n\n};\n","export * from \"-!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-0!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-2!../../node_modules/@nuxt/components/dist/loader.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=a9d38a5e&prod&lang=scss&scoped=true\"","// Exports\nmodule.exports = {\n\n};\n","// Exports\nmodule.exports = {\n\n};\n","// Exports\nmodule.exports = {\n\n};\n","// Exports\nmodule.exports = {\n\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"tabs\",style:({ marginTop: _vm.marginTop + 'px', marginBottom: _vm.marginBottom + 'px',fontSize:_vm.fontSize + 'px' })},[_vm._ssrNode(((Array.isArray(_vm.tabList))?(\"
\"+(_vm._s(_vm.comTitle))+\"
\"):\"\")+\" \"),_vm._ssrNode(\"\"+_vm._ssrEscape(_vm._s(_vm.title))+\" \"+((_vm.title=='Sell Price' &&_vm.comLocationNum !==1)?(\"Total\"):\"\")+\"
\"),_c('el-table',{ref:\"elTable\",attrs:{\"border\":\"\",\"data\":_vm.tableData,\"header-cell-style\":{\n backgroundColor: '#fff',\n color: '#606266',\n fontWeight: 500,\n fontSize: '16px'\n },\"stripe\":\"\"}},_vm._l((_vm.tableColumns),function(item,index){return _c('el-table-column',{key:`${_vm.curOrder}-${item.prop}`,attrs:{\"align\":item.align ? item.align : 'center',\"prop\":item.prop,\"label\":item.label,\"formatter\":item.formatter,\"sortable\":item.sortable},scopedSlots:_vm._u([{key:\"header\",fn:function(scope){return [(_vm.title=='Buy Price' && _vm.comLocationNum === 1)?_c('div',[_c('el-input',{directives:[{name:\"show\",rawName:\"v-show\",value:(!item.isFirstColumn),expression:\"!item.isFirstColumn\"}],attrs:{\"size\":\"small\",\"type\":\"number\",\"min\":_vm.min},on:{\"blur\":function($event){return _vm.getNumber($event, index)}},model:{value:(item.label),callback:function ($$v) {_vm.$set(item, \"label\", $$v)},expression:\"item.label\"}}),_vm._v(\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(item.isFirstColumn),expression:\"item.isFirstColumn\"}]},[_vm._v(_vm._s(item.label))])],1):_c('div',[_c('span',[_vm._v(_vm._s(item.label))])])]}},{key:\"default\",fn:function(scope){return [(_vm.tableType && !item.isFirstColumn)?[_c('span',[_vm._v(_vm._s(_vm._f(\"differencePrice\")(scope.row[item.prop],\n _vm.curDecoration[item.prop],\n _vm.indexDecoration[item.prop],\n _vm.poaConfig\n )))])]:[((typeof scope.row[item.prop]=='string' && scope.row[item.prop].includes('.') || typeof scope.row[item.prop]=='number') &&\n !item.isFirstColumn)?_c('span',[_vm._v(\"£\")]):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(scope.row[item.prop] ? scope.row[item.prop] : '0.00'))])]]}}],null,true)})}),1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--2-0!../../node_modules/@nuxt/components/dist/loader.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TotalTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--2-0!../../node_modules/@nuxt/components/dist/loader.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TotalTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TotalTable.vue?vue&type=template&id=8afd0988&scoped=true\"\nimport script from \"./TotalTable.vue?vue&type=script&lang=js\"\nexport * from \"./TotalTable.vue?vue&type=script&lang=js\"\nfunction injectStyles (context) {\n \n var style0 = require(\"./TotalTable.vue?vue&type=style&index=0&id=8afd0988&prod&lang=scss&scoped=true\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n \"8afd0988\",\n \"35501f79\"\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._ssrNode(\"Markup %
\"),_c('el-table',{ref:\"elTable\",style:({ width: _vm.operateWith }),attrs:{\"border\":\"\",\"data\":_vm.tableData,\"highlight-current-row\":false,\"header-cell-style\":{\n backgroundColor: '#fff',\n color: '#606266', fontWeight: 500, fontSize: '16px',\n }}},[_vm._l((_vm.tableColumns),function(item){return [(item.isText)?_c('el-table-column',{key:item.prop,attrs:{\"align\":\"center\",\"prop\":item.prop,\"label\":item.label,\"formatter\":item.formatter,\"width\":item.width,\"sortable\":item.sortable}}):_vm._e(),_vm._v(\" \"),(!item.isText)?_c('el-table-column',{key:item.prop,attrs:{\"prop\":item.prop,\"label\":item.label,\"formatter\":item.formatter,\"width\":item.width,\"align\":item.align ? item.align : 'center',\"sortable\":item.sortable},scopedSlots:_vm._u([{key:\"default\",fn:function({ row, $index }){return [_c('el-input',{staticClass:\"edit-input\",attrs:{\"size\":\"small\",\"type\":\"number\",\"min\":\"0\"},on:{\"input\":function($event){return _vm.saveUnitData(row, $index)}},model:{value:(row[item.prop]),callback:function ($$v) {_vm.$set(row, item.prop, $$v)},expression:\"row[item.prop]\"}})]}}],null,true)}):_vm._e()]})],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--2-0!../../node_modules/@nuxt/components/dist/loader.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnitTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--2-0!../../node_modules/@nuxt/components/dist/loader.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnitTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UnitTable.vue?vue&type=template&id=931e8840&scoped=true\"\nimport script from \"./UnitTable.vue?vue&type=script&lang=js\"\nexport * from \"./UnitTable.vue?vue&type=script&lang=js\"\nfunction injectStyles (context) {\n \n var style0 = require(\"./UnitTable.vue?vue&type=style&index=0&id=931e8840&prod&lang=scss&scoped=true\")\nif (style0.__inject__) style0.__inject__(context)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n \"931e8840\",\n \"01507f2a\"\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._ssrNode(\"\"+((_vm.isImgSrc)?(\" | \"+_vm._ssrEscape(_vm._s(_vm.pageData.product_code))+\" \"+_vm._ssrEscape(_vm._s(_vm.pageData.product_name))+\" \"+(_vm._s(_vm.comInfo.description))+\" |
Specifications
\"+_vm._ssrEscape(_vm._s(item.label))+\" | \")}))+\"
\"+((_vm.specificationsObj[item.prop])?(\" \"+((item.prop != 'addonArr' )?(\"\"+_vm._ssrEscape(_vm._s(_vm.specificationsObj[item.prop]))+\"\"):((_vm._ssrList((_vm.specificationsObj.addonArr),function(opt,idx){return (\" \"):(\"-\"))+\"\"+_vm._ssrEscape(_vm._s(opt))+\" \")}))))+\" | \")}))+\"
Quote
Quote | Total |
\"+_vm._ssrEscape(_vm._s(item.label))+\" | \")}))+\"|
\"+_vm._ssrEscape(\"\\n \"+_vm._s(row[column.prop].includes('.')?'£':'')+\" \"+_vm._s(row[column.prop]?row[column.prop]:'0.00')+\"\\n \")+\" | \")}))+\"
\"+_vm._ssrEscape(_vm._s(_vm.emailForm.Comments))+\"
\"+(_vm._s(_vm.comInfo.description))+\"
\"+(_vm._s(_vm.pageData.pbo))+\"
\\n Due to differences between production batches, product sizes may vary\\n slightly. The above Colours and measurements are approximate, and for\\n guidance only.\\n
\")],2),_vm._ssrNode(\" \"),_vm._ssrNode(\"For quantities over available stock levels, please contact us for pricing and timing
\")],2):_vm._ssrNode((\"Lineart Download\\n
Email Digital Marketing\\n
Product Image\\n
Catalogue\\n
Product Instruction\\n