{"version":3,"file":"js/45760.e7ce20861021a428.js","mappings":"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","sources":["webpack://lawline/./resources/assets/js/vue/apps/catalog/components/ProductCard.vue","webpack://lawline/./resources/assets/js/vue/apps/catalog/components/ProductCard.vue?4868","webpack://lawline/./resources/assets/js/vue/apps/catalog/components/ProductCard.vue?7502"],"sourcesContent":["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { defineAsyncComponent } from 'vue';\nimport { mapActions, mapGetters } from 'vuex';\nimport _find from 'lodash/find';\nexport default {\n components: {\n 'product-image': defineAsyncComponent(function () {\n return import('./ProductImage');\n }),\n 'product-body': defineAsyncComponent(function () {\n return import('./ProductBody');\n }),\n 'product-rating-options': defineAsyncComponent(function () {\n return import('./ProductRatingOptions');\n })\n },\n props: {\n isUserOwned: {\n type: Boolean,\n \"default\": false\n },\n product: {\n type: Object\n }\n },\n emits: ['hook:mounted'],\n computed: _objectSpread(_objectSpread({}, mapGetters('Search', {\n isGuest: 'isGuest',\n ownedProductCache: 'ownedProductCache',\n hiddenProductIds: 'hiddenProductIds',\n hideableProductIds: 'hideableProductIds',\n showCompletedCourses: 'showCompletedCourses'\n })), {}, {\n ownedProduct: function ownedProduct() {\n return _find(this.ownedProductCache, {\n id: this.product.id\n }) || {};\n },\n shouldHide: function shouldHide() {\n // can't hide completed courses if not authenticated\n if (this.isGuest) {\n return false;\n }\n\n // nothing to do if this course isn't completed\n if (this.ownedProduct.status !== 'Completed') {\n return false;\n }\n\n // remember that this product is hideable but don't cause infinite loops\n if (this.hideableProductIds.indexOf(this.product.id) === -1) {\n this.addHideableProductId(this.product.id);\n }\n\n // don't hide if we're showing completed courses\n if (this.showCompletedCourses) {\n return false;\n }\n\n // if it's already hidden, just return true without causing infinite loops\n if (this.hiddenProductIds.indexOf(this.product.id) > -1) {\n return true;\n }\n\n // we want it hidden and it's not yet\n this.addHiddenProductId(this.product.id);\n return true;\n }\n }),\n beforeUnmount: function beforeUnmount() {\n this.removeHiddenProductId(this.product.id);\n this.removeHideableProductId(this.product.id);\n },\n mounted: function mounted() {\n this.$emit('hook:mounted');\n },\n methods: _objectSpread({}, mapActions('Search', ['addHiddenProductId', 'addHideableProductId', 'removeHiddenProductId', 'removeHideableProductId']))\n};","/* unplugin-vue-components disabled */import { render } from \"./ProductCard.vue?vue&type=template&id=fbdacdfa\"\nimport script from \"./ProductCard.vue?vue&type=script&lang=js\"\nexport * from \"./ProductCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_product_image = _resolveComponent(\"product-image\");\n var _component_product_body = _resolveComponent(\"product-body\");\n var _component_product_rating_options = _resolveComponent(\"product-rating-options\");\n return _openBlock(), _createElementBlock(\"div\", {\n \"class\": _normalizeClass([{\n hidden: $options.shouldHide\n }, \"flex flex-col items-stretch border-b border-solid border-gray-200 py-6 last:border-b-0 sm:flex-row\"])\n }, [_createVNode(_component_product_image, {\n product: $props.product\n }, null, 8, [\"product\"]), _createVNode(_component_product_body, {\n product: $props.product,\n \"is-user-owned\": $props.isUserOwned\n }, null, 8, [\"product\", \"is-user-owned\"]), _createVNode(_component_product_rating_options, {\n product: $props.product\n }, null, 8, [\"product\"])], 2);\n}"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","arg","input","hint","prim","toPrimitive","undefined","res","call","TypeError","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","components","defineAsyncComponent","props","isUserOwned","type","Boolean","product","emits","computed","isGuest","ownedProductCache","hiddenProductIds","hideableProductIds","showCompletedCourses","ownedProduct","this","id","shouldHide","status","indexOf","addHideableProductId","addHiddenProductId","beforeUnmount","removeHiddenProductId","removeHideableProductId","mounted","$emit","methods","_ctx","_cache","$props","$setup","$data","$options","_component_product_image","_component_product_body","_component_product_rating_options","hidden"],"sourceRoot":""}