{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/gallery/client/js/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/text-media/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/video/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/video/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/gallery/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/video/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/gallery/client/js/config.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/text-media/client/js/index.js"],"names":["elementExist","require","config","prototype","module","exports","result","selector","arguments","length","undefined","configuration","instance","Object","create","element","document","querySelector","_objectSpread","JSON","parse","dataset","init","component","type","video","image","css","gallery","imageMod","size","height","width","YTPlayer","VimeoPlayer","PROVIDER_TYPE","createPlayerYoutube","this","player","load","id","createPlayerVimeo","createPlayer","provider","toLowerCase","setVideo","_ref","_ref$provider","_ref$id","_require","fromEvent","merge","mergeAll","PhotoSwipe","PhotoSwipeUI","toNode","ImageClient","VideoClient","DATA_TYPE","isVideo","addTriggers","triggers","map","item","createImage","_toConsumableArray","factory","reduce","acc","val","createVideo","createGallery","_this","autoDom","addToDom","data","items","index","html","concat","pswOptions","self","listen","img","getCurrentIndex","setImage","src","Image","getImageEl","onload","classList","add","isVertical","removeFromDom","parentNode","removeChild","body","appendChild","_this2","triggerSub","pipe","subscribe","imageCfg","captionEl","fullscreenEl","preloaderEl","shareEl","zoomEl","Gallery","seeVideo","media"],"mappings":"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","file":"text-media.29c9fbc61bf29072bd5f.bundle.js","sourcesContent":["/* ==========================================================================\n Gallery > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst config = require('./config');\nconst prototype = require('./prototype');\n\n/**\n * Gallery component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function Gallery(selector = '[data-component=Gallery]', configuration = {}) {\n if (elementExist(selector)) {\n /* Instance */\n const instance = Object.create(prototype);\n\n /* Element */\n instance.element = document.querySelector(selector);\n\n /* Config */\n instance.config = {\n selector,\n ...config(),\n ...configuration,\n ...(function getConfig() {\n const result = JSON.parse(instance.element.dataset.config);\n instance.element.dataset.config = '';\n return result;\n })()\n };\n\n /* Init */\n if (instance.config.init) instance.init();\n\n /* Return */\n return instance;\n }\n};\n","/* ==========================================================================\n TextMedia > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'TextMedia',\n type: {\n video: 'gallery-video',\n image: 'text-media-image'\n },\n css: {\n gallery: 'text-media__gallery',\n image: 'text-media__image',\n imageMod: 'text-media__image--video'\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n Video > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'Video',\n init: true,\n size: {\n height: 432,\n width: 768\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n Video > Client > Prototype\n ========================================================================== */\n\n/* Modules */\nconst YTPlayer = require('yt-player');\nconst VimeoPlayer = require('@vimeo/player/dist/player.min');\n\n/* Providers */\nconst PROVIDER_TYPE = {\n youtube: 'youtube',\n vimeo: 'vimeo'\n};\n\n/* Prototype */\nconst prototype = {\n /* Create player youtube */\n createPlayerYoutube() {\n this.player = new YTPlayer(this.element.querySelector('[data-item]'), {\n height: this.config.size.height,\n width: this.config.size.width\n });\n this.player.load(this.config.id);\n\n return this;\n },\n /* Create player vimeo */\n createPlayerVimeo() {\n this.player = new VimeoPlayer(this.element.querySelector('[data-item]'), {\n id: this.config.id,\n height: this.config.size.height,\n width: this.config.size.width\n });\n\n return this;\n },\n /* Create player */\n createPlayer() {\n /* Exit without provider */\n if (!this.config.provider) return this;\n\n /* Player Youtube */\n if (this.config.provider.toLowerCase() === PROVIDER_TYPE.youtube) return this.createPlayerYoutube();\n\n /* Player Vimeo */\n if (this.config.provider.toLowerCase() === PROVIDER_TYPE.vimeo) return this.createPlayerVimeo();\n\n return this;\n },\n /* Set video */\n setVideo({ provider = '', id = '' } = {}) {\n /* Exit */\n if (!provider && !id) return this;\n\n this.config.provider = provider;\n this.config.id = id;\n\n return this;\n },\n /* Init */\n init() {\n /* Create player */\n if (this.config.id && this.config.provider) this.createPlayer();\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n Gallery > Client > Protoype\n ========================================================================== */\n\n/* Modules */\nconst { fromEvent, merge } = require('rxjs');\nconst { mergeAll } = require('rxjs/operators');\nconst PhotoSwipe = require('photoswipe');\nconst PhotoSwipeUI = require('photoswipe/dist/photoswipe-ui-default');\nconst { toNode } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst ImageClient = require('../../../image/client/js');\nconst VideoClient = require('../../../video/client/js');\nconst config = require('./config');\n\n/* Providers */\nconst DATA_TYPE = {\n image: 'image',\n video: 'video'\n};\n\n/* Helper type checkers */\nconst isVideo = type => type.toLowerCase() === DATA_TYPE.video;\nconst isImage = type => type.toLowerCase() === DATA_TYPE.image;\n\n/* Helper to set vertical image */\nfunction setVerticalImage(img) {\n const image = new Image();\n image.src = img.getImageEl().dataset.src;\n image.onload = function onLoad() {\n if (image.width < image.height) img.element.classList.add(config().css.image.isVertical);\n };\n}\n\n/* Prototype */\nconst prototype = {\n /* Add triggers */\n addTriggers: function Fn(triggers) {\n return merge(triggers.map(item => fromEvent(item, 'click')));\n },\n /* Create Image */\n createImage(type = '') {\n /* Create Image from factory */\n const image = [...toNode(this.config.factory.image)].reduce((acc, val) => acc + val);\n\n /* Add type */\n image.dataset.type = type;\n\n /* Return image */\n return image;\n },\n /* Create Video */\n createVideo(type = '') {\n /* Create Video from factory */\n const video = [...toNode(this.config.factory.video)].reduce((acc, val) => acc + val);\n\n /* Add type */\n video.dataset.type = type;\n\n /* Return video */\n return video;\n },\n /* Create gallery */\n createGallery() {\n /* Add to dom */\n if (this.config.autoDom) this.addToDom();\n\n /* Data */\n this.data = [];\n\n /* Gallery */\n this.gallery = new PhotoSwipe(\n this.element.querySelector('[data-gallery]'),\n PhotoSwipeUI,\n this.config.items.map((item, index) => ({\n html: isVideo(item.type || '')\n ? this.createVideo(`${this.config.type.video}-${index}`)\n : this.createImage(`${this.config.type.image}-${index}`)\n })),\n this.config.pswOptions\n );\n\n /* Self */\n const self = this;\n\n /* Adding dynamic image components */\n this.gallery.listen('afterChange', () => {\n /* Getting the index to init the image */\n const index = self.gallery.getCurrentIndex();\n\n /* Adding not already inited images */\n if (!self.data[index]) {\n /* Video */\n if (isVideo(self.config.items[index].type)) {\n self.data[index] = VideoClient(\n `[data-component=\"Video\"][data-type=\"${self.config.type.video}-${index}\"]`\n );\n\n /* Add video and create player */\n self.data[index].setVideo(self.config.items[index].config).createPlayer();\n }\n\n /* Image */\n if (isImage(self.config.items[index].type)) {\n self.data[index] = ImageClient(\n `[data-component=\"Image\"][data-type=\"${self.config.type.image}-${index}\"]`\n );\n\n /* Set the image */\n self.data[index].setImage(self.config.items[index].src);\n\n /* Vertical image addition modifier */\n setVerticalImage(self.data[index]);\n }\n }\n });\n\n /* Clean up from dom on full close */\n this.gallery.listen('destroy', () => {\n self.removeFromDom();\n });\n\n /* Init to show gallery */\n this.gallery.init();\n },\n /* Remove from dom */\n removeFromDom() {\n this.element.parentNode.removeChild(this.element);\n },\n /* Add to dom */\n addToDom() {\n document.body.appendChild(this.element);\n },\n /* Init */\n init() {\n /* Add triggers */\n if (this.config.triggers.length > 0) {\n this.triggerSub = this.addTriggers(this.config.triggers)\n .pipe(mergeAll())\n .subscribe(() => this.createGallery());\n }\n\n /* Autodom setup */\n if (this.config.autoDom) this.removeFromDom();\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n Video > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst config = require('./config');\nconst prototype = require('./prototype');\n\n/**\n * Video component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function Video(selector = '[data-component=Video]', configuration = {}) {\n if (elementExist(selector)) {\n /* Instance */\n const instance = Object.create(prototype);\n\n /* Element */\n instance.element = document.querySelector(selector);\n\n /* Config */\n instance.config = {\n ...config(),\n ...configuration,\n ...(function getConfig() {\n const result = JSON.parse(instance.element.dataset.config);\n // instance.element.dataset.config = '';\n return result;\n })()\n };\n\n /* Init */\n if (instance.config.init) instance.init();\n\n /* Return */\n return instance;\n }\n};\n","/* ==========================================================================\n Gallery > Client > Config\n ========================================================================== */\n\n/* Import modules */\nconst imageCfg = require('../../../image/client/js/config');\n\n/* Config */\nconst config = {\n component: 'Gallery',\n init: true,\n autoDom: true,\n triggers: [],\n css: {\n image: {\n ...imageCfg().css\n }\n },\n type: {\n image: 'gallery-image',\n video: 'gallery-video'\n },\n pswOptions: {\n index: 0,\n captionEl: false,\n fullscreenEl: false,\n preloaderEl: false,\n shareEl: false,\n zoomEl: false\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n TextMedia > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst Image = require('@bluekiri/alexandria-contrib-components/components/image/client/js');\nconst Gallery = require('@bluekiri/alexandria-contrib-components/components/gallery/client/js');\nconst config = require('./config');\n\n/**\n * TextMedia component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function TextMedia(selector = '[data-component=TextMedia]', configuration = {}) {\n if (elementExist(selector)) {\n const instance = {};\n\n instance.element = document.querySelector(selector);\n\n instance.config = { ...configuration };\n\n instance.image = Image(`${selector} [data-component=\"Image\"]`);\n\n instance.seeVideo = instance.element.querySelector(`${selector} [data-trigger]`);\n\n instance.media = instance.element.querySelector(`${selector} [data-trigger-media]`);\n\n instance.gallery = Gallery(`${selector} [data-component=\"Gallery\"][data-type=\"${config().type.video}\"]`, {\n triggers: [instance.media, instance.seeVideo]\n });\n\n return instance;\n }\n};\n"],"sourceRoot":""}