@apicart/vue-components
Version:
Apicart Vue.Js components for simple e-commerce platform development
8 lines (6 loc) • 7.8 kB
JavaScript
/**
* @apicart/vue-components v1.0.0-alpha7
* (c) 2018-2020 Apicart Company
* Released under the MIT License.
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@apicart/core-sdk"),require("../.."),require("./..")):"function"==typeof define&&define.amd?define(["@apicart/core-sdk","../..","./.."],e):(t=t||self).ApicartProductsList=e(t.Apicart,t.src,t.components)}(this,(function(t,e,a){"use strict";function r(t,e,a,r){return new(a||(a=Promise))((function(o,i){function n(t){try{d(r.next(t))}catch(t){i(t)}}function c(t){try{d(r.throw(t))}catch(t){i(t)}}function d(t){var e;t.done?o(t.value):(e=t.value,e instanceof a?e:new a((function(t){t(e)}))).then(n,c)}d((r=r.apply(t,e||[])).next())}))}function o(t,e){var a,r,o,i,n={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(a)throw new TypeError("Generator is already executing.");for(;n;)try{if(a=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return n.label++,{value:i[1],done:!1};case 5:n.label++,r=i[1],i=[0];continue;case 7:i=n.ops.pop(),n.trys.pop();continue;default:if(!(o=n.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){n=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){n.label=i[1];break}if(6===i[0]&&n.label<o[1]){n.label=o[1],o=i;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(i);break}o[2]&&n.ops.pop(),n.trys.pop();continue}i=e.call(t,n)}catch(t){i=[6,t],r=0}finally{a=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var i={list:[],descriptionEnabled:!0},n=t.VueComponentsProductsDownloader||e.ProductsDownloader,c=(t.VueComponentsTranslator||e.Translator).getI18n(),d="undefined"!=typeof window,s={name:"apicart-products-list",i18n:c,components:{"apicart-buy-button":d&&window.ApicartBuyButton?window.ApicartBuyButton:a.ApicartBuyButton,"apicart-loader":d&&window.ApicartLoader?window.ApicartLoader:a.ApicartLoader},props:{productsList:{type:Array,default:function(){return[]}},categoryKeyPath:{type:String,default:"default"}},computed:{preloadedProductsData:function(){return n.getLoadedProductsData(this.productsList)},productsLoaded:function(){return this.productsData.length>0}},data:function(){return{loadedProductsData:[],loaderVisible:!1,descriptionEnabled:!1}},watch:{categoryKeyPath:function(){this.loadProductsData()}},serverPrefetch:function(){return this.loadProductsData()},methods:{loadProductsData:function(){return r(this,void 0,void 0,(function(){var t;return o(this,(function(e){switch(e.label){case 0:return this.loaderVisible=!0,[4,n.getProductsData(this.productsList)];case 1:return t=e.sent(),this.loaderVisible=!1,"undefined"!=typeof window&&(this.loadedProductsData=t),[2]}}))}))}},created:function(){i=t.Utils.Objects.merge(i,t.getConfigParameter("vueComponents.category.products")),t.getConfigParameter("store"),this.descriptionEnabled=i.descriptionEnabled},mounted:function(){this.preloadedProductsData.length!==this.productsList.length&&this.loadProductsData()}};!function(t,e){void 0===e&&(e={});var a=e.insertAt;if(t&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===a&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}('@charset "UTF-8";.apicart-products__loader{width:100%;text-align:center}.apicart-products__list{display:flex;flex-wrap:wrap;width:100%;margin:0 auto}.apicart-products__product{width:100%;display:flex;flex-direction:column;justify-content:space-between;padding-bottom:30px}@media (min-width:576px){.apicart-products__product{width:calc(100% * (1/2) - 6px);margin-right:6px}}@media (min-width:768px){.apicart-products__product{width:calc(100% * (1/3) - 6px)}}@media (min-width:1200px){.apicart-products__product{width:calc(25% - 6px)}}.apicart-products__product-image{position:absolute;transform:translateX(-50%);top:0;max-width:100%;left:50%;padding:26px;max-height:100%}.apicart-products__product-image-wrapper{display:flex;flex:1;padding-top:100%;position:relative;background:#f2f2f2;border-radius:2px}.apicart-products__product-image-wrapper--without-image::before{content:"";font-family:apicart-icons;transform:translateX(-50%) translateY(-50%);top:50%;left:50%;position:absolute;z-index:0;color:#d9d9d9;font-size:100px}.apicart-products__product-info-wrapper{padding:10px}.apicart-products__product-info-line{margin-bottom:12px;font-size:14px;display:block;text-decoration:none;color:inherit}.apicart-products__product-info-line--name{padding:8px 0;text-transform:uppercase}.apicart-products__product-info-line:last-of-type{margin-bottom:0}.apicart-products__product-info-price-buy-button{align-items:center;display:flex;justify-content:space-between;flex-wrap:wrap}.apicart-products__product-info-price{margin:8px 8px 8px 0}');return function(t,e,a,r,o,i,n,c,d,s){"boolean"!=typeof n&&(d=c,c=n,n=!1);const p="function"==typeof a?a.options:a;let u;if(t&&t.render&&(p.render=t.render,p.staticRenderFns=t.staticRenderFns,p._compiled=!0,o&&(p.functional=!0)),r&&(p._scopeId=r),i?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,d(t)),t&&t._registeredComponents&&t._registeredComponents.add(i)},p._ssrRegister=u):e&&(u=n?function(t){e.call(this,s(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,c(t))}),u)if(p.functional){const t=p.render;p.render=function(e,a){return u.call(a),t(e,a)}}else{const t=p.beforeCreate;p.beforeCreate=t?[].concat(t,u):[u]}return a}({render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{attrs:{"data-category":t.categoryKeyPath}},[!(t.loadedProductsData.length?t.loadedProductsData:t.preloadedProductsData).length||t.loaderVisible?a("div",{staticClass:"apicart-products__loader"},[a("apicart-loader",{attrs:{visible:!0}})],1):t._e(),a("div",{staticClass:"apicart-products__list"},t._l(t.loadedProductsData.length?t.loadedProductsData:t.preloadedProductsData,(function(e){return a("div",{key:e.data.id,staticClass:"apicart-products__product"},[a("a",{staticClass:"apicart-products__product-image-wrapper",class:{"apicart-products__product-image-wrapper--without-image":!e.data.images.primary.url},attrs:{role:!e.pageUrl&&"button",href:!!e.pageUrl&&e.pageUrl,"aria-label":e.data.name}},[e.data.images.primary.url?a("img",{staticClass:"apicart-products__product-image",attrs:{src:e.data.images.primary.url,loading:"lazy",alt:e.data.name}}):t._e()]),a("div",{staticClass:"apicart-products__product-info-wrapper"},[a("a",{staticClass:"apicart-products__product-info-line apicart-products__product-info-line--name",attrs:{role:!e.pageUrl&&"button",href:!!e.pageUrl&&e.pageUrl}},[a("strong",[t._v(t._s(e.data.name))])]),t.descriptionEnabled&&e.data&&e.data.description&&e.data.description.length?a("div",{staticClass:"apicart-products__product-info-line",domProps:{innerHTML:t._s(e.data.description)}}):t._e(),a("div",{staticClass:"apicart-products__product-info-line apicart-products__product-info-price-buy-button"},[a("span",{staticClass:"apicart-products__product-info-price"},[t._v(t._s(t.$n(e.data.price,"currency")))]),a("span",[a("apicart-buy-button",{attrs:{productUrl:e.dataUrl}})],1)])])])})),0)])},staticRenderFns:[]},void 0,s,void 0,!1,void 0,!1,void 0,void 0,void 0)}));