{"version":3,"sources":["webpack:///./node_modules/@logitravel/alex-comp-cru/components/breadcrumbs-id-cru/client/js/store/reducer.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/breadcrumbs-id-cru/client/js/services/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/breadcrumbs-id-cru/client/js/form/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/breadcrumbs-id-cru/client/js/form/mapper/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/breadcrumbs-id-cru/client/js/prototype.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/breadcrumbs-id-cru/client/js/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/breadcrumbs-id-cru/client/js/config.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/breadcrumbs-id-cru/client/js/store/actions.js"],"names":["types","require","initialState","module","exports","reducer","state","arguments","length","undefined","action","type","DESTROY","modelController","modelSignal","of","fromFetch","_require3","catchError","switchMap","sendForm","data","Method","Url","Arguments","abort","window","AbortController","signal","method","headers","body","JSON","stringify","pipe","response","ok","json","error","message","concat","statusText","err","toNode","Services","Mapper","instance","value","_instance$config","config","endpoint","literals","errorMessage","values","_defineProperty","subscribe","node","document","appendChild","setTimeout","classList","add","remove","removeChild","location","assign","url","args","map","argument","Name","Value","_objectSpread","filter","item","Store","fromEvent","actions","prototype","setupStore","this","store","setupActions","_this","destroy","dispatch","setupReactions","_this2","reactions","unsubscribe","_toConsumableArray","Object","keys","forEach","key","element","parentNode","_this3","subscriptions","sendFormKeyDown","e","input","hooks","activeElement","keyCode","sendFormClick","querySelector","_this4","start","init","elementExist","Input","selector","configuration","create","dataset","result","parse","component","css","breadcrumbsId"],"mappings":"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","file":"breadcrumbs-id-cru.2b7cbafc4ec9269e73cd.bundle.js","sourcesContent":["/* ==========================================================================\n BreadcrumbsIdCru > 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 MainGroupsCru > Services\n ========================================================================== */\n\n/* Modules */\nconst { of } = require('rxjs');\nconst { fromFetch } = require('rxjs/fetch');\nconst { catchError, switchMap } = require('rxjs/operators');\n\n/* Global variables for AbortController */\nlet modelController;\nlet modelSignal;\n\n/* Exports */\n/**\n * Services\n * @param {object} context,\n * @returns {object} methods api\n */\nmodule.exports = function Services() {\n return {\n /**\n * Get model\n * @param {object} data,\n * @returns {object} model\n */\n sendForm(data = {}) {\n /* Data */\n const { Method, Url, Arguments } = data;\n\n /* Cancel the previous request */\n if (modelController !== undefined) {\n modelController.abort();\n }\n\n /* Feature detect */\n if ('AbortController' in window) {\n modelController = new AbortController();\n modelSignal = modelController.signal;\n }\n\n return fromFetch(Url, {\n method: Method,\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n Arguments\n }),\n signal: modelSignal\n }).pipe(\n switchMap((response = {}) => {\n if (response.ok) {\n return response.json();\n }\n return of({ error: true, message: `Error fetching model ${response.statusText}` });\n }),\n catchError(err => {\n return of({ error: true, message: err.message });\n })\n );\n }\n };\n};\n","/* ==========================================================================\n BreadcrumbsIdCru > Client > Form\n ========================================================================== */\nconst { toNode } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst Services = require('../services');\nconst Mapper = require('./mapper');\n\nconst ID = 'cruiseCode';\n\nfunction sendForm(instance, value) {\n const { endpoint, literals } = instance.config;\n const { Method, Arguments, Url } = endpoint;\n const { errorMessage } = literals;\n\n const values = { [ID]: value };\n\n Services()\n .sendForm({\n Url,\n Method,\n Arguments: Mapper(Arguments, values)\n })\n .subscribe(data => {\n if (!data) {\n // Mostramos el error\n const node = toNode(`
`)[0];\n document.body.appendChild(node);\n setTimeout(() => node.classList.add('is-visible'), 50);\n setTimeout(() => node.classList.remove('is-visible'), 2000);\n setTimeout(() => document.body.removeChild(node), 3000);\n\n return;\n }\n\n // Ha ido todo bien\n window.location.assign(data.url);\n });\n}\n\nmodule.exports = {\n sendForm\n};\n","/* ==========================================================================\n MainGroupsCru > Client > Form > Mapper\n ========================================================================== */\n\n/* Exports */\nmodule.exports = function mapArguments(args = [], values = {}) {\n if (args.length < 1) {\n return args;\n }\n\n return args\n .map(argument => {\n /* Data */\n const { Name, Value } = argument;\n\n if (Value) {\n return argument;\n }\n\n if (!values[Name]) {\n return false;\n }\n\n return {\n ...argument,\n Value: values[Name]\n };\n })\n .filter(item => item);\n};\n","/* ==========================================================================\n BreadcrumbsIdCru > Client > Prototype\n ========================================================================== */\n\n/* Import modules */\nconst { Store } = require('@bluekiri/alexandria/helpers/state');\nconst { fromEvent } = require('rxjs');\n\nconst { actions, types } = require('./store/actions');\nconst { reducer } = require('./store/reducer');\nconst { sendForm } = require('./form');\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: () => {\n return this.store.dispatch(actions.destroy());\n }\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 sendFormKeyDown: fromEvent(window, 'keydown').subscribe(e => {\n const { input } = this.input.hooks;\n const { value } = input;\n\n if (value === '' || document.activeElement !== input) return;\n if (e.keyCode && e.keyCode === 13) sendForm(this, value);\n }),\n sendFormClick: fromEvent(this.input.element.querySelector('i'), 'click').subscribe(() => {\n const { value } = this.input.hooks.input;\n if (value === '') return;\n sendForm(this, value);\n })\n };\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 /* Start */\n this.start();\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n","/* ==========================================================================\n BreadcrumbsIdCru > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst Input = require('@bluekiri/alexandria-contrib-components/components/input-rxjs/client/js');\n\nconst prototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * BreadcrumbsIdCru component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function BreadcrumbsIdCru(selector = '[data-component=BreadcrumbsIdCru]', 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 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 instance.input = Input(`${selector} [data-component=InputRxjs]`);\n\n /* Init */\n instance.init();\n\n /* Return */\n return instance;\n }\n};\n","/* ==========================================================================\n BreadcrumbsIdCru > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'BreadcrumbsIdCru',\n init: true,\n start: true,\n css: {\n input: 'input-rxjs--with-border',\n breadcrumbsId: 'breadcrumbs-rxjs--id'\n },\n type: {}\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n BreadcrumbsIdCru > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'BREADCRUMBSIDCRU::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"],"sourceRoot":""}