HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers95/rentman.io/wwwroot/js/site/createPlan.js.map
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./resources/assets/js/components/createPlan.vue","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./resources/assets/js/components/productPopUp.vue?ba91","webpack:///resources/assets/js/components/productPopUp.vue","webpack:///./resources/assets/js/components/productPopUp.vue","webpack:///./resources/assets/js/components/singleProduct.vue?2e92","webpack:///resources/assets/js/components/singleProduct.vue","webpack:///./resources/assets/js/components/singleProduct.vue","webpack:///./resources/assets/js/components/cartProduct.vue?7e23","webpack:///resources/assets/js/components/cartProduct.vue","webpack:///./resources/assets/js/components/cartProduct.vue","webpack:///./resources/assets/js/components/openCloseProducts.vue?2f74","webpack:///resources/assets/js/components/openCloseProducts.vue","webpack:///./resources/assets/js/components/openCloseProducts.vue","webpack:///./resources/assets/js/components/createPlan.vue?3794","webpack:///resources/assets/js/components/createPlan.vue","webpack:///./resources/assets/js/createPlan/app.js","webpack:///./resources/assets/js/createPlan/mixins.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","props","active","type","required","product","mounted","modalHeader","modalThead","computed","features","row","columns","_vm","_c","_self","staticClass","class","on","$event","$emit","_v","ref","_s","translation","levels","length","_l","level","attrs","getCurrencyIcon","getPrice","trans","_e","rIndex","cIndex","components","ProductPopUp","mixins","data","amount","popupOpened","cartState","created","methods","updateCartState","toggleProduct","addProduct","id","removeProduct","setLevel","cartProduct","setAmount","changeAmount","incrementAmount","decrementAmount","openPopup","history","closePopup","productCart","isAddon","isLevels","showCta","isInShoppingCart","price","parentProductIsSelected","primaryProductSelected","requiresPrimary","pricing_product_icon","equipmentSchedulingSelected","requiresEquipmentScheduling","requiresEquipmentSchedulingPro","price_per_warehouse","description","specs","spec","equipmentSchedulingProSelected","includes","domProps","index","displayCorrectCurrency","pricePerWarehouse","pricing","pricing_product_type","containerOpen","toggleContainer","_t","OpenCloseProducts","CartProduct","SingleProduct","watch","productsInCart","powerUsers","updateProducts","changeCurrency","getPriceEachPowerUser","total_euro","total_dollar","getTotalPrice","each_power_user_euro","each_power_user_dollar","changePowerUsersAmount","getProductById","scrollToSummary","behavior","coreProduct","euro_price","dollar_price","selectableProducts","refInFor","hinted_products","hintedProduct","powerUserLimit","createPlanEl","document","querySelector","productData","getAttribute","Error","removeAttribute","primaryProductIds","productIdsRequiredPrimary","productIdsRequiredEquipmentScheduling","productIdsRequiredEquipmentSchedulingPro","removableProductIds","Set","products","values","JSON","parse","forEach","split","hintedProducts","productId","find","undefined","splice","hasParentProduct","parentProduct","push","parseInt","map","filter","has","Vue","mixin","require","el","CreatePlan","translations","window","rentman","currencyEuro","hasAddons","hasAddon","hasPrimaryProduct","hasSchedulingPro","deep","handler","isset","obj","euro","dollar","substr","slugify","str","replace","toLowerCase","from","RegExp","charAt","returnKey","console","warn","keys","resolvedKeyCounter","replaceKeys","log"],"mappings":"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","file":"/js/site/createPlan.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"create-plan\"},[_c('div',{staticClass:\"create-plan__main\"},[_c('div',{staticClass:\"c-switch\"},[_c('input',{staticClass:\"c-switch__input\",attrs:{\"id\":\"switch-create-plan-1\",\"type\":\"checkbox\"},on:{\"change\":_vm.changeCurrency}}),_vm._v(\" \"),_c('label',{staticClass:\"c-switch__label\",attrs:{\"for\":\"switch-create-plan-1\",\"data-checked\":\"EUR\",\"data-unchecked\":\"USD\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"u-margin-top-32 create-plan__core-product\"},[_c('h3',{staticClass:\"create-plan__subtitle\"},[_vm._v(_vm._s(this.$root.coreProduct.translation.name))]),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.displayCorrectCurrency(this.$root.coreProduct.euro_price, this.$root.coreProduct.dollar_price))+\" / \"+_vm._s(_vm.trans('month')))]),_vm._v(\" \"),_c('p',{staticClass:\"create-plan__description u-margin-top-16\"},[_vm._v(_vm._s(this.$root.coreProduct.translation.description))]),_vm._v(\" \"),_c('ul',{staticClass:\"create-plan__checks\"},_vm._l((this.$root.coreProduct.translation.specs),function(spec){return _c('li',[_vm._v(_vm._s(spec))])}),0),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__read-more create-plan__read-more--nm\",on:{\"click\":_vm.openPopup}},[_vm._v(_vm._s(_vm.trans('see_features'))+\" \"),_c('span')])]),_vm._v(\" \"),_c('product-pop-up',{attrs:{\"active\":_vm.popupOpened,\"product\":this.$root.coreProduct},on:{\"close\":_vm.closePopup}}),_vm._v(\" \"),_c('hr'),_vm._v(\" \"),_c('h5',{staticClass:\"create-plan__title\"},[_vm._v(_vm._s(_vm.trans('products')))]),_vm._v(\" \"),_c('h3',{staticClass:\"u-margin-top-32 create-plan__subtitle\"},[_vm._v(_vm._s(_vm.trans('products_subtitle_text')))]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__product-container\"},[_vm._l((this.$root.selectableProducts),function(product){return [_c('single-product',{ref:\"product\",refInFor:true,attrs:{\"product\":product}}),_vm._v(\" \"),(product.hinted_products.length > 0)?_c('open-close-products',{attrs:{\"name\":product.translation.name}},[_vm._l((product.hinted_products),function(hintedProduct){return [_c('single-product',{ref:\"product\",refInFor:true,attrs:{\"product\":hintedProduct}})]})],2):_vm._e()]})],2)],1),_vm._v(\" \"),_c('div',{ref:\"sidebar\",staticClass:\"create-plan__sidebar\"},[_c('div',{staticClass:\"create-plan__heading\"},[_vm._v(\"\\n        \"+_vm._s(_vm.trans('summary'))+\"\\n      \")]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__cart-overview\"},[_c('div',{staticClass:\"create-plan__cart-product\"},[_c('strong',[_vm._v(_vm._s(_vm.trans('rentman_title')))]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__cart-label\"},[_c('span',[_vm._v(_vm._s(_vm.displayCorrectCurrency(_vm.$root.coreProduct.euro_price, _vm.$root.coreProduct.dollar_price)))]),_vm._v(\" / \"+_vm._s(_vm.trans('month'))+\"\\n          \")])]),_vm._v(\" \"),_vm._l((_vm.$root.productsInCart),function(cartState){return [_c('cart-product',{attrs:{\"price-per-warehouse\":_vm.getProductById(cartState.id).price_per_warehouse == 1,\"product\":_vm.getProductById(cartState.id),\"cart-state\":cartState}})]}),_vm._v(\" \"),(!_vm.productsInCart.length > 0)?_c('p',{staticClass:\"create-plan__cart-label\"},[_vm._v(_vm._s(_vm.trans('add_products')))]):_vm._e()],2),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__footer footer-row\"},[_c('div',[_c('strong',[_vm._v(_vm._s(_vm.trans('power_users'))+\"\\n            \"),_c('span',{staticClass:\"c-tooltip c-tooltip--dark-pop-up js-pricing-prevent-click\",attrs:{\"data-tooltip\":_vm.trans('power_user_tooltip')}})]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan--small-label\"},[_vm._v(\" \"+_vm._s(_vm.getPriceEachPowerUser())+\" \"+_vm._s(_vm.trans('power_user'))+\" / \"+_vm._s(_vm.trans('month')))])]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan-product__numbers\",class:{'c-tooltip c-tooltip--element c-tooltip--dark-pop-up c-tooltip--small': !_vm.productsInCart.length > 0},attrs:{\"data-tooltip\":_vm.trans('add_product_first')}},[_c('button',{attrs:{\"disabled\":!_vm.productsInCart.length > 0},on:{\"click\":function($event){_vm.$root.powerUsers++}}},[_vm._v(\"+\")]),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"number\",\"min\":\"1\",\"disabled\":!_vm.productsInCart.length > 0},domProps:{\"value\":_vm.$root.powerUsers},on:{\"change\":_vm.changePowerUsersAmount}}),_vm._v(\" \"),_c('button',{attrs:{\"disabled\":_vm.$root.powerUsers === 1 || !_vm.productsInCart.length > 0},on:{\"click\":function($event){_vm.$root.powerUsers--}}},[_vm._v(\"-\")])])]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__footer footer-row create-plan__footer--no-bt\"},[_c('div',[_c('strong',[_vm._v(_vm._s(_vm.trans('basic_users'))+\"\\n              \"),_c('span',{staticClass:\"c-tooltip c-tooltip--dark-pop-up js-pricing-prevent-click\",attrs:{\"data-tooltip\":_vm.trans('basic_user_tooltip')}})]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan--small-label\"},[_vm._v(_vm._s(_vm.trans('always_free')))])])]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__footer\"},[_c('div',{staticClass:\"footer-subtotal\"},[_c('span',[_vm._v(_vm._s(_vm.trans('platform_fee')))]),_vm._v(\" \"),(this.$root.powerUsers < this.$root.powerUserLimit)?_c('span',[_vm._v(_vm._s(_vm.displayCorrectCurrency(this.$root.coreProduct.euro_price, this.$root.coreProduct.dollar_price)))]):_c('span',[_vm._v(\"--\")])]),_vm._v(\" \"),_c('div',{staticClass:\"footer-subtotal\"},[_c('span',[_vm._v(_vm._s(_vm.$root.powerUsers)+\" \"+_vm._s(_vm.$root.powerUsers === 1 ? _vm.trans('power_user') : _vm.trans('power_users')))]),_vm._v(\" \"),(this.$root.powerUsers < this.$root.powerUserLimit)?_c('span',[_vm._v(_vm._s(_vm.getPriceEachPowerUser(true)))]):_c('span',[_vm._v(\"--\")])]),_vm._v(\" \"),_c('div',{staticClass:\"footer-total\"},[_c('strong',[_vm._v(_vm._s(_vm.trans('total')))]),_vm._v(\" \"),(this.$root.powerUsers < this.$root.powerUserLimit)?_c('span',[_vm._v(_vm._s(_vm.getTotalPrice()))]):_c('span',[_vm._v(_vm._s(_vm.trans('lets_talk')))])]),_vm._v(\" \"),(this.$root.powerUsers >= this.$root.powerUserLimit)?_c('div',{staticClass:\"custom-plan-notice\"},[_c('h4',[_vm._v(_vm._s(_vm.trans('custom_plan')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.trans('custom_plan_sub')))])]):_vm._e(),_vm._v(\" \"),(this.$root.powerUsers < this.$root.powerUserLimit)?_c('a',{staticClass:\"c-button c-button--filled\",attrs:{\"href\":_vm.trans('try_free_link')}},[_c('span',{staticClass:\"c-button__text\"},[_vm._v(_vm._s(_vm.trans('try_free')))])]):_vm._e(),_vm._v(\" \"),_c('a',{staticClass:\"c-button\",class:{'c-button--filled': this.$root.powerUsers >= this.$root.powerUserLimit},attrs:{\"href\":_vm.trans('speak_expert_link')}},[_c('span',{staticClass:\"c-button__text\"},[_vm._v(_vm._s(_vm.trans('speak_expert')))])])])]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__sidebar--mobile\"},[_c('strong',[_vm._v(_vm._s(_vm.trans('total'))+\":  \"+_vm._s(_vm.getTotalPrice(false)))]),_vm._v(\" \"),_c('span',{staticClass:\"c-button c-button--filled\",on:{\"click\":_vm.scrollToSummary}},[_c('span',{staticClass:\"c-button__text\"},[_vm._v(_vm._s(_vm.trans('see_summary')))])])]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__scroll-up\"},[_c('span',{on:{\"click\":_vm.scrollToSummary}},[_vm._v(_vm._s(_vm.trans('price_breakdown')))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */,\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options =\n    typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) {\n    // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n          injectStyles.call(\n            this,\n            (options.functional ? this.parent : this).$root.$options.shadowRoot\n          )\n        }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection(h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","import { render, staticRenderFns } from \"./productPopUp.vue?vue&type=template&id=7a5ddb4d&\"\nimport script from \"./productPopUp.vue?vue&type=script&lang=js&\"\nexport * from \"./productPopUp.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","<template>\n\n  <div class=\"o-modal\" :class=\"{'is-active': active}\">\n    <div class=\"o-modal__shader\" @click=\"$emit('close')\"></div>\n    <div class=\"o-modal__content  js-modal-scroller\">\n      <div class=\"o-modal__header\" ref=\"modalHeader\">\n        <h2 class=\"o-modal__heading\" style=\"\">{{ product.translation.name }}</h2>\n        <button class=\"o-modal__close\" @click=\"$emit('close')\"></button>\n      </div>\n\n      <table class=\"o-modal__table\">\n        <thead class=\"o-modal__thead\" v-if=\"product.levels.length > 0\" ref=\"modalThead\">\n          <tr>\n            <th class=\"o-modal__thead-cell\"></th>\n\n            <th class=\"o-modal__thead-cell\" v-for=\"level in product.levels\">\n              <div class=\"c-package-price\">\n\n                <h3 class=\"c-package-price__title\">{{ level[0] }}</h3>\n\n                <div class=\"c-package-price__amount  c-package-price__symbol\" v-bind:data-currency-symbol=\"getCurrencyIcon()\">\n                  <div class=\"c-package-price__number\">{{ getPrice(level[1],level[2]) }}</div>\n                </div>\n                <div class=\"c-package-price__info\">\n                  <p>\n                    <span>{{trans('per')}}</span>\n                    <span class=\"c-tooltip  c-tooltip--text c-tooltip--dark-pop-up\" v-bind:data-tooltip=\"trans('power_user_tooltip')\">{{trans('power_user')}}</span>\n                    <span>/</span>\n                    <span>{{trans('month')}}</span>\n                  </p>\n<!--                  <p>-->\n<!--                    <span>+</span>-->\n<!--                    <span class=\"c-package-price__base  js-pricing-price  js-pricing-symbol\" data-currency-symbol=\"€\" data-price-eur=\"39\" data-price-usd=\"39\">39</span>-->\n<!--                    <span>base price</span>-->\n<!--                  </p>-->\n                </div>\n\n              </div>\n            </th>\n          </tr>\n        </thead>\n\n        <tbody class=\"o-modal__tbody\" v-if=\"features\">\n        <tr v-for=\"rIndex in features[0].length\" :key=\"rIndex\">\n\n            <td v-if=\"features[2][rIndex - 1] == 1\" v-bind:colspan=\"features.length\">\n              <div class=\"o-modal__table-subheader\">\n                <span>{{ features[0][rIndex - 1] }}</span>\n              </div>\n            </td>\n\n            <template v-else>\n\n              <td class=\"o-modal__tbody-cell\">\n                <div class=\"o-modal__label-column\">\n                  {{ features[0][rIndex - 1] }}\n                  <span v-if=\"features[1][rIndex - 1] != '' && rIndex != 2\" :data-tooltip=\"features[1][rIndex - 1]\"\n                        class=\"c-tooltip  c-tooltip--dark-pop-up c-tooltip--modal\"></span>\n                  <span v-if=\"features[1][rIndex - 1] != '' && rIndex == 2\" :data-tooltip=\"features[1][rIndex - 1]\"\n                        class=\"c-tooltip  c-tooltip--dark-pop-up c-tooltip--modal c-tooltip--modal--bottom\"></span>\n                </div>\n              </td>\n\n              <td class=\"o-modal__tbody-cell\" v-for=\"cIndex in features.length - 3\" :key=\"cIndex\">\n                <div class=\"o-modal__feature-icon\" :class=\"{ 'is-excluded': features[cIndex + 2][rIndex - 1] == 0 }\"></div>\n              </td>\n\n            </template>\n\n          </tr>\n        </tbody>\n\n      </table>\n    </div>\n  </div>\n\n</template>\n\n<script>\nexport default {\n  name: \"productPopUp\",\n  props: {\n    active: {\n      type: Boolean,\n      required: true\n    },\n    product: {\n      type: Object,\n      required: true,\n    }\n  },\n\n  mounted() {\n    // stacked sticky elements, 2nd element has top offset of 1st element's height\n    const { modalHeader, modalThead } = this.$refs;\n    if (modalThead) { modalThead.style.top = `${modalHeader.clientHeight}px` }\n  },\n\n  computed: {\n\n    features() {\n\n      if(this.product.translation.features == '') return null\n      const features = JSON.parse(this.product.translation.features)\n\n      if(!features) return null\n\n      const columns = []\n\n      features.forEach((row) => {\n        row.forEach((column, index) => {\n          if(columns[index] === undefined) columns[index] = []\n          columns[index].push(column)\n        })\n      });\n\n      if(this.product.levels.length <= 1) columns.splice(-2,2)\n      else if(this.product.levels.length === 2) columns.splice(-1, 1)\n\n      return columns;\n    }\n  }\n}\n</script>","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"o-modal\",class:{'is-active': _vm.active}},[_c('div',{staticClass:\"o-modal__shader\",on:{\"click\":function($event){return _vm.$emit('close')}}}),_vm._v(\" \"),_c('div',{staticClass:\"o-modal__content js-modal-scroller\"},[_c('div',{ref:\"modalHeader\",staticClass:\"o-modal__header\"},[_c('h2',{staticClass:\"o-modal__heading\"},[_vm._v(_vm._s(_vm.product.translation.name))]),_vm._v(\" \"),_c('button',{staticClass:\"o-modal__close\",on:{\"click\":function($event){return _vm.$emit('close')}}})]),_vm._v(\" \"),_c('table',{staticClass:\"o-modal__table\"},[(_vm.product.levels.length > 0)?_c('thead',{ref:\"modalThead\",staticClass:\"o-modal__thead\"},[_c('tr',[_c('th',{staticClass:\"o-modal__thead-cell\"}),_vm._v(\" \"),_vm._l((_vm.product.levels),function(level){return _c('th',{staticClass:\"o-modal__thead-cell\"},[_c('div',{staticClass:\"c-package-price\"},[_c('h3',{staticClass:\"c-package-price__title\"},[_vm._v(_vm._s(level[0]))]),_vm._v(\" \"),_c('div',{staticClass:\"c-package-price__amount c-package-price__symbol\",attrs:{\"data-currency-symbol\":_vm.getCurrencyIcon()}},[_c('div',{staticClass:\"c-package-price__number\"},[_vm._v(_vm._s(_vm.getPrice(level[1],level[2])))])]),_vm._v(\" \"),_c('div',{staticClass:\"c-package-price__info\"},[_c('p',[_c('span',[_vm._v(_vm._s(_vm.trans('per')))]),_vm._v(\" \"),_c('span',{staticClass:\"c-tooltip c-tooltip--text c-tooltip--dark-pop-up\",attrs:{\"data-tooltip\":_vm.trans('power_user_tooltip')}},[_vm._v(_vm._s(_vm.trans('power_user')))]),_vm._v(\" \"),_c('span',[_vm._v(\"/\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.trans('month')))])])])])])})],2)]):_vm._e(),_vm._v(\" \"),(_vm.features)?_c('tbody',{staticClass:\"o-modal__tbody\"},_vm._l((_vm.features[0].length),function(rIndex){return _c('tr',{key:rIndex},[(_vm.features[2][rIndex - 1] == 1)?_c('td',{attrs:{\"colspan\":_vm.features.length}},[_c('div',{staticClass:\"o-modal__table-subheader\"},[_c('span',[_vm._v(_vm._s(_vm.features[0][rIndex - 1]))])])]):[_c('td',{staticClass:\"o-modal__tbody-cell\"},[_c('div',{staticClass:\"o-modal__label-column\"},[_vm._v(\"\\n                  \"+_vm._s(_vm.features[0][rIndex - 1])+\"\\n                  \"),(_vm.features[1][rIndex - 1] != '' && rIndex != 2)?_c('span',{staticClass:\"c-tooltip c-tooltip--dark-pop-up c-tooltip--modal\",attrs:{\"data-tooltip\":_vm.features[1][rIndex - 1]}}):_vm._e(),_vm._v(\" \"),(_vm.features[1][rIndex - 1] != '' && rIndex == 2)?_c('span',{staticClass:\"c-tooltip c-tooltip--dark-pop-up c-tooltip--modal c-tooltip--modal--bottom\",attrs:{\"data-tooltip\":_vm.features[1][rIndex - 1]}}):_vm._e()])]),_vm._v(\" \"),_vm._l((_vm.features.length - 3),function(cIndex){return _c('td',{key:cIndex,staticClass:\"o-modal__tbody-cell\"},[_c('div',{staticClass:\"o-modal__feature-icon\",class:{ 'is-excluded': _vm.features[cIndex + 2][rIndex - 1] == 0 }})])})]],2)}),0):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./singleProduct.vue?vue&type=template&id=70f03559&\"\nimport script from \"./singleProduct.vue?vue&type=script&lang=js&\"\nexport * from \"./singleProduct.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","<template>\n  <div class=\"create-plan-product\" :class=\"[isInShoppingCart ? 'create-plan-product__in-cart' : '', !this.$root.primaryProductSelected && product.requiresPrimary ? 'is-disabled' : '' ]\" v-bind:data-icon=\"product.pricing_product_icon\">\n\n    <div class=\"c-announcements__item\" v-if=\"!this.$root.primaryProductSelected && product.requiresPrimary\">\n      <div class=\"c-announcements__message  c-announcements__message--pricing\">\n        {{trans('available_with_equipment_scheduling_or_crew_scheduling')}}\n      </div>\n    </div>\n\n    <div class=\"c-announcements__item\" v-else-if=\"!this.$root.equipmentSchedulingSelected && product.requiresEquipmentScheduling\">\n      <div class=\"c-announcements__message  c-announcements__message--pricing\">\n          {{trans('available_with_equipment_scheduling')}}\n      </div>\n    </div>\n\n    <div class=\"c-announcements__item\" v-else-if=\"!this.$root.equipmentSchedulingSelected && product.requiresEquipmentSchedulingPro\">\n      <div class=\"c-announcements__message  c-announcements__message--pricing\">\n        {{trans('available_with_equipment_scheduling_pro')}}\n      </div>\n    </div>\n\n    <div class=\"create-plan-product__inner\">\n\n\n      <div class=\"create-plan-product__icon\"></div>\n      <div class=\"create-plan-product__meta\">\n\n        <span v-if=\"!isAddon && !isLevels\" class=\"create-plan-product__label\">{{ trans('product') }}</span>\n        <span v-else class=\"create-plan-product__label\">{{ trans('additional_product') }}</span>\n\n        <strong>{{ product.translation.name }}</strong>\n\n        <template v-if=\"product.levels.length === 0\">\n          <p v-if=\"(price !== null)\">{{ price }}\n            <span v-if=\"product.price_per_warehouse === 0\">{{ trans('per_month') }}</span>\n            <span v-if=\"product.price_per_warehouse === 1\">{{ trans('power_user_warehouse_month') }}</span>\n          </p>\n        </template>\n\n        <p v-if=\"product.translation.description !== ''\">{{ product.translation.description }}</p>\n\n        <ul v-if=\"product.specs && product.specs.length > 0\" class=\"create-plan__checks\">\n          <li v-for=\"spec in product.specs\" v-if=\"spec.length > 0\">{{spec[0]}}</li>\n        </ul>\n        <div @click=\"openPopup\" v-if=\"showCta && product.translation.features && product.levels.length === 0\" class=\"create-plan__read-more\">{{ trans('read_more') }} <span></span></div>\n\n      </div>\n\n      <!--    Additional warehouse    -->\n      <div class=\"create-plan-product__button create-plan-product__button--suite\" :class=\"{ 'disabled' : !this.$root.equipmentSchedulingProSelected}\" v-if=\"product.requiresEquipmentSchedulingPro\">\n        <div class=\"create-plan-product__tooltip\" v-if=\"[8].includes(product.id)\">\n          {{trans('available_with_equipment_scheduling_pro')}}\n        </div>\n\n        <template v-if=\"isAddon\">\n          <button type=\"button\" value=\"add product\" @click=\"toggleProduct\" :class=\"{'hidden': isInShoppingCart}\">\n            <div></div>\n            {{ isInShoppingCart ? trans('added') : trans('add') }}\n          </button>\n          <div class=\"create-plan-product__numbers\" v-if=\"isInShoppingCart\">\n            <button @click=\"incrementAmount\">+</button>\n            <input type=\"number\" min=\"0\" :value=\"cartState.amount\"  @change=\"changeAmount\">\n            <button @click=\"decrementAmount\">-</button>\n          </div>\n        </template>\n\n        <template v-else>\n          <button type=\"button\" value=\"add product\" @click=\"toggleProduct\" :class=\"{'active': isInShoppingCart}\">\n            <div></div>\n            {{ isInShoppingCart ? trans('added') : trans('add') }}\n          </button>\n        </template>\n      </div>\n\n      <div v-else class=\"create-plan-product__button create-plan-product__button--suite\" :class=\"{ 'disabled' : !this.$root.primaryProductSelected && product.requiresPrimary || parentProductIsSelected }\">\n\n        <!--    Equipment Tracking    -->\n        <div class=\"create-plan-product__tooltip\" v-if=\"[3].includes(product.id)\">\n          {{trans('available_with_equipment_scheduling')}}\n        </div>\n\n        <!--    Quoting & Invoicing    -->\n        <div class=\"create-plan-product__tooltip\" v-if=\"[5].includes(product.id)\">\n          {{trans('available_with_equipment_scheduling_or_crew_scheduling')}}\n        </div>\n\n        <template v-if=\"isAddon\">\n          <button type=\"button\" value=\"add product\" @click=\"toggleProduct\" :class=\"{'hidden': isInShoppingCart}\">\n            <div></div>\n            {{ isInShoppingCart ? trans('added') : trans('add') }}\n          </button>\n          <div class=\"create-plan-product__numbers\" v-if=\"isInShoppingCart\">\n            <button @click=\"incrementAmount\">+</button>\n            <input type=\"number\" min=\"0\" :value=\"cartState.amount\"  @change=\"changeAmount\">\n            <button @click=\"decrementAmount\">-</button>\n          </div>\n        </template>\n\n        <template v-else>\n          <button type=\"button\" value=\"add product\" @click=\"toggleProduct\" :class=\"{'active': isInShoppingCart}\">\n            <div></div>\n            {{ isInShoppingCart ? trans('added') : trans('add') }}\n          </button>\n        </template>\n      </div>\n\n    </div>\n\n    <template v-if=\"product.levels.length > 0\">\n\n      <div class=\"create-plan-product__levels\">\n        <div v-for=\"(level, index) in product.levels\" @click=\"setLevel(index)\" class=\"create-plan-product__level\" :class=\"{'selected': isInShoppingCart && cartState.level == index}\">\n          <strong>{{level[0]}}</strong>\n          <span>{{ displayCorrectCurrency(level[1], level[2]) }} {{ trans('power_user') }} <br>\n            / {{trans('month')}}\n          </span>\n        </div>\n      </div>\n\n      <div v-if=\"showCta\" @click=\"openPopup\" class=\"create-plan__read-more\">{{ trans('compare') }} <span></span></div>\n\n    </template>\n\n    <product-pop-up :active=\"popupOpened\" v-on:close=\"closePopup\" :product=\"product\"></product-pop-up>\n\n  </div>\n</template>\n\n<script>\n\nimport mixin from './../createPlan/mixins'\nimport ProductPopUp from \"./productPopUp\";\n\nexport default {\n  name: \"singleProduct\",\n  components: {ProductPopUp},\n  mixins: [mixin],\n  props: {\n    product: {\n      type: Object,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      amount: 1,\n      popupOpened: false,\n      cartState: null\n    }\n  },\n\n  created() {\n    if(window.location.hash === '#' + this.slugify(this.product.translation.name)) this.popupOpened = true;\n  },\n\n  methods: {\n\n    updateCartState() {\n      this.cartState = this.$root.productsInCart.find((p) => p.id == this.product.id)\n\n      if(this.cartState === undefined) this.cartState = null;\n    },\n\n    toggleProduct () {\n      if(this.isInShoppingCart) this.removeProduct()\n      else this.addProduct()\n    },\n\n    addProduct (level = null) {\n      if(this.product.levels.length > 0 && level === null) level = 0\n      this.$root.productsInCart.push({id: this.product.id, level: level, amount: 1})\n      this.updateCartState()\n    },\n\n    removeProduct() {\n      this.$root.productsInCart = this.$root.productsInCart.filter(p => p.id != this.product.id)\n\n      if (this.product.hinted_products.length > 0) {\n        this.product.hinted_products.forEach((hintedProduct) => {\n          this.$root.productsInCart = this.$root.productsInCart.filter(p => p.id !== hintedProduct.id)\n        })\n      }\n      this.updateCartState()\n    },\n\n    setLevel(level) {\n\n      if(!this.isInShoppingCart) {\n        this.addProduct(level)\n        return\n      }\n\n      const cartProduct = this.$root.productsInCart.find(p => p.id == this.product.id)\n      cartProduct.level = level\n\n      this.updateCartState()\n    },\n\n    setAmount(amount) {\n      const cartProduct = this.$root.productsInCart.find(p => p.id == this.product.id)\n      cartProduct.amount = amount\n\n      this.updateCartState()\n    },\n\n    changeAmount (event) {\n      const amount = parseInt(event.target.value)\n\n      if (amount === 0) this.removeProduct()\n      else this.setAmount(amount)\n    },\n    incrementAmount() {\n      let amount = this.cartState.amount + 1\n\n      if (amount === 0) this.removeProduct()\n      else this.setAmount(amount)\n    },\n    decrementAmount() {\n      let amount = this.cartState.amount - 1\n\n      if (amount === 0) this.removeProduct()\n      else this.setAmount(amount)\n    },\n\n    openPopup() {\n      history.replaceState(\"\", document.title, window.location.pathname + '#' + this.slugify(this.product.translation.name));\n      this.popupOpened = true\n    },\n\n    closePopup() {\n      history.replaceState(\"\", document.title, window.location.pathname);\n      this.popupOpened = false\n    }\n\n  },\n  computed: {\n\n    productCart() {\n      this.$root.productsInCart.find((p) => p.id == this.product.id)\n    },\n\n    isAddon() {\n      return this.product.pricing_product_type === 'addon';\n    },\n\n    isLevels() {\n      return this.product.pricing_product_type === 'levels';\n    },\n\n    showCta() {\n      return this.product.show_cta === 1;\n    },\n\n    isInShoppingCart() {\n      return this.cartState !== null;\n    },\n\n    price() {\n      return this.displayCorrectCurrency(this.product.euro_price, this.product.dollar_price)\n    },\n\n    parentProductIsSelected() {\n      if (this.product.parentProduct !== undefined) {\n        if (this.$root.productsInCart.find((p) => p.id === this.product.parentProduct)) return false\n        return true\n      } else {\n        return false\n      }\n      // return this.product.hasParentProduct;\n    }\n\n  }\n}\n</script>","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"create-plan-product\",class:[_vm.isInShoppingCart ? 'create-plan-product__in-cart' : '', !this.$root.primaryProductSelected && _vm.product.requiresPrimary ? 'is-disabled' : '' ],attrs:{\"data-icon\":_vm.product.pricing_product_icon}},[(!this.$root.primaryProductSelected && _vm.product.requiresPrimary)?_c('div',{staticClass:\"c-announcements__item\"},[_c('div',{staticClass:\"c-announcements__message c-announcements__message--pricing\"},[_vm._v(\"\\n      \"+_vm._s(_vm.trans('available_with_equipment_scheduling_or_crew_scheduling'))+\"\\n    \")])]):(!this.$root.equipmentSchedulingSelected && _vm.product.requiresEquipmentScheduling)?_c('div',{staticClass:\"c-announcements__item\"},[_c('div',{staticClass:\"c-announcements__message c-announcements__message--pricing\"},[_vm._v(\"\\n        \"+_vm._s(_vm.trans('available_with_equipment_scheduling'))+\"\\n    \")])]):(!this.$root.equipmentSchedulingSelected && _vm.product.requiresEquipmentSchedulingPro)?_c('div',{staticClass:\"c-announcements__item\"},[_c('div',{staticClass:\"c-announcements__message c-announcements__message--pricing\"},[_vm._v(\"\\n      \"+_vm._s(_vm.trans('available_with_equipment_scheduling_pro'))+\"\\n    \")])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"create-plan-product__inner\"},[_c('div',{staticClass:\"create-plan-product__icon\"}),_vm._v(\" \"),_c('div',{staticClass:\"create-plan-product__meta\"},[(!_vm.isAddon && !_vm.isLevels)?_c('span',{staticClass:\"create-plan-product__label\"},[_vm._v(_vm._s(_vm.trans('product')))]):_c('span',{staticClass:\"create-plan-product__label\"},[_vm._v(_vm._s(_vm.trans('additional_product')))]),_vm._v(\" \"),_c('strong',[_vm._v(_vm._s(_vm.product.translation.name))]),_vm._v(\" \"),(_vm.product.levels.length === 0)?[((_vm.price !== null))?_c('p',[_vm._v(_vm._s(_vm.price)+\"\\n          \"),(_vm.product.price_per_warehouse === 0)?_c('span',[_vm._v(_vm._s(_vm.trans('per_month')))]):_vm._e(),_vm._v(\" \"),(_vm.product.price_per_warehouse === 1)?_c('span',[_vm._v(_vm._s(_vm.trans('power_user_warehouse_month')))]):_vm._e()]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.product.translation.description !== '')?_c('p',[_vm._v(_vm._s(_vm.product.translation.description))]):_vm._e(),_vm._v(\" \"),(_vm.product.specs && _vm.product.specs.length > 0)?_c('ul',{staticClass:\"create-plan__checks\"},_vm._l((_vm.product.specs),function(spec){return (spec.length > 0)?_c('li',[_vm._v(_vm._s(spec[0]))]):_vm._e()}),0):_vm._e(),_vm._v(\" \"),(_vm.showCta && _vm.product.translation.features && _vm.product.levels.length === 0)?_c('div',{staticClass:\"create-plan__read-more\",on:{\"click\":_vm.openPopup}},[_vm._v(_vm._s(_vm.trans('read_more'))+\" \"),_c('span')]):_vm._e()],2),_vm._v(\" \"),(_vm.product.requiresEquipmentSchedulingPro)?_c('div',{staticClass:\"create-plan-product__button create-plan-product__button--suite\",class:{ 'disabled' : !this.$root.equipmentSchedulingProSelected}},[([8].includes(_vm.product.id))?_c('div',{staticClass:\"create-plan-product__tooltip\"},[_vm._v(\"\\n        \"+_vm._s(_vm.trans('available_with_equipment_scheduling_pro'))+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.isAddon)?[_c('button',{class:{'hidden': _vm.isInShoppingCart},attrs:{\"type\":\"button\",\"value\":\"add product\"},on:{\"click\":_vm.toggleProduct}},[_c('div'),_vm._v(\"\\n          \"+_vm._s(_vm.isInShoppingCart ? _vm.trans('added') : _vm.trans('add'))+\"\\n        \")]),_vm._v(\" \"),(_vm.isInShoppingCart)?_c('div',{staticClass:\"create-plan-product__numbers\"},[_c('button',{on:{\"click\":_vm.incrementAmount}},[_vm._v(\"+\")]),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"number\",\"min\":\"0\"},domProps:{\"value\":_vm.cartState.amount},on:{\"change\":_vm.changeAmount}}),_vm._v(\" \"),_c('button',{on:{\"click\":_vm.decrementAmount}},[_vm._v(\"-\")])]):_vm._e()]:[_c('button',{class:{'active': _vm.isInShoppingCart},attrs:{\"type\":\"button\",\"value\":\"add product\"},on:{\"click\":_vm.toggleProduct}},[_c('div'),_vm._v(\"\\n          \"+_vm._s(_vm.isInShoppingCart ? _vm.trans('added') : _vm.trans('add'))+\"\\n        \")])]],2):_c('div',{staticClass:\"create-plan-product__button create-plan-product__button--suite\",class:{ 'disabled' : !this.$root.primaryProductSelected && _vm.product.requiresPrimary || _vm.parentProductIsSelected }},[([3].includes(_vm.product.id))?_c('div',{staticClass:\"create-plan-product__tooltip\"},[_vm._v(\"\\n        \"+_vm._s(_vm.trans('available_with_equipment_scheduling'))+\"\\n      \")]):_vm._e(),_vm._v(\" \"),([5].includes(_vm.product.id))?_c('div',{staticClass:\"create-plan-product__tooltip\"},[_vm._v(\"\\n        \"+_vm._s(_vm.trans('available_with_equipment_scheduling_or_crew_scheduling'))+\"\\n      \")]):_vm._e(),_vm._v(\" \"),(_vm.isAddon)?[_c('button',{class:{'hidden': _vm.isInShoppingCart},attrs:{\"type\":\"button\",\"value\":\"add product\"},on:{\"click\":_vm.toggleProduct}},[_c('div'),_vm._v(\"\\n          \"+_vm._s(_vm.isInShoppingCart ? _vm.trans('added') : _vm.trans('add'))+\"\\n        \")]),_vm._v(\" \"),(_vm.isInShoppingCart)?_c('div',{staticClass:\"create-plan-product__numbers\"},[_c('button',{on:{\"click\":_vm.incrementAmount}},[_vm._v(\"+\")]),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"number\",\"min\":\"0\"},domProps:{\"value\":_vm.cartState.amount},on:{\"change\":_vm.changeAmount}}),_vm._v(\" \"),_c('button',{on:{\"click\":_vm.decrementAmount}},[_vm._v(\"-\")])]):_vm._e()]:[_c('button',{class:{'active': _vm.isInShoppingCart},attrs:{\"type\":\"button\",\"value\":\"add product\"},on:{\"click\":_vm.toggleProduct}},[_c('div'),_vm._v(\"\\n          \"+_vm._s(_vm.isInShoppingCart ? _vm.trans('added') : _vm.trans('add'))+\"\\n        \")])]],2)]),_vm._v(\" \"),(_vm.product.levels.length > 0)?[_c('div',{staticClass:\"create-plan-product__levels\"},_vm._l((_vm.product.levels),function(level,index){return _c('div',{staticClass:\"create-plan-product__level\",class:{'selected': _vm.isInShoppingCart && _vm.cartState.level == index},on:{\"click\":function($event){return _vm.setLevel(index)}}},[_c('strong',[_vm._v(_vm._s(level[0]))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.displayCorrectCurrency(level[1], level[2]))+\" \"+_vm._s(_vm.trans('power_user'))+\" \"),_c('br'),_vm._v(\"\\n          / \"+_vm._s(_vm.trans('month'))+\"\\n        \")])])}),0),_vm._v(\" \"),(_vm.showCta)?_c('div',{staticClass:\"create-plan__read-more\",on:{\"click\":_vm.openPopup}},[_vm._v(_vm._s(_vm.trans('compare'))+\" \"),_c('span')]):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('product-pop-up',{attrs:{\"active\":_vm.popupOpened,\"product\":_vm.product},on:{\"close\":_vm.closePopup}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./cartProduct.vue?vue&type=template&id=80473022&scoped=true&\"\nimport script from \"./cartProduct.vue?vue&type=script&lang=js&\"\nexport * from \"./cartProduct.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  \"80473022\",\n  null\n  \n)\n\nexport default component.exports","<template>\n  <div class=\"create-plan__cart-product\">\n    <div class=\"create-plan__cart-close\" @click=\"removeProduct\"></div>\n    <strong>{{ product.translation.name }}</strong>\n    <div class=\"create-plan__cart-label\">\n\n      <template  v-if=\"product.levels.length > 0\">\n        <span class=\"cart-level\">{{ product.levels[cartState.level][0] }} - </span>\n        <span>{{ displayCorrectCurrency(pricing[0], pricing[1]) }}</span> {{ trans('power_user_month') }}\n      </template>\n      <template  v-else-if=\"pricePerWarehouse\">\n        <span class=\"cart-level\">{{cartState.amount}}x - </span>\n        <span>{{ displayCorrectCurrency(pricing[0], pricing[1]) }}</span>\n        {{ trans('power_user_warehouse_month') }}\n      </template>\n      <template  v-else-if=\"product.pricing_product_type === 'addon'\">\n        <span class=\"cart-level\">{{cartState.amount}}x - </span>\n        <span>{{ displayCorrectCurrency(pricing[0], pricing[1]) }}</span>\n      </template>\n      <template v-else>\n        <span>{{ displayCorrectCurrency(pricing[0], pricing[1]) }}</span> {{ trans('power_user_month') }}\n      </template>\n\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: \"cartProduct\",\n  props: {\n    product: {\n      type: Object,\n      required: true\n    },\n    cartState: {\n      type: Object,\n      required: true\n    },\n    pricePerWarehouse: {\n      required: false\n    }\n  },\n  methods: {\n    removeProduct() {\n      this.$root.productsInCart = this.$root.productsInCart.filter(p => p.id != this.product.id)\n    }\n  },\n  computed: {\n    pricing() {\n\n      if(this.product.levels.length > 0) {\n        const level = this.product.levels[this.cartState.level]\n        return [parseFloat(level[1]), parseFloat(level[2])]\n      }\n\n      return [parseFloat(this.product.euro_price), parseFloat(this.product.dollar_price)]\n    }\n  }\n}\n</script>\n\n<style scoped>\n\n</style>","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"create-plan__cart-product\"},[_c('div',{staticClass:\"create-plan__cart-close\",on:{\"click\":_vm.removeProduct}}),_vm._v(\" \"),_c('strong',[_vm._v(_vm._s(_vm.product.translation.name))]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan__cart-label\"},[(_vm.product.levels.length > 0)?[_c('span',{staticClass:\"cart-level\"},[_vm._v(_vm._s(_vm.product.levels[_vm.cartState.level][0])+\" - \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.displayCorrectCurrency(_vm.pricing[0], _vm.pricing[1])))]),_vm._v(\" \"+_vm._s(_vm.trans('power_user_month'))+\"\\n    \")]:(_vm.pricePerWarehouse)?[_c('span',{staticClass:\"cart-level\"},[_vm._v(_vm._s(_vm.cartState.amount)+\"x - \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.displayCorrectCurrency(_vm.pricing[0], _vm.pricing[1])))]),_vm._v(\"\\n      \"+_vm._s(_vm.trans('power_user_warehouse_month'))+\"\\n    \")]:(_vm.product.pricing_product_type === 'addon')?[_c('span',{staticClass:\"cart-level\"},[_vm._v(_vm._s(_vm.cartState.amount)+\"x - \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.displayCorrectCurrency(_vm.pricing[0], _vm.pricing[1])))])]:[_c('span',[_vm._v(_vm._s(_vm.displayCorrectCurrency(_vm.pricing[0], _vm.pricing[1])))]),_vm._v(\" \"+_vm._s(_vm.trans('power_user_month'))+\"\\n    \")]],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./openCloseProducts.vue?vue&type=template&id=8accfbc6&\"\nimport script from \"./openCloseProducts.vue?vue&type=script&lang=js&\"\nexport * from \"./openCloseProducts.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","<template>\n  <div class=\"create-plan-additional-products\" :class=\"{'container-open': containerOpen}\">\n    <div class=\"create-plan-additional-products__heading\" @click=\"toggleContainer\">\n      {{ trans('additional_products') }} <strong>{{ name }}</strong>\n    </div>\n    <div class=\"create-plan-additional-products__inner\">\n        <slot></slot>\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: \"openCloseProducts\",\n  props: {\n    name: {\n      type: String,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      containerOpen: true\n    }\n  },\n  methods: {\n    toggleContainer() {\n      this.containerOpen = !this.containerOpen\n    }\n  }\n}\n</script>","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"create-plan-additional-products\",class:{'container-open': _vm.containerOpen}},[_c('div',{staticClass:\"create-plan-additional-products__heading\",on:{\"click\":_vm.toggleContainer}},[_vm._v(\"\\n    \"+_vm._s(_vm.trans('additional_products'))+\" \"),_c('strong',[_vm._v(_vm._s(_vm.name))])]),_vm._v(\" \"),_c('div',{staticClass:\"create-plan-additional-products__inner\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./createPlan.vue?vue&type=template&id=4716c6fe&\"\nimport script from \"./createPlan.vue?vue&type=script&lang=js&\"\nexport * from \"./createPlan.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","<template>\n  <div class=\"create-plan\">\n    <div class=\"create-plan__main\">\n      <div class=\"c-switch\">\n        <input class=\"c-switch__input\" id=\"switch-create-plan-1\" type=\"checkbox\" @change=\"changeCurrency\">\n        <label class=\"c-switch__label\" for=\"switch-create-plan-1\" data-checked=\"EUR\" data-unchecked=\"USD\">\n        </label>\n      </div>\n\n      <div class=\"u-margin-top-32  create-plan__core-product\">\n        <h3 class=\"create-plan__subtitle\">{{ this.$root.coreProduct.translation.name }}</h3>\n        <small>{{ displayCorrectCurrency(this.$root.coreProduct.euro_price, this.$root.coreProduct.dollar_price) }} / {{ trans('month') }}</small>\n        <p class=\"create-plan__description u-margin-top-16\">{{ this.$root.coreProduct.translation.description }}</p>\n        <ul class=\"create-plan__checks\">\n          <li v-for=\"spec in this.$root.coreProduct.translation.specs\">{{ spec }}</li>\n        </ul>\n\n        <div @click=\"openPopup\" class=\"create-plan__read-more  create-plan__read-more--nm\">{{ trans('see_features') }} <span></span></div>\n\n      </div>\n\n      <product-pop-up :active=\"popupOpened\" v-on:close=\"closePopup\" :product=\"this.$root.coreProduct\" />\n\n      <hr>\n\n      <h5 class=\"create-plan__title\">{{ trans('products') }}</h5>\n      <h3 class=\" u-margin-top-32  create-plan__subtitle\">{{ trans('products_subtitle_text') }}</h3>\n<!--      <p>{{ trans('products_subtitle_text') }}</p>-->\n\n      <div class=\"create-plan__product-container\">\n        <template v-for=\"product in this.$root.selectableProducts\">\n\n          <single-product :product=\"product\" ref=\"product\"/>\n\n          <open-close-products v-if=\"product.hinted_products.length > 0\" :name=\"product.translation.name\">\n            <template v-for=\"hintedProduct in product.hinted_products\">\n              <single-product :product=\"hintedProduct\" ref=\"product\"/>\n            </template>\n          </open-close-products>\n\n        </template>\n      </div>\n\n\n    </div>\n    <div class=\"create-plan__sidebar\" ref=\"sidebar\">\n      <div class=\"create-plan__heading\">\n        {{ trans('summary') }}\n      </div>\n\n      <div class=\"create-plan__cart-overview\">\n\n        <div class=\"create-plan__cart-product\">\n          <strong>{{ trans('rentman_title') }}</strong>\n          <div class=\"create-plan__cart-label\">\n            <span>{{ displayCorrectCurrency($root.coreProduct.euro_price, $root.coreProduct.dollar_price) }}</span> / {{ trans('month') }}\n          </div>\n        </div>\n\n        <template v-for=\"cartState in $root.productsInCart\">\n          <cart-product\n              :price-per-warehouse=\"getProductById(cartState.id).price_per_warehouse == 1\"\n              :product=\"getProductById(cartState.id)\"\n              :cart-state=\"cartState\" />\n        </template>\n\n        <p v-if=\"!productsInCart.length > 0\" class=\"create-plan__cart-label\">{{ trans('add_products') }}</p>\n      </div>\n\n\n\n      <div class=\"create-plan__footer footer-row\">\n        <div>\n          <strong>{{ trans('power_users') }}\n            <span class=\"c-tooltip  c-tooltip--dark-pop-up  js-pricing-prevent-click\" :data-tooltip=\"trans('power_user_tooltip')\"></span>\n          </strong>\n          <div class=\"create-plan--small-label\"> {{ getPriceEachPowerUser() }} {{ trans('power_user') }} / {{ trans('month') }}</div>\n        </div>\n<!--        <div>-->\n<!--          <strong>{{ trans('basic_users') }}-->\n<!--            <span class=\"c-tooltip  c-tooltip&#45;&#45;dark-pop-up  js-pricing-prevent-click\" :data-tooltip=\"trans('basic_user_tooltip')\"></span>-->\n<!--          </strong>-->\n<!--          <div class=\"create-plan&#45;&#45;small-label\"> {{ getPriceEachPowerUser() }} {{ trans('power_user') }} / {{ trans('month') }}</div>-->\n<!--        </div>-->\n        <div class=\"create-plan-product__numbers\" :class=\"{'c-tooltip c-tooltip--element c-tooltip--dark-pop-up c-tooltip--small': !productsInCart.length > 0}\" :data-tooltip=\"trans('add_product_first')\">\n          <button @click=\"$root.powerUsers++\" :disabled=\"!productsInCart.length > 0\">+</button>\n          <input type=\"number\" min=\"1\" :value=\"$root.powerUsers\"  @change=\"changePowerUsersAmount\" :disabled=\"!productsInCart.length > 0\">\n          <button :disabled=\"$root.powerUsers === 1 || !productsInCart.length > 0\" @click=\"$root.powerUsers--\">-</button>\n        </div>\n      </div>\n\n\n\n\n\n      <div class=\"create-plan__footer footer-row create-plan__footer--no-bt\">\n          <div>\n            <strong>{{ trans('basic_users') }}\n              <span class=\"c-tooltip  c-tooltip--dark-pop-up  js-pricing-prevent-click\" :data-tooltip=\"trans('basic_user_tooltip')\"></span>\n            </strong>\n            <div class=\"create-plan--small-label\">{{trans('always_free')}}</div>\n          </div>\n      </div>\n\n      <div class=\"create-plan__footer\">\n\n        <div class=\"footer-subtotal\">\n          <span>{{ trans('platform_fee') }}</span>\n          <span v-if=\"this.$root.powerUsers < this.$root.powerUserLimit\">{{ displayCorrectCurrency(this.$root.coreProduct.euro_price, this.$root.coreProduct.dollar_price) }}</span>\n          <span v-else>--</span>\n        </div>\n\n        <div class=\"footer-subtotal\">\n          <span>{{ $root.powerUsers }} {{ $root.powerUsers === 1 ? trans('power_user') : trans('power_users') }}</span>\n          <span v-if=\"this.$root.powerUsers < this.$root.powerUserLimit\">{{ getPriceEachPowerUser(true) }}</span>\n          <span v-else>--</span>\n        </div>\n\n<!--        <div class=\"footer-subtotal\" v-if=\"$root.hasAddons && this.$root.powerUsers < this.$root.powerUserLimit\" >-->\n<!--          <span>{{ trans('addons') }}</span>-->\n<!--          <span>{{ getAddonsPrice() }}</span>-->\n<!--        </div>-->\n\n        <div class=\"footer-total\">\n          <strong>{{ trans('total') }}</strong>\n          <span v-if=\"this.$root.powerUsers < this.$root.powerUserLimit\">{{ getTotalPrice() }}</span>\n          <span v-else>{{ trans('lets_talk') }}</span>\n        </div>\n\n        <div class=\"custom-plan-notice\" v-if=\"this.$root.powerUsers >= this.$root.powerUserLimit\">\n          <h4>{{ trans('custom_plan') }}</h4>\n          <p>{{ trans('custom_plan_sub') }}</p>\n        </div>\n\n        <a :href=\"trans('try_free_link')\" class=\"c-button c-button--filled\" v-if=\"this.$root.powerUsers < this.$root.powerUserLimit\">\n          <span class=\"c-button__text\">{{ trans('try_free') }}</span>\n        </a>\n        <a :href=\"trans('speak_expert_link')\" class=\"c-button\" :class=\"{'c-button--filled': this.$root.powerUsers >= this.$root.powerUserLimit}\">\n          <span class=\"c-button__text\">{{ trans('speak_expert') }}</span>\n        </a>\n      </div>\n    </div>\n    <div class=\"create-plan__sidebar--mobile\">\n      <strong>{{ trans('total') }}:  {{ getTotalPrice(false) }}</strong>\n      <span class=\"c-button c-button--filled\" @click=\"scrollToSummary\"><span class=\"c-button__text\">{{ trans('see_summary') }}</span></span>\n    </div>\n    <div class=\"create-plan__scroll-up\">\n      <span @click=\"scrollToSummary\">{{ trans('price_breakdown') }}</span>\n    </div>\n  </div>\n</template>\n\n<script>\nimport SingleProduct from \"./singleProduct\";\nimport CartProduct from \"./cartProduct\";\nimport OpenCloseProducts from \"./openCloseProducts\";\nimport mixin from \"../createPlan/mixins\";\nimport ProductPopUp from \"./productPopUp\";\n\nexport default {\n  name: \"createPlan\",\n  mixins: [mixin],\n  components: {ProductPopUp, OpenCloseProducts, CartProduct, SingleProduct},\n\n  data() {\n    return {\n      popupOpened: false,\n    }\n  },\n\n  watch: {\n    productsInCart: function (newstate, oldstate) {\n      this.updateProducts()\n    },\n    powerUsers: function (newstate, oldstate) {\n\n    }\n  },\n\n  computed: {\n    productsInCart() {\n      return this.$root.productsInCart\n    },\n\n    // isPowerUserLimit() {\n    //   return this.$root.powerUsers >= this.$root.powerUserLimit\n    // }\n  },\n\n  methods: {\n\n    updateProducts() {\n      this.$refs.product.forEach((product, index) => {\n        if (!this.productsInCart.find((p) =>  p.id === product.product.id)) {\n          this.$refs.product[index].cartState = null\n        }\n      })\n    },\n\n    changeCurrency(value) {\n      this.$root.currencyEuro = !value.target.checked\n\n    },\n\n    getPriceEachPowerUser(multiplyByUsers = false) {\n\n      let total_euro = 0\n      let total_dollar = 0\n\n      this.$root.productsInCart.forEach((cartState) => {\n\n        const product = this.$root.products.find(p => p.id == cartState.id)\n\n        if (product.price_per_warehouse == 1) {\n          total_euro += cartState.amount  * parseFloat(product.euro_price);\n          total_dollar += cartState.amount * parseFloat(product.dollar_price);\n        }\n        else if(product.levels.length > 0) {\n          const level = product.levels[cartState.level]\n          total_euro += parseFloat(level[1])\n          total_dollar += parseFloat(level[2])\n        }\n        else if(product.pricing_product_type == 'normal') {\n          total_euro += parseFloat(product.euro_price) * cartState.amount\n          total_dollar += parseFloat(product.dollar_price) * cartState.amount\n        }\n        else if(product.pricing_product_type == 'levels') {\n          total_euro += parseFloat(product.euro_price) * cartState.amount\n          total_dollar += parseFloat(product.dollar_price) * cartState.amount\n        }\n\n      })\n\n      if(!multiplyByUsers) return this.displayCorrectCurrency(total_euro, total_dollar)\n      return this.displayCorrectCurrency(total_euro * this.$root.powerUsers, total_dollar * this.$root.powerUsers)\n    },\n\n    // getAddonsPrice() {\n    //\n    //   let total_euro = 0\n    //   let total_dollar = 0\n    //\n    //   this.$root.productsInCart.forEach((cartState) => {\n    //     const product = this.$root.products.find(p => p.id == cartState.id)\n    //     // if the price depends on the number of warehouses\n    //     if (product.price_per_warehouse == 1) {\n    //       const amountOfProductInCart = this.$root.productsInCart.find(p => p.id == product.id).amount;\n    //       const amountOfPowerUsers = this.$root.powerUsers\n    //       total_euro = amountOfProductInCart * amountOfPowerUsers * product.euro_price;\n    //       total_dollar = amountOfProductInCart* amountOfPowerUsers * product.dollar_price;\n    //     }\n    //     // otherwise, just add up\n    //     else if(product.pricing_product_type == 'addon' || 'levels') {\n    //       total_euro = parseFloat(product.euro_price) * cartState.amount\n    //       total_dollar += parseFloat(product.dollar_price) * cartState.amount\n    //     }\n    //   })\n    //   return this.displayCorrectCurrency(total_euro, total_dollar)\n    // },\n\n    getTotalPrice() {\n\n      let base_price_euro = parseFloat(this.$root.coreProduct.euro_price)\n      let base_price_dollar = parseFloat(this.$root.coreProduct.dollar_price)\n\n      let each_power_user_euro = 0\n      let each_power_user_dollar = 0\n\n      this.$root.productsInCart.forEach((cartState) => {\n\n        const product = this.$root.products.find(p => p.id == cartState.id)\n\n        if (product.price_per_warehouse == 1) {\n          // console.log(cartState.amount  * parseFloat(product.euro_price))\n          each_power_user_euro += cartState.amount  * parseFloat(product.euro_price);\n          each_power_user_dollar += cartState.amount * parseFloat(product.dollar_price);\n        }\n        else if(product.levels.length > 0) {\n          const level = product.levels[cartState.level]\n          each_power_user_euro += parseFloat(level[1])\n          each_power_user_dollar += parseFloat(level[2])\n        }\n        else if(product.pricing_product_type == 'normal') {\n          each_power_user_euro += parseFloat(product.euro_price) * cartState.amount\n          each_power_user_dollar += parseFloat(product.dollar_price) * cartState.amount\n        }\n        else if(product.pricing_product_type == 'addon') {\n          each_power_user_euro += parseFloat(product.euro_price) * cartState.amount\n          each_power_user_dollar += parseFloat(product.dollar_price) * cartState.amount\n        }\n        else if(product.pricing_product_type == 'levels') {\n          each_power_user_euro += parseFloat(product.euro_price) * cartState.amount\n          each_power_user_dollar += parseFloat(product.dollar_price) * cartState.amount\n        }\n      })\n\n\n      let total_euro = (each_power_user_euro * this.$root.powerUsers) + base_price_euro\n      let total_dollar = (each_power_user_dollar * this.$root.powerUsers) + base_price_dollar\n\n      return this.displayCorrectCurrency(total_euro, total_dollar)\n    },\n\n    changePowerUsersAmount(event) {\n      let amount = parseInt(event.target.value)\n      if (amount >= 0) this.$root.powerUsers = amount\n    },\n\n    getProductById(id) {\n      return this.$root.products.find(product => product.id == id);\n    },\n\n    scrollToSummary() {\n      this.$refs.sidebar.scrollIntoView({behavior: \"smooth\"})\n    },\n\n    openPopup() {\n      history.replaceState(\"\", document.title, window.location.pathname + '#' + this.slugify(this.$root.coreProduct.translation.name));\n      this.popupOpened = true\n    },\n\n    closePopup() {\n      history.replaceState(\"\", document.title, window.location.pathname);\n      this.popupOpened = false\n    }\n\n  },\n}\n</script>","import CreatePlan from \"./../components/createPlan\"\n\nconst createPlanEl = document.querySelector('#create-plan-vue')\nconst productData = createPlanEl.getAttribute('data-product-data')\n\nif(!productData) throw new Error('productData is missing');\ncreatePlanEl.removeAttribute('data-product-data');\n\nconst coreProductId = 6\nconst primaryProductIds = [2, 4]\nconst productIdsRequiredPrimary = [5]\nconst equipmentSchedulingId = 2\nconst productIdsRequiredEquipmentScheduling = [3]\nconst productIdsRequiredEquipmentSchedulingPro = [8]\n\nconst removableProductIds = new Set([coreProductId])\n\n// Prepare products array\nlet products = Object.values(JSON.parse(productData))\nproducts.forEach(product => {\n\n    product.requiresEquipmentScheduling = productIdsRequiredEquipmentScheduling.includes(product.id)\n    product.requiresEquipmentSchedulingPro = productIdsRequiredEquipmentSchedulingPro.includes(product.id)\n    product.requiresPrimary = productIdsRequiredPrimary.includes(product.id)\n    product.levels = product.levels != '' && product.levels != '[]' ? JSON.parse(product.levels) : [];\n    product.specs = product.translation && product.translation.specs != '' && product.translation.specs != '[]' ? JSON.parse(product.translation.specs) : [];\n    product.hinted_products = product.hinted_products.split(',')\n\n    const hintedProducts = [];\n\n    // Validate hinted products exist\n    product.hinted_products.forEach((productId, index) => {\n        const hintedProduct = products.find(p => p.id == productId)\n        if(hintedProduct === undefined) product.hinted_products.splice(index, 1)\n        else{\n            hintedProduct.hasParentProduct = true\n            hintedProduct.parentProduct = product.id\n            hintedProducts.push(hintedProduct)\n            removableProductIds.add(parseInt(productId))\n        }\n    })\n\n    product.hinted_products = hintedProducts\n\n})\n\nconst coreProduct = products.find(p => p.id == coreProductId);\n\nif(!coreProduct) throw new Error('Core product (Rentman Platform) / Product with id 6 is missing');\nif(!coreProduct.translation) throw new Error('Core product (Rentman Platform) / Product is missing its translation');\ncoreProduct.translation.specs = coreProduct.translation.specs !== '' ? Object.values(JSON.parse(coreProduct.translation.specs)).map(spec => spec[0]) : []\n\n\n// Create selectable products, by removing the hinted products and core product (so removableProductIds\nconst selectableProducts = products.filter(p => !removableProductIds.has(p.id))\n\n\nVue.mixin(require('./mixins'));\n\nvar vm = new Vue({\n    el: '#create-plan-vue',\n    components: {\n        CreatePlan,\n    },\n    data: () => ({\n        products: products,\n        selectableProducts: selectableProducts,\n        coreProduct: coreProduct,\n        translations: window.rentman.translations,\n        currencyEuro: true,\n        powerUsers: 1,\n        powerUserLimit: 15,\n        productsInCart: [],\n    }),\n    computed: {\n        hasAddons() {\n\n            let hasAddon = false\n\n            this.productsInCart.forEach((cartState) => {\n                const product = this.products.find(p => p.id == cartState.id)\n                if(product.pricing_product_type == 'addon') hasAddon = true\n            })\n\n            return hasAddon\n        },\n        primaryProductSelected() {\n\n            let hasPrimaryProduct = false\n            const selectedProductIds = this.productsInCart.map(p => p.id);\n\n            selectedProductIds.forEach(productId => {\n                let isPrimaryProduct = primaryProductIds.includes(productId)\n                if(isPrimaryProduct) hasPrimaryProduct = true\n            })\n\n            return hasPrimaryProduct\n        },\n\n        equipmentSchedulingSelected() {\n\n            let hasPrimaryProduct = false\n            const selectedProductIds = this.productsInCart.map(p => p.id);\n\n            selectedProductIds.forEach(productId => {\n                let isPrimaryProduct = equipmentSchedulingId === productId\n                if(isPrimaryProduct) hasPrimaryProduct = true\n            })\n\n            return hasPrimaryProduct\n        },\n\n        equipmentSchedulingProSelected() {\n            let hasSchedulingPro = false\n            const selectedProducts = this.productsInCart\n            selectedProducts.forEach(product => {\n                let isSchedulingPro = equipmentSchedulingId === product.id && product.level === 1\n                if(isSchedulingPro) hasSchedulingPro = true\n            })\n            return hasSchedulingPro\n        }\n    },\n    watch: {\n        productsInCart: {\n            deep: true,\n            handler() {\n                if (!this.equipmentSchedulingProSelected) {\n                    this.productsInCart.find(p => p.id === 8)\n                        ? this.productsInCart.find(p => p.id === 8).amount = 0\n                        : null;\n                }\n            }\n        },\n    }\n})","module.exports = {\n    methods: {\n\n        isset(obj) {\n            return typeof obj !== 'undefined' && obj !== null;\n        },\n\n        displayCorrectCurrency(euro, dollar) {\n            return this.getCurrencyIcon() + this.getPrice(euro, dollar);\n        },\n\n        getPrice(euro, dollar) {\n            let price = (this.$root.currencyEuro) ? euro : dollar;\n\n            if(typeof price === 'string' && price.substr(price.length -3) === '.00') {\n                price = price.substr(0, price.length -3)\n            }\n\n            return price;\n        },\n\n        getCurrencyIcon() {\n            return (this.$root.currencyEuro) ? '€' : '$'\n        },\n\n        slugify(str) {\n            str = str.replace(/^\\s+|\\s+$/g, ''); // trim\n            str = str.toLowerCase();\n\n            // remove accents, swap ñ for n, etc\n            var from = \"àáãäâèéëêìíïîòóöôùúüûñç·/_,:;\";\n            var to   = \"aaaaaeeeeiiiioooouuuunc------\";\n\n            for (var i=0, l=from.length ; i<l ; i++) {\n                str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));\n            }\n\n            str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars\n                .replace(/\\s+/g, '-') // collapse whitespace and replace by -\n                .replace(/-+/g, '-'); // collapse dashes\n\n            return str;\n        },\n\n\n        trans(key, replace, returnKey = true) {\n\n            if(!this.isset(this.$root.translations)) {\n                console.warn('Create the translation on the window');\n                if(returnKey) return key;\n                else return '';\n            }\n\n            let translation;\n            const keys = key.split('.');\n\n            let resolvedKeyCounter = 0;\n            while (resolvedKeyCounter < keys.length) {\n\n                // Break if first key isn't resolved\n                if(resolvedKeyCounter !== 0 && translation === null) break;\n\n                if(resolvedKeyCounter === 0) translation = this.$root.translations[keys[resolvedKeyCounter]] || null\n                else translation = translation[keys[resolvedKeyCounter]] || null;\n\n                resolvedKeyCounter++;\n            }\n\n            if (translation === null) {\n                if(returnKey) {\n                    console.warn('No translation for ' + key + '. Try clearing your session storage.');\n                    return key;\n                }\n                else return '';\n            }\n\n            // If we don't need to replace placeholders, return the translation\n            if(replace === undefined) return translation;\n\n            const replaceKeys = Object.keys(replace);\n            replaceKeys.forEach((key) => {\n                translation = translation.replace('%' + key, replace[key]);\n            });\n\n            return translation\n        },\n\n        log(data) {\n            console.log(data);\n        }\n\n\n    },\n};\n"],"sourceRoot":""}