{"version":3,"file":"377.6cb79996c81157a7.js","mappings":"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","sources":["webpack:///../node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js","webpack:///../node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js","webpack:///../node_modules/@babel/runtime-corejs3/core-js/object/assign.js","webpack:///../node_modules/@babel/runtime-corejs3/helpers/extends.js","webpack:///./Scripts/Components/BuyButton.js","webpack:///./Scripts/Containers/BuyButton.container.js","webpack:///./Scripts/Containers/withReactiveStyleBuyButton.js","webpack:///./Scripts/Services/Cart.service.js","webpack:///./Scripts/Services/googleAnalytics.js","webpack:///../node_modules/core-js-pure/actual/object/assign.js","webpack:///../node_modules/core-js-pure/es/date/now.js","webpack:///../node_modules/core-js-pure/es/object/assign.js","webpack:///../node_modules/core-js-pure/es/parse-int.js","webpack:///../node_modules/core-js-pure/features/object/assign.js","webpack:///../node_modules/core-js-pure/full/object/assign.js","webpack:///../node_modules/core-js-pure/internals/number-parse-int.js","webpack:///../node_modules/core-js-pure/internals/object-assign.js","webpack:///../node_modules/core-js-pure/modules/es.date.now.js","webpack:///../node_modules/core-js-pure/modules/es.object.assign.js","webpack:///../node_modules/core-js-pure/modules/es.parse-int.js","webpack:///../node_modules/core-js-pure/stable/date/now.js","webpack:///../node_modules/core-js-pure/stable/object/assign.js","webpack:///../node_modules/core-js-pure/stable/parse-int.js"],"sourcesContent":["module.exports = require(\"core-js-pure/stable/date/now\");","module.exports = require(\"core-js-pure/stable/parse-int\");","module.exports = require(\"core-js-pure/features/object/assign\");","var _Object$assign = require(\"../core-js/object/assign\");\n\nfunction _extends() {\n module.exports = _extends = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","import React from 'react';\n\nconst BuyButton = ({ label, articleNumber, quantityFieldId, unitcodeFieldId, stockquantity, href, cssClass, onClick }) => (\n articleNumber ?\n <a className={cssClass} onClick={(e) => onClick(articleNumber, quantityFieldId, unitcodeFieldId, stockquantity, e.target)}>\n {label}\n </a>\n : <a className={cssClass} href={href}>\n {label}\n </a>\n)\n\nexport default BuyButton;","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport BuyButton from '../Components/BuyButton';\nimport { receive, loadError } from '../Actions/Cart.action';\nimport { catchError } from '../Actions/Error.action';\nimport { add as addToCartService } from '../Services/Cart.service';\nimport withReactiveStyleBuyButton from './withReactiveStyleBuyButton';\nimport Modal, { Header, Body } from '../Components/Modal';\nimport { googleAnalytics } from '../Services/googleAnalytics';\nimport constants from '../constants';\n\nclass BuyButtonContainer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n buyConfirmModalIsOpen: false,\n buyMinimumQuanityIsOpen: false,\n outOfQuantityConfirmModalIsOpen: false\n }\n\n this.toggleBuyConfirmModalIsOpen = this.toggleBuyConfirmModalIsOpen.bind(this);\n this.toggleBuyMinimumQuanityIsOpen = this.toggleBuyMinimumQuanityIsOpen.bind(this);\n this.toggleOutOfQuantityConfirmModalIsOpen = this.toggleOutOfQuantityConfirmModalIsOpen.bind(this);\n this.onModalAwnser = this.onModalAwnser.bind(this);\n\n if (this.props.unitcodeFieldId && document.getElementById(this.props.unitcodeFieldId)) {\n\n document.getElementById(this.props.unitcodeFieldId).addEventListener('change', (e) => {\n\n if (e.target.value && e.target.value > 1 && this.props.quantityFieldId) {\n document.getElementById(this.props.quantityFieldId).value = 1;\n } else {\n document.getElementById(this.props.quantityFieldId).value = this.props.multiplequantity;\n }\n })\n }\n }\n onModalAwnser() {\n this.toggleBuyConfirmModalIsOpen();\n var unitCodeValue = this.props.unitcodeFieldId ? document.getElementById(this.props.unitcodeFieldId).value : 1;\n var quantity = this.props.quantityFieldId ? document.getElementById(this.props.quantityFieldId).value * unitCodeValue : 1;\n this.props.addToCart(this.buttonRef.current,\n this.props.articleNumber,\n quantity,\n unitCodeValue,\n this.props.articleErpstatus)\n }\n toggleBuyConfirmModalIsOpen() {\n this.setState({\n buyConfirmModalIsOpen: !this.state.buyConfirmModalIsOpen\n })\n }\n toggleOutOfQuantityConfirmModalIsOpen() {\n this.setState({\n outOfQuantityConfirmModalIsOpen: !this.state.outOfQuantityConfirmModalIsOpen\n })\n }\n toggleBuyMinimumQuanityIsOpen(quantity) {\n this.setState({\n buyMinimumQuanityIsOpen: !this.state.buyMinimumQuanityIsOpen\n })\n }\n getCurrentCartItemQuantity(quantity) {\n var cartData = this.props.cart.orderRows;\n var addedstock = 0;\n var cartLength = cartData.filter(x => x.articleNumber == this.props.articleNumber);\n if (cartLength != undefined && cartLength.length > 0) {\n var stockincart = cartLength[0].quantity;\n addedstock = parseInt(quantity) + parseInt(stockincart);\n }\n return addedstock;\n }\n extractAndParseFloats(str) {\n // This regex matches a sequence of digits with an optional comma or period\n const regex = /\\d+[.,]?\\d*/g;\n const matches = str.match(regex);\n const floats = matches ? matches.map(num => parseFloat(num.replace(',', '.'))) : [];\n return floats[0];\n }\n render() {\n const { buyConfirmModalIsOpen, outOfQuantityConfirmModalIsOpen, buyMinimumQuanityIsOpen } = this.state;\n let {\n modalProducthastobeorderTitle,\n modalProducthastobeorderContent,\n modalProducthasexpiredContent,\n modalProducthasexpiredTitle,\n modalProductminquantityContent,\n modalProductminquantityTitle,\n canbuyover\n } = this.props;\n\n if (!modalProducthastobeorderTitle)\n modalProducthastobeorderTitle = \"\";\n\n if (!modalProducthastobeorderContent)\n modalProducthastobeorderContent = \"\";\n\n if (!modalProducthasexpiredContent)\n modalProducthasexpiredContent = \"\";\n\n if (!modalProducthasexpiredTitle)\n modalProducthasexpiredTitle = \"\";\n\n if (!modalProductminquantityContent)\n modalProductminquantityContent = \"\";\n\n if (!modalProductminquantityTitle)\n modalProductminquantityTitle = \"\";\n\n if (!canbuyover)\n canbuyover = \"\";\n\n var quantity = 1;\n\n if (this.props.quantityFieldId) {\n var quantityDomElement = document.getElementById(this.props.quantityFieldId);\n\n if (quantityDomElement) {\n quantity = quantityDomElement.value;\n }\n }\n return (\n <div className=\"favorite__modal\">\n <Modal\n isOpen={buyConfirmModalIsOpen}\n onCancel={this.toggleBuyConfirmModalIsOpen}\n onAccept={this.onModalAwnser}\n >\n <Header>\n <h2> {modalProducthastobeorderTitle}</h2>\n </Header>\n <Body>\n {modalProducthastobeorderContent && modalProducthastobeorderContent}\n </Body>\n </Modal>\n\n <Modal\n isOpen={outOfQuantityConfirmModalIsOpen}\n onCancel={this.toggleOutOfQuantityConfirmModalIsOpen}\n onAccept={this.toggleOutOfQuantityConfirmModalIsOpen}\n >\n <Header>\n <h2>{modalProducthasexpiredTitle}</h2>\n </Header>\n <Body>\n {modalProducthasexpiredContent && modalProducthasexpiredContent.replace(\"stockQuantity\", this.props.stockquantity)}\n </Body>\n </Modal>\n\n <Modal\n isOpen={buyMinimumQuanityIsOpen}\n onCancel={this.toggleBuyMinimumQuanityIsOpen}\n onAccept={this.toggleBuyMinimumQuanityIsOpen}\n >\n <Header>\n <h2>{modalProductminquantityTitle}</h2>\n </Header>\n <Body>{modalProductminquantityContent && modalProductminquantityContent.replace(\"multiplequantity\", this.props.multiplequantity).replace(\"addThis\", this.props.multiplequantity - (quantity % this.props.multiplequantity))}</Body>\n\n </Modal>\n <BuyButton {...this.props}\n onClick={(articleNumber, quantityFieldId, unitcodeFieldId, articleErpstatus, ref) => {\n var unitCodeValue = unitcodeFieldId ? document.getElementById(unitcodeFieldId).value : 1;\n var quantity = quantityFieldId ? document.getElementById(quantityFieldId).value * unitCodeValue : 1;\n var addedstock = this.getCurrentCartItemQuantity(quantity) ;\n if (quantity > this.props.stockquantity && canbuyover != \"True\") {\n this.toggleOutOfQuantityConfirmModalIsOpen();\n }\n else if (addedstock > this.props.stockquantity && canbuyover != \"True\") {\n this.toggleOutOfQuantityConfirmModalIsOpen();\n }\n else if (quantity % this.props.multiplequantity !== 0) {\n this.toggleBuyMinimumQuanityIsOpen(quantity);\n }\n else if (this.props.articleErpstatus == 4) {\n this.toggleBuyConfirmModalIsOpen();\n }\n else {\n this.props.onClick({ articleNumber, quantityFieldId, unitcodeFieldId })\n // this.props.onClick(this.buttonRef.current, articleNumber, quantity, unitcodeFieldId, articleErpstatus)\n }\n let dataContext = constants.context;\n if (ref.closest(\"[data-context]\"))\n dataContext = ref.closest(\"[data-context]\").dataset.context\n const price = this.extractAndParseFloats(this.props.priceIncVat)\n const categoryList = this.props.categoryList.split(\",\")\n let obj = {\n event: 'add_to_cart',\n ecommerce: {\n items: [{\n item_name: this.props.name,\n item_id: this.props.articleNumber,\n price: price,\n item_brand: this.props.brand,\n quantity: quantity,\n item_list_id: dataContext\n }]\n }\n }\n categoryList.forEach((category, idx) => {\n obj.ecommerce.items[0][`item_category${idx + 1}`] = category;\n });\n googleAnalytics(obj)\n }\n } />\n\n </div>\n );\n }\n}\n\n\nconst mapStateToProps = state => {\n const { cart, checkout } = state;\n return {\n cart,\n checkout,\n }\n}\nconst mapDispatchToProps = dispatch => {\n return {\n onSuccess: (cart) => {\n dispatch(receive(cart));\n },\n\n onError: (ex) => {\n dispatch(catchError(ex, error => loadError(error)));\n }\n }\n}\n\nconst onClick = ({ articleNumber, quantityFieldId, unitcodeFieldId }) => {\n var unitCodeValue = unitcodeFieldId ? document.getElementById(unitcodeFieldId).value : 1;\n var quantity = quantityFieldId ? document.getElementById(quantityFieldId).value * unitCodeValue : 1;\n\n return addToCartService({ articleNumber, quantity });\n}\nexport default connect(mapStateToProps, mapDispatchToProps)(\n withReactiveStyleBuyButton(BuyButtonContainer, onClick, 'buy-button-container'));","import React, { Component } from 'react';\n\nconst StateStyles = {\n LOADING: \"--loading\",\n SUCCESS: \"--success\",\n ERROR: \"--error\",\n};\n\n/**\n * Represents a HOC which wraps a BuyButton or ReorderButton and applies diffrent styles to it\n * depending on its click state.\n * @param {*} WrappedComponent The button component.\n * @param {*} onClick The button's onClick event.\n * @param {*} stylePrefix The style prefix to append state's modifiers. For\n * example, 'button' will result as 'button--loading'.\n * \n * Some available props that the HOC component supports:\n * autoReset : it is true by default. Not its value, but the behaviour is like that. Unless people set it as false, by default, button is always reset to neutral state after the request is completed.\n * resetTimeout: Number milisecond after the complete state, the style of button will be reset. If don't set, it is 2000\n * minimumLoadingTime: Mininum milisecond to display the loading state. If don't set, it is 1000\n * onSuccess: callback if onClick method returns data\n * onError: callback if onClick method throws an exception\n */\nexport default function withReactiveStyleBuyButton(WrappedComponent, onClick, stylePrefix) {\n return class extends Component {\n constructor(props) {\n super(props);\n this.state = {\n stateClass: '',\n startTime: 0,\n }\n }\n\n onNeutralState() {\n this.setState({\n stateClass: '',\n startTime: 0,\n });\n }\n \n onLoadingState() {\n this.setState({\n stateClass: `${stylePrefix}${StateStyles.LOADING}`,\n startTime: Date.now(),\n });\n }\n \n onCompleteState(success) {\n const changeState = () => {\n this.setState({\n stateClass: `${stylePrefix}${success ? StateStyles.SUCCESS : StateStyles.ERROR}`,\n });\n // if `autoReset` is true, which is default, the style will be changed\n // to neutral after a `resetTimeout` amount of time (2 seconds by default).\n this.props.autoReset !== false && setTimeout(() => {\n this.onNeutralState();\n }, this.props.resetTimeout || 2000);\n }\n\n const loadingDuration = Date.now() - this.state.startTime;\n const minimumLoadingTime = this.props.minimumLoadingTime || 1000;\n // ensure the loading indicator is displayed at least a `minimumLoadingTime`\n // amount of time before changing it to Success or Error.\n if (loadingDuration >= minimumLoadingTime) {\n changeState();\n } else {\n setTimeout(() => {\n changeState();\n }, minimumLoadingTime - loadingDuration);\n }\n }\n\n async onButtonClick(params) {\n try {\n this.onLoadingState();\n const data = await onClick(params);\n if(data) {\n this.onCompleteState(true);\n this.props.onSuccess(data);\n } else {\n this.onNeutralState();\n }\n } catch(err) {\n this.onCompleteState(false);\n this.props.onError(err);\n }\n }\n \n render() {\n return (\n <span className={this.state.stateClass}>\n <WrappedComponent onClick={(params) => this.onButtonClick(params)} {...this.props} />\n </span>\n );\n }\n }\n}","import { post } from './http';\n\nexport const add = async ({ articleNumber, quantity = 1 }) => {\n if (!quantity || isNaN(quantity) || parseInt(quantity) <= 0) {\n throw \"Invalid quantity\";\n }\n\n const response = await post('/api/cart/add', { articleNumber, quantity: parseInt(quantity) });\n return response.json();\n}\n\nexport const reorder = async (orderRows) => {\n const response = await post('/api/cart/reorder', { orderRows });\n return response.json();\n}","export const googleAnalytics = (item) => {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(item);\n return true;\n}","'use strict';\nvar parent = require('../../stable/object/assign');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../../modules/es.date.now');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Date.now;\n","'use strict';\nrequire('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","'use strict';\nrequire('../modules/es.parse-int');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseInt;\n","'use strict';\nmodule.exports = require('../../full/object/assign');\n","'use strict';\nvar parent = require('../../actual/object/assign');\n\nmodule.exports = parent;\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Date = Date;\nvar thisTimeValue = uncurryThis($Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return thisTimeValue(new $Date());\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt !== $parseInt }, {\n parseInt: $parseInt\n});\n","'use strict';\nvar parent = require('../../es/date/now');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../es/parse-int');\n\nmodule.exports = parent;\n"],"names":["module","exports","_Object$assign","_extends","target","i","arguments","length","source","key","Object","prototype","hasOwnProperty","call","apply","this","BuyButton","label","articleNumber","quantityFieldId","unitcodeFieldId","stockquantity","href","cssClass","onClick","React","className","e","BuyButtonContainer","Component","constructor","props","_context","_context2","_context3","_context4","super","state","buyConfirmModalIsOpen","buyMinimumQuanityIsOpen","outOfQuantityConfirmModalIsOpen","toggleBuyConfirmModalIsOpen","_bindInstanceProperty","toggleBuyMinimumQuanityIsOpen","toggleOutOfQuantityConfirmModalIsOpen","onModalAwnser","document","getElementById","addEventListener","value","multiplequantity","unitCodeValue","quantity","addToCart","buttonRef","current","articleErpstatus","setState","getCurrentCartItemQuantity","cartData","cart","orderRows","addedstock","cartLength","_filterInstanceProperty","x","undefined","stockincart","_parseInt","extractAndParseFloats","str","matches","match","_mapInstanceProperty","num","_parseFloat","replace","render","_this$state","_this$props","modalProducthastobeorderTitle","modalProducthastobeorderContent","modalProducthasexpiredContent","modalProducthasexpiredTitle","modalProductminquantityContent","modalProductminquantityTitle","canbuyover","quantityDomElement","Modal","isOpen","onCancel","onAccept","Header","Body","ref","dataContext","constants","context","closest","dataset","price","priceIncVat","categoryList","split","obj","event","ecommerce","items","item_name","name","item_id","item_brand","brand","item_list_id","_forEachInstanceProperty","category","idx","googleAnalytics","connect","checkout","dispatch","onSuccess","receive","onError","ex","catchError","error","loadError","withReactiveStyleBuyButton","addToCartService","StateStyles","LOADING","SUCCESS","ERROR","WrappedComponent","stylePrefix","stateClass","startTime","onNeutralState","onLoadingState","_Date$now","onCompleteState","success","changeState","autoReset","_setTimeout","resetTimeout","loadingDuration","minimumLoadingTime","onButtonClick","params","data","err","add","async","isNaN","post","json","reorder","item","window","dataLayer","push","parent","path","Date","now","assign","parseInt","global","fails","uncurryThis","toString","trim","whitespaces","$parseInt","Symbol","ITERATOR","iterator","hex","exec","FORCED","string","radix","S","DESCRIPTORS","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","toObject","IndexedObject","$assign","defineProperty","concat","b","enumerable","get","A","B","symbol","alphabet","forEach","chr","join","T","argumentsLength","index","getOwnPropertySymbols","f","propertyIsEnumerable","keys","j","$","$Date","thisTimeValue","getTime","stat","arity","forced"],"sourceRoot":""}