{"version":3,"sources":["webpack:///./src/components/private/NewProductText.vue?603e","webpack:///./src/components/public/product/ProductConfigurator.vue?2626","webpack:///./src/components/public/product/ProductConfigurator.vue","webpack:///./src/components/private/ProductText.vue","webpack:///src/components/private/ProductText.vue","webpack:///./src/components/private/ProductText.vue?2e1e","webpack:///./src/components/private/ProductText.vue?edfc","webpack:///./src/components/private/ProductConfiguratorEditorText.vue","webpack:///src/components/private/ProductConfiguratorEditorText.vue","webpack:///./src/components/private/ProductConfiguratorEditorText.vue?bbd2","webpack:///./src/components/private/ProductConfiguratorEditorText.vue?717d","webpack:///./src/components/private/ProductConfiguratorEditorColor.vue","webpack:///src/components/private/ProductConfiguratorEditorColor.vue","webpack:///./src/components/private/ProductConfiguratorEditorColor.vue?83fa","webpack:///./src/components/private/ProductConfiguratorEditorColor.vue?52c7","webpack:///src/components/public/product/ProductConfigurator.vue","webpack:///./src/components/public/product/ProductConfigurator.vue?672d","webpack:///./src/components/public/product/ProductConfigurator.vue?8017","webpack:///./src/components/private/NewProductConfiguratorEditorColor.vue?4946","webpack:///./node_modules/vuescroll/dist/vuescroll-native.js","webpack:///./src/components/private/NewProductColor.vue?5455","webpack:///./src/components/public/product/NewProductConfigurator.vue?21f0","webpack:///./src/components/public/product/NewProductConfigurator.vue","webpack:///./src/components/private/NewProductText.vue","webpack:///src/components/private/NewProductText.vue","webpack:///./src/components/private/NewProductText.vue?2667","webpack:///./src/components/private/NewProductText.vue?cdfc","webpack:///./src/components/private/NewProductColor.vue","webpack:///src/components/private/NewProductColor.vue","webpack:///./src/components/private/NewProductColor.vue?a888","webpack:///./src/components/private/NewProductColor.vue?3f08","webpack:///./src/components/private/NewProductConfiguratorEditorText.vue","webpack:///src/components/private/NewProductConfiguratorEditorText.vue","webpack:///./src/components/private/NewProductConfiguratorEditorText.vue?69f7","webpack:///./src/components/private/NewProductConfiguratorEditorText.vue?7947","webpack:///./src/components/private/NewProductConfiguratorEditorColor.vue","webpack:///src/components/private/NewProductConfiguratorEditorColor.vue","webpack:///./src/components/private/NewProductConfiguratorEditorColor.vue?84c4","webpack:///./src/components/private/NewProductConfiguratorEditorColor.vue?4c95","webpack:///src/components/public/product/NewProductConfigurator.vue","webpack:///./src/components/public/product/NewProductConfigurator.vue?f476","webpack:///./src/components/public/product/NewProductConfigurator.vue?81bf","webpack:///./src/components/private/ProductColor.vue?b88f","webpack:///./node_modules/tinycolor2/cjs/tinycolor.js","webpack:///./src/components/private/ProductText.vue?e13c","webpack:///./src/components/private/ProductConfiguratorEditorColor.vue?d336","webpack:///./src/components/private/ProductColor.vue","webpack:///src/components/private/ProductColor.vue","webpack:///./src/components/private/ProductColor.vue?56ba","webpack:///./src/components/private/ProductColor.vue?d210","webpack:///./src/components/private/ProductConfiguratorEditorText.vue?062c"],"names":["render","_vm","this","_c","_self","class","editorConfig","muchdata","items","length","staticClass","_l","groups","group","gIndex","configurations","key","title","_v","_s","_e","config","cIndex","attrs","on","$event","setEditorConfig","id","name","component","summary","tag","item","preventDefault","ref","scrollOptions","isVariantChange","editor","largePreview","$slots","otherItems","otherItemsGroup","index","attributeTitle","domProps","variantName","_t","staticRenderFns","_b","data","style","props","text","type","Object","default","overrideVertical","Array","Boolean","CONFIGURATION_TYPES","values","COMPONENT_PRODUCTCONFIGURATOR_CONFIGURATION_TYPES","DEFAULT_CONFIGURATION_TYPE","_CONFIGURATION_TYPES$","find","c","isDefault","components","VueScroll","ProductText","ProductColor","ProductConfiguratorEditorText","ProductConfiguratorEditorColor","configurationGroups","required","editorConfigId","sizeStrategy","detectResize","locking","maxHeight","undefined","scrollPanel","initialScrollY","initialScrollX","scrollingY","scrollingX","speed","easing","verticalNativeBarPos","maxWidth","rail","background","SCSS_VARIABLES","colors","theme","control","border","opacity","size","specifyBorderRadius","gutterOfEnds","gutterOfSide","keepShow","bar","disable","dark","showDelay","hoverStyle","minSize","onlyShowBarOnScroll","scrollButton","enable","step","mousedownStep","vuescroll","wheelScrollDuration","wheelDirectionReverse","checkShifKey","computed","configurationTypeMap","reduce","acc","types","forEach","t","configurationMap","map","g","activeItem","i","active","methods","variantSlug","watch","$refs","scrollbar","refresh","global","factory","module","exports","Vue","prototype","hasOwnProperty","call","_typeof","Symbol","iterator","obj","constructor","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","value","_extends","assign","arguments","source","toConsumableArray","arr","isArray","arr2","from","isIE","isServer","agent","navigator","userAgent","toLowerCase","indexOf","isIos","u","match","$isServer","touchManager","originEvent","touchObject","isTouch","touches","platform","touch","window","opera","maxTouchPoints","msMaxTouchPoints","nonDeskTouch","test","eventType","touchstart","touchend","touchmove","touchenter","touchleave","touchcancel","ZoomManager","_this","originPixelRatio","getRatio","lastPixelRatio","addEventListener","ratio","screen","ua","devicePixelRatio","deviceXDPI","logicalXDPI","outerWidth","innerWidth","Math","round","deepCopy","to","shallow","isUndef","isPlainObj","mergeObject","force","defineReactive","souceKey","get","scrollBarWidth","zoomManager","getGutter","getRatioBetweenPreAndCurrent","outer","document","createElement","visibility","width","position","top","body","appendChild","widthNoScroll","offsetWidth","overflow","inner","widthWithScroll","parentNode","removeChild","eventCenter","dom","eventName","hander","capture","removeEventListener","warn","msg","console","isChildInParent","child","parent","flag","nodeType","_isVuescroll","getPrefix","engine","docStyle","documentElement","toString","cpuClass","vendorPrefix","trident","gecko","webkit","presto","getComplitableStyle","property","compatibleValue","testElm","insertChildrenIntoSlot","h","parentVnode","childVNode","swapChildren","concat","_getVnodeInfo","getVnodeInfo","ch","isComponent","componentOptions","propsData","slot","vnode","children","getRealParent","ctx","$parent","_isVuescrollRoot","_","getNumericValue","distance","number","exec","createStyle","styleId","cssText","getElementById","head","doc","getElementsByTagName","styleSheet","createTextNode","createHideBarStyle","api","mounted","vsInstances","_uid","beforeDestroy","scrollTo","_ref","x","y","mergedOptions","internalScrollTo","scrollBy","_ref2","_ref2$dx","dx","_ref2$dy","dy","_getPosition","getPosition","_getPosition$scrollLe","scrollLeft","_getPosition$scrollTo","scrollTop","scrollPanelElm","scrollWidth","$el","clientWidth","scrollHeight","clientHeight","scrollIntoView","elm","animate","parentElm","querySelector","_$el$getBoundingClien","getBoundingClientRect","left","_elm$getBoundingClien","childLeft","childTop","diffX","diffY","refreshInternalStatus","$nextTick","refreshAll","vs","baseConfig","validateOps","ops","renderError","_ops$bar","vBar","hBar","_ops$rail","vRail","hRail","String","_extraValidate","hasError","extendOpts","extraOpts","extraValidate","opts","smallChangeArray","scrollMap","vertical","opsSize","posName","opposName","sidePosName","page","scroll","scrollSize","offset","client","axis","start","end","horizontal","requestAnimationFrame","requestFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","isNative","callback","root","TARGET_FPS","requests","rafHandle","intervalHandle","lastActive","Date","callbackHandle","setInterval","time","currentRequests","clearInterval","colorCache","rgbReg","extractRgbColor","getRgbAColor","color","div","computedColor","getComputedStyle","backgroundColor","state","hideBar","otherBarHide","barSize","max","barRatio","_style","_style2","_barStyle","vm","railBackgroundColor","_rail$on","railSize","endPos","touchObj","getTouchObject","borderRadius","setRailHover","setRailLeave","buttonSize","barWrapper","scrollDistance","posValue","pos","setClassHook","barStyle","cursor","margin","transition","right","height","bottom","_touchObj","createBarEvent","createTrackEvent","createScrollbarButton","isBarDragging","isRailHover","showBar","setBarDrag","val","$emit","mousedown","e","event","getEventObject","stopImmediatePropagation","onselectstart","axisStartPos","mousemove","mouseup","thubmParent","thumb","delta","percent","_ctx$bar","barOffset","currentTarget","_style3","barContext","_barContext$ops$scrol","borderColor","wrapperProps","innerProps","createScrollButtonEvent","_ctx$ops$scrollButton","stepWithDirection","mousedownStepWithDirection","barType","isMouseDown","isMouseout","timeoutId","which","endPress","enter","leave","clearTimeout","setTimeout","pressing","getBarData","charAt","refreshLoad","keepShowRail","createBar","verticalBarProps","horizontalBarProps","createComponent","_render","mixins","created","_gfc","$vuescrollConfig","$options","keys","_data$on","padding","__vuescroll","classHooks","pointerLeave","updateBarStateAndEmitEvent","_customContainer","_this2","initVariables","initWatchOpsChange","updatedCbs","push","scrollToAnchor","updated","_this3","cb","destroy","_isVue","isDragging","currentSizeStrategy","currentScrollState","currentScrollInfo","scrollContent","hasVBar","hasHBar","vBarVisible","hBarVisible","vBarDragging","hBarDragging","clikingVerticalStartButton","clikingVerticalEndButton","clikingHorizontalStartButton","clikingHorizontalEndButton","mouseEnter","scrollingComplete","showAndDefferedHideBar","forceHideBar","_this4","_vuescroll$state","useNumbericSize","_mergedOptions$scroll","_$el$parentNode","parentClientHeight","parentClientWidth","_scrollPanelElm","usePercentSize","setVsSize","_mergedOptions$scroll2","_scrollPanelElm2","_this5","watchOpts","deep","sync","$watch","isSmallChangeThisTick","validateHashSelector","hash","location","slice","lastIndexOf","updateInitialScroll","_isDestroyed","boxSizing","_customPanel","_install","core","_components","extraConfigs","extraValidators","comp","getCurrentViewportDom","container","domFragment","isCurrentview","_dom$getBoundingClien","_container$getBoundin","parentLeft","parentTop","parentHeight","parentWidth","isResizeElm","createEasingFunction","easingPattern","pattern","noop","now","getTime","ScrollControl","init","isRunning","isPaused","isStopped","ts","spd","execScroll","st","ed","stepCb","completeCb","vertifyCb","easingMethod","df","dir","nt","loop","_elm","scrollX","scrollY","scrollingElement","_elm2","startScroll","api$1","nativeStop","stop","nativePause","pause","nativeContinue","continue","nativeScrollTo","bind","getCurrentviewDomNative","scrollContentElm","getPanelData","context","overflowY","overflowX","nativeOn","handleScroll","scrollYEnable","scrollXEnable","DOMMouseScroll","mousewheel","onMouseWheel","_context$mergedOption","gutter","marginRight","marginLeft","transformOrigin","transform","createPanel","getPanelChildren","viewStyle","_customContent","paddingRight","installResizeDetection","element","injectObject","hasResized","OBJECT_STYLE","objWrap","object","tabIndex","onload","contentDocument","defaultView","update","updateNativeModeBarState","isPercent","heightPercentage","widthPercentage","getNativePosition","css","checkScrollable","deltaX","deltaY","scrollable","nodeName","ov","_getScrollProcess","getScrollProcess","v","isScrollX","isScrollY","_mergedOptions$vuescr","isReverse","duration","checkShiftKey","deltaPercent","wheelDelta","abs","detail","shiftKey","stopPropagation","destroyResize","getCurrentviewDom","destX","destY","internalStop","internalPause","internalContinue","nativeEvent","emitEvent","min","process","registryResize","resizeEnable","contentElm","handleWindowResize","handleDomResize","currentSize","destroyDomResize","destroyWindowResize","install","Vuescroll","version","use","isLoading","newSummary","$i18n","locale","$t","tPath","newEditor","selectedValue","propertyChanged","variantConfigurationIsComplete","selectedVariants","variant","vIndex","loadVariant","urlSlug","productImageUrl","modell","titel1","titel2","pathname","split","filter","pop","compact","colorUrlProperty","colorProperty","textProperty","$root","isMobile","button","bIndex","href","variantDescription","INPUT_BUTTON_SIZE_MAP","mobilefirstBreakpoint","colorItems","hsv","additionalDisplayData","mainImage","sortedColors","uniqueColors","extended","hueClusters","tinyColor","toHsv","sort","a","b","findIndex","claster","s","_this$sortedColors$fi","NewProductText","NewProductColor","NewProductConfiguratorEditorText","NewProductConfiguratorEditorColor","configuration","variantConfiguration","currentVariant","currentBusinessObjectId","businessObjectId","result","variants","properties","p","_CONFIGURATION_TYPES$2","propertyName","convertToCamelCase","activeVariantConfigurationValue","activeValue","displayType","includes","possiblePropertyValues","sortByName","comparePropertyByName","sortValue","every","variantConfigurationValue","allProperties","allEditorConfigs","flat","allGroups","allGroupProperties","_this$allEditorConfig","propertyIndex","relevantProperties","splice","relevantVariantConfiguration","previousPropertyName","validVariants","some","selectedPropertyValue","$set","variantConfigurationPropertyValue","validValues","validValue","variantUrlSlug","propertyValueMatchesVariant","propertyValue","propertyA","propertyB","nameA","nameB","JSON","parse","stringify","trimLeft","trimRight","tinycolor","rgb","inputToRGB","_originalInput","_r","r","_g","_a","_roundA","_format","format","_gradientType","gradientType","_ok","ok","l","stringInputToObject","isValidCSSUnit","rgbToRgb","substr","convertToPercentage","hsvToRgb","hslToRgb","boundAlpha","bound01","rgbToHsl","d","hue2rgb","q","rgbToHsv","floor","f","mod","rgbToHex","allow3Char","hex","pad2","join","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","_desaturate","amount","hsl","toHsl","clamp01","_saturate","_greyscale","desaturate","_lighten","_brighten","toRgb","_darken","_spin","hue","_complement","polyad","isNaN","Error","_splitcomplement","_analogous","results","slices","part","ret","_monochromatic","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","R","G","B","pow","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","needsAlphaFormat","clone","_applyModification","fn","args","apply","lighten","brighten","darken","saturate","greyscale","spin","_applyCombination","analogous","complement","monochromatic","splitcomplement","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","rgba","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","validateWCAG2Parms","level","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flip","o","flipped","parseFloat","n","isOnePointZero","processPercent","isPercentage","parseInt","parseIntFromHex","convertHexToDecimal","matchers","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","hsla","hsva","hex3","hex6","hex4","hex8","replace","named","parms","toUpperCase"],"mappings":"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","file":"js/product-configurator.92dfb569.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductText.vue?vue&type=style&index=0&id=699f7924&prod&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfigurator.vue?vue&type=style&index=0&id=250a1f18&prod&lang=scss\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:['product-configurator', { 'editor-open': _vm.editorConfig, muchdata: _vm.editorConfig && _vm.editorConfig.items.length > 10 }]},[_c('div',{staticClass:\"configurator-summary\"},[_vm._l((_vm.groups),function(group,gIndex){return [(group.configurations.length)?_c('div',{key:gIndex,staticClass:\"summary-group\"},[(group.title)?_c('div',{staticClass:\"group-title\"},[_vm._v(_vm._s(group.title))]):_vm._e(),_vm._l((group.configurations),function(config,cIndex){return _c('div',{key:cIndex,staticClass:\"group-item\",attrs:{\"role\":\"button\"},on:{\"click\":function($event){return _vm.setEditorConfig(config.id)}}},[_c('div',{staticClass:\"item-name\"},[_vm._v(_vm._s(config.name))]),_c(config.component.summary,{tag:\"component\",staticClass:\"item-value\",attrs:{\"item\":config.item}}),_c('div',{staticClass:\"item-edit\"},[_c('lazy-icon',{attrs:{\"icon\":\"pen\"}})],1)],1)})],2):_vm._e()]})],2),_c('transition',{attrs:{\"name\":\"editor\"}},[(_vm.editorConfig)?_c('div',{staticClass:\"configurator-editor\"},[_c('div',{staticClass:\"editor-title\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.setEditorConfig()}}},[_c('lazy-icon',{attrs:{\"icon\":\"caret-left\",\"font-scale\":\"0.75\"}}),_vm._v(\" \"+_vm._s(_vm.editorConfig.name))],1)]),_c('div',{staticClass:\"editor-content-wrapper\"},[_c('vue-scroll',{ref:\"scrollbar\",attrs:{\"ops\":_vm.scrollOptions}},[_c('c-product-variant-handler',{staticClass:\"editor-content\",on:{\"isVariantChange\":_vm.isVariantChange}},[_c(_vm.editorConfig.component.editor,{tag:\"component\",attrs:{\"items\":_vm.editorConfig.items,\"large-preview\":_vm.editorConfig.largePreview,\"overrideVertical\":!_vm.$slots[_vm.editorConfig.id]}}),_vm._l((_vm.editorConfig.otherItems),function(otherItemsGroup,index){return _c('div',{key:`OtherItems_${_vm.editorConfig.id}_${index}`,staticClass:\"other-items-group mt-5\"},[_c('div',{staticClass:\"editor-title\"},[_vm._v(_vm._s(otherItemsGroup.attributeTitle)+\": \"),_c('span',{domProps:{\"innerHTML\":_vm._s(otherItemsGroup.variantName)}})]),_c(_vm.editorConfig.component.editor,{tag:\"component\",attrs:{\"items\":otherItemsGroup.items,\"large-preview\":_vm.editorConfig.largePreview,\"overrideVertical\":!_vm.$slots[_vm.editorConfig.id]}})],1)}),_c('div',{staticClass:\"content-description\"},[_vm._t(_vm.editorConfig.id)],2)],2)],1)],1)]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(_c,_vm){return _c('div',_vm._b({class:['product-text', _vm.data.class, _vm.data.staticClass],style:(_vm.data.style),attrs:{\"id\":_vm.data.id},domProps:{\"innerHTML\":_vm._s(_vm.props.item.text)}},'div',_vm.data.attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProductText.vue?vue&type=template&id=0d4e8c97&functional=true\"\nimport script from \"./ProductText.vue?vue&type=script&lang=js\"\nexport * from \"./ProductText.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProductText.vue?vue&type=style&index=0&id=0d4e8c97&prod&lang=scss\"\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 true,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(_c,_vm){return _c('c-product-buttongroup',_vm._b({class:['product-configurator-editor-text', _vm.data.class, _vm.data.staticClass],style:(_vm.data.style),attrs:{\"id\":_vm.data.id,\"buttons\":_vm.props.items,\"vertical\":_vm.props.overrideVertical ? true: _vm.props.items.length > 2,\"block\":\"\"}},'c-product-buttongroup',_vm.data.attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfiguratorEditorText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfiguratorEditorText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProductConfiguratorEditorText.vue?vue&type=template&id=0cdbc15d&functional=true\"\nimport script from \"./ProductConfiguratorEditorText.vue?vue&type=script&lang=js\"\nexport * from \"./ProductConfiguratorEditorText.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProductConfiguratorEditorText.vue?vue&type=style&index=0&id=0cdbc15d&prod&lang=scss\"\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 true,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(_c,_vm){return _c('c-product-colors',_vm._b({class:['product-configurator-editor-color', _vm.data.class, _vm.data.staticClass],style:(_vm.data.style),attrs:{\"id\":_vm.data.id,\"colors\":_vm.props.items,\"large-preview\":_vm.props.largePreview,\"extended\":\"\"}},'c-product-colors',_vm.data.attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfiguratorEditorColor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfiguratorEditorColor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProductConfiguratorEditorColor.vue?vue&type=template&id=01765642&functional=true\"\nimport script from \"./ProductConfiguratorEditorColor.vue?vue&type=script&lang=js\"\nexport * from \"./ProductConfiguratorEditorColor.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProductConfiguratorEditorColor.vue?vue&type=style&index=0&id=01765642&prod&lang=scss\"\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 true,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfigurator.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfigurator.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProductConfigurator.vue?vue&type=template&id=250a1f18\"\nimport script from \"./ProductConfigurator.vue?vue&type=script&lang=js\"\nexport * from \"./ProductConfigurator.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProductConfigurator.vue?vue&type=style&index=0&id=250a1f18&prod&lang=scss\"\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 null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductConfiguratorEditorColor.vue?vue&type=style&index=0&id=7bc0185a&prod&lang=scss\"","/*\n * Vuescroll v4.18.1\n * (c) 2018-2023 Yi(Yves) Wang\n * Released under the MIT License\n * Github: https://github.com/YvesCoding/vuescroll\n * Website: http://vuescrolljs.yvescoding.me/\n */\n \n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('vue')) :\n typeof define === 'function' && define.amd ? define(['vue'], factory) :\n (global = global || self, global.vuescroll = factory(global.Vue));\n}(this, (function (Vue) { 'use strict';\n\n Vue = Vue && Object.prototype.hasOwnProperty.call(Vue, 'default') ? Vue['default'] : Vue;\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n };\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n };\n\n function isIE() {\n /* istanbul ignore if */\n if (isServer()) return false;\n\n var agent = navigator.userAgent.toLowerCase();\n return agent.indexOf('msie') !== -1 || agent.indexOf('trident') !== -1 || agent.indexOf(' edge/') !== -1;\n }\n\n var isIos = function isIos() {\n /* istanbul ignore if */\n if (isServer()) return false;\n\n var u = navigator.userAgent;\n return !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/);\n };\n\n /* istanbul ignore next */\n var isServer = function isServer() {\n return Vue.prototype.$isServer;\n };\n\n var touchManager = function () {\n function touchManager() {\n classCallCheck(this, touchManager);\n }\n\n createClass(touchManager, [{\n key: 'getEventObject',\n value: function getEventObject(originEvent) {\n return this.touchObject ? this.isTouch ? originEvent.touches : [originEvent] : null;\n }\n }, {\n key: 'getTouchObject',\n value: function getTouchObject() /* istanbul ignore next */{\n if (isServer()) return null;\n\n this.isTouch = false;\n var agent = navigator.userAgent,\n platform = navigator.platform,\n touchObject = {};\n touchObject.touch = !!('ontouchstart' in window && !window.opera || 'msmaxtouchpoints' in window.navigator || 'maxtouchpoints' in window.navigator || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0);\n touchObject.nonDeskTouch = touchObject.touch && !/win32/i.test(platform) || touchObject.touch && /win32/i.test(platform) && /mobile/i.test(agent);\n\n touchObject.eventType = 'onmousedown' in window && !touchObject.nonDeskTouch ? 'mouse' : 'ontouchstart' in window ? 'touch' : 'msmaxtouchpoints' in window.navigator || navigator.msMaxTouchPoints > 0 ? 'mstouchpoints' : 'maxtouchpoints' in window.navigator || navigator.maxTouchPoints > 0 ? 'touchpoints' : 'mouse';\n switch (touchObject.eventType) {\n case 'mouse':\n touchObject.touchstart = 'mousedown';\n touchObject.touchend = 'mouseup';\n touchObject.touchmove = 'mousemove';\n\n touchObject.touchenter = 'mouseenter';\n touchObject.touchmove = 'mousemove';\n touchObject.touchleave = 'mouseleave';\n break;\n case 'touch':\n touchObject.touchstart = 'touchstart';\n touchObject.touchend = 'touchend';\n touchObject.touchmove = 'touchmove';\n touchObject.touchcancel = 'touchcancel';\n\n touchObject.touchenter = 'touchstart';\n touchObject.touchmove = 'touchmove';\n touchObject.touchleave = 'touchend';\n this.isTouch = true;\n break;\n case 'mstouchpoints':\n touchObject.touchstart = 'MSPointerDown';\n touchObject.touchend = 'MSPointerUp';\n touchObject.touchmove = 'MSPointerMove';\n touchObject.touchcancel = 'MSPointerCancel';\n\n touchObject.touchenter = 'MSPointerDown';\n touchObject.touchmove = 'MSPointerMove';\n touchObject.touchleave = 'MSPointerUp';\n break;\n case 'touchpoints':\n touchObject.touchstart = 'pointerdown';\n touchObject.touchend = 'pointerup';\n touchObject.touchmove = 'pointermove';\n touchObject.touchcancel = 'pointercancel';\n\n touchObject.touchenter = 'pointerdown';\n touchObject.touchmove = 'pointermove';\n touchObject.touchleave = 'pointerup';\n break;\n }\n\n return this.touchObject = touchObject;\n }\n }]);\n return touchManager;\n }();\n\n /**\r\n * ZoomManager\r\n * Get the browser zoom ratio\r\n */\n\n var ZoomManager = function () {\n function ZoomManager() {\n var _this = this;\n\n classCallCheck(this, ZoomManager);\n\n this.originPixelRatio = this.getRatio();\n this.lastPixelRatio = this.originPixelRatio;\n window.addEventListener('resize', function () {\n _this.lastPixelRatio = _this.getRatio();\n });\n }\n\n createClass(ZoomManager, [{\n key: 'getRatio',\n value: function getRatio() {\n var ratio = 0;\n var screen = window.screen;\n var ua = navigator.userAgent.toLowerCase();\n\n if (window.devicePixelRatio !== undefined) {\n ratio = window.devicePixelRatio;\n } else if (~ua.indexOf('msie')) {\n if (screen.deviceXDPI && screen.logicalXDPI) {\n ratio = screen.deviceXDPI / screen.logicalXDPI;\n }\n } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {\n ratio = window.outerWidth / window.innerWidth;\n }\n\n if (ratio) {\n ratio = Math.round(ratio * 100);\n }\n\n return ratio;\n }\n }, {\n key: 'getRatioBetweenPreAndCurrent',\n value: function getRatioBetweenPreAndCurrent() {\n return this.originPixelRatio / this.lastPixelRatio;\n }\n }]);\n return ZoomManager;\n }();\n\n function deepCopy(from, to, shallow) {\n if (shallow && isUndef(to)) {\n return from;\n }\n\n if (isArray(from)) {\n to = [];\n from.forEach(function (item, index) {\n to[index] = deepCopy(item, to[index]);\n });\n } else if (from) {\n if (!isPlainObj(from)) {\n return from;\n }\n to = {};\n for (var key in from) {\n to[key] = _typeof(from[key]) === 'object' ? deepCopy(from[key], to[key]) : from[key];\n }\n }\n return to;\n }\n\n function mergeObject(from, to, force, shallow) {\n if (shallow && isUndef(to)) {\n return from;\n }\n\n to = to || {};\n\n if (isArray(from)) {\n if (!isArray(to) && force) {\n to = [];\n }\n if (isArray(to)) {\n from.forEach(function (item, index) {\n to[index] = mergeObject(item, to[index], force, shallow);\n });\n }\n } else if (from) {\n if (!isPlainObj(from)) {\n if (force) {\n to = from;\n }\n } else {\n for (var key in from) {\n if (_typeof(from[key]) === 'object') {\n if (isUndef(to[key])) {\n to[key] = deepCopy(from[key], to[key], shallow);\n } else {\n mergeObject(from[key], to[key], force, shallow);\n }\n } else {\n if (isUndef(to[key]) || force) to[key] = from[key];\n }\n }\n }\n }\n\n return to;\n }\n\n function defineReactive(target, key, source, souceKey) {\n /* istanbul ignore if */\n if (!source[key] && typeof source !== 'function') {\n return;\n }\n souceKey = souceKey || key;\n Object.defineProperty(target, key, {\n get: function get() {\n return source[souceKey];\n },\n\n configurable: true\n });\n }\n\n var scrollBarWidth = void 0;\n var zoomManager = void 0;\n function getGutter() {\n /* istanbul ignore next */\n if (isServer()) return 0;\n if (!zoomManager) {\n zoomManager = new ZoomManager();\n }\n if (scrollBarWidth !== undefined) return scrollBarWidth * zoomManager.getRatioBetweenPreAndCurrent();\n var outer = document.createElement('div');\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 var widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n\n var inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n\n var widthWithScroll = inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n scrollBarWidth = widthNoScroll - widthWithScroll;\n // multi the browser zoom\n if (!zoomManager) {\n zoomManager = new ZoomManager();\n }\n return scrollBarWidth * zoomManager.getRatioBetweenPreAndCurrent();\n }\n\n function eventCenter(dom, eventName, hander) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var type = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'on';\n\n type == 'on' ? dom.addEventListener(eventName, hander, capture) : dom.removeEventListener(eventName, hander, capture);\n }\n var warn = function warn(msg) {\n console.warn('[vuescroll] ' + msg);\n };\n\n function isChildInParent(child, parent) {\n var flag = false;\n if (!child || !parent) {\n return flag;\n }\n while (child.parentNode !== parent && child.parentNode.nodeType !== 9 && !child.parentNode._isVuescroll) {\n child = child.parentNode;\n }\n if (child.parentNode == parent) {\n flag = true;\n }\n return flag;\n }\n\n function getPrefix(global) {\n var docStyle = document.documentElement.style;\n var engine;\n /* istanbul ignore if */\n if (global.opera && Object.prototype.toString.call(opera) === '[object Opera]') {\n engine = 'presto';\n } /* istanbul ignore next */else if ('MozAppearance' in docStyle) {\n engine = 'gecko';\n } else if ('WebkitAppearance' in docStyle) {\n engine = 'webkit';\n } /* istanbul ignore next */else if (typeof navigator.cpuClass === 'string') {\n engine = 'trident';\n }\n var vendorPrefix = {\n trident: 'ms',\n gecko: 'moz',\n webkit: 'webkit',\n presto: 'O'\n }[engine];\n return vendorPrefix;\n }\n\n function getComplitableStyle(property, value) {\n /* istanbul ignore if */\n if (isServer()) return false;\n\n var compatibleValue = '-' + getPrefix(window) + '-' + value;\n var testElm = document.createElement('div');\n testElm.style[property] = compatibleValue;\n if (testElm.style[property] == compatibleValue) {\n return compatibleValue;\n }\n /* istanbul ignore next */\n return false;\n }\n\n /**\r\n * Insert children into user-passed slot at vnode level\r\n */\n function insertChildrenIntoSlot(h) {\n var parentVnode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var childVNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var swapChildren = arguments[4];\n\n /* istanbul ignore if */\n if (parentVnode && parentVnode.length > 1) {\n return swapChildren ? [].concat(toConsumableArray(childVNode), toConsumableArray(parentVnode)) : [].concat(toConsumableArray(parentVnode), toConsumableArray(childVNode));\n }\n\n parentVnode = parentVnode[0];\n\n var _getVnodeInfo = getVnodeInfo(parentVnode),\n ch = _getVnodeInfo.ch,\n tag = _getVnodeInfo.tag,\n isComponent = _getVnodeInfo.isComponent;\n\n if (isComponent) {\n parentVnode.data = mergeObject({ attrs: parentVnode.componentOptions.propsData }, parentVnode.data, false, // force: false\n true // shallow: true\n );\n }\n ch = swapChildren ? [].concat(toConsumableArray(childVNode), toConsumableArray(ch)) : [].concat(toConsumableArray(ch), toConsumableArray(childVNode));\n delete parentVnode.data.slot;\n\n return h(tag, mergeObject(data, parentVnode.data, false, true), ch);\n }\n\n /**\r\n * Get the info of a vnode,\r\n * vnode must be parentVnode\r\n */\n function getVnodeInfo(vnode) {\n if (!vnode || vnode.length > 1) return {};\n\n vnode = vnode[0] ? vnode[0] : vnode;\n var isComponent = !!vnode.componentOptions;\n var ch = void 0;\n var tag = void 0;\n\n if (isComponent) {\n ch = vnode.componentOptions.children || [];\n tag = vnode.componentOptions.tag;\n } else {\n ch = vnode.children || [];\n tag = vnode.tag;\n }\n\n return {\n isComponent: isComponent,\n ch: ch,\n tag: tag\n };\n }\n\n /**\r\n * Get the vuescroll instance instead of\r\n * user pass component like slot.\r\n */\n function getRealParent(ctx) {\n var parent = ctx.$parent;\n if (!parent._isVuescrollRoot && parent) {\n parent = parent.$parent;\n }\n return parent;\n }\n\n var isArray = function isArray(_) {\n return Array.isArray(_);\n };\n var isPlainObj = function isPlainObj(_) {\n return Object.prototype.toString.call(_) == '[object Object]';\n };\n var isUndef = function isUndef(_) {\n return typeof _ === 'undefined';\n };\n\n function getNumericValue(distance, size) {\n var number = void 0;\n if (!(number = /(-?\\d+(?:\\.\\d+?)?)%$/.exec(distance))) {\n number = distance - 0;\n } else {\n number = number[1] - 0;\n number = size * number / 100;\n }\n return number;\n }\n\n function createStyle(styleId, cssText) {\n /* istanbul ignore if */\n if (isServer() || document.getElementById(styleId)) {\n return;\n }\n\n var head = document.head || doc.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n\n style.id = styleId;\n style.type = 'text/css';\n\n /* istanbul ignore if */\n if (style.styleSheet) {\n style.styleSheet.cssText = cssText;\n } else {\n style.appendChild(document.createTextNode(cssText));\n }\n\n head.appendChild(style);\n }\n\n // Hide the ios native scrollbar.\n function createHideBarStyle() {\n /* istanbul ignore next */\n {\n var cssText = '.__hidebar::-webkit-scrollbar {\\n width: 0;\\n height: 0;\\n }';\n\n createStyle('vuescroll-hide-ios-bar', cssText);\n }\n }\n\n var api = {\n mounted: function mounted() {\n vsInstances[this._uid] = this;\n },\n beforeDestroy: function beforeDestroy() {\n delete vsInstances[this._uid];\n },\n\n methods: {\n // public api\n scrollTo: function scrollTo(_ref, speed, easing) {\n var x = _ref.x,\n y = _ref.y;\n\n // istanbul ignore if\n if (speed === true || typeof speed == 'undefined') {\n speed = this.mergedOptions.scrollPanel.speed;\n }\n this.internalScrollTo(x, y, speed, easing);\n },\n scrollBy: function scrollBy(_ref2, speed, easing) {\n var _ref2$dx = _ref2.dx,\n dx = _ref2$dx === undefined ? 0 : _ref2$dx,\n _ref2$dy = _ref2.dy,\n dy = _ref2$dy === undefined ? 0 : _ref2$dy;\n\n var _getPosition = this.getPosition(),\n _getPosition$scrollLe = _getPosition.scrollLeft,\n scrollLeft = _getPosition$scrollLe === undefined ? 0 : _getPosition$scrollLe,\n _getPosition$scrollTo = _getPosition.scrollTop,\n scrollTop = _getPosition$scrollTo === undefined ? 0 : _getPosition$scrollTo;\n\n if (dx) {\n scrollLeft += getNumericValue(dx, this.scrollPanelElm.scrollWidth - this.$el.clientWidth);\n }\n if (dy) {\n scrollTop += getNumericValue(dy, this.scrollPanelElm.scrollHeight - this.$el.clientHeight);\n }\n this.internalScrollTo(scrollLeft, scrollTop, speed, easing);\n },\n scrollIntoView: function scrollIntoView(elm) {\n var animate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n var parentElm = this.$el;\n\n if (typeof elm === 'string') {\n elm = parentElm.querySelector(elm);\n }\n\n if (!isChildInParent(elm, parentElm)) {\n warn('The element or selector you passed is not the element of Vuescroll, please pass the element that is in Vuescroll to scrollIntoView API. ');\n return;\n }\n\n // parent elm left, top\n\n var _$el$getBoundingClien = this.$el.getBoundingClientRect(),\n left = _$el$getBoundingClien.left,\n top = _$el$getBoundingClien.top;\n // child elm left, top\n\n\n var _elm$getBoundingClien = elm.getBoundingClientRect(),\n childLeft = _elm$getBoundingClien.left,\n childTop = _elm$getBoundingClien.top;\n\n var diffX = left - childLeft;\n var diffY = top - childTop;\n\n this.scrollBy({\n dx: -diffX,\n dy: -diffY\n }, animate);\n },\n refresh: function refresh() {\n this.refreshInternalStatus();\n // refresh again to keep status is correct\n this.$nextTick(this.refreshInternalStatus);\n }\n }\n };\n\n /** Public Api */\n\n /**\r\n * Refresh all\r\n */\n var vsInstances = {};\n function refreshAll() {\n for (var vs in vsInstances) {\n vsInstances[vs].refresh();\n }\n }\n\n var baseConfig = {\n // vuescroll\n vuescroll: {\n // vuescroll's size(height/width) should be a percent(100%)\n // or be a number that is equal to its parentNode's width or\n // height ?\n sizeStrategy: 'percent',\n /** Whether to detect dom resize or not */\n detectResize: true,\n /** Enable locking to the main axis if user moves only slightly on one of them at start */\n locking: true\n },\n scrollPanel: {\n // when component mounted.. it will automatically scrolls.\n initialScrollY: false,\n initialScrollX: false,\n // feat: #11\n scrollingX: true,\n scrollingY: true,\n speed: 300,\n easing: undefined,\n // Sometimes, the nativebar maybe on the left,\n // See https://github.com/YvesCoding/vuescroll/issues/64\n verticalNativeBarPos: 'right',\n maxHeight: undefined,\n maxWidth: undefined\n },\n\n //\n rail: {\n background: '#01a99a',\n opacity: 0,\n border: 'none',\n /** Rail's size(Height/Width) , default -> 6px */\n size: '6px',\n /** Specify rail's border-radius, or the border-radius of rail and bar will be equal to the rail's size. default -> false **/\n specifyBorderRadius: false,\n /** Rail the distance from the two ends of the X axis and Y axis. **/\n gutterOfEnds: null,\n /** Rail the distance from the side of container. **/\n gutterOfSide: '2px',\n /** Whether to keep rail show or not, default -> false, event content height is not enough */\n keepShow: false\n },\n bar: {\n /** How long to hide bar after mouseleave, default -> 500 */\n showDelay: 500,\n /** Specify bar's border-radius, or the border-radius of rail and bar will be equal to the rail's size. default -> false **/\n specifyBorderRadius: false,\n /** Whether to show bar on scrolling, default -> true */\n onlyShowBarOnScroll: true,\n /** Whether to keep show or not, default -> false */\n keepShow: false,\n /** Bar's background , default -> #00a650 */\n background: 'rgb(3, 185, 118)',\n /** Bar's opacity, default -> 1 */\n opacity: 1,\n /** bar's size(Height/Width) , default -> 6px */\n\n size: '6px',\n minSize: 0,\n disable: false\n },\n scrollButton: {\n enable: false,\n background: 'rgb(3, 185, 118)',\n opacity: 1,\n step: 180,\n mousedownStep: 30\n }\n };\n\n /**\r\n * validate the options\r\n * @export\r\n * @param {any} ops\r\n */\n function validateOps(ops) {\n var renderError = false;\n var scrollPanel = ops.scrollPanel;\n var _ops$bar = ops.bar,\n vBar = _ops$bar.vBar,\n hBar = _ops$bar.hBar;\n var _ops$rail = ops.rail,\n vRail = _ops$rail.vRail,\n hRail = _ops$rail.hRail;\n\n // validate scrollPanel\n\n var initialScrollY = scrollPanel['initialScrollY'];\n var initialScrollX = scrollPanel['initialScrollX'];\n\n if (initialScrollY && !String(initialScrollY).match(/^\\d+(\\.\\d+)?(%)?$/)) {\n warn('The prop `initialScrollY` or `initialScrollX` should be a percent number like `10%` or an exact number that greater than or equal to 0 like `100`.');\n }\n if (initialScrollX && !String(initialScrollX).match(/^\\d+(\\.\\d+)?(%)?$/)) {\n warn('The prop `initialScrollY` or `initialScrollX` should be a percent number like `10%` or an exact number that greater than or equal to 0 like `100`.');\n }\n\n // validate deprecated vBar/hBar vRail/hRail\n if (vBar || hBar || vRail || hRail) {\n warn('The options: vRail, hRail, vBar, hBar have been deprecated since v4.7.0,' + 'please use corresponing rail/bar instead!');\n }\n\n if (_extraValidate) {\n _extraValidate = [].concat(_extraValidate);\n _extraValidate.forEach(function (hasError) {\n if (hasError(ops)) {\n renderError = true;\n }\n });\n }\n return renderError;\n }\n\n var _extraValidate = null;\n var extendOpts = function extendOpts(extraOpts, extraValidate) {\n extraOpts = [].concat(extraOpts);\n extraOpts.forEach(function (opts) {\n mergeObject(opts, baseConfig);\n });\n\n _extraValidate = extraValidate;\n };\n\n // all modes\n // some small changes.\n var smallChangeArray = ['mergedOptions.vuescroll.pullRefresh.tips', 'mergedOptions.vuescroll.pushLoad.tips', 'mergedOptions.vuescroll.scroller.disable', 'mergedOptions.rail', 'mergedOptions.bar'];\n\n var scrollMap = {\n vertical: {\n size: 'height',\n opsSize: 'width',\n posName: 'top',\n opposName: 'bottom',\n sidePosName: 'right',\n page: 'pageY',\n scroll: 'scrollTop',\n scrollSize: 'scrollHeight',\n offset: 'offsetHeight',\n client: 'clientY',\n axis: 'Y',\n scrollButton: {\n start: 'top',\n end: 'bottom'\n }\n },\n horizontal: {\n size: 'width',\n opsSize: 'height',\n posName: 'left',\n opposName: 'right',\n sidePosName: 'bottom',\n page: 'pageX',\n scroll: 'scrollLeft',\n scrollSize: 'scrollWidth',\n offset: 'offsetWidth',\n client: 'clientX',\n axis: 'X',\n scrollButton: {\n start: 'left',\n end: 'right'\n }\n }\n };\n\n function requestAnimationFrame(global) {\n // Check for request animation Frame support\n var requestFrame = global.requestAnimationFrame || global.webkitRequestAnimationFrame || global.mozRequestAnimationFrame || global.oRequestAnimationFrame;\n var isNative = !!requestFrame;\n\n if (requestFrame && !/requestAnimationFrame\\(\\)\\s*\\{\\s*\\[native code\\]\\s*\\}/i.test(requestFrame.toString())) {\n isNative = false;\n }\n\n if (isNative) {\n return function (callback, root) {\n requestFrame(callback, root);\n };\n }\n\n var TARGET_FPS = 60;\n var requests = {};\n var rafHandle = 1;\n var intervalHandle = null;\n var lastActive = +new Date();\n\n return function (callback) {\n var callbackHandle = rafHandle++;\n\n // Store callback\n requests[callbackHandle] = callback;\n\n // Create timeout at first request\n if (intervalHandle === null) {\n intervalHandle = setInterval(function () {\n var time = +new Date();\n var currentRequests = requests;\n\n // Reset data structure before executing callbacks\n requests = {};\n\n for (var key in currentRequests) {\n if (currentRequests.hasOwnProperty(key)) {\n currentRequests[key](time);\n lastActive = time;\n }\n }\n\n // Disable the timeout when nothing happens for a certain\n // period of time\n if (time - lastActive > 2500) {\n clearInterval(intervalHandle);\n intervalHandle = null;\n }\n }, 1000 / TARGET_FPS);\n }\n\n return callbackHandle;\n };\n }\n\n var colorCache = {};\n var rgbReg = /rgb\\(/;\n var extractRgbColor = /rgb\\((.*)\\)/;\n\n // Transform a common color int oa `rgbA` color\n function getRgbAColor(color, opacity) {\n var id = color + '&' + opacity;\n if (colorCache[id]) {\n return colorCache[id];\n }\n\n var div = document.createElement('div');\n div.style.background = color;\n document.body.appendChild(div);\n var computedColor = window.getComputedStyle(div).backgroundColor;\n document.body.removeChild(div);\n\n /* istanbul ignore if */\n if (!rgbReg.test(computedColor)) {\n return color;\n }\n\n return colorCache[id] = 'rgba(' + extractRgbColor.exec(computedColor)[1] + ', ' + opacity + ')';\n }\n\n var bar = {\n name: 'bar',\n props: {\n ops: Object,\n state: Object,\n hideBar: Boolean,\n otherBarHide: Boolean,\n type: String\n },\n computed: {\n bar: function bar() {\n return scrollMap[this.type];\n },\n barSize: function barSize() {\n return Math.max(this.state.size, this.ops.bar.minSize);\n },\n barRatio: function barRatio() {\n return (1 - this.barSize) / (1 - this.state.size);\n }\n },\n render: function render(h) {\n var _style, _style2, _barStyle;\n\n var vm = this;\n /** Get rgbA format background color */\n var railBackgroundColor = getRgbAColor(vm.ops.rail.background, vm.ops.rail.opacity);\n\n if (!this.touchManager) {\n this.touchManager = new touchManager();\n }\n\n /** Rail Data */\n var railSize = vm.ops.rail.size;\n var endPos = vm.otherBarHide ? 0 : railSize;\n var touchObj = vm.touchManager.getTouchObject();\n var rail = {\n class: '__rail-is-' + vm.type,\n style: (_style = {\n position: 'absolute',\n 'z-index': '1',\n\n borderRadius: vm.ops.rail.specifyBorderRadius || railSize,\n background: railBackgroundColor,\n border: vm.ops.rail.border\n }, defineProperty(_style, vm.bar.opsSize, railSize), defineProperty(_style, vm.bar.posName, vm.ops.rail['gutterOfEnds'] || 0), defineProperty(_style, vm.bar.opposName, vm.ops.rail['gutterOfEnds'] || endPos), defineProperty(_style, vm.bar.sidePosName, vm.ops.rail['gutterOfSide']), _style)\n };\n\n if (touchObj) {\n var _rail$on;\n\n rail.on = (_rail$on = {}, defineProperty(_rail$on, touchObj.touchenter, function () {\n vm.setRailHover();\n }), defineProperty(_rail$on, touchObj.touchleave, function () {\n vm.setRailLeave();\n }), _rail$on);\n }\n\n // left space for scroll button\n var buttonSize = vm.ops.scrollButton.enable ? railSize : 0;\n var barWrapper = {\n class: '__bar-wrap-is-' + vm.type,\n style: (_style2 = {\n position: 'absolute',\n borderRadius: vm.ops.rail.specifyBorderRadius || railSize\n }, defineProperty(_style2, vm.bar.posName, buttonSize), defineProperty(_style2, vm.bar.opposName, buttonSize), _style2),\n on: {}\n };\n\n var scrollDistance = vm.state.posValue * vm.state.size;\n var pos = scrollDistance * vm.barRatio / vm.barSize;\n var opacity = vm.state.opacity;\n var parent = getRealParent(this);\n\n // set class hook\n parent.setClassHook(this.type == 'vertical' ? 'vBarVisible' : 'hBarVisible', !!opacity);\n\n /** Scrollbar style */\n var barStyle = (_barStyle = {\n cursor: 'pointer',\n position: 'absolute',\n margin: 'auto',\n transition: 'opacity 0.5s',\n 'user-select': 'none',\n 'border-radius': 'inherit'\n\n }, defineProperty(_barStyle, vm.bar.size, vm.barSize * 100 + '%'), defineProperty(_barStyle, 'background', vm.ops.bar.background), defineProperty(_barStyle, vm.bar.opsSize, vm.ops.bar.size), defineProperty(_barStyle, 'opacity', opacity), defineProperty(_barStyle, 'transform', 'translate' + scrollMap[vm.type].axis + '(' + pos + '%)'), _barStyle);\n var bar = {\n style: barStyle,\n class: '__bar-is-' + vm.type,\n ref: 'thumb',\n on: {}\n };\n\n if (vm.type == 'vertical') {\n barWrapper.style.width = '100%';\n // Let bar to be on the center.\n bar.style.left = 0;\n bar.style.right = 0;\n } else {\n barWrapper.style.height = '100%';\n bar.style.top = 0;\n bar.style.bottom = 0;\n }\n\n /* istanbul ignore next */\n {\n var _touchObj = this.touchManager.getTouchObject();\n bar.on[_touchObj.touchstart] = this.createBarEvent();\n barWrapper.on[_touchObj.touchstart] = this.createTrackEvent();\n }\n\n return h(\n 'div',\n rail,\n [this.createScrollbarButton(h, 'start'), this.hideBar ? null : h(\n 'div',\n barWrapper,\n [h('div', bar)]\n ), this.createScrollbarButton(h, 'end')]\n );\n },\n data: function data() {\n return {\n isBarDragging: false\n };\n },\n\n methods: {\n setRailHover: function setRailHover() {\n var parent = getRealParent(this);\n var state = parent.vuescroll.state;\n\n if (!state.isRailHover) {\n state.isRailHover = true;\n parent.showBar();\n }\n },\n setRailLeave: function setRailLeave() {\n var parent = getRealParent(this);\n var state = parent.vuescroll.state;\n\n state.isRailHover = false;\n parent.hideBar();\n },\n setBarDrag: function setBarDrag(val) /* istanbul ignore next */{\n this.$emit('setBarDrag', this.isBarDragging = val);\n\n var parent = getRealParent(this);\n // set class hook\n parent.setClassHook(this.type == 'vertical' ? 'vBarDragging' : 'hBarDragging', !!val);\n },\n createBarEvent: function createBarEvent() {\n var ctx = this;\n\n var parent = getRealParent(ctx);\n var touchObj = ctx.touchManager.getTouchObject();\n\n function mousedown(e) /* istanbul ignore next */{\n var event = ctx.touchManager.getEventObject(e);\n if (!event) return;\n\n e.stopImmediatePropagation();\n e.preventDefault();\n event = event[0];\n\n document.onselectstart = function () {\n return false;\n };\n ctx.axisStartPos = event[ctx.bar.client] - ctx.$refs['thumb'].getBoundingClientRect()[ctx.bar.posName];\n\n // Tell parent that the mouse has been down.\n ctx.setBarDrag(true);\n eventCenter(document, touchObj.touchmove, mousemove);\n eventCenter(document, touchObj.touchend, mouseup);\n }\n\n function mousemove(e) /* istanbul ignore next */{\n if (!ctx.axisStartPos) {\n return;\n }\n\n var event = ctx.touchManager.getEventObject(e);\n if (!event) return;\n\n event = event[0];\n\n var thubmParent = ctx.$refs.thumb.parentNode;\n\n var delta = event[ctx.bar.client] - thubmParent.getBoundingClientRect()[ctx.bar.posName];\n delta = delta / ctx.barRatio;\n\n var percent = (delta - ctx.axisStartPos) / thubmParent[ctx.bar.offset];\n parent.scrollTo(defineProperty({}, ctx.bar.axis.toLowerCase(), parent.scrollPanelElm[ctx.bar.scrollSize] * percent), false);\n }\n\n function mouseup() /* istanbul ignore next */{\n ctx.setBarDrag(false);\n parent.hideBar();\n\n document.onselectstart = null;\n ctx.axisStartPos = 0;\n\n eventCenter(document, touchObj.touchmove, mousemove, false, 'off');\n eventCenter(document, touchObj.touchend, mouseup, false, 'off');\n }\n\n return mousedown;\n },\n createTrackEvent: function createTrackEvent() {\n var ctx = this;\n\n return function handleClickTrack(e) {\n var parent = getRealParent(ctx);\n\n var _ctx$bar = ctx.bar,\n client = _ctx$bar.client,\n offset = _ctx$bar.offset,\n posName = _ctx$bar.posName,\n axis = _ctx$bar.axis;\n\n var thumb = ctx.$refs['thumb'];\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n /* istanbul ignore if */\n if (!thumb) return;\n\n var barOffset = thumb[offset];\n var event = ctx.touchManager.getEventObject(e)[0];\n\n var percent = (event[client] - e.currentTarget.getBoundingClientRect()[posName] - barOffset / 2) / (e.currentTarget[offset] - barOffset);\n\n parent.scrollTo(defineProperty({}, axis.toLowerCase(), percent * 100 + '%'));\n };\n },\n\n\n // Scrollbuton relative things...\n createScrollbarButton: function createScrollbarButton(h, type /* start or end */) {\n var _style3;\n\n var barContext = this;\n\n if (!barContext.ops.scrollButton.enable) {\n return null;\n }\n\n var size = barContext.ops.rail.size;\n var _barContext$ops$scrol = barContext.ops.scrollButton,\n opacity = _barContext$ops$scrol.opacity,\n background = _barContext$ops$scrol.background;\n\n var borderColor = getRgbAColor(background, opacity);\n\n var wrapperProps = {\n class: ['__bar-button', '__bar-button-is-' + barContext.type + '-' + type],\n style: (_style3 = {}, defineProperty(_style3, barContext.bar.scrollButton[type], 0), defineProperty(_style3, 'width', size), defineProperty(_style3, 'height', size), defineProperty(_style3, 'position', 'absolute'), defineProperty(_style3, 'cursor', 'pointer'), defineProperty(_style3, 'display', 'table'), _style3),\n ref: type\n };\n\n var innerProps = {\n class: '__bar-button-inner',\n style: {\n border: 'calc(' + size + ' / 2.5) solid transparent',\n width: '0',\n height: '0',\n margin: 'auto',\n position: 'absolute',\n top: '0',\n bottom: '0',\n right: '0',\n left: '0'\n },\n on: {}\n };\n\n if (barContext.type == 'vertical') {\n if (type == 'start') {\n innerProps.style['border-bottom-color'] = borderColor;\n innerProps.style['transform'] = 'translateY(-25%)';\n } else {\n innerProps.style['border-top-color'] = borderColor;\n innerProps.style['transform'] = 'translateY(25%)';\n }\n } else {\n if (type == 'start') {\n innerProps.style['border-right-color'] = borderColor;\n innerProps.style['transform'] = 'translateX(-25%)';\n } else {\n innerProps.style['border-left-color'] = borderColor;\n innerProps.style['transform'] = 'translateX(25%)';\n }\n }\n\n /* istanbul ignore next */\n {\n var touchObj = this.touchManager.getTouchObject();\n innerProps.on[touchObj.touchstart] = this.createScrollButtonEvent(type, touchObj);\n }\n\n return h(\n 'div',\n wrapperProps,\n [h('div', innerProps)]\n );\n },\n createScrollButtonEvent: function createScrollButtonEvent(type, touchObj) {\n var ctx = this;\n var parent = getRealParent(ctx);\n\n var _ctx$ops$scrollButton = ctx.ops.scrollButton,\n step = _ctx$ops$scrollButton.step,\n mousedownStep = _ctx$ops$scrollButton.mousedownStep;\n\n\n var stepWithDirection = type == 'start' ? -step : step;\n var mousedownStepWithDirection = type == 'start' ? -mousedownStep : mousedownStep;\n var ref = requestAnimationFrame(window);\n\n // bar props: type\n var barType = ctx.type;\n\n var isMouseDown = false;\n var isMouseout = true;\n var timeoutId = void 0;\n\n function start(e) {\n /* istanbul ignore if */\n\n if (3 == e.which) {\n return;\n }\n\n // set class hook\n parent.setClassHook('cliking' + barType + type + 'Button', true);\n\n e.stopImmediatePropagation();\n e.preventDefault();\n\n isMouseout = false;\n\n parent.scrollBy(defineProperty({}, 'd' + ctx.bar.axis.toLowerCase(), stepWithDirection));\n\n eventCenter(document, touchObj.touchend, endPress, false);\n\n if (touchObj.touchstart == 'mousedown') {\n var elm = ctx.$refs[type];\n eventCenter(elm, 'mouseenter', enter, false);\n eventCenter(elm, 'mouseleave', leave, false);\n }\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () /* istanbul ignore next */{\n isMouseDown = true;\n ref(pressing, window);\n }, 500);\n }\n\n function pressing() /* istanbul ignore next */{\n if (isMouseDown && !isMouseout) {\n parent.scrollBy(defineProperty({}, 'd' + ctx.bar.axis.toLowerCase(), mousedownStepWithDirection), false);\n ref(pressing, window);\n }\n }\n\n function endPress() {\n clearTimeout(timeoutId);\n isMouseDown = false;\n eventCenter(document, touchObj.touchend, endPress, false, 'off');\n\n if (touchObj.touchstart == 'mousedown') {\n var elm = ctx.$refs[type];\n eventCenter(elm, 'mouseenter', enter, false, 'off');\n eventCenter(elm, 'mouseleave', leave, false, 'off');\n }\n\n parent.setClassHook('cliking' + barType + type + 'Button', false);\n }\n\n function enter() /* istanbul ignore next */{\n isMouseout = false;\n pressing();\n }\n\n function leave() /* istanbul ignore next */{\n isMouseout = true;\n }\n\n return start;\n }\n }\n };\n\n function getBarData(vm, type) {\n var axis = scrollMap[type].axis;\n /** type.charAt(0) = vBar/hBar */\n var barType = type.charAt(0) + 'Bar';\n\n var hideBar = !vm.bar[barType].state.size || !vm.mergedOptions.scrollPanel['scrolling' + axis] || vm.refreshLoad && type !== 'vertical' || vm.mergedOptions.bar.disable;\n\n var keepShowRail = vm.mergedOptions.rail.keepShow;\n\n if (hideBar && !keepShowRail) {\n return null;\n }\n\n return {\n hideBar: hideBar,\n props: {\n type: type,\n ops: {\n bar: vm.mergedOptions.bar,\n rail: vm.mergedOptions.rail,\n scrollButton: vm.mergedOptions.scrollButton\n },\n state: vm.bar[barType].state,\n hideBar: hideBar\n },\n on: {\n setBarDrag: vm.setBarDrag\n },\n ref: type + 'Bar',\n key: type\n };\n }\n\n /**\r\n * create bars\r\n *\r\n * @param {any} size\r\n * @param {any} type\r\n */\n function createBar(h, vm) {\n var verticalBarProps = getBarData(vm, 'vertical');\n var horizontalBarProps = getBarData(vm, 'horizontal');\n\n // set class hooks\n vm.setClassHook('hasVBar', !!(verticalBarProps && !verticalBarProps.hideBar));\n vm.setClassHook('hasHBar', !!(horizontalBarProps && !horizontalBarProps.hideBar));\n\n return [verticalBarProps ? h('bar', _extends({}, verticalBarProps, {\n props: _extends({ otherBarHide: !horizontalBarProps }, verticalBarProps.props)\n })) : null, horizontalBarProps ? h('bar', _extends({}, horizontalBarProps, {\n props: _extends({ otherBarHide: !verticalBarProps }, horizontalBarProps.props)\n })) : null];\n }\n\n /**\r\n * This is like a HOC, It extracts the common parts of the\r\n * native-mode, slide-mode and mix-mode.\r\n * Each mode must implement the following methods:\r\n * 1. refreshInternalStatus : use to refresh the component\r\n * 2. destroy : Destroy some registryed events before component destroy.\r\n * 3. updateBarStateAndEmitEvent: use to update bar states and emit events.\r\n */\n\n var createComponent = function createComponent(_ref) {\n var _render = _ref.render,\n components = _ref.components,\n mixins = _ref.mixins;\n return {\n name: 'vueScroll',\n props: {\n ops: { type: Object }\n },\n components: components,\n mixins: [api].concat(toConsumableArray([].concat(mixins))),\n created: function created() {\n var _this = this;\n\n /**\r\n * Begin to merge options\r\n */\n\n var _gfc = mergeObject(this.$vuescrollConfig || {}, {});\n var ops = mergeObject(baseConfig, _gfc);\n\n this.$options.propsData.ops = this.$options.propsData.ops || {};\n Object.keys(this.$options.propsData.ops).forEach(function (key) {\n {\n defineReactive(_this.mergedOptions, key, _this.$options.propsData.ops);\n }\n });\n // from ops to mergedOptions\n mergeObject(ops, this.mergedOptions);\n\n this._isVuescrollRoot = true;\n this.renderError = validateOps(this.mergedOptions);\n },\n render: function render(h) {\n var vm = this;\n if (vm.renderError) {\n return h('div', [[vm.$slots['default']]]);\n }\n\n if (!vm.touchManager) vm.touchManager = new touchManager();\n\n // vuescroll data\n var data = {\n style: {\n height: vm.vuescroll.state.height,\n width: vm.vuescroll.state.width,\n padding: 0,\n position: 'relative',\n overflow: 'hidden'\n },\n class: _extends({ __vuescroll: true }, vm.classHooks)\n };\n\n var touchObj = vm.touchManager.getTouchObject();\n if (touchObj) {\n var _data$on;\n\n data.on = (_data$on = {}, defineProperty(_data$on, touchObj.touchenter, function () {\n vm.vuescroll.state.pointerLeave = false;\n vm.updateBarStateAndEmitEvent();\n\n vm.setClassHook('mouseEnter', true);\n }), defineProperty(_data$on, touchObj.touchleave, function () {\n vm.vuescroll.state.pointerLeave = true;\n vm.hideBar();\n\n vm.setClassHook('mouseEnter', false);\n }), defineProperty(_data$on, touchObj.touchmove, function () /* istanbul ignore next */{\n vm.vuescroll.state.pointerLeave = false;\n vm.updateBarStateAndEmitEvent();\n }), _data$on);\n }\n\n var ch = [_render(h, vm)].concat(toConsumableArray(createBar(h, vm)));\n\n var _customContainer = this.$slots['scroll-container'];\n if (_customContainer) {\n return insertChildrenIntoSlot(h, _customContainer, ch, data);\n }\n\n return h(\n 'div',\n data,\n [ch]\n );\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (!this.renderError) {\n this.initVariables();\n this.initWatchOpsChange();\n // Call external merged Api\n this.refreshInternalStatus();\n\n this.updatedCbs.push(function () {\n _this2.scrollToAnchor();\n // need to reflow to deal with the\n // latest thing.\n _this2.updateBarStateAndEmitEvent();\n });\n }\n },\n updated: function updated() {\n var _this3 = this;\n\n this.updatedCbs.forEach(function (cb) {\n cb.call(_this3);\n });\n // Clear\n this.updatedCbs = [];\n },\n beforeDestroy: function beforeDestroy() {\n if (this.destroy) {\n this.destroy();\n }\n },\n\n\n /** ------------------------------- Computed ----------------------------- */\n computed: {\n scrollPanelElm: function scrollPanelElm() {\n return this.$refs['scrollPanel']._isVue ? this.$refs['scrollPanel'].$el : this.$refs['scrollPanel'];\n }\n },\n data: function data() {\n return {\n vuescroll: {\n state: {\n isDragging: false,\n pointerLeave: true,\n isRailHover: false,\n /** Default sizeStrategies */\n height: '100%',\n width: '100%',\n // current size strategy\n currentSizeStrategy: 'percent',\n currentScrollState: null,\n currentScrollInfo: null\n }\n },\n bar: {\n vBar: {\n state: {\n posValue: 0,\n size: 0,\n opacity: 0\n }\n },\n hBar: {\n state: {\n posValue: 0,\n size: 0,\n opacity: 0\n }\n }\n },\n mergedOptions: {\n vuescroll: {},\n scrollPanel: {},\n scrollContent: {},\n rail: {},\n bar: {}\n },\n updatedCbs: [],\n renderError: false,\n\n classHooks: {\n hasVBar: false,\n hasHBar: false,\n\n vBarVisible: false,\n hBarVisible: false,\n\n vBarDragging: false,\n hBarDragging: false,\n\n clikingVerticalStartButton: false,\n clikingVerticalEndButton: false,\n clikingHorizontalStartButton: false,\n clikingHorizontalEndButton: false,\n\n mouseEnter: false\n }\n };\n },\n\n /** ------------------------------- Methods -------------------------------- */\n methods: {\n /** ------------------------ Handlers --------------------------- */\n\n scrollingComplete: function scrollingComplete() {\n this.updateBarStateAndEmitEvent('handle-scroll-complete');\n },\n setBarDrag: function setBarDrag(val) {\n /* istanbul ignore next */\n this.vuescroll.state.isDragging = val;\n },\n setClassHook: function setClassHook(name, value) {\n this.classHooks[name] = value;\n },\n\n\n /** ------------------------ Some Helpers --------------------------- */\n\n /*\r\n * To have a good ux, instead of hiding bar immediately, we hide bar\r\n * after some seconds by using this simple debounce-hidebar method.\r\n */\n showAndDefferedHideBar: function showAndDefferedHideBar(forceHideBar) {\n var _this4 = this;\n\n this.showBar();\n\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = 0;\n }\n\n this.timeoutId = setTimeout(function () {\n _this4.timeoutId = 0;\n _this4.hideBar(forceHideBar);\n }, this.mergedOptions.bar.showDelay);\n },\n showBar: function showBar() {\n var opacity = this.mergedOptions.bar.opacity;\n this.bar.vBar.state.opacity = opacity;\n this.bar.hBar.state.opacity = opacity;\n },\n hideBar: function hideBar(forceHideBar) {\n var _vuescroll$state = this.vuescroll.state,\n isDragging = _vuescroll$state.isDragging,\n isRailHover = _vuescroll$state.isRailHover;\n /* istanbul ignore next */\n\n if (isDragging || isRailHover) {\n return;\n }\n\n if (forceHideBar && !this.mergedOptions.bar.keepShow) {\n this.bar.hBar.state.opacity = 0;\n this.bar.vBar.state.opacity = 0;\n }\n\n // add isDragging condition\n // to prevent from hiding bar while dragging the bar\n if (!this.mergedOptions.bar.keepShow && !this.vuescroll.state.isDragging) {\n this.bar.vBar.state.opacity = 0;\n this.bar.hBar.state.opacity = 0;\n }\n },\n useNumbericSize: function useNumbericSize() {\n this.vuescroll.state.currentSizeStrategy = 'number';\n var _mergedOptions$scroll = this.mergedOptions.scrollPanel,\n maxHeight = _mergedOptions$scroll.maxHeight,\n maxWidth = _mergedOptions$scroll.maxWidth;\n var _$el$parentNode = this.$el.parentNode,\n parentClientHeight = _$el$parentNode.clientHeight,\n parentClientWidth = _$el$parentNode.clientWidth;\n var _scrollPanelElm = this.scrollPanelElm,\n scrollHeight = _scrollPanelElm.scrollHeight,\n scrollWidth = _scrollPanelElm.scrollWidth;\n\n var width = void 0;\n var height = void 0;\n\n if (maxHeight || maxWidth) {\n height = scrollHeight <= maxHeight ? undefined : maxHeight;\n width = scrollWidth <= maxWidth ? undefined : maxWidth;\n } else {\n height = parentClientHeight;\n width = parentClientWidth;\n }\n\n this.vuescroll.state.height = height ? height + 'px' : undefined;\n this.vuescroll.state.width = width ? width + 'px' : undefined;\n },\n usePercentSize: function usePercentSize() {\n this.vuescroll.state.currentSizeStrategy = 'percent';\n\n this.vuescroll.state.height = '100%';\n this.vuescroll.state.width = '100%';\n },\n\n // Set its size to be equal to its parentNode\n setVsSize: function setVsSize() {\n var sizeStrategy = this.mergedOptions.vuescroll.sizeStrategy;\n var _mergedOptions$scroll2 = this.mergedOptions.scrollPanel,\n maxHeight = _mergedOptions$scroll2.maxHeight,\n maxWidth = _mergedOptions$scroll2.maxWidth;\n var _scrollPanelElm2 = this.scrollPanelElm,\n clientHeight = _scrollPanelElm2.clientHeight,\n clientWidth = _scrollPanelElm2.clientWidth;\n\n if (sizeStrategy == 'number' || maxHeight && clientHeight > maxHeight || maxWidth && clientWidth > maxWidth) {\n this.useNumbericSize();\n } else if (sizeStrategy == 'percent' && clientHeight != maxHeight && clientWidth != maxWidth) {\n this.usePercentSize();\n }\n },\n\n\n /** ------------------------ Init --------------------------- */\n initWatchOpsChange: function initWatchOpsChange() {\n var _this5 = this;\n\n var watchOpts = {\n deep: true,\n sync: true\n };\n this.$watch('mergedOptions', function () {\n setTimeout(function () {\n if (_this5.isSmallChangeThisTick) {\n _this5.isSmallChangeThisTick = false;\n _this5.updateBarStateAndEmitEvent('options-change');\n return;\n }\n _this5.refreshInternalStatus();\n }, 0);\n }, watchOpts);\n\n /**\r\n * We also watch `small` changes, and when small changes happen, we send\r\n * a signal to vuescroll, to tell it:\r\n * 1. we don't need to registry resize\r\n * 2. we don't need to registry scroller.\r\n */\n smallChangeArray.forEach(function (opts) {\n _this5.$watch(opts, function () {\n _this5.isSmallChangeThisTick = true;\n }, watchOpts);\n });\n },\n\n // scrollTo hash-anchor while mounted component have mounted.\n scrollToAnchor: function scrollToAnchor() /* istanbul ignore next */{\n var validateHashSelector = function validateHashSelector(hash) {\n return (/^#[a-zA-Z_]\\d*$/.test(hash)\n );\n };\n\n var hash = window.location.hash;\n if (!hash || (hash = hash.slice(hash.lastIndexOf('#'))) && !validateHashSelector(hash)) {\n return;\n }\n\n var elm = document.querySelector(hash);\n if (!isChildInParent(elm, this.$el) || this.mergedOptions.scrollPanel.initialScrollY || this.mergedOptions.scrollPanel.initialScrollX) {\n return;\n }\n\n this.scrollIntoView(elm);\n }\n\n /** ------------------------ Registry Resize --------------------------- */\n\n }\n };\n };\n\n // begin importing\n\n var scrollPanel = {\n name: 'scrollPanel',\n props: { ops: { type: Object, required: true } },\n methods: {\n // trigger scrollPanel options initialScrollX,\n // initialScrollY\n updateInitialScroll: function updateInitialScroll() {\n var x = 0;\n var y = 0;\n\n var parent = getRealParent(this);\n\n if (this.ops.initialScrollX) {\n x = this.ops.initialScrollX;\n }\n if (this.ops.initialScrollY) {\n y = this.ops.initialScrollY;\n }\n if (x || y) {\n parent.scrollTo({ x: x, y: y });\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n setTimeout(function () {\n if (!_this._isDestroyed) {\n _this.updateInitialScroll();\n }\n }, 0);\n },\n render: function render(h) {\n // eslint-disable-line\n var data = {\n class: ['__panel'],\n style: {\n position: 'relative',\n boxSizing: 'border-box'\n }\n };\n\n var parent = getRealParent(this);\n\n var _customPanel = parent.$slots['scroll-panel'];\n if (_customPanel) {\n return insertChildrenIntoSlot(h, _customPanel, this.$slots.default, data);\n }\n\n return h(\n 'div',\n data,\n [[this.$slots.default]]\n );\n }\n };\n\n /**\r\n * Init following things\r\n * 1. Component\r\n * 2. Render\r\n * 3. Config\r\n */\n function _install(core, render) {\n var _components;\n\n var extraConfigs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var extraValidators = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var components = (_components = {}, defineProperty(_components, scrollPanel.name, scrollPanel), defineProperty(_components, bar.name, bar), _components);\n\n var opts = {};\n opts.components = components;\n opts.render = render;\n opts.mixins = core;\n\n var comp = createComponent(opts);\n\n // Init Config\n extendOpts(extraConfigs, extraValidators);\n\n return comp;\n }\n\n /**\r\n * Get the children of parent those are in viewport\r\n */\n function getCurrentViewportDom(parent, container) {\n var children = parent.children;\n var domFragment = [];\n\n var isCurrentview = function isCurrentview(dom) {\n var _dom$getBoundingClien = dom.getBoundingClientRect(),\n left = _dom$getBoundingClien.left,\n top = _dom$getBoundingClien.top,\n width = _dom$getBoundingClien.width,\n height = _dom$getBoundingClien.height;\n\n var _container$getBoundin = container.getBoundingClientRect(),\n parentLeft = _container$getBoundin.left,\n parentTop = _container$getBoundin.top,\n parentHeight = _container$getBoundin.height,\n parentWidth = _container$getBoundin.width;\n\n if (left - parentLeft + width > 0 && left - parentLeft < parentWidth && top - parentTop + height > 0 && top - parentTop < parentHeight) {\n return true;\n }\n return false;\n };\n\n for (var i = 0; i < children.length; i++) {\n var dom = children.item(i);\n if (isCurrentview(dom) && !dom.isResizeElm) {\n domFragment.push(dom);\n }\n }\n return domFragment;\n }\n\n /**\r\n * Compatible to scroller's animation function\r\n */\n function createEasingFunction(easing, easingPattern) {\n return function (time) {\n return easingPattern(easing, time);\n };\n }\n\n /**\r\n * Calculate the easing pattern\r\n * @link https://github.com/cferdinandi/smooth-scroll/blob/master/src/js/smooth-scroll.js\r\n * modified by wangyi7099\r\n * @param {String} type Easing pattern\r\n * @param {Number} time Time animation should take to complete\r\n * @returns {Number}\r\n */\n function easingPattern(easing, time) {\n var pattern = null;\n /* istanbul ignore next */\n {\n // Default Easing Patterns\n if (easing === 'easeInQuad') pattern = time * time; // accelerating from zero velocity\n if (easing === 'easeOutQuad') pattern = time * (2 - time); // decelerating to zero velocity\n if (easing === 'easeInOutQuad') pattern = time < 0.5 ? 2 * time * time : -1 + (4 - 2 * time) * time; // acceleration until halfway, then deceleration\n if (easing === 'easeInCubic') pattern = time * time * time; // accelerating from zero velocity\n if (easing === 'easeOutCubic') pattern = --time * time * time + 1; // decelerating to zero velocity\n if (easing === 'easeInOutCubic') pattern = time < 0.5 ? 4 * time * time * time : (time - 1) * (2 * time - 2) * (2 * time - 2) + 1; // acceleration until halfway, then deceleration\n if (easing === 'easeInQuart') pattern = time * time * time * time; // accelerating from zero velocity\n if (easing === 'easeOutQuart') pattern = 1 - --time * time * time * time; // decelerating to zero velocity\n if (easing === 'easeInOutQuart') pattern = time < 0.5 ? 8 * time * time * time * time : 1 - 8 * --time * time * time * time; // acceleration until halfway, then deceleration\n if (easing === 'easeInQuint') pattern = time * time * time * time * time; // accelerating from zero velocity\n if (easing === 'easeOutQuint') pattern = 1 + --time * time * time * time * time; // decelerating to zero velocity\n if (easing === 'easeInOutQuint') pattern = time < 0.5 ? 16 * time * time * time * time * time : 1 + 16 * --time * time * time * time * time; // acceleration until halfway, then deceleration\n }\n return pattern || time; // no easing, no acceleration\n }\n\n function noop() {\n return true;\n }\n\n /* istanbul ignore next */\n var now = Date.now || function () {\n return new Date().getTime();\n };\n\n var ScrollControl = function () {\n function ScrollControl() {\n classCallCheck(this, ScrollControl);\n\n this.init();\n\n this.isRunning = false;\n }\n\n createClass(ScrollControl, [{\n key: 'pause',\n value: function pause() {\n /* istanbul ignore if */\n if (!this.isRunning) return;\n\n this.isPaused = true;\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.isStopped = true;\n }\n }, {\n key: 'continue',\n value: function _continue() {\n /* istanbul ignore if */\n if (!this.isPaused) return;\n\n this.isPaused = false;\n this.ts = now() - this.percent * this.spd;\n this.execScroll();\n }\n }, {\n key: 'startScroll',\n value: function startScroll(st, ed, spd) {\n var stepCb = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var completeCb = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : noop;\n var vertifyCb = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : noop;\n var easingMethod = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : noop;\n\n var df = ed - st;\n var dir = df > 0 ? -1 : 1;\n var nt = now();\n\n if (!this.isRunning) {\n this.init();\n }\n\n if (dir != this.dir || nt - this.ts > 200) {\n this.ts = nt;\n\n this.dir = dir;\n this.st = st;\n this.ed = ed;\n this.df = df;\n } /* istanbul ignore next */else {\n this.df += df;\n }\n\n this.spd = spd;\n\n this.completeCb = completeCb;\n this.vertifyCb = vertifyCb;\n this.stepCb = stepCb;\n this.easingMethod = easingMethod;\n\n if (!this.isRunning) this.execScroll();\n }\n }, {\n key: 'execScroll',\n value: function execScroll() {\n var _this = this;\n\n if (!this.df) return;\n\n var percent = this.percent || 0;\n this.percent = 0;\n this.isRunning = true;\n\n var loop = function loop() {\n /* istanbul ignore if */\n if (!_this.isRunning || !_this.vertifyCb(percent) || _this.isStopped) {\n _this.isRunning = false;\n return;\n }\n\n percent = (now() - _this.ts) / _this.spd;\n\n if (_this.isPaused) {\n _this.percent = percent;\n _this.isRunning = false;\n return;\n }\n\n if (percent < 1) {\n var value = _this.st + _this.df * _this.easingMethod(percent);\n _this.stepCb(value);\n _this.ref(loop);\n } else {\n // trigger complete\n _this.stepCb(_this.st + _this.df);\n _this.completeCb();\n\n _this.isRunning = false;\n }\n };\n\n this.ref(loop);\n }\n }, {\n key: 'init',\n value: function init() {\n this.st = 0;\n this.ed = 0;\n this.df = 0;\n this.spd = 0;\n this.ts = 0;\n this.dir = 0;\n this.ref = requestAnimationFrame(window);\n\n this.isPaused = false;\n this.isStopped = false;\n }\n }]);\n return ScrollControl;\n }();\n\n function scrollTo(elm, x, y) {\n var speed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 300;\n var easing = arguments[4];\n var scrollingComplete = arguments[5];\n\n var scrollLeft = void 0,\n scrollTop = void 0,\n scrollHeight = void 0,\n scrollWidth = void 0,\n clientWidth = void 0,\n clientHeight = void 0;\n\n var _elm = elm,\n nodeType = _elm.nodeType;\n\n var scrollX = new ScrollControl();\n var scrollY = new ScrollControl();\n\n if (!nodeType) {\n warn('You must pass a dom for the first param, ' + 'for window scrolling, ' + 'you can pass document as the first param.');\n\n return;\n }\n\n if (nodeType == 9) {\n // document\n elm = elm.scrollingElement;\n }\n\n var _elm2 = elm;\n scrollLeft = _elm2.scrollLeft;\n scrollTop = _elm2.scrollTop;\n scrollHeight = _elm2.scrollHeight;\n scrollWidth = _elm2.scrollWidth;\n clientWidth = _elm2.clientWidth;\n clientHeight = _elm2.clientHeight;\n\n\n if (typeof x === 'undefined') {\n x = scrollLeft;\n } else {\n x = getNumericValue(x, scrollWidth - clientWidth);\n }\n if (typeof y === 'undefined') {\n y = scrollTop;\n } else {\n y = getNumericValue(y, scrollHeight - clientHeight);\n }\n\n var easingMethod = createEasingFunction(easing, easingPattern);\n scrollX.startScroll(scrollLeft, x, speed, function (dx) {\n elm.scrollLeft = dx;\n }, scrollingComplete, undefined, easingMethod);\n scrollY.startScroll(scrollTop, y, speed, function (dy) {\n elm.scrollTop = dy;\n }, scrollingComplete, undefined, easingMethod);\n }\n\n var api$1 = {\n mounted: function mounted() {\n // registry scroll\n this.scrollX = new ScrollControl();\n this.scrollY = new ScrollControl();\n },\n\n methods: {\n nativeStop: function nativeStop() {\n this.scrollX.stop();\n this.scrollY.stop();\n },\n nativePause: function nativePause() {\n this.scrollX.pause();\n this.scrollY.pause();\n },\n nativeContinue: function nativeContinue() {\n this.scrollX.continue();\n this.scrollY.continue();\n },\n nativeScrollTo: function nativeScrollTo(x, y, speed, easing) {\n if (speed === false) ; else if (typeof speed === 'undefined') {\n speed = this.mergedOptions.scrollPanel.speed;\n }\n var elm = this.scrollPanelElm;\n var scrollTop = elm.scrollTop,\n scrollLeft = elm.scrollLeft,\n scrollWidth = elm.scrollWidth,\n clientWidth = elm.clientWidth,\n scrollHeight = elm.scrollHeight,\n clientHeight = elm.clientHeight;\n\n if (typeof x === 'undefined') {\n x = scrollLeft;\n } else {\n x = getNumericValue(x, scrollWidth - clientWidth);\n }\n if (typeof y === 'undefined') {\n y = scrollTop;\n } else {\n y = getNumericValue(y, scrollHeight - clientHeight);\n }\n\n if (speed) {\n easing = easing || this.mergedOptions.scrollPanel.easing;\n var easingMethod = createEasingFunction(easing, easingPattern);\n\n if (x != scrollLeft) {\n this.scrollX.startScroll(scrollLeft, x, speed, function (x) {\n elm.scrollLeft = x;\n }, this.scrollingComplete.bind(this), undefined, easingMethod);\n }\n\n if (y != scrollTop) {\n this.scrollY.startScroll(scrollTop, y, speed, function (y) {\n elm.scrollTop = y;\n }, this.scrollingComplete.bind(this), undefined, easingMethod);\n }\n } else {\n elm.scrollTop = y;\n elm.scrollLeft = x;\n }\n },\n getCurrentviewDomNative: function getCurrentviewDomNative() {\n var parent = this.scrollContentElm;\n var domFragment = getCurrentViewportDom(parent, this.$el);\n return domFragment;\n }\n }\n };\n\n function getPanelData(context) {\n // scrollPanel data start\n var data = {\n ref: 'scrollPanel',\n style: {\n height: '100%',\n overflowY: 'scroll',\n overflowX: 'scroll'\n },\n class: [],\n nativeOn: {\n '&scroll': context.handleScroll\n },\n props: {\n ops: context.mergedOptions.scrollPanel\n }\n };\n\n context.scrollYEnable = true;\n context.scrollXEnable = true;\n\n data.nativeOn.DOMMouseScroll = data.nativeOn.mousewheel = context.onMouseWheel;\n\n var _context$mergedOption = context.mergedOptions.scrollPanel,\n scrollingY = _context$mergedOption.scrollingY,\n scrollingX = _context$mergedOption.scrollingX;\n\n\n if (!context.bar.hBar.state.size || !scrollingX) {\n context.scrollXEnable = false;\n data.style.overflowX = 'hidden';\n }\n\n if (!context.bar.vBar.state.size || !scrollingY) {\n context.scrollYEnable = false;\n data.style.overflowY = 'hidden';\n }\n\n var gutter = getGutter();\n /* istanbul ignore if */\n if (!gutter) {\n createHideBarStyle();\n data.class.push('__hidebar');\n if (isIos()) {\n data.style['-webkit-overflow-scrolling'] = 'touch';\n }\n } else {\n // hide system bar by use a negative value px\n // gutter should be 0 when manually disable scrollingX #14\n if (context.bar.vBar.state.size && context.mergedOptions.scrollPanel.scrollingY) {\n if (context.mergedOptions.scrollPanel.verticalNativeBarPos == 'right') {\n data.style.marginRight = '-' + gutter + 'px';\n } /* istanbul ignore next */else {\n data.style.marginLeft = '-' + gutter + 'px';\n }\n }\n if (context.bar.hBar.state.size && context.mergedOptions.scrollPanel.scrollingX) {\n data.style.height = 'calc(100% + ' + gutter + 'px)';\n }\n }\n\n // clear legency styles of slide mode...\n data.style.transformOrigin = '';\n data.style.transform = '';\n\n return data;\n }\n\n /**\r\n * create a scrollPanel\r\n *\r\n * @param {any} size\r\n * @param {any} context\r\n * @returns\r\n */\n function createPanel(h, context) {\n var data = {};\n\n data = getPanelData(context);\n\n return h(\n 'scrollPanel',\n data,\n [getPanelChildren(h, context)]\n );\n }\n\n function getPanelChildren(h, context) {\n var viewStyle = {\n position: 'relative',\n 'box-sizing': 'border-box',\n 'min-width': '100%',\n 'min-height': '100%'\n };\n var data = {\n style: viewStyle,\n ref: 'scrollContent',\n class: '__view'\n };\n var _customContent = context.$slots['scroll-content'];\n\n if (context.mergedOptions.scrollPanel.scrollingX) {\n viewStyle.width = getComplitableStyle('width', 'fit-content');\n } else {\n data.style['width'] = '100%';\n }\n\n if (context.mergedOptions.scrollPanel.padding) {\n data.style.paddingRight = context.mergedOptions.rail.size;\n }\n\n if (_customContent) {\n return insertChildrenIntoSlot(h, _customContent, context.$slots.default, data);\n }\n\n return h(\n 'div',\n data,\n [context.$slots.default]\n );\n }\n\n // detect content size change\n function installResizeDetection(element, callback) {\n return injectObject(element, callback);\n }\n\n function injectObject(element, callback) {\n if (element.hasResized) {\n return;\n }\n\n var OBJECT_STYLE = 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; padding: 0; margin: 0; opacity: 0; z-index: -1000; pointer-events: none;';\n // define a wrap due to ie's zIndex bug\n var objWrap = document.createElement('div');\n objWrap.style.cssText = OBJECT_STYLE;\n var object = document.createElement('object');\n object.style.cssText = OBJECT_STYLE;\n object.type = 'text/html';\n object.tabIndex = -1;\n\n object.onload = function () {\n eventCenter(object.contentDocument.defaultView, 'resize', callback);\n };\n // https://github.com/wnr/element-resize-detector/blob/aafe9f7ea11d1eebdab722c7c5b86634e734b9b8/src/detection-strategy/object.js#L159\n if (!isIE()) {\n object.data = 'about:blank';\n }\n objWrap.isResizeElm = true;\n objWrap.appendChild(object);\n element.appendChild(objWrap);\n if (isIE()) {\n object.data = 'about:blank';\n }\n return function destroy() {\n if (object.contentDocument) {\n eventCenter(object.contentDocument.defaultView, 'resize', callback, 'off');\n }\n element.removeChild(objWrap);\n element.hasResized = false;\n };\n }\n\n /**\r\n * These mixes is exclusive for native mode\r\n */\n\n var update = {\n methods: {\n updateNativeModeBarState: function updateNativeModeBarState() {\n var container = this.scrollPanelElm;\n var isPercent = this.vuescroll.state.currentSizeStrategy == 'percent';\n var _vuescroll$state = this.vuescroll.state,\n width = _vuescroll$state.width,\n height = _vuescroll$state.height;\n\n var clientWidth = isPercent || !width ? container.clientWidth : width.slice(0, -2); // xxxpx ==> xxx\n var clientHeight = isPercent || !height ? container.clientHeight : height.slice(0, -2);\n\n var heightPercentage = clientHeight / container.scrollHeight;\n var widthPercentage = clientWidth / container.scrollWidth;\n\n this.bar.vBar.state.posValue = container.scrollTop * 100 / clientHeight;\n this.bar.hBar.state.posValue = container.scrollLeft * 100 / clientWidth;\n\n this.bar.vBar.state.size = heightPercentage < 1 ? heightPercentage : 0;\n this.bar.hBar.state.size = widthPercentage < 1 ? widthPercentage : 0;\n },\n getNativePosition: function getNativePosition() {\n return {\n scrollTop: this.scrollPanelElm.scrollTop,\n scrollLeft: this.scrollPanelElm.scrollLeft\n };\n },\n css: function css(dom, style) /* istanbul ignore next */{\n return window.getComputedStyle(dom)[style];\n },\n checkScrollable: function checkScrollable(e, deltaX, deltaY) /* istanbul ignore next */{\n var scrollable = false;\n\n // check mouse point scrollable.\n var dom = e.target ? e.target : e;\n while (dom && dom.nodeType == 1 && dom !== this.scrollPanelElm.parentNode && !/^BODY|HTML/.test(dom.nodeName)) {\n var ov = this.css(dom, 'overflow') || '';\n if (/scroll|auto/.test(ov)) {\n var _getScrollProcess = this.getScrollProcess(dom),\n v = _getScrollProcess.v,\n h = _getScrollProcess.h;\n\n var isScrollX = this.css(dom, 'overflowX') !== 'hidden';\n var isScrollY = this.css(dom, 'overflowY') !== 'hidden';\n if (isScrollX && (deltaX < 0 && h > 0 || deltaX > 0 && h < 1) || isScrollY && (deltaY < 0 && v > 0 || deltaY > 0 && v < 1)) {\n scrollable = dom == this.scrollPanelElm;\n break;\n }\n }\n dom = dom.parentNode ? dom.parentNode : false;\n }\n\n return scrollable;\n },\n onMouseWheel: function onMouseWheel(event) /* istanbul ignore next */{\n var _mergedOptions$vuescr = this.mergedOptions.vuescroll,\n isReverse = _mergedOptions$vuescr.wheelDirectionReverse,\n duration = _mergedOptions$vuescr.wheelScrollDuration,\n checkShiftKey = _mergedOptions$vuescr.checkShiftKey,\n locking = _mergedOptions$vuescr.locking,\n deltaPercent = _mergedOptions$vuescr.deltaPercent;\n\n\n var deltaX = void 0;\n var deltaY = void 0;\n if (event.wheelDelta) {\n if (event.deltaY || event.deltaX) {\n deltaX = event.deltaX * deltaPercent;\n deltaY = event.deltaY * deltaPercent;\n if (locking) {\n if (Math.abs(event.deltaX) > Math.abs(event.deltaY)) {\n deltaY = 0;\n } else {\n deltaX = 0;\n }\n }\n } else {\n deltaX = 0;\n deltaY = -1 * event.wheelDelta / 2;\n }\n } else if (event.detail) {\n deltaY = deltaX = event.detail * 16;\n // horizontal scroll\n if (event.axis == 1) {\n deltaY = 0;\n } else if (event.axis == 2) {\n // vertical scroll\n deltaX = 0;\n }\n }\n\n if (checkShiftKey && event.shiftKey) {\n // swap value\n deltaX ^= deltaY;\n deltaY ^= deltaX;\n deltaX ^= deltaY;\n }\n\n if (isReverse) {\n deltaX ^= deltaY;\n deltaY ^= deltaX;\n deltaX ^= deltaY;\n }\n\n if (this.checkScrollable(event, deltaX, deltaY)) {\n event.stopPropagation();\n event.preventDefault();\n this.scrollBy({ dx: deltaX, dy: deltaY }, duration);\n }\n }\n },\n computed: {\n scrollContentElm: function scrollContentElm() {\n return this.$refs['scrollContent']._isVue ? this.$refs['scrollContent'].$el : this.$refs['scrollContent'];\n }\n }\n };\n\n var mixins = [api$1, update];\n\n var core = {\n mixins: mixins,\n methods: {\n destroy: function destroy() {\n /* istanbul ignore next */\n if (this.destroyResize) {\n this.destroyResize();\n }\n },\n getCurrentviewDom: function getCurrentviewDom() {\n return this.getCurrentviewDomNative();\n },\n internalScrollTo: function internalScrollTo(destX, destY, animate, easing) {\n this.nativeScrollTo(destX, destY, animate, easing);\n },\n internalStop: function internalStop() {\n this.nativeStop();\n },\n internalPause: function internalPause() {\n this.nativePause();\n },\n internalContinue: function internalContinue() {\n this.nativeContinue();\n },\n handleScroll: function handleScroll(nativeEvent) {\n this.updateBarStateAndEmitEvent('handle-scroll', nativeEvent);\n },\n updateBarStateAndEmitEvent: function updateBarStateAndEmitEvent(eventType) {\n var nativeEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.updateNativeModeBarState();\n if (eventType) {\n this.emitEvent(eventType, nativeEvent);\n }\n if (this.mergedOptions.bar.onlyShowBarOnScroll) {\n if (eventType == 'handle-scroll' || eventType == 'handle-resize' || eventType == 'refresh-status' || eventType == 'window-resize' || eventType == 'options-change') {\n this.showAndDefferedHideBar(true /* forceHideBar: true */);\n }\n } else {\n this.showAndDefferedHideBar();\n }\n },\n getScrollProcess: function getScrollProcess(elm) {\n var _ref = elm || this.scrollPanelElm,\n scrollHeight = _ref.scrollHeight,\n scrollWidth = _ref.scrollWidth,\n clientHeight = _ref.clientHeight,\n clientWidth = _ref.clientWidth,\n scrollTop = _ref.scrollTop,\n scrollLeft = _ref.scrollLeft;\n\n var v = Math.min(scrollTop / (scrollHeight - clientHeight || 1), 1);\n var h = Math.min(scrollLeft / (scrollWidth - clientWidth || 1), 1);\n\n return {\n v: v,\n h: h\n };\n },\n emitEvent: function emitEvent(eventType) {\n var nativeEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _scrollPanelElm = this.scrollPanelElm,\n scrollTop = _scrollPanelElm.scrollTop,\n scrollLeft = _scrollPanelElm.scrollLeft;\n\n\n var vertical = {\n type: 'vertical'\n };\n var horizontal = {\n type: 'horizontal'\n };\n\n var _getScrollProcess = this.getScrollProcess(),\n v = _getScrollProcess.v,\n h = _getScrollProcess.h;\n\n vertical.process = v;\n horizontal.process = h;\n\n vertical['barSize'] = this.bar.vBar.state.size;\n horizontal['barSize'] = this.bar.hBar.state.size;\n vertical['scrollTop'] = scrollTop;\n horizontal['scrollLeft'] = scrollLeft;\n\n this.$emit(eventType, vertical, horizontal, nativeEvent);\n },\n initVariables: function initVariables() {\n this.$el._isVuescroll = true;\n },\n refreshInternalStatus: function refreshInternalStatus() {\n // 1.set vuescroll height or width according to\n // sizeStrategy\n this.setVsSize();\n // 2. registry resize event\n this.registryResize();\n // 3. update scrollbar's height/width\n this.updateBarStateAndEmitEvent('refresh-status');\n },\n registryResize: function registryResize() {\n var _this = this;\n\n var resizeEnable = this.mergedOptions.vuescroll.detectResize;\n\n /* istanbul ignore next */\n if (this.destroyResize && resizeEnable) {\n return;\n }\n\n if (this.destroyResize) {\n this.destroyResize();\n }\n\n if (!resizeEnable) {\n return;\n }\n\n var contentElm = this.scrollContentElm;\n\n var vm = this;\n var handleWindowResize = function handleWindowResize() /* istanbul ignore next */{\n vm.updateBarStateAndEmitEvent('window-resize');\n };\n var handleDomResize = function handleDomResize() {\n var currentSize = {};\n currentSize['width'] = _this.scrollPanelElm.scrollWidth;\n currentSize['height'] = _this.scrollPanelElm.scrollHeight;\n _this.updateBarStateAndEmitEvent('handle-resize', currentSize);\n\n // Since content sie changes, we should tell parent to set\n // correct size to fit content's size\n _this.setVsSize();\n };\n window.addEventListener('resize', handleWindowResize, false);\n\n var destroyDomResize = installResizeDetection(contentElm, handleDomResize);\n\n var destroyWindowResize = function destroyWindowResize() {\n window.removeEventListener('resize', handleWindowResize, false);\n };\n\n this.destroyResize = function () {\n destroyWindowResize();\n destroyDomResize();\n\n _this.destroyResize = null;\n };\n },\n getPosition: function getPosition() {\n return this.getNativePosition();\n }\n }\n };\n\n var config = {\n vuescroll: {\n wheelScrollDuration: 0,\n wheelDirectionReverse: false,\n checkShiftKey: true,\n deltaPercent: 1\n }\n };\n\n var component = _install(core, createPanel, [config]);\n\n function install(Vue) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n Vue.component(opts.name || component.name, component);\n Vue.prototype.$vuescrollConfig = opts.ops || {};\n }\n\n var Vuescroll = _extends({\n install: install,\n version: '4.18.1',\n refreshAll: refreshAll,\n scrollTo: scrollTo\n }, component);\n\n /* istanbul ignore if */\n if (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(Vuescroll);\n }\n\n return Vuescroll;\n\n})));\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductColor.vue?vue&type=style&index=0&id=142a4656&prod&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductConfigurator.vue?vue&type=style&index=0&id=0b19e2c1&prod&lang=scss\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.isLoading)?_c('div',{class:['product-configurator', { 'editor-open': _vm.editorConfig, muchdata: _vm.editorConfig && _vm.editorConfig.items.length > 10 }]},[_c('div',{staticClass:\"configurator-summary\"},[_vm._l((_vm.groups),function(group,gIndex){return [(group.configurations.length)?_c('div',{key:gIndex,staticClass:\"summary-group\"},[(group.title)?_c('div',{staticClass:\"group-title\"},[_vm._v(_vm._s(group.title))]):_vm._e(),_vm._l((group.configurations),function(config,cIndex){return _c('div',{key:cIndex,staticClass:\"group-item\",attrs:{\"role\":config.items.length > 1 ? 'button' : null},on:{\"click\":function($event){config.items.length > 1 ? _vm.setEditorConfig(config.id) : null}}},[_c('div',{staticClass:\"item-name\"},[_vm._v(_vm._s(config.name))]),(config.item !== null)?[_c(config.component.newSummary,{tag:\"component\",staticClass:\"item-value\",attrs:{\"item\":config.item,\"locale\":_vm.$i18n.locale}})]:_c('div',{staticClass:\"item-value text-warning\"},[_c('lazy-icon',{staticClass:\"mr-1\",attrs:{\"icon\":\"b-exclamation-circle\"}}),_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.tPath}.value.pleaseselect`))+\" \")],1),_c('div',{staticClass:\"item-edit\"},[(config.items.length > 1)?_c('lazy-icon',{attrs:{\"icon\":\"pen\"}}):_vm._e()],1)],2)})],2):_vm._e()]})],2),_c('transition',{attrs:{\"name\":\"editor\"}},[(_vm.editorConfig)?_c('div',{staticClass:\"configurator-editor\"},[_c('div',{staticClass:\"editor-title\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.setEditorConfig()}}},[_c('lazy-icon',{attrs:{\"icon\":\"caret-left\",\"font-scale\":\"0.75\"}}),_vm._v(\" \"+_vm._s(_vm.editorConfig.name))],1)]),_c('div',{staticClass:\"editor-content-wrapper\"},[_c('vue-scroll',{ref:\"scrollbar\",attrs:{\"ops\":_vm.scrollOptions}},[_c('c-product-variant-handler',{staticClass:\"editor-content\",on:{\"isVariantChange\":_vm.isVariantChange}},[_c(_vm.editorConfig.component.newEditor,{tag:\"component\",attrs:{\"items\":_vm.editorConfig.items,\"large-preview\":_vm.editorConfig.largePreview},on:{\"product-configurator:property-change\":(selectedValue) => _vm.propertyChanged(_vm.editorConfig, selectedValue)}}),_c('div',{staticClass:\"content-description\"},[_vm._t(_vm.editorConfig.id)],2)],1)],1)],1)]):_vm._e()])],1):_vm._e(),(_vm.variantConfigurationIsComplete && _vm.selectedVariants.length > 1)?_c('div',{staticClass:\"variant-selector-container mt-5 mb-5\"},[_c('p',[_c('strong',[_vm._v(_vm._s(_vm.$t(`${_vm.tPath}.variant.multipleresults`)))])]),_c('ul',{staticClass:\"variant-selector\"},_vm._l((_vm.selectedVariants),function(variant,vIndex){return _c('li',{key:vIndex,staticClass:\"variant-selector-item position-relative\",on:{\"click\":function($event){$event.preventDefault();return _vm.loadVariant(variant.urlSlug[_vm.$i18n.locale])}}},[_c('a',{staticClass:\"stretched-link\",attrs:{\"href\":variant.urlSlug[_vm.$i18n.locale]}}),_c('img',{attrs:{\"src\":variant.productImageUrl}}),_c('div',[(variant.modell)?[_c('strong',{staticClass:\"modell-title\"},[_vm._v(_vm._s(variant.modell[_vm.$i18n.locale]))]),_c('br')]:_vm._e(),_vm._v(\" \"+_vm._s(variant.titel1[_vm.$i18n.locale])),_c('br'),_vm._v(\" \"+_vm._s(variant.titel2[_vm.$i18n.locale])+\" \"),(variant.urlSlug[_vm.$i18n.locale] === _vm.window.location.pathname.split('/').filter(Boolean).pop())?_c('lazy-icon',{staticClass:\"check-icon\",attrs:{\"icon\":\"b-check-circle-fill\"}}):_vm._e()],2)])}),0)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(_c,_vm){return _c('div',_vm._b({class:['product-text', _vm.data.class, _vm.data.staticClass],style:(_vm.data.style),attrs:{\"id\":_vm.data.id},domProps:{\"innerHTML\":_vm._s(_vm.props.item.name[_vm.props.locale])}},'div',_vm.data.attrs,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NewProductText.vue?vue&type=template&id=699f7924&functional=true\"\nimport script from \"./NewProductText.vue?vue&type=script&lang=js\"\nexport * from \"./NewProductText.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewProductText.vue?vue&type=style&index=0&id=699f7924&prod&lang=scss\"\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 true,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(_c,_vm){return _c('div',_vm._b({class:[\n 'product-color',\n { 'is-compact': _vm.props.compact, 'is-square': _vm.props.item[_vm.props.colorUrlProperty] && _vm.props.item[_vm.props.colorUrlProperty][0] !== '#' },\n _vm.data.class,\n _vm.data.staticClass\n ],style:(_vm.data.style),attrs:{\"id\":_vm.data.id}},'div',_vm.data.attrs,false),[_c('div',{staticClass:\"item-color\",style:({\n 'background-color': _vm.props.item[_vm.props.colorProperty],\n 'background-image':\n _vm.props.item[_vm.props.colorUrlProperty] != null && _vm.props.item[_vm.props.colorUrlProperty][0] !== '#'\n ? `url(${_vm.props.item[_vm.props.colorUrlProperty]})`\n : ''\n })}),_c('div',[_vm._v(_vm._s(_vm.props.item[_vm.props.textProperty][_vm.props.locale]))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductColor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductColor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NewProductColor.vue?vue&type=template&id=142a4656&functional=true\"\nimport script from \"./NewProductColor.vue?vue&type=script&lang=js\"\nexport * from \"./NewProductColor.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewProductColor.vue?vue&type=style&index=0&id=142a4656&prod&lang=scss\"\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 true,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"product-buttongroup product-configurator-editor-text\"},[_c('b-button-group',{class:['buttongroup-group'],attrs:{\"size\":_vm.buttonSize,\"vertical\":_vm.$root.isMobile || _vm.items.length > 1}},_vm._l((_vm.items),function(button,bIndex){return _c('div',{key:`${button.href}_${bIndex}`,staticClass:\"button-container\"},[_c('b-button',{staticClass:\"control\",attrs:{\"variant\":\"outline-control\",\"active\":button.active},on:{\"click\":function($event){return _vm.$emit('product-configurator:property-change', button)}}},[_c('span',{domProps:{\"innerHTML\":_vm._s(button.name[_vm.$i18n.locale])}}),(button.active)?_c('lazy-icon',{staticClass:\"check-icon\",attrs:{\"icon\":\"b-check-circle-fill\"}}):_vm._e()],1),(button && button.variantDescription)?[_c('div',{staticClass:\"mb-0 alert alert-light small\",domProps:{\"innerHTML\":_vm._s(button.variantDescription)}})]:_vm._e()],2)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductConfiguratorEditorText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductConfiguratorEditorText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NewProductConfiguratorEditorText.vue?vue&type=template&id=520cff38\"\nimport script from \"./NewProductConfiguratorEditorText.vue?vue&type=script&lang=js\"\nexport * from \"./NewProductConfiguratorEditorText.vue?vue&type=script&lang=js\"\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 null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"product-configurator-editor-color product-colors is-extended\"},[_c('ul',{staticClass:\"colors-list\"},_vm._l((_vm.colorItems),function(color,cIndex){return _c('li',{key:`${color.value}_${cIndex}`,class:{ active: color.active, 'large-item': _vm.largePreview }},[_c('div',{staticClass:\"list-item\"},[_c('a',{class:['color', { 'inverted-foreground-color': color.hsv && color.hsv.v < 0.5 }],style:({\n 'background-color': color.additionalDisplayData,\n 'background-image': color.additionalDisplayData !== '#' ? `url(${color.additionalDisplayData})` : ''\n }),attrs:{\"href\":\"#\",\"title\":color.name[_vm.$i18n.locale]},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('product-configurator:property-change', color)},\"mouseover\":function($event){return _vm.$emit('color-mouseover', color.mainImage)},\"mouseleave\":function($event){return _vm.$emit('color-mouseleave')}}},[(color.active)?_c('lazy-icon',{staticClass:\"check-icon\",attrs:{\"icon\":\"b-check-circle-fill\"}}):_vm._e()],1),_c('span',{class:['color-name']},[_vm._v(_vm._s(color.name[_vm.$i18n.locale]))])])])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductConfiguratorEditorColor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductConfiguratorEditorColor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NewProductConfiguratorEditorColor.vue?vue&type=template&id=7bc0185a\"\nimport script from \"./NewProductConfiguratorEditorColor.vue?vue&type=script&lang=js\"\nexport * from \"./NewProductConfiguratorEditorColor.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewProductConfiguratorEditorColor.vue?vue&type=style&index=0&id=7bc0185a&prod&lang=scss\"\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 null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductConfigurator.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewProductConfigurator.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NewProductConfigurator.vue?vue&type=template&id=0b19e2c1\"\nimport script from \"./NewProductConfigurator.vue?vue&type=script&lang=js\"\nexport * from \"./NewProductConfigurator.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewProductConfigurator.vue?vue&type=style&index=0&id=0b19e2c1&prod&lang=scss\"\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 null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductColor.vue?vue&type=style&index=0&id=078ec4da&prod&lang=scss\"","// This file is autogenerated. It's used to publish CJS to npm.\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tinycolor = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n var trimLeft = /^\\s+/;\n var trimRight = /\\s+$/;\n function tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n }\n tinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\n // Possible string inputs:\n //\n // \"red\"\n // \"#f00\" or \"f00\"\n // \"#ff0000\" or \"ff0000\"\n // \"#ff000000\" or \"ff000000\"\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n //\n function inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n }\n\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // \n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // \n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n }\n\n // `rgbToHsl`\n // Converts an RGB color value to HSL.\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n // *Returns:* { h, s, l } in [0,1]\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n // *Returns:* { h, s, v } in [0,1]\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n }\n\n // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\n // Assumes r, g, b are contained in the set [0, 255] and\n // a in [0, 1]. Returns a 4 or 8 character rgba hex\n function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n }\n\n // `rgbaToArgbHex`\n // Converts an RGBA color to an ARGB Hex8 string\n // Rarely used, but required for \"toFilter()\"\n function rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // \n\n function _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n function _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n function _greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n function _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n function _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n function _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n // Values outside of this range will be wrapped into this range.\n function _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // \n\n function _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n function polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n }\n function _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n }\n function _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n function _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // false\n // tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\n tinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // Optionally returns Black or White if the most readable color is unreadable.\n // *Example*\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\n tinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n };\n\n // Big List of Colors\n // ------------------\n // \n var names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n };\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = tinycolor.hexNames = flip(names);\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n // \n function isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n }\n\n // Check to see if string passed in is a percentage\n function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n var matchers = function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n }();\n\n // `isValidCSSUnit`\n // Take in a single string / number and check to see if it looks like a CSS unit\n // (see `matchers` above for definition).\n function isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n }\n\n // `stringInputToObject`\n // Permissive string parsing. Take in a number of formats, and output an object\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n function stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n }\n function validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n }\n\n return tinycolor;\n\n}));\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductText.vue?vue&type=style&index=0&id=0d4e8c97&prod&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfiguratorEditorColor.vue?vue&type=style&index=0&id=01765642&prod&lang=scss\"","var render = function render(_c,_vm){return _c('div',_vm._b({class:['product-color', { 'is-compact': _vm.props.compact, 'is-square': _vm.props.item[_vm.props.colorUrlProperty] }, _vm.data.class, _vm.data.staticClass],style:(_vm.data.style),attrs:{\"id\":_vm.data.id}},'div',_vm.data.attrs,false),[_c('div',{staticClass:\"item-color\",style:({ 'background-color': _vm.props.item[_vm.props.colorProperty], 'background-image': _vm.props.item[_vm.props.colorUrlProperty] ? `url(${_vm.props.item[_vm.props.colorUrlProperty]})` : '' })}),_c('div',[_vm._v(_vm._s(_vm.props.item[_vm.props.textProperty]))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductColor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductColor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProductColor.vue?vue&type=template&id=078ec4da&functional=true\"\nimport script from \"./ProductColor.vue?vue&type=script&lang=js\"\nexport * from \"./ProductColor.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProductColor.vue?vue&type=style&index=0&id=078ec4da&prod&lang=scss\"\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 true,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductConfiguratorEditorText.vue?vue&type=style&index=0&id=0cdbc15d&prod&lang=scss\""],"sourceRoot":""}