{"version":3,"sources":["webpack:///../../../src/components/VSkeletonLoader/VSkeletonLoader.ts","webpack:///./src/modules/products/components/CardView.vue?ff42","webpack:///./node_modules/cache-loader/dist/cjs.js","webpack:///./src/modules/products/components/CardView.vue?6b08","webpack:///./src/modules/products/components/CardView.vue","webpack:///./src/assets/images/product-placeholder.jpg","webpack:///./src/modules/products/components/CardView.vue?cf7e","webpack:///./src/modules/products/components/CardView.vue?fbd6"],"names":["mixins","Elevatable","Measurable","Themeable","extend","name","props","boilerplate","Boolean","loading","tile","transition","String","type","types","Object","default","computed","attrs","this","isLoading","role","$attrs","classes","themeClasses","elevationClasses","$scopedSlots","rootTypes","actions","article","avatar","button","card","chip","heading","image","paragraph","sentences","table","text","methods","genBone","children","$createElement","staticClass","genBones","bone","split","length","generator","genStructure","Array","from","map","indexOf","mapBones","push","genSkeleton","getSlot","on","afterEnter","resetStyles","beforeEnter","onBeforeEnter","beforeLeave","onBeforeLeave","leaveCancelled","bones","replace","el","_initialStyle","display","style","setProperty","render","h","$listeners","class","measurableStyles","undefined","_vm","_h","_c","_self","_l","i","key","item","$style","img","item_img","topRow","price","_v","_s","_f","prices","actual","base","rub","nomenclature","go_to_nomenclature","id","nomenclatureText","_e","characteristics","characteristic","characteristicVal","product_code","currency","available_balances","available_post_production_residues","description","bottom","quantityInput","quantity","$event","upd_qty","add_cart","staticRenderFns","ProductCardView","Currencies","RUB","product_image","require","$emit","Mixins","CatalogPageMixin","__decorate","Prop","Component","components","TextField","PriceTooltips","CartBtn","injectStyles","context","locals","component","VBtn","VCard","VCardText","VCol","VImg","VRow","VSkeletonLoader","module","exports"],"mappings":"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","file":"js/chunk-9b4a35ba.7e3a5a3a.js","sourcesContent":["// Styles\nimport './VSkeletonLoader.sass'\n\n// Mixins\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\nimport { getSlot } from '../../util/helpers'\nimport { PropValidator } from 'vue/types/options'\n\nexport interface HTMLSkeletonLoaderElement extends HTMLElement {\n _initialStyle?: {\n display: string | null\n transition: string\n }\n}\n\n/* @vue/component */\nexport default mixins(\n Elevatable,\n Measurable,\n Themeable,\n).extend({\n name: 'VSkeletonLoader',\n\n props: {\n boilerplate: Boolean,\n loading: Boolean,\n tile: Boolean,\n transition: String,\n type: String,\n types: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n },\n\n computed: {\n attrs (): object {\n if (!this.isLoading) return this.$attrs\n\n return !this.boilerplate ? {\n 'aria-busy': true,\n 'aria-live': 'polite',\n role: 'alert',\n ...this.$attrs,\n } : {}\n },\n classes (): object {\n return {\n 'v-skeleton-loader--boilerplate': this.boilerplate,\n 'v-skeleton-loader--is-loading': this.isLoading,\n 'v-skeleton-loader--tile': this.tile,\n ...this.themeClasses,\n ...this.elevationClasses,\n }\n },\n isLoading (): boolean {\n return !('default' in this.$scopedSlots) || this.loading\n },\n rootTypes (): Record {\n return {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, card-heading',\n 'card-avatar': 'image, list-item-avatar',\n 'card-heading': 'heading',\n chip: 'chip',\n 'date-picker': 'list-item, card-heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'heading, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'table-cell@6',\n 'table-cell': 'text',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n ...this.types,\n }\n },\n },\n\n methods: {\n genBone (text: string, children: VNode[]) {\n return this.$createElement('div', {\n staticClass: `v-skeleton-loader__${text} v-skeleton-loader__bone`,\n }, children)\n },\n genBones (bone: string): VNode[] {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [string, number]\n const generator = () => this.genStructure(type)\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(generator)\n },\n // Fix type when this is merged\n // https://github.com/microsoft/TypeScript/pull/33050\n genStructure (type?: string): any {\n let children = []\n type = type || this.type || ''\n const bone = this.rootTypes[type] || ''\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.indexOf(',') > -1) return this.mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.indexOf('@') > -1) return this.genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.indexOf(',') > -1) children = this.mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.indexOf('@') > -1) children = this.genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(this.genStructure(bone))\n\n return [this.genBone(type, children)]\n },\n genSkeleton () {\n const children = []\n\n if (!this.isLoading) children.push(getSlot(this))\n else children.push(this.genStructure())\n\n /* istanbul ignore else */\n if (!this.transition) return children\n\n /* istanbul ignore next */\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n // Only show transition when\n // content has been loaded\n on: {\n afterEnter: this.resetStyles,\n beforeEnter: this.onBeforeEnter,\n beforeLeave: this.onBeforeLeave,\n leaveCancelled: this.resetStyles,\n },\n }, children)\n },\n mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(this.genStructure)\n },\n onBeforeEnter (el: HTMLSkeletonLoaderElement) {\n this.resetStyles(el)\n\n if (!this.isLoading) return\n\n el._initialStyle = {\n display: el.style.display,\n transition: el.style.transition,\n }\n\n el.style.setProperty('transition', 'none', 'important')\n },\n onBeforeLeave (el: HTMLSkeletonLoaderElement) {\n el.style.setProperty('display', 'none', 'important')\n },\n resetStyles (el: HTMLSkeletonLoaderElement) {\n if (!el._initialStyle) return\n\n el.style.display = el._initialStyle.display || ''\n el.style.transition = el._initialStyle.transition\n\n delete el._initialStyle\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-skeleton-loader',\n attrs: this.attrs,\n on: this.$listeners,\n class: this.classes,\n style: this.isLoading ? this.measurableStyles : undefined,\n }, [this.genSkeleton()])\n },\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[(_vm.loading)?_vm._l((4),function(i){return _c('v-col',{key:i,attrs:{\"cols\":\"3\"}},[_c('v-skeleton-loader',{attrs:{\"type\":\"card\"}})],1)}):_vm._l((_vm.items),function(item,i){return _c('v-col',{key:i,attrs:{\"cols\":\"3\"}},[_c('v-card',[_c('v-img',{class:_vm.$style.img,attrs:{\"src\":_vm.item_img(item)}}),_c('v-card-text',[_c('div',{class:_vm.$style.topRow},[_c('h2',{class:[_vm.$style.price, 'text-h2']},[_vm._v(\" \"+_vm._s(_vm._f(\"currency_rub\")(item.prices.actual.base.rub || ''))+\" \")]),_c('PriceTooltips',{attrs:{\"prices\":item.prices.actual}})],1),(item.nomenclature)?_c('div',{class:[_vm.$style.nomenclature, 'text-body-1']},[_c('v-btn',{attrs:{\"to\":_vm.go_to_nomenclature(item.id),\"text\":\"\"}},[_c('span',{class:['ml-n4', _vm.$style.nomenclatureText, 'overflow-text']},[_vm._v(\" \"+_vm._s(item.nomenclature || '')+\" \")])])],1):_vm._e(),_c('ul',{class:[_vm.$style.characteristics, 'pl-0']},[_c('li',{class:_vm.$style.characteristic},[_c('span',[_vm._v(\"Код: \")]),_c('span',{class:_vm.$style.characteristicVal},[_vm._v(\" \"+_vm._s(item.product_code || '')+\" \")])]),_c('li',{class:_vm.$style.characteristic},[_c('span',[_vm._v(\"Валюта: \")]),_c('span',{class:_vm.$style.characteristicVal},[_vm._v(_vm._s(_vm.currency))])]),_c('li',{class:_vm.$style.characteristic},[_c('span',[_vm._v(\"Доступные остатки: \")]),_c('span',{class:_vm.$style.characteristicVal},[_vm._v(\" \"+_vm._s(item.available_balances || '')+\" \")])]),_c('li',{class:_vm.$style.characteristic},[_c('span',[_vm._v(\"Доступные остатки после производства: \")]),_c('span',{class:_vm.$style.characteristicVal},[_vm._v(\" \"+_vm._s(item.available_post_production_residues || '')+\" \")])])]),_c('div',{class:[_vm.$style.description, 'text-caption']},[_vm._v(\" \"+_vm._s(item.description || '')+\" \")]),_c('div',{class:_vm.$style.bottom},[_c('TextField',{class:_vm.$style.quantityInput,attrs:{\"type\":\"number\",\"value\":item.quantity,\"hide-details\":\"\",\"dense\":\"\",\"background-color\":\"#fff\",\"clearable\":false},on:{\"input\":function($event){return _vm.upd_qty(item, $event)}}}),_c('CartBtn',{attrs:{\"product\":item},on:{\"add\":function($event){return _vm.add_cart(item)}}})],1)])],1)],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {\n Component,\n Mixins,\n Prop,\n} from 'vue-property-decorator';\nimport { TextField, CartBtn } from '@/components';\nimport { Products } from '@/modules/products/types';\nimport { Currencies } from '@/enums';\nimport PriceTooltips from './PriceTooltips.vue';\nimport CatalogPageMixin from '../mixins/catalog_page';\n\n@Component({\n components: {\n TextField,\n PriceTooltips,\n CartBtn,\n },\n})\nexport default class ProductCardView extends Mixins(CatalogPageMixin) {\n @Prop({ type: Array, default: () => ([]) })\n items!: Products.Product[];\n\n @Prop({ type: Boolean, default: false })\n loading!: boolean;\n\n get currency() {\n return Currencies.RUB;\n }\n\n item_img(item: Products.Product) {\n return item?.product_image || require('@/assets/images/product-placeholder.jpg');\n }\n\n upd_qty(item: Products.Product, quantity: string) {\n if (typeof item.id !== 'undefined') {\n this.$emit('upd_quantity', { item, quantity });\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CardView.vue?vue&type=template&id=14c7bfea&\"\nimport script from \"./CardView.vue?vue&type=script&lang=ts&\"\nexport * from \"./CardView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CardView.vue?vue&type=style&index=0&module=true&lang=scss&\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VImg,VRow,VSkeletonLoader})\n","module.exports = __webpack_public_path__ + \"img/product-placeholder.e4150be2.jpg\";","export { default } from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardView.vue?vue&type=style&index=0&module=true&lang=scss&\"; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-0-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-0-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-0-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-0-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardView.vue?vue&type=style&index=0&module=true&lang=scss&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"v-application\":\"CardView_v-application_2gvFv\",\"text-h1\":\"CardView_text-h1_FQKWq\",\"text-h2\":\"CardView_text-h2_16Hlw\",\"quantityInput\":\"CardView_quantityInput_17YJl\",\"img\":\"CardView_img_31zqI\",\"price\":\"CardView_price_3eXCq\",\"topRow\":\"CardView_topRow_TJ70Y\",\"nomenclature\":\"CardView_nomenclature_bME5S\",\"characteristics\":\"CardView_characteristics_NXjIa\",\"characteristic\":\"CardView_characteristic_36zwY\",\"characteristicVal\":\"CardView_characteristicVal_3tR9P\",\"description\":\"CardView_description_1dxvO\",\"bottom\":\"CardView_bottom_z6eDf\",\"nomenclatureText\":\"CardView_nomenclatureText_2yLq-\"};"],"sourceRoot":""}