{"version":3,"sources":["webpack:///resources/js/src/app/components/item/ItemImageCarousel.vue","webpack:///./resources/js/src/app/components/item/ItemImageCarousel.vue?55b3","webpack:///./resources/js/src/app/components/item/ItemImageCarousel.vue","webpack:///./resources/js/src/app/components/item/ItemImageCarousel.vue?a015","webpack:///./resources/js/src/app/components/item/ItemImageCarousel.vue?00e4"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,aAAa;AACb;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,8BAA8B,oCAAoC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACpHA;AAAA;AAAA;AAAA;AAAgG;AAC3B;AACL;;;AAGhE;AACsG;AACtG,gBAAgB,2GAAU;AAC1B,EAAE,uFAAM;AACR,EAAE,4FAAM;AACR,EAAE,qGAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,KAAU,EAAE,YAiBf;AACD;AACe,gF;;;;;;;;;;;;ACtCf;AAAA;AAAA,wCAAyM,CAAgB,qPAAG,EAAC,C;;;;;;;;;;;;ACA7N;AAAA;AAAA;AAAA;AAAA;AAAA","file":"chunks/ceres-40.js","sourcesContent":["<template>\n    <div itemscope itemtype=\"https://schema.org/Thing\">\n        <div ref=\"single\" class=\"single-carousel owl-carousel owl-theme owl-single-item mt-0\">\n            <div v-for=\"(image, index) in singleImages\" :key=\"index\" class=\"prop-1-1\">\n                <a :href=\"image.url\" :data-lightbox=\"`single-item-image${_uid}`\">\n                    <lazy-img :alt=\"getAltText(image)\" :image-url=\"image.url\" :title=\"getImageName(image)\" :width=\"getImageWidth(image)\" :height=\"getImageHeight(image)\" />\n                </a>\n            </div>\n        </div>\n\n        <div v-if=\"showThumbs\" id=\"thumb-carousel\" ref=\"thumbs\" class=\"owl-thumbs owl-carousel owl-theme owl-single-item\">\n            <div v-for=\"(imagePreview, index) in carouselImages\" :key=\"index\" class=\"prop-1-1\">\n                <div @click=\"goTo(index)\" class=\"image-container\">\n                    <lazy-img\n                        :alt=\"getAltText(imagePreview)\"\n                        :image-url=\"imagePreview.url\"\n                        :title=\"getImageName(imagePreview)\"\n                        :width=\"getImageWidth(imagePreview)\"\n                        :height=\"getImageHeight(imagePreview)\"\n                        picture-class=\"owl-thumb border-appearance\"\n                        v-bind:class=\"{ 'active': currentItem === index}\" />\n                </div>\n            </div>\n        </div>\n\n        <div v-if=\"!initialized\" class=\"single-carousel owl-carousel owl-loaded owl-theme owl-single-item mt-0\">\n            <div class=\"prop-1-1\">\n                <lazy-img\n                    :alt=\"getAltText(singleImages[0].url)\"\n                    :image-url=\"singleImages[0].url\"\n                    :title=\"getImageName(singleImages[0].url)\"\n                    :width=\"getImageWidth(singleImages[0])\"\n                    :height=\"getImageHeight(singleImages[0])\"\n                    picture-class=\"owl-placeholder\" />\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\nimport { isNullOrUndefined } from \"../../helper/utils\";\n\nexport default {\n    name: \"item-image-carousel\",\n\n    props: {\n        maxQuantity:\n        {\n            type: Number,\n            default: 10\n        },\n        imageUrlAccessor:\n        {\n            type: String,\n            default: \"url\"\n        },\n        showThumbs:\n        {\n            type: Boolean,\n            default: true\n        },\n        showDots:\n        {\n            type: Boolean,\n            default: true\n        },\n        animationStyle:\n        {\n            type: String,\n            default: \"standard\"\n        },\n        pluginPath:\n        {\n            type: String,\n            default: \"\"\n        }\n    },\n\n    inject: {\n        itemId: {\n            default: null\n        }\n    },\n\n    data()\n    {\n        return {\n            currentItem: 0,\n            initialized: false,\n        };\n    },\n\n    computed:\n    {\n        currentVariation()\n        {\n            return this.$store.getters[`${this.itemId}/currentItemVariation`]\n        },\n\n        carouselImages()\n        {\n            return this.$options.filters.itemImages(\n                    this.currentVariation.images,\n                    \"urlPreview\"\n                ).slice(0, this.maxQuantity);\n        },\n\n        singleImages()\n        {\n            return this.$options.filters.itemImages(\n                    this.currentVariation.images,\n                    this.imageUrlAccessor\n            ).slice(0, this.maxQuantity);\n        }\n    },\n\n    watch: {\n        currentVariation:\n        {\n            handler(val, oldVal)\n            {\n                if (val !== oldVal)\n                {\n                    setTimeout(() =>\n                    {\n                        this.reInitialize();\n                    }, 1);\n                }\n            },\n            deep: true\n        }\n    },\n\n    mounted()\n    {\n        this.$nextTick(() =>\n        {\n            this.loadLightbox().then(() =>\n                {\n                    this.initCarousel();\n                    this.initThumbCarousel();\n                })\n                .catch(event =>\n                {\n                    console.log(\"error while loading lightbox\", event);\n                });\n        });\n    },\n\n    methods:\n    {\n        getImageCount()\n        {\n            return this.carouselImages.length > this.maxQuantity ? this.maxQuantity : this.carouselImages.length;\n        },\n\n        reInitialize()\n        {\n            const $owl = $(this.$refs.single);\n\n            $owl.trigger(\"destroy.owl.carousel\");\n            $owl.html($owl.find(\".owl-stage-outer\").html()).removeClass(\"owl-loaded\");\n            $owl.find(\".owl-item\").remove();\n\n            const $thumbs = $(this.$refs.thumbs);\n\n            $thumbs.trigger(\"destroy.owl.carousel\");\n            $thumbs.html($thumbs.find(\".owl-stage-outer\").html()).removeClass(\"owl-loaded\");\n            $thumbs.find(\".owl-item\").remove();\n\n            this.initCarousel();\n            this.initThumbCarousel();\n        },\n\n        initCarousel()\n        {\n            const imageCount = this.getImageCount();\n            const carouselSettings = {\n                autoHeight       : true,\n                dots             : this.showDots,\n                items            : 1,\n                lazyLoad         : true,\n                rewind           : true,\n                margin           : 10,\n                mouseDrag        : imageCount > 1,\n                nav              : imageCount > 1,\n                navClass         : [\n                    \"owl-single-item-nav left carousel-control\",\n                    \"owl-single-item-nav right carousel-control\"\n                ],\n                navContainerClass: \"\",\n                navText          : [\n                    \"<i class=\\\"owl-single-item-control fa fa-chevron-left\\\" aria-hidden=\\\"true\\\"></i>\",\n                    \"<i class=\\\"owl-single-item-control fa fa-chevron-right\\\" aria-hidden=\\\"true\\\"></i>\"\n                ],\n                smartSpeed       : 350,\n                onChanged: event =>\n                {\n                    const $thumb = $(this.$refs.thumbs);\n\n                    $thumb.trigger(\"to.owl.carousel\", [\n                        event.page.index,\n                        350\n                    ]);\n                },\n                onInitialized: event =>\n                {\n                    this.initialized = true;\n                }\n            };\n\n            if (this.animationStyle !== \"standard\")\n            {\n                carouselSettings.animateOut = this.animationStyle;\n            }\n\n            $(this.$refs.single).owlCarousel(carouselSettings);\n\n            if (!isNullOrUndefined(window.lightbox))\n            {\n                lightbox.option({\n                    wrapAround: true,\n                    albumLabel: this.$translate(\"Ceres::Template.singleItemLightboxImageShown\")\n                });\n            }\n\n            $(this.$refs.single).on(\"changed.owl.carousel\", event =>\n            {\n                this.currentItem = event.page.index;\n            });\n        },\n\n        initThumbCarousel()\n        {\n            $(this.$refs.thumbs).owlCarousel({\n                autoHeight       : true,\n                dots             : false,\n                items            : 5,\n                lazyLoad         : true,\n                loop             : false,\n                margin           : 10,\n                mouseDrag        : false,\n                center           : false,\n                nav              : true,\n                navClass         : [\n                    \"owl-single-item-nav left carousel-control\",\n                    \"owl-single-item-nav right carousel-control\"\n                ],\n                navContainerClass: \"\",\n                navText          : [\n                    \"<i class=\\\"owl-single-item-control fa fa-chevron-left\\\" aria-hidden=\\\"true\\\"></i>\",\n                    \"<i class=\\\"owl-single-item-control fa fa-chevron-right\\\" aria-hidden=\\\"true\\\"></i>\"\n                ],\n                smartSpeed       : 350\n            });\n        },\n\n        goTo(index)\n        {\n            const $owl = $(this.$refs.single);\n\n            $owl.trigger(\"to.owl.carousel\", [\n                index,\n                350\n            ]);\n        },\n\n        getAltText(image)\n        {\n            return image && image.alternate ? image.alternate : this.$options.filters.itemName(this.currentVariation);\n        },\n\n        getImageName(image)\n        {\n            return image && image.name ? image.name : this.$options.filters.itemName(this.currentVariation);\n        },\n\n        getImageWidth(image)\n        {\n          return image && image.width ? image.width : this.$options.filters.itemImageWidth(this.carouselImages);\n        },\n\n        getImageHeight(image)\n        {\n          return image && image.height ? image.height : this.$options.filters.itemImageHeight(this.carouselImages);\n        },\n\n        loadLightbox()\n        {\n            return new Promise((resolve, reject) =>\n            {\n                const script = document.querySelector(\"script#lightboxscript\");\n\n                if (!isNullOrUndefined(script))\n                {\n                    resolve();\n                }\n                else\n                {\n                    const script = document.createElement(\"script\");\n\n                    script.type = \"text/javascript\";\n                    script.id = \"lightboxscript\";\n                    script.src = `${ this.pluginPath }/js/dist/lightbox.min.js`;\n\n                    script.addEventListener(\"load\", () => resolve(), false);\n                    script.addEventListener(\"error\", event => reject(event), false);\n\n                    document.body.appendChild(script);\n                }\n            });\n        }\n    }\n}\n</script>\n","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { attrs: { itemscope: \"\", itemtype: \"https://schema.org/Thing\" } },\n    [\n      _c(\n        \"div\",\n        {\n          ref: \"single\",\n          staticClass:\n            \"single-carousel owl-carousel owl-theme owl-single-item mt-0\"\n        },\n        _vm._l(_vm.singleImages, function(image, index) {\n          return _c(\"div\", { key: index, staticClass: \"prop-1-1\" }, [\n            _c(\n              \"a\",\n              {\n                attrs: {\n                  href: image.url,\n                  \"data-lightbox\": \"single-item-image\" + _vm._uid\n                }\n              },\n              [\n                _c(\"lazy-img\", {\n                  attrs: {\n                    alt: _vm.getAltText(image),\n                    \"image-url\": image.url,\n                    title: _vm.getImageName(image),\n                    width: _vm.getImageWidth(image),\n                    height: _vm.getImageHeight(image)\n                  }\n                })\n              ],\n              1\n            )\n          ])\n        }),\n        0\n      ),\n      _vm._v(\" \"),\n      _vm.showThumbs\n        ? _c(\n            \"div\",\n            {\n              ref: \"thumbs\",\n              staticClass: \"owl-thumbs owl-carousel owl-theme owl-single-item\",\n              attrs: { id: \"thumb-carousel\" }\n            },\n            _vm._l(_vm.carouselImages, function(imagePreview, index) {\n              return _c(\"div\", { key: index, staticClass: \"prop-1-1\" }, [\n                _c(\n                  \"div\",\n                  {\n                    staticClass: \"image-container\",\n                    on: {\n                      click: function($event) {\n                        return _vm.goTo(index)\n                      }\n                    }\n                  },\n                  [\n                    _c(\"lazy-img\", {\n                      class: { active: _vm.currentItem === index },\n                      attrs: {\n                        alt: _vm.getAltText(imagePreview),\n                        \"image-url\": imagePreview.url,\n                        title: _vm.getImageName(imagePreview),\n                        width: _vm.getImageWidth(imagePreview),\n                        height: _vm.getImageHeight(imagePreview),\n                        \"picture-class\": \"owl-thumb border-appearance\"\n                      }\n                    })\n                  ],\n                  1\n                )\n              ])\n            }),\n            0\n          )\n        : _vm._e(),\n      _vm._v(\" \"),\n      !_vm.initialized\n        ? _c(\n            \"div\",\n            {\n              staticClass:\n                \"single-carousel owl-carousel owl-loaded owl-theme owl-single-item mt-0\"\n            },\n            [\n              _c(\n                \"div\",\n                { staticClass: \"prop-1-1\" },\n                [\n                  _c(\"lazy-img\", {\n                    attrs: {\n                      alt: _vm.getAltText(_vm.singleImages[0].url),\n                      \"image-url\": _vm.singleImages[0].url,\n                      title: _vm.getImageName(_vm.singleImages[0].url),\n                      width: _vm.getImageWidth(_vm.singleImages[0]),\n                      height: _vm.getImageHeight(_vm.singleImages[0]),\n                      \"picture-class\": \"owl-placeholder\"\n                    }\n                  })\n                ],\n                1\n              )\n            ]\n          )\n        : _vm._e()\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ItemImageCarousel.vue?vue&type=template&id=5285279e&\"\nimport script from \"./ItemImageCarousel.vue?vue&type=script&lang=js&\"\nexport * from \"./ItemImageCarousel.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\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/runner/work/plugin-ceres/plugin-ceres/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('5285279e')) {\n      api.createRecord('5285279e', component.options)\n    } else {\n      api.reload('5285279e', component.options)\n    }\n    module.hot.accept(\"./ItemImageCarousel.vue?vue&type=template&id=5285279e&\", function () {\n      api.rerender('5285279e', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"resources/js/src/app/components/item/ItemImageCarousel.vue\"\nexport default component.exports","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemImageCarousel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemImageCarousel.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemImageCarousel.vue?vue&type=template&id=5285279e&\""],"sourceRoot":""}