{"version":3,"sources":["webpack:///./node_modules/@logitravel/alex-aubergine/components/header-banner-aub/client/js/image/index.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/header-banner-aub/client/js/prototype.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/header-banner-aub/client/js/store/actions.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/header-banner-aub/client/js/store/reducer.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/header-banner-aub/client/js/index.js","webpack:///./node_modules/@logitravel/alex-aubergine/components/header-banner-aub/client/js/config.js"],"names":["Image","config","module","exports","initImage","instance","inst","selector","base","logo","type","images","promos","element","querySelectorAll","forEach","items","index","promo","Store","actions","types","reducer","prototype","this","store","data","destroy","dispatch","reactions","subscribe","state","action","DESTROY","unsubscribe","Object","keys","key","parentNode","removeChild","subscriptions","start","init","setupStore","setupActions","setupReactions","initialState","elementExist","configuration","create","document","querySelector","dataset","result","JSON","parse","component","css","imagesConfig","resize","operation","suboperation","width","height","quality","alternative","headingTag"],"mappings":"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","file":"header-banner-aub.47bed6d270ceeab4d725.bundle.js","sourcesContent":["/* ==========================================================================\n HeaderBannerAub > Client > Image\n ========================================================================= */\n\n/* Import modules */\nconst Image = require('@bluekiri/alexandria-contrib-components/components/image-rxjs/client/js');\n\nconst config = require('../config');\n\n/* Init images */\nfunction initImage(instance) {\n const inst = instance;\n const { selector } = instance;\n const { base, logo } = config().type;\n\n inst.images = {\n base: Image(`${selector} [data-component=\"ImageRxjs\"][data-type=\"${base}\"]`),\n logo: Image(`${selector} [data-component=\"ImageRxjs\"][data-type=\"${logo}\"]`)\n };\n\n inst.promos = [...instance.element.querySelectorAll('[data-component=\"ImageRxjs\"]')].forEach((items, index) =>\n Image(`${selector} [data-component=\"ImageRxjs\"][data-type=\"${config().type.promo}-${index}\"]`)\n );\n}\n\n/* Module exports */\nmodule.exports = {\n initImage\n};\n","/* ==========================================================================\n HeaderBannerAub > Client > Prototype\n ========================================================================== */\n\n/* Import modules */\nconst { Store } = require('@bluekiri/alexandria/helpers/state');\n\nconst { actions, types } = require('./store/actions');\nconst { reducer } = require('./store/reducer');\n\nconst { initImage } = require('./image');\n\n/* Prototype */\nconst prototype = {\n /* Setup store */\n setupStore() {\n if (this.store) return this;\n\n this.store = new Store({\n data: reducer\n });\n\n return this;\n },\n /* Setup actions */\n setupActions() {\n if (this.actions) return this;\n\n this.actions = {\n destroy: () => this.store.dispatch(actions.destroy())\n };\n\n return this;\n },\n /* Setup reactions */\n setupReactions() {\n if (this.reactions) return this;\n\n this.reactions = {\n destroy: this.store.subscribe((state, action) => {\n if (action.type !== types.DESTROY) return;\n\n /* Unsubscribe */\n this.unsubscribe();\n [...Object.keys(this.reactions)].forEach(key => this.reactions[key].unsubscribe());\n\n /* Clean DOM */\n this.element.parentNode.removeChild(this.element);\n\n /* Clean reference */\n [...Object.keys(this)].forEach(key => delete this[key]);\n })\n };\n\n return this;\n },\n /* Subscribe */\n subscribe() {\n if (this.subscriptions) this.unsubscribe();\n\n this.subscriptions = {};\n\n return this;\n },\n /* Unsubscribe */\n unsubscribe() {\n if (!this.subscriptions) return this;\n\n [...Object.keys(this.subscriptions)].forEach(key => this.subscriptions[key].unsubscribe());\n\n return this;\n },\n /* Start */\n start() {\n if (!this.config.start) return this;\n\n /* Start logic */\n\n return this;\n },\n /* Init */\n init() {\n if (!this.config.init) return this;\n\n /* Setup store */\n this.setupStore();\n\n /* Setup actions */\n this.setupActions();\n\n /* Setup reactions */\n this.setupReactions();\n\n /* Subscribe */\n this.subscribe();\n\n /* Init images */\n initImage(this);\n\n /* Start */\n this.start();\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n HeaderBannerAub > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'HEADERBANNERAUB::DESTROY';\n\n/* Actions */\nconst destroy = () => ({ type: DESTROY });\n\n/* Exports */\nmodule.exports = {\n types: {\n DESTROY\n },\n actions: {\n destroy\n }\n};\n","/* ==========================================================================\n HeaderBannerAub > Client > Store > Reducer\n ========================================================================== */\n\n/* Modules */\nconst { types } = require('./actions');\n\n/* Initial state */\nconst initialState = {};\n\n/* Reducer */\nfunction reducer(state = initialState, action) {\n switch (action.type) {\n case types.DESTROY:\n default:\n return state;\n }\n}\n\n/* Exports */\nmodule.exports = {\n reducer\n};\n","/* ==========================================================================\n HeaderBannerAub > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst config = require('./config');\nconst prototype = require('./prototype');\n\n/**\n * HeaderBannerAub component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function HeaderBannerAub(selector = '[data-component=HeaderBannerAub]', configuration = {}) {\n if (elementExist(selector)) {\n /* Instance */\n const instance = Object.create(prototype);\n\n /* Selector */\n instance.selector = selector;\n\n /* Element */\n instance.element = document.querySelector(selector);\n\n /* Config */\n instance.config = {\n ...config(),\n ...configuration,\n ...(function getConfig() {\n if (!instance.element.dataset.config) return '';\n\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 instance;\n }\n};\n","/* ==========================================================================\n HeaderBannerAub > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'HeaderBannerAub',\n init: true,\n start: true,\n css: {\n base: 'header-banner-aub__banner',\n logo: 'header-banner-aub__logo'\n },\n type: {\n base: 'image-base',\n promo: 'image-promo',\n logo: 'image-logo'\n },\n imagesConfig: {\n base: {\n resize: {\n operation: 'resize',\n suboperation: 'crop',\n width: 1920,\n height: 350,\n quality: 97\n },\n alternative: '/comun/images/not-available.png'\n },\n promo: {\n resize: {\n operation: 'resize',\n width: 0,\n height: 70,\n quality: 97\n }\n },\n logo: {\n width: 245,\n height: 65\n }\n },\n headingTag: 'p'\n};\n\nmodule.exports = () => config;\n"],"sourceRoot":""}