{"version":3,"sources":["webpack:///./resources/js/src/app/components/item/ItemImageCarousel.vue?55b3","webpack:///./resources/js/src/app/components/item/ItemImageCarousel.vue?df97","webpack:///resources/js/src/app/components/item/ItemImageCarousel.vue","webpack:///./resources/js/src/app/components/item/ItemImageCarousel.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","itemscope","itemtype","ref","staticClass","_l","singleImages","image","index","key","href","url","_uid","alt","getAltText","title","getImageName","width","getImageWidth","height","getImageHeight","_v","showThumbs","id","carouselImages","imagePreview","on","click","$event","goTo","class","active","currentItem","_e","initialized","_withStripped","component","options","__file"],"mappings":"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","file":"chunks/ceres-client-36.min.js","sourcesContent":["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 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&\"","<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","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"],"sourceRoot":""}