{"version":3,"mappings":"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","names":["getEcoContribution","bestPrice","_a","charge","importGETBESTPRICE","_sfc_main","AddToMemoListDialogFi","AvailabilityStatus","ButtonFi","ComponentWrapper","ErrorMessage","LoadingIndicator","PriceRowsSavingsFi","ProductPartialsFi","QuantityModificationHintFi","QuantitySteps","SnackbarFi","BasePriceFi","PriceSavingsFi","breakpointMixin","shoppingcartMixin","sellingUnitMixin","userMixin","mapGetters","useMemoListFunction","basePrice","_c","_b","contribution","activeIndex","savings","saving","index","getBestPrice","error","data","hint","dataTest2","value","evt","target","_d","_e","_f","_g","_h","valueRaw","initial","query","errors","res","_hoisted_4","_hoisted_6","_hoisted_8","_hoisted_9","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_18","_hoisted_20","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_33","$options","_createBlock","_component_component_wrapper","_normalizeClass","_withCtx","_ctx","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_component_snackbar_fi","_createCommentVNode","$data","_component_error_message","_createTextVNode","_toDisplayString","_hoisted_2","_hoisted_17","_createElementVNode","_component_loading_indicator","_hoisted_27","_hoisted_28","_Fragment","_hoisted_19","_component_price_savings_fi","_component_availability_status","_hoisted_21","_component_base_price_fi","_hoisted_26","_hoisted_29","_component_quantity_steps","_hoisted_30","_component_product_partials_fi","_component_quantity_modification_hint_fi","_component_button_fi","_withModifiers","_hoisted_3","_hoisted_15","_hoisted_16","_hoisted_5","_hoisted_7","_hoisted_10","_hoisted_14","_hoisted_31","_hoisted_32","_Teleport","_component_price_rows_savings_fi","_component_add_to_memo_list_dialog_fi"],"ignoreList":[],"sources":["../../src/components/shop-modules/eco-contribution/getEcoContribution.ts","../../src/components/shop-modules/buy-box-module/BuyBoxModule.vue"],"sourcesContent":["import type { BestPrice } from 'gql/gql-types';\n\nexport default (bestPrice: BestPrice) =>\n  bestPrice?.surcharges?.find((charge) => charge?.code === 'ZECO');\n","<template>\n  <component-wrapper\n    v-if=\"showBuyBox\"\n    :class=\"{\n      'buy-box-module': true,\n      'buy-box-module--unavailable': !isAvailable,\n      'buy-box-module--expired': isExpired,\n    }\"\n  >\n    <div\n      v-if=\"isAppView\"\n      class=\"buy-box-module__snackbar\"\n    >\n      <snackbar-fi top-position />\n    </div>\n    <error-message\n      v-if=\"haveErrors\"\n      trigger-on-creation\n      class=\"buy-box-module__error\"\n    >\n      {{ $dict.get('online-Shop.Checkout.Errors.Title') }}\n    </error-message>\n    <div\n      v-if=\"resultObject\"\n      class=\"buy-box-module__buy-box\"\n      data-test=\"buy-box\"\n    >\n      <div\n        v-if=\"!isSM\"\n        class=\"buy-box-module__buy-box--mobile\"\n      >\n        <template v-if=\"!isExpired\">\n          <div class=\"buy-box-module__buy-box__col\">\n            <template v-if=\"!withoutPrices\">\n              <div\n                v-if=\"ecoContributionFormatted\"\n                class=\"fi-flex fi-flex-col\"\n              >\n                <div class=\"buy-box-module__eco\">\n                  {{ $dict.get('checkout.Cart.Sum') }}\n                </div>\n                <price-savings-fi\n                  :class=\"priceSavingsClass\"\n                  :best-price=\"getBestPrice\"\n                  is-mobile\n                />\n              </div>\n              <price-savings-fi\n                v-else\n                :class=\"priceSavingsClass\"\n                :best-price=\"getBestPrice\"\n                is-mobile\n              />\n            </template>\n\n            <div\n              v-if=\"isAvailable\"\n              class=\"buy-box-module__buy-box__quantity-steps\"\n            >\n              <quantity-steps\n                ref=\"quantitySteps\"\n                class=\"theme--blocked\"\n                template=\"article\"\n                :requested-quantity=\"quantity\"\n                :item=\"resultObject\"\n                :price-rows-savings=\"\n                  resultPriceRowsSavings.length > 1 ? resultPriceRowsSavings : null\n                \"\n                small\n                light\n                @blur=\"onBlur\"\n                @update-quantity=\"updateQuantity\"\n                @user-input=\"backgroundUpdateQuantity\"\n                @scroll-to-element=\"scrollToSavings\"\n                @value-rounded=\"onValueRounded\"\n              />\n\n              <div class=\"buy-box-module__buy-box__quantity-per-package\">\n                {{ $dict.get('online-Shop.Product.Graduated-Prices.Quantity-Headline') }}\n                <template v-if=\"resultObject?.initialQuantity && resultObject?.price?.unit\">\n                  ( {{ resultObject.initialQuantity }}\n                  {{ getSellingUnit(resultObject.price.unit) }} /\n                  {{ $dict.get('online-Shop.Product.Pack') }} )\n                </template>\n              </div>\n              <product-partials-fi\n                class=\"buy-box-module__allow-partials\"\n                :best-price=\"resultObject\"\n              />\n            </div>\n          </div>\n\n          <div class=\"buy-box-module__buy-box__info\">\n            <availability-status\n              class=\"buy-box-module__buy-box__availability\"\n              :delivery-speed=\"resultObject.deliverySpeed\"\n              :stock-levels=\"stockLevels\"\n              :disable-tooltip=\"true\"\n              theme=\"buy-box\"\n            />\n\n            <div\n              v-if=\"!withoutPrices\"\n              class=\"buy-box-module__buy-box__info__text\"\n            >\n              <div class=\"buy-box-module__buy-box__vat\">\n                <template v-if=\"resultObject.taxRate !== 0\">\n                  {{ $dict.get('online-Shop.Product.Vat-excluded') }},\n                </template>\n                {{ $dict.get('online-Shop.Product.Plus-Shipping') }}\n                {{ $dict.get('online-Shop.Product.Base-Price') }}:\n              </div>\n\n              <div class=\"buy-box-module__buy-box__basic-prices\">\n                <div class=\"buy-box-module__buy-box__basic-price\">\n                  <base-price-fi\n                    :best-price=\"resultObject\"\n                    small\n                  />\n                </div>\n              </div>\n              <div\n                v-if=\"ecoContributionFormatted\"\n                class=\"buy-box-module__eco\"\n              >\n                {{ ecoContributionFormatted }}\n              </div>\n            </div>\n          </div>\n\n          <availability-status\n            class=\"buy-box-module__buy-box__availability\"\n            :delivery-speed=\"resultObject.deliverySpeed\"\n            :stock-levels=\"stockLevels\"\n            :disable-tooltip=\"true\"\n            theme=\"buy-box\"\n          />\n        </template>\n        <div\n          v-else\n          class=\"buy-box-module__expired-info\"\n        >\n          <span\n            data-test=\"buy-box-expired\"\n            class=\"buy-box-module__expired-info__text\"\n            >{{ $dict.get('online-Shop.Product.Expired') }}</span\n          >\n        </div>\n\n        <quantity-modification-hint-fi\n          class=\"buy-box-module__quantity-modification-hint\"\n          :hint=\"quantityModificationHint\"\n          :data-test-2=\"quantityDataTest2\"\n          icon=\"info\"\n        />\n\n        <button-fi\n          v-if=\"isAvailable\"\n          ref=\"addProductMobile\"\n          type=\"button\"\n          class=\"button-fi__primary buy-box-module__action-button button__add-to-cart\"\n          data-test=\"add-to-cart\"\n          :disabled=\"isLoading || addToCartLoading\"\n          @click.prevent=\"addProduct\"\n        >\n          {{ $dict.get('online-Shop.Product.Add-to-Cart') }}\n        </button-fi>\n\n        <button-fi\n          v-if=\"useMemoList && !isExpired && !isAppView && isAvailable\"\n          ref=\"addMemoListMobile\"\n          type=\"button\"\n          class=\"button-fi__tertiary buy-box-module__action-button button__add-to-memolist\"\n          data-test=\"add-to-wish-list\"\n          @click=\"addToMemoList\"\n        >\n          {{ $dict.get('online-Shop.Product.Add-to-Memo-List') }}\n        </button-fi>\n      </div>\n      <div\n        v-else\n        class=\"buy-box-module__buy-box--desktop\"\n      >\n        <div class=\"buy-box-module__buy-box__left\">\n          <loading-indicator\n            v-if=\"(isLoading && !haveErrors) || addToCartLoading\"\n            variant=\"spinnerLocal\"\n            spinoff=\"buy-box-module__buy-box--left\"\n            dark\n          />\n\n          <template v-if=\"!isExpired\">\n            <template v-if=\"!withoutPrices\">\n              <div\n                v-if=\"ecoContributionFormatted\"\n                class=\"buy-box-module__eco\"\n              >\n                <span>{{ $dict.get('checkout.Cart.Sum') }}</span>\n              </div>\n\n              <price-savings-fi\n                :class=\"priceSavingsClass\"\n                :best-price=\"getBestPrice\"\n              />\n            </template>\n\n            <div class=\"buy-box-module__buy-box__info\">\n              <availability-status\n                class=\"buy-box-module__buy-box__availability\"\n                :delivery-speed=\"resultObject.deliverySpeed\"\n                :stock-levels=\"stockLevels\"\n                :disable-tooltip=\"true\"\n                theme=\"buy-box\"\n              />\n\n              <div\n                v-if=\"!withoutPrices\"\n                class=\"buy-box-module__buy-box__info__text\"\n              >\n                <div class=\"buy-box-module__buy-box__vat\">\n                  <template v-if=\"resultObject.taxRate !== 0\">\n                    {{ $dict.get('online-Shop.Product.Vat-excluded') }},\n                  </template>\n                  {{ $dict.get('online-Shop.Product.Plus-Shipping') }}\n                </div>\n\n                <div class=\"buy-box-module__buy-box__basic-prices\">\n                  <div class=\"buy-box-module__buy-box__basic-prices__label\">\n                    {{ $dict.get('online-Shop.Product.Base-Price') }}:\n                  </div>\n\n                  <div class=\"buy-box-module__buy-box__basic-price\">\n                    <base-price-fi :best-price=\"resultObject\" />\n                  </div>\n\n                  <div\n                    v-if=\"ecoContributionFormatted\"\n                    class=\"buy-box-module__eco\"\n                  >\n                    <span>{{ ecoContributionFormatted }}</span>\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <availability-status\n              class=\"buy-box-module__buy-box__availability\"\n              :delivery-speed=\"resultObject.deliverySpeed\"\n              :stock-levels=\"stockLevels\"\n              :disable-tooltip=\"true\"\n              theme=\"buy-box\"\n            />\n          </template>\n\n          <div\n            v-else\n            class=\"buy-box-module__expired-info\"\n          >\n            <span\n              data-test=\"buy-box-expired\"\n              class=\"buy-box-module__expired-info__text\"\n              >{{ $dict.get('online-Shop.Product.Expired') }}</span\n            >\n          </div>\n        </div>\n\n        <div\n          v-if=\"!isExpired\"\n          class=\"buy-box-module__buy-box__right\"\n        >\n          <quantity-steps\n            v-if=\"isAvailable\"\n            ref=\"quantitySteps\"\n            class=\"theme--blocked\"\n            template=\"article\"\n            :requested-quantity=\"quantity\"\n            :item=\"resultObject\"\n            :price-rows-savings=\"resultPriceRowsSavings.length > 1 ? resultPriceRowsSavings : null\"\n            light\n            large\n            @blur=\"onBlur\"\n            @update-quantity=\"updateQuantity\"\n            @user-input=\"backgroundUpdateQuantity\"\n            @scroll-to-element=\"scrollToSavings\"\n            @value-rounded=\"onValueRounded\"\n          />\n\n          <div\n            v-if=\"isAvailable\"\n            class=\"buy-box-module__buy-box__quantity-per-package\"\n          >\n            {{ $dict.get('online-Shop.Product.Graduated-Prices.Quantity-Headline') }}\n            <template v-if=\"resultObject?.initialQuantity && resultObject?.price?.unit\">\n              ( {{ resultObject.initialQuantity }} {{ getSellingUnit(resultObject.price.unit) }} /\n              {{ $dict.get('online-Shop.Product.Pack') }} )\n            </template>\n          </div>\n\n          <product-partials-fi\n            v-if=\"isAvailable\"\n            class=\"buy-box-module__allow-partials\"\n            :best-price=\"resultObject\"\n          />\n\n          <quantity-modification-hint-fi\n            class=\"buy-box-module__quantity-modification-hint\"\n            :hint=\"quantityModificationHint\"\n            :data-test-2=\"quantityDataTest2\"\n            icon=\"info\"\n          />\n\n          <button-fi\n            v-if=\"isAvailable\"\n            ref=\"addProductDesktop\"\n            type=\"button\"\n            class=\"buy-box-module__buy-box__add-to-cart button-fi__primary buy-box-module__action-button button__add-to-cart button-fi--large\"\n            data-test=\"add-to-cart\"\n            :data-test-2=\"Boolean(isLoading || addToCartLoading) ? 'add-to-cart-disabled' : null\"\n            :disabled=\"Boolean(isLoading || addToCartLoading)\"\n            @click.prevent=\"addProduct\"\n          >\n            {{ $dict.get('online-Shop.Product.Add-to-Cart') }}\n          </button-fi>\n\n          <button-fi\n            v-if=\"useMemoList && !isAppView && isAvailable\"\n            ref=\"addMemoListDesktop\"\n            type=\"button\"\n            class=\"button-fi__tertiary buy-box-module__action-button button__add-to-memolist button-fi--large\"\n            data-test=\"add-to-wish-list\"\n            @click=\"addToMemoList\"\n          >\n            {{ $dict.get('online-Shop.Product.Add-to-Memo-List') }}\n          </button-fi>\n        </div>\n      </div>\n    </div>\n\n    <div\n      v-if=\"!haveBestPrice\"\n      class=\"buy-box-module__buy-box buy-box-module__buy-box__expired\"\n    >\n      <span\n        class=\"buy-box-module__buy-box__expired__text\"\n        data-test=\"buy-box-expired\"\n        >{{ $dict.get('online-Shop.Product.Expired') }}</span\n      >\n    </div>\n\n    <teleport\n      v-if=\"\n        isMounted &&\n        productDetailHeadMounted &&\n        resultPriceRowsSavings &&\n        resultPriceRowsSavings.length > 1 &&\n        !isExpired &&\n        !isMD\n      \"\n      to=\"#price-row-savings\"\n    >\n      <div class=\"price-rows-savings--mobile\">\n        <price-rows-savings-fi\n          ref=\"savings\"\n          mobile\n          :savings=\"resultPriceRowsSavings\"\n        />\n      </div>\n    </teleport>\n\n    <add-to-memo-list-dialog-fi\n      v-if=\"!isAppView\"\n      ref=\"addToMemoListDialog\"\n      :product=\"productCode\"\n      :quantity=\"quantity\"\n      multiple\n      @error-occured=\"enterErrorState\"\n      @added-to-memolist=\"$emit('added-to-memolist')\"\n    />\n  </component-wrapper>\n</template>\n\n<script>\nimport {\n  AvailabilityStatus,\n  BasePriceFi,\n  ButtonFi,\n  ErrorMessage,\n  LoadingIndicator,\n  PriceSavingsFi,\n  ProductPartialsFi,\n  QuantityModificationHintFi,\n} from 'atoms';\nimport ComponentWrapper from 'components/component-wrapper/ComponentWrapper';\nimport AddToMemoListDialogFi from 'components/memo-list/add-to-memo-list-dialog-fi/AddToMemoListDialogFi';\nimport PriceRowsSavingsFi from 'components/price-rows-savings-fi/PriceRowsSavingsFi';\nimport getEcoContribution from 'components/shop-modules/eco-contribution/getEcoContribution';\nimport QuantitySteps from 'components/shop-modules/quantity-steps/QuantitySteps';\nimport SnackbarFi from 'components/shop-modules/snackbar-fi/SnackbarFi';\nimport { useMemoListFunction } from 'composables/useMemoList';\nimport breakpointMixin from 'mixins/breakpointMixin';\nimport sellingUnitMixin from 'mixins/sellingUnitMixin';\nimport shoppingcartMixin from 'mixins/shoppingcartMixin';\nimport userMixin from 'mixins/userMixin';\nimport { mapGetters } from 'vuex';\n\nconst importGETBESTPRICE = () => import('gql/getBestPrice.gql');\n\nexport default {\n  name: 'BuyBoxModule',\n  components: {\n    AddToMemoListDialogFi,\n    AvailabilityStatus,\n    ButtonFi,\n    ComponentWrapper,\n    ErrorMessage,\n    LoadingIndicator,\n    PriceRowsSavingsFi,\n    ProductPartialsFi,\n    QuantityModificationHintFi,\n    QuantitySteps,\n    SnackbarFi,\n    BasePriceFi,\n    PriceSavingsFi,\n  },\n  mixins: [breakpointMixin, shoppingcartMixin, sellingUnitMixin, userMixin],\n  emits: ['added-to-memolist'],\n  data() {\n    return {\n      quantity: 0,\n      initialQuantity: null,\n      initialPrice: null,\n      shippingDialog: false,\n      haveErrors: false,\n      addToCartLoading: false,\n      getBestPrice: null,\n      haveBestPrice: true,\n      quantityModificationHint: '',\n      quantityDataTest2: null,\n      current: true,\n      GETBESTPRICE: null,\n      isMounted: false,\n    };\n  },\n  computed: {\n    ...mapGetters({\n      productDetailHeadMounted: 'layout/getProductDetailHeadMounted',\n    }),\n    useMemoList() {\n      return useMemoListFunction(this.$fischer);\n    },\n    priceSavingsClass() {\n      return {\n        'buy-box-module__buy-box__price-saving': true,\n        'buy-box-module__buy-box__price-saving--outdated': !this.current,\n      };\n    },\n    bestpriceVariables() {\n      return {\n        baseSiteId: this.$fischer.baseSiteId(),\n        accessToken: this.accessToken,\n        productCode: this.productCode,\n        qty: this.quantity !== this.initialQuantity ? this.quantity : 0, // this will avoid requesting the price twice on initial load\n        language: this.$fischer.siteLanguage(),\n        expired: true,\n        userId: this.$fischer.user.id(),\n      };\n    },\n    ecoContributionFormatted() {\n      if (!this.$fischer.shop.useEco()) {\n        return null;\n      }\n      const basePrice = getEcoContribution(this.getBestPrice)?.price?.basePrices?.[0];\n      if (!basePrice) {\n        return null;\n      }\n      const contribution = this.$dict.get('online-Shop.Product.Product-Eco', [\n        basePrice.qty,\n        basePrice.unit,\n        basePrice.valueFormatted,\n      ]);\n      return this.getSellingUnitInString(contribution);\n    },\n    stockLevels() {\n      return this.resultObject?.stockLevels || null;\n    },\n    showBuyBox() {\n      return Boolean(\n        (this.$fischer.shop.isClosedShop() || this.$fischer.shop.isOnlineShop()) &&\n          this.accessToken &&\n          this.productCode,\n      );\n    },\n    accessToken() {\n      return this.$fischer.user.accessToken();\n    },\n    isLoading() {\n      return this.$apolloData?.loading;\n    },\n    productCode() {\n      if (this.$fischer.query('article')) {\n        return this.$fischer.query('article');\n      }\n\n      return this.$fischer.catalogId('040390');\n    },\n    resultObject() {\n      return this.getBestPrice;\n    },\n    resultPriceRowsSavings() {\n      if (this.resultObject) {\n        let activeIndex = 0;\n        const savings = JSON.parse(\n          JSON.stringify([\n            {\n              ...this.initialPrice,\n              minQty: this.resultObject.initialQuantity,\n              priceQty: this.resultObject.initialQuantity,\n              savingsInformation: null,\n            },\n            ...(this.resultObject.priceRowsIncludingSavings || []),\n          ]),\n        );\n\n        savings.forEach((saving, index) => {\n          saving.active = false;\n\n          if (saving.minQty <= this.quantity) {\n            activeIndex = index;\n          }\n        });\n\n        savings[activeIndex].active = true;\n\n        return savings;\n      }\n\n      return null;\n    },\n    isAvailable() {\n      return this.resultObject?.deliverySpeed && this.resultObject.deliverySpeed !== 'NODELIVERY';\n    },\n    isExpired() {\n      return this.resultObject?.articleStatus && this.resultObject.articleStatus === 'EXPIRED';\n    },\n    withoutPrices() {\n      return this.$fischer.shop.hasPurchasePermissionWithoutPrices();\n    },\n  },\n  watch: {\n    getBestPrice(getBestPrice) {\n      if (this.initialQuantity || this.initialPrice) {\n        return;\n      }\n      if (this.canOrderItem(getBestPrice)) {\n        this.initialQuantity = getBestPrice.initialQuantity;\n        this.initialPrice = getBestPrice.price;\n        this.quantity = this.initialQuantity;\n      }\n    },\n  },\n  async mounted() {\n    this.GETBESTPRICE = (await importGETBESTPRICE()).default;\n    this.isMounted = true;\n  },\n  apollo: {\n    getBestPrice: {\n      query() {\n        return this.GETBESTPRICE;\n      },\n      errorPolicy: 'all',\n      variables() {\n        return this.bestpriceVariables;\n      },\n      skip() {\n        return (\n          !this.GETBESTPRICE ||\n          !this.productCode ||\n          (this.initialQuantity === this.quantity && this.getBestPrice?.requestedQuantity === 0)\n        );\n      },\n      async error(error) {\n        await this.logoutIfTokenInvalid(error);\n        this.haveBestPrice = false;\n        this.enterErrorState('error getting best price', error);\n      },\n      result({ data }) {\n        this.getBestPrice = data?.getBestPrice;\n\n        if (!this.getBestPrice?.price) {\n          this.haveBestPrice = false;\n        }\n      },\n    },\n  },\n  methods: {\n    onValueRounded(hint, dataTest2) {\n      this.quantityModificationHint = hint;\n      this.quantityDataTest2 = dataTest2;\n    },\n    onBlur(value, evt) {\n      // the blur cancels the click on any button... usually... performs the button's action here\n      const target = evt?.explicitOriginalTarget;\n      if (!target) {\n        return;\n      }\n      if (\n        target === this.$refs.addProductDesktop?.$el ||\n        target.parentNode === this.$refs.addProductDesktop?.$el ||\n        target === this.$refs.addProductMobile?.$el ||\n        target.parentNode === this.$refs.addProductMobile?.$el\n      ) {\n        this.addProduct();\n      }\n      if (\n        target === this.$refs.addMemoListDesktop?.$el ||\n        target.parentNode === this.$refs.addMemoListDesktop?.$el ||\n        target === this.$refs.addMemoListMobile?.$el ||\n        target.parentNode === this.$refs.addMemoListMobile?.$el\n      ) {\n        this.addToMemoList();\n      }\n    },\n    addToMemoList() {\n      this.quantityModificationHint = '';\n      this.$refs.addToMemoListDialog.show();\n    },\n    canOrderItem(bestPrice) {\n      return bestPrice?.quantityStepRanges?.length && bestPrice.quantityStepRanges[0].rangeValue;\n    },\n    updateQuantity(value) {\n      this.quantity = parseInt(value, 10);\n      this.quantityModificationHint = '';\n      this.current = true;\n    },\n    async backgroundUpdateQuantity(valueRaw) {\n      if (!valueRaw) {\n        this.current = false;\n        return;\n      }\n      const value = Number.parseInt(valueRaw);\n      if (this.lastInputValue === value || this.quantity === value) {\n        return;\n      }\n      this.lastInputValue = value;\n\n      const initial = this.getBestPrice?.initialQuantity;\n      if (!initial || value < initial) {\n        return;\n      }\n\n      try {\n        const query = (await importGETBESTPRICE()).default;\n        const backgroundBestPrice = await this.$apollo.query({\n          query,\n          errorPolicy: 'all',\n          variables: {\n            ...this.bestpriceVariables,\n            qty: value,\n          },\n        });\n        if (backgroundBestPrice.data?.getBestPrice?.requestedQuantity === this.lastInputValue) {\n          this.updateQuantity(value);\n        }\n      } catch (error) {\n        // noop\n      }\n    },\n    enterErrorState(...errors) {\n      this.haveErrors = true;\n      console.error(...errors);\n    },\n    addProduct() {\n      if (this.addToCartLoading) {\n        return;\n      }\n      this.addToCartLoading = true;\n      if (\n        this.quantity !==\n        Number(this.$refs.quantitySteps.getRawValue(this.$refs.quantitySteps.quantityInputValue))\n      ) {\n        this.$refs.quantitySteps.triggerInput();\n      }\n      this.addProductToCart({\n        productID: this.productCode,\n        productRequestedQuantity: this.quantity,\n        productInitialQuantity: this.resultObject.initialQuantity,\n      }).then((res) => {\n        if (res?.success) {\n          this.addToCartLoading = false;\n        }\n      });\n    },\n    scrollToSavings() {\n      if (IS_SSR) {\n        return;\n      }\n\n      const savings = document.querySelectorAll('.sticky-actions-intersector');\n      if (savings) {\n        this.$smoothScroll({\n          scrollTo: savings.length > 1 ? savings[1] : savings[0],\n          duration: 500,\n          updateHistory: false,\n          offset: -120,\n        });\n      }\n    },\n  },\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import './buy-box-module';\n</style>\n\n<style lang=\"scss\">\n@import './buy-box-module-unscoped';\n</style>\n"],"file":"assets/BuyBoxModule-Bfb0Z_T9.js"}