{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/feature-card-rxjs/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/feature-card-rxjs/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/feature-card-rxjs/client/js/image/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/features/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/feature-card-rxjs/client/js/store/actions.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/features/client/js/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/feature-card-rxjs/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/feature-card-rxjs/client/js/store/reducer.js"],"names":["elementExist","require","prototype","config","module","exports","selector","arguments","length","undefined","configuration","instance","Object","create","element","document","querySelector","_objectSpread","dataset","result","JSON","parse","init","Store","_require2","actions","types","reducer","_require4","initImage","destroyImage","setupStore","this","store","card","setupActions","_this","destroy","dispatch","setupReactions","_this2","reactions","subscribe","state","action","type","DESTROY","parentNode","removeChild","_toConsumableArray","keys","forEach","key","Image","hasImage","panel","image","concat","component","feature","Feature","features","querySelectorAll","map","item","index","initialState"],"mappings":"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","file":"features.c1b55340813db640a4fc.bundle.js","sourcesContent":["/* ==========================================================================\n FeatureCardRxjs > Client\n ========================================================================== */\n\n/* Modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst prototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * FeatureCardRxjs component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function FeatureCardRxjs(selector = '[data-component=FeatureCardRxjs]', 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 instance.init();\n\n /* Return */\n return instance;\n }\n};\n","/* ==========================================================================\n FeatureCardRxjs > Client > Prototype\n ========================================================================== */\n\n/* Modules */\nconst { Store } = require('@bluekiri/alexandria/helpers/state');\n\nconst { actions, types } = require('./store/actions');\nconst { reducer } = require('./store/reducer');\n\nconst { initImage, destroyImage } = require('./image');\n\n/* Prototype */\nconst prototype = {\n setupStore() {\n if (this.store) return this;\n\n this.store = new Store({\n card: reducer\n });\n\n return this;\n },\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 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 /* Delete image */\n destroyImage(this);\n\n /* Delete */\n this.element.parentNode.removeChild(this.element);\n\n /* Clean references */\n [...Object.keys(this)].forEach(key => delete this[key]);\n })\n };\n\n return this;\n },\n init() {\n /* Setup store */\n this.setupStore();\n\n /* Setup actions */\n this.setupActions();\n\n /* Setup reactions */\n this.setupReactions();\n\n /* Init image */\n initImage(this);\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n FeatureCardRxjs > Client > Image\n ========================================================================== */\n\n/* Modules */\nconst Image = require('../../../../image-rxjs/client/js');\n\n/* Init image */\nfunction initImage(instance) {\n /* Data */\n const { hasImage } = instance.config;\n\n if (!hasImage) return;\n\n const panel = instance;\n\n const { selector } = instance;\n\n panel.image = Image(`${selector} [data-component='ImageRxjs']`);\n}\n\n/* Destroy image */\nfunction destroyImage(instance) {\n /* Data */\n const { hasImage } = instance.config;\n\n if (!hasImage) return;\n\n const panel = instance;\n\n instance.image.actions.destroy();\n\n delete panel.image;\n}\n\n/* Exports */\nmodule.exports = {\n initImage,\n destroyImage\n};\n","/* ==========================================================================\n Features > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'Features',\n type: {\n feature: 'features-item'\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n FeatureCardRxjs > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'FEATURECARDRXJS::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 Features > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst Feature = require('@bluekiri/alexandria-contrib-components/components/feature-card-rxjs/client/js');\n\nconst config = require('./config');\n\n/**\n * Features component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function Features(selector = '[data-component=Features]', configuration = {}) {\n if (elementExist(selector)) {\n const instance = {};\n\n instance.element = document.querySelector(selector);\n\n instance.config = { ...config(), ...configuration };\n\n instance.features = [\n ...instance.element.querySelectorAll('[data-component=\"FeatureCardRxjs\"]')\n ].map((item, index) =>\n Feature(`${selector} [data-component=\"FeatureCardRxjs\"][data-type=\"${config().type.feature}-${index}\"]`)\n );\n\n return instance;\n }\n};\n","/* ==========================================================================\n FeatureCardRxjs > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'FeatureCardRxjs'\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n FeatureCardRxjs > 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"],"sourceRoot":""}