{"version":3,"file":"product.js","mappings":"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","sources":["webpack://wcPPCP/webpack/bootstrap","webpack://wcPPCP/webpack/runtime/compat get default export","webpack://wcPPCP/webpack/runtime/define property getters","webpack://wcPPCP/webpack/runtime/hasOwnProperty shorthand","webpack://wcPPCP/webpack/runtime/make namespace object","webpack://wcPPCP/external window \"jQuery\"","webpack://wcPPCP/external window [\"wcPPCP\",\"utils\"]","webpack://wcPPCP/external window \"lodash\"","webpack://wcPPCP/external window [\"wp\",\"hooks\"]","webpack://wcPPCP/./assets/js/ppcp/product.js","webpack://wcPPCP/./assets/js/ppcp/event.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"jQuery\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wcPPCP\"][\"utils\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"lodash\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"hooks\"];","import $ from 'jquery';\nimport {getSetting} from \"@ppcp/utils\";\nimport {isEqual} from 'lodash';\nimport Event from './event';\n\nclass Product extends Event {\n\n constructor() {\n super();\n this.data = this.default_data = getSetting('product');\n this.variation = false;\n $(document.body).on('change', '[name=\"quantity\"]', this.onQuantityChange.bind(this));\n $(document.body).on('found_variation', this.foundVariation.bind(this));\n $(document.body).on('reset_data', this.resetVariationData.bind(this));\n }\n\n needsShipping() {\n return this.data?.needsShipping;\n }\n\n isVariationSelected() {\n return !!this.variation;\n }\n\n onQuantityChange(e) {\n if (e?.isTrigger) {\n //cause a short delay so this won't execute before foundVariation\n setTimeout(() => {\n this.trigger('quantityChange', this.getQuantity(), this);\n }, 50);\n } else {\n this.trigger('quantityChange', this.getQuantity(), this);\n }\n }\n\n foundVariation(e, variation) {\n this.variation = variation;\n const prevData = {...this.data};\n this.data = {\n ...this.data, ...{\n price: variation.display_price,\n needsShipping: !variation.is_virtual\n }\n };\n this.trigger('foundVariation', !isEqual(this.data, prevData), this);\n }\n\n resetVariationData() {\n this.variation = null;\n this.data = this.default_data;\n this.trigger('resetVariation', this);\n }\n\n getQuantity() {\n return parseInt($('[name=\"quantity\"]').val());\n }\n\n getPrice() {\n return this.data?.price;\n }\n\n getTotal() {\n return this.getQuantity() * this.getPrice();\n }\n\n isVariableProduct() {\n return $('[name=\"variation_id\"]').length > 0;\n }\n\n isVariableProductSelected() {\n const val = $('input[name=\"variation_id\"]').val();\n return !!val && \"0\" !== val;\n }\n\n getVariationData() {\n if (this.isVariableProduct()) {\n const attributes = this.variation ? this.variation.attributes : {};\n const elements = document.querySelectorAll('.variations [name^=\"attribute_\"]');\n if (elements) {\n elements.forEach((element) => {\n if (!(element.name in attributes)) {\n attributes[element.name] = element.value;\n }\n });\n }\n return attributes;\n }\n return null;\n }\n\n getId() {\n return parseInt(this.data?.id);\n }\n\n getVariationId() {\n if (this.variation) {\n return this.variation.variation_id;\n }\n return $('[name=\"variation_id\"]').val();\n }\n}\n\nexport {Product};\nexport default Product;","import {createHooks} from \"@wordpress/hooks\";\n\nclass Event {\n\n constructor() {\n this.hooks = createHooks();\n }\n\n on(event, callback, priority = 10) {\n this.hooks.addAction(event, 'wcPPCP', callback, priority);\n }\n\n trigger(event, ...args) {\n this.hooks.doAction(event, ...args);\n }\n\n addFilter(event, callback, priority = 10) {\n this.hooks.addFilter(event, 'wcPPCP', callback, priority);\n }\n\n applyFilters(event, ...args) {\n return this.hooks.applyFilters(event, ...args);\n }\n\n}\n\nexport default Event;"],"names":["__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","window","Product","_Event","_inherits","_super","_this","_classCallCheck","data","default_data","getSetting","variation","$","document","body","on","onQuantityChange","bind","_assertThisInitialized","foundVariation","resetVariationData","_this$data","this","needsShipping","e","_this2","isTrigger","setTimeout","trigger","getQuantity","prevData","_objectSpread","price","display_price","is_virtual","isEqual","parseInt","val","_this$data2","getPrice","length","isVariableProduct","attributes","elements","querySelectorAll","forEach","element","name","_this$data3","id","variation_id","Event","hooks","createHooks","event","callback","priority","arguments","undefined","addAction","_this$hooks","_len","args","Array","_key","doAction","apply","concat","addFilter","_this$hooks2","_len2","_key2","applyFilters"],"sourceRoot":""}