{"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":""}