{"version":3,"sources":["webpack:///./src/Pages/Store.vue?460b","webpack:///src/Pages/Store.vue","webpack:///./src/Pages/Store.vue?6368","webpack:///./src/Pages/Store.vue","webpack:///./src/classes/Product.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","staticStyle","_e","breadcrumbs","model","value","callback","$$v","window","expression","key","store","tag","selectedProduct","staticRenderFns","props","data","loading","computed","crumbs","methods","asyncData","$VBL","get","subdomain","checkSelected","products","length","Product","search","onDebug","mounted","watch","components","StoreFront","ProductDisplay","component","VBtn","VCol","VContainer","VImg","VOverlay","VProgressCircular","VRow","VWindow","VWindowItem","dto","imageLibrary","images","requirements","player","update","JSON","parse","Object","assign","jsonProps","isString","options","map","o","sort","firstBy","forEach","f","i","myOrder","correctOrder","push","inventoryHistory","filter","id","note","x","inventory","inventoryLogSum","organizationProductId","amount","status","keepInventory","finalOptions","calcInventoryChange","organizationId","parentId","name","title","subtitle","description","descriptionIsHtml","price","oldPrice","deleted","published","moreInfo","moreInfoBtn","moreInfoOpen","urlTag","stringify","showInStore","m","selected","a","toLowerCase","opt","salesRecords","allPricesUnfiltered","findIndex","allPrices","high","max","low","min","Set","priceRange","size","includes","v","sum","inventoryCount","flatten","l","find","startsWith","substring","limit","altAmount","replace","contactReq","delivery","_props"],"mappings":"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","file":"js/chunk-666d44cb.33d9e188.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[(_vm.loading)?_c('v-overlay',{staticClass:\"align-center justify-center\",attrs:{\"color\":\"white\",\"z-index\":\"100000\"}},[_c('v-img',{attrs:{\"src\":\"https://vblimages.blob.core.windows.net/images/6fcdddd2-bbf3-483a-9b86-30017d8d26ed.png\",\"max-height\":\"240px\",\"max-width\":\"240px\"}},[_c('div',{staticClass:\"align-center justify-center d-flex fill-height\",staticStyle:{\"width\":\"100%\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"size\":\"200\",\"color\":\"#094886\"}})],1)])],1):_vm._e(),_c('v-row',{staticClass:\"not-printable\",attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"pl-4\",attrs:{\"cols\":\"12\"}},[_c('vbl-breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[(_vm.store)?_c('v-window',{attrs:{\"touchless\":\"\"},model:{value:(_vm.window),callback:function ($$v) {_vm.window=$$v},expression:\"window\"}},[_c('v-window-item',{key:0},[_c('StoreFront',{attrs:{\"store\":_vm.store}})],1),_c('v-window-item',{key:1},[(_vm.window === 1)?_c('ProductDisplay',{attrs:{\"tag\":_vm.tag,\"productIn\":_vm.selectedProduct}}):_vm._e()],1)],1):_vm._e()],1)],1),(false)?_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.onDebug}},[_vm._v(\"debug store\")]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-container fluid class=\"pa-0\">\r\n    <v-overlay v-if=\"loading\" color=\"white\" class=\"align-center justify-center\" z-index=\"100000\">\r\n      <v-img src=\"https://vblimages.blob.core.windows.net/images/6fcdddd2-bbf3-483a-9b86-30017d8d26ed.png\" max-height=\"240px\" max-width=\"240px\">\r\n        <div class=\"align-center justify-center d-flex fill-height\" style=\"width: 100%\">\r\n          <v-progress-circular indeterminate size=\"200\" color=\"#094886\" />\r\n        </div>\r\n      </v-img>\r\n    </v-overlay>\r\n    <v-row dense class=\"not-printable\">\r\n      <v-col cols=\"12\" class=\"pl-4\">\r\n        <vbl-breadcrumbs :crumbs=\"breadcrumbs\"></vbl-breadcrumbs>\r\n      </v-col>\r\n      <v-col cols=\"12\">\r\n        <v-window  v-if=\"store\" v-model=\"window\" touchless>\r\n          <v-window-item :key=\"0\">\r\n            <StoreFront :store=\"store\"></StoreFront>\r\n          </v-window-item>\r\n          <v-window-item :key=\"1\">\r\n            <ProductDisplay\r\n              v-if=\"window === 1\"\r\n              :tag=\"tag\"\r\n              :productIn=\"selectedProduct\"\r\n            ></ProductDisplay>\r\n          </v-window-item>\r\n        </v-window>\r\n      </v-col>\r\n    </v-row>\r\n    <v-btn v-if=\"false\" color=\"success\" @click=\"onDebug\">debug store</v-btn>\r\n  </v-container>\r\n</template>\r\n\r\n<script>\r\nimport Product from '@/classes/Product'\r\nimport { mapGetters } from 'vuex'\r\nconst StoreFront = () => import('@/components/Store/StoreFront.vue')\r\nconst ProductDisplay = () => import('@/components/Store/ProductDisplay.vue')\r\n\r\nexport default {\r\n  props: ['tag'],\r\n  data () {\r\n    return {\r\n      loading: false,\r\n      window: 0,\r\n      store: null,\r\n      selectedProduct: null\r\n    }\r\n  },\r\n  computed: {\r\n    ...mapGetters(['subdomain']),\r\n    breadcrumbs () {\r\n      if (!this.selectedProduct) return []\r\n      const crumbs = [\r\n        {\r\n          text: this.store.name,\r\n          to: { name: 'store-front' },\r\n          exact: true,\r\n          disabled: false\r\n        },\r\n        {\r\n          text: this.selectedProduct?.title,\r\n          disabled: true\r\n        }\r\n      ]\r\n      return crumbs\r\n    }\r\n  },\r\n  methods: {\r\n    asyncData () {\r\n      this.loading = true\r\n      this.$VBL.store.get(this.subdomain)\r\n        .then(r => {\r\n          this.store = r.data\r\n          this.checkSelected()\r\n        })\r\n        .catch(e => console.log(e))\r\n        .finally(() => { this.loading = false })\r\n    },\r\n    checkSelected () {\r\n      if (this.tag && this.store && this.store.products.length) {\r\n        const p = this.store.products.find(f => f.urlTag === this.tag)\r\n        this.selectedProduct = new Product(p)\r\n        this.window = 1\r\n      } else {\r\n        this.window = 0\r\n        this.selectedProduct = null\r\n        this.search = null\r\n      }\r\n    },\r\n    onDebug () {\r\n      this.window = 1\r\n    }\r\n  },\r\n  mounted () {\r\n    this.asyncData()\r\n  },\r\n  watch: {\r\n    tag: 'checkSelected'\r\n  },\r\n  components: {\r\n    StoreFront,\r\n    ProductDisplay\r\n  }\r\n}\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Store.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Store.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Store.vue?vue&type=template&id=fee3b4d2&\"\nimport script from \"./Store.vue?vue&type=script&lang=js&\"\nexport * from \"./Store.vue?vue&type=script&lang=js&\"\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  null,\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 { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VWindow } from 'vuetify/lib/components/VWindow';\nimport { VWindowItem } from 'vuetify/lib/components/VWindow';\ninstallComponents(component, {VBtn,VCol,VContainer,VImg,VOverlay,VProgressCircular,VRow,VWindow,VWindowItem})\n","import max from 'lodash.max'\r\nimport min from 'lodash.min'\r\nimport sum from 'lodash.sum'\r\nimport flatten from '../helpers/ArrayFlatten'\r\nimport { firstBy } from 'thenby'\r\n\r\nexport default class Product {\r\n  id = 0\r\n  organizationId = null\r\n  parentId = null\r\n  name = null\r\n  title = null\r\n  subtitle = null\r\n  description = null\r\n  descriptionIsHtml = true\r\n  price = null\r\n  oldPrice = null\r\n  deleted = false\r\n  published = false\r\n  moreInfo = null\r\n  moreInfoBtn = null\r\n  moreInfoOpen = false\r\n  urlTag = null\r\n  jsonProps = {\r\n    imageLibrary: {\r\n      images: []\r\n    },\r\n    requirements: {\r\n      player: false\r\n    }\r\n  }\r\n\r\n  _props = []\r\n  showInStore = true\r\n  inventory = 99999\r\n  options = []\r\n  player = null\r\n  selected = -1\r\n  altAmount = null\r\n  inventoryHistory = []\r\n  myOrder = 0\r\n\r\n  constructor (dto) {\r\n    if (dto) this.update(dto)\r\n  }\r\n\r\n  update (dto) {\r\n    if (typeof dto === 'string') dto = JSON.parse(dto)\r\n    Object.assign(this, dto)\r\n\r\n    if (dto.jsonProps) {\r\n      const isString = typeof dto.jsonProps === 'string'\r\n      this.jsonProps = isString ? JSON.parse(dto.jsonProps) : dto.jsonProps\r\n    }\r\n\r\n    if (dto.options && dto.options.length > 0) {\r\n      this.options = dto.options.map(o => new Product(o))\r\n    }\r\n  }\r\n\r\n  correctOrder () {\r\n    if (this.options.length === 0) return\r\n    this.options = this.options.sort(firstBy('myOrder'))\r\n    this.options.forEach((f, i) => {\r\n      f.myOrder = i + 1\r\n      f.correctOrder()\r\n    })\r\n  }\r\n\r\n  addOption (dto) {\r\n    const o = new Product(dto)\r\n    o.myOrder = this.options.length + 1\r\n    this.options.push(o)\r\n    return o\r\n  }\r\n\r\n  get dto () {\r\n    if (this.keepInventory) {\r\n      this.finalOptions.forEach(f => f.calcInventoryChange())\r\n    }\r\n    return {\r\n      id: this.id,\r\n      organizationId: this.organizationId,\r\n      parentId: this.parentId,\r\n      name: this.name,\r\n      title: this.title,\r\n      subtitle: this.subtitle,\r\n      description: this.description,\r\n      descriptionIsHtml: this.descriptionIsHtml,\r\n      price: +this.price,\r\n      oldPrice: this.oldPrice,\r\n      deleted: this.deleted,\r\n      published: this.published,\r\n      moreInfo: this.moreInfo,\r\n      moreInfoBtn: this.moreInfoBtn,\r\n      moreInfoOpen: this.moreInfoOpen,\r\n      urlTag: this.urlTag,\r\n      jsonProps: JSON.stringify(this.jsonProps),\r\n      props: this.props,\r\n      showInStore: this.showInStore,\r\n      options: this.options.map(m => m.dto),\r\n      inventory: this.inventory,\r\n      inventoryHistory: this.inventoryHistory,\r\n      myOrder: this.myOrder\r\n    }\r\n  }\r\n\r\n  get purchaseDto () {\r\n    return {\r\n      id: this.id,\r\n      player: this.player ? this.player.dto : null,\r\n      urlTag: this.urlTag,\r\n      price: this.price\r\n    }\r\n  }\r\n\r\n  get status () {\r\n    return this.published ? 'Active' : 'Inactive'\r\n  }\r\n\r\n  get selectedOption () {\r\n    return this.selected >= 0 ? this.options[this.selected] : null\r\n  }\r\n\r\n  get salesRecords () {\r\n    const a = [...this.inventoryHistory.filter(f => f.note.toLowerCase() === 'sale')]\r\n    this.options.forEach(opt => {\r\n      a.push(...opt.salesRecords)\r\n    })\r\n\r\n    return a\r\n  }\r\n\r\n  get comingSoon () {\r\n    return this.allPricesUnfiltered.findIndex(f => f <= 0) > -1\r\n  }\r\n\r\n  get allPricesUnfiltered () {\r\n    const a = []\r\n    this.price && a.push(+this.price)\r\n    this.options.forEach(opt => {\r\n      a.push(...opt.allPrices)\r\n    })\r\n    return a\r\n  }\r\n\r\n  get allPrices () {\r\n    const a = []\r\n    this.price && a.push(+this.price)\r\n    this.options.forEach(opt => {\r\n      a.push(...opt.allPrices)\r\n    })\r\n    return a.filter(f => f > 0)\r\n  }\r\n\r\n  get priceRange () {\r\n    const high = max(this.allPrices)\r\n    const low = min(this.allPrices)\r\n\r\n    return [low, high]\r\n  }\r\n\r\n  get hasRange () {\r\n    const x = new Set(this.priceRange)\r\n    return x.size > 1\r\n  }\r\n\r\n  get keepInventory () {\r\n    return this.props.includes('inventory')\r\n  }\r\n\r\n  set keepInventory (v) {\r\n    this.props = this.props.filter(f => f !== 'inventory')\r\n    if (v) {\r\n      this.props.push('inventory')\r\n    }\r\n    this.options.forEach(o => { o.keepInventory = v })\r\n  }\r\n\r\n  get inventoryCount () {\r\n    return this.options.length ? sum(this.options.map(m => m.inventoryCount)) : this.inventory\r\n  }\r\n\r\n  get inventoryLogSum () {\r\n    const i = this.inventoryHistory.filter(f => f.id > 0)\r\n    return i.length > 0 ? sum(i.map(m => m.amount)) : 0\r\n  }\r\n\r\n  calcInventoryChange () {\r\n    this.inventoryHistory = this.inventoryHistory.filter(f => f.id > 0)\r\n    const note = this.inventoryHistory.length === 0 ? 'Starting Inventory' : 'Inventory Adjustment'\r\n    const x = this.inventory - this.inventoryLogSum\r\n    if (x !== 0) {\r\n      this.inventoryHistory.push({\r\n        id: 0,\r\n        organizationProductId: this.id,\r\n        amount: x,\r\n        note: note,\r\n        status: 'In Browser'\r\n      })\r\n    }\r\n  }\r\n\r\n  get finalOptions () {\r\n    return flatten(this.options.length ? this.options.map(o => o.finalOptions) : [this])\r\n  }\r\n\r\n  get limit () {\r\n    const l = this.props.find(f => f.startsWith('limit-'))\r\n    if (l) {\r\n      return +l.substring(6)\r\n    }\r\n    return 99\r\n  }\r\n\r\n  set limit (v) {\r\n    this.props = this.props.filter(f => !f.startsWith('limit-'))\r\n    if (v) {\r\n      this.props.push(`limit-${v}`)\r\n    }\r\n    this.options.forEach(o => { o.limit = v })\r\n  }\r\n\r\n  get hasLimit () {\r\n    return this.props.find(f => f.startsWith('limit-'))\r\n  }\r\n\r\n  get iLimit () {\r\n    if (this.keepInventory) {\r\n      return min([this.inventoryCount, this.limit])\r\n    }\r\n    return this.limit\r\n  }\r\n\r\n  get displayPrice () {\r\n    return this.price === -13 ? this.altAmount : this.price\r\n  }\r\n\r\n  get pickupOnly () {\r\n    return !!this.props.find(f => f.startsWith('pickupOnly'))\r\n  }\r\n\r\n  get shippingOnly () {\r\n    return !!this.props.find(f => f.startsWith('shippingOnly'))\r\n  }\r\n\r\n  get donation () {\r\n    return !!this.props.find(f => f.startsWith('donation'))\r\n  }\r\n\r\n  get contactReq () {\r\n    const l = this.props.find(f => f.startsWith('require-'))\r\n    if (l) {\r\n      return l.replace('require-', '')\r\n    }\r\n    return 'contact'\r\n  }\r\n\r\n  set contactReq (v) {\r\n    this.props = this.props.filter(f => !f.startsWith('require-'))\r\n    if (v) {\r\n      this.props.push(`require-${v}`)\r\n    }\r\n    this.options.forEach(o => { o.contactReq = v })\r\n  }\r\n\r\n  get delivery () {\r\n    const l = this.props.find(f => f.startsWith('delivery-'))\r\n    if (l) {\r\n      return l.replace('delivery-', '')\r\n    }\r\n    return 'pickup'\r\n  }\r\n\r\n  set delivery (v) {\r\n    this.props = this.props.filter(f => !f.startsWith('delivery-'))\r\n    if (v) {\r\n      this.props.push(`delivery-${v}`)\r\n    }\r\n    this.options.forEach(o => { o.delivery = v })\r\n  }\r\n\r\n  get props () {\r\n    return this._props\r\n  }\r\n\r\n  set props (v) {\r\n    this._props = v\r\n    this.options.forEach(o => { o.props = [...v] })\r\n  }\r\n\r\n  get imageLibrary () {\r\n    return this.jsonProps.imageLibrary\r\n  }\r\n\r\n  get displayImages () {\r\n    return this.jsonProps.imageLibrary.images\r\n  }\r\n}\r\n"],"sourceRoot":""}