{"version":3,"sources":["webpack:///./node_modules/@bluekiri/alexandria/helpers/date.js","webpack:///./node_modules/@bluekiri/alexandria/helpers/text.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/cruise-reviews/client/js/config.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/cruise-reviews/client/js/service/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/cruise-reviews/review-item/index.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/score-rxjs/client/js/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/cruise-reviews/client/js/prototype.js","webpack:///./node_modules/@bluekiri/alexandria/helpers/pipe.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/cruise-reviews/client/js/store/actions.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/score-rxjs/client/js/store/actions.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/score-rxjs/client/js/config.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/score-rxjs/client/js/store/reducer.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/cruise-reviews/client/js/reviewItem/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/cruise-reviews/client/js/index.js","webpack:///./node_modules/@logitravel/alex-comp-cru/components/cruise-reviews/client/js/store/reducer.js","webpack:///./node_modules/@bluekiri/alexandria-contrib-components/components/score-rxjs/client/js/prototype.js"],"names":["module","exports","toDDMMYYYY","date","arguments","length","undefined","d","Date","day","getDate","month","getMonth","year","getFullYear","concat","join","toDDMM","toYYYY","uppercase","text","toUpperCase","kebabToCamel","replace","g","kebabToPascal","toCamel","substr","firstCharacter","charAt","kebabToPascalWithoutHyphens","pascal","config","component","init","start","hooks","container","css","score","hidden","loading","controller","signal","of","require","_require2","catchError","switchMap","fromFetch","getReviews","data","instance","context","modelAjaxEndpoint","businessAreaName","_data$codBarco","codBarco","_data$pageNum","pageNum","_data$pageSize","pageSize","abort","window","AbortController","headers","Headers","append","params","method","credentials","body","JSON","stringify","Name","BusinessAreaName","Arguments","Value","pipe","response","ok","json","error","message","statusText","err","html","_require3","icon","markdown","_require5","_data$user","user","_data$value","value","_data$description","description","_data$date","_data$positive","positive","_data$negative","negative","pipes","letter","elementExist","prototype","selector","configuration","Object","create","element","document","querySelector","_objectSpread","dataset","result","parse","Store","toNode","take","pagTypes","types","actions","reducer","_require8","addReviewItems","destroyReviewItems","setupStore","this","store","reviews","setupActions","_this","destroy","dispatch","display","hide","fetchResults","filters","cleanResults","setResults","results","setDescription","descriptionPag","setupReactions","_this2","reactions","subscribe","state","action","type","DESTROY","_toConsumableArray","keys","forEach","key","unsubscribe","parentNode","removeChild","DISPLAY","classList","remove","HIDE","add","FETCH_RESULTS","payload","next","CLEAN_RESULTS","SET_RESULTS","SET_DESCRIPTION","pagination","_action$payload","size","multi","page","viewNumber","content","paginationLabel","node","insertBefore","wrapper","paginationChanged","CHANGE_PAGE","_this2$pagination$sto","select","scrollTo","offsetTop","_this$pagination$stor","_len","fns","Array","_key","arg","reduce","acc","val","initialState","reviewItemTemplate","inst","nodes","map","item","template","createReviewItem","appendChild","ScoreRxjs","PaginationRxjs","querySelectorAll","filter","subscriptions","_this3"],"mappings":"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","file":"vendors~cruise-reviews.a5752b6db08c1be2b073.bundle.js","sourcesContent":["/* ==========================================================================\n Helpers > Date\n ========================================================================== */\n\n/**\n * To DDMMYYYY\n * @param {string} Date ISOString\n * @returns {string} Return date formated to DD/MM/YYYY\n *\n * example\n * toDDMMYYYY('08/27/2016');\n * > 27/08/2016\n */\nfunction toDDMMYYYY(date = '') {\n const d = new Date(date);\n const day = d.getDate();\n const month = d.getMonth() + 1;\n const year = d.getFullYear();\n\n return [day < 10 ? `0${day}` : day, month < 10 ? `0${month}` : month, year].join('/');\n}\n\n/**\n * To DDMM\n * @param {string} Date ISOString\n * @returns {string} Return date formated to DD/MM\n *\n * example\n * toDDMM('08/27/2016');\n * > 27/08\n */\nfunction toDDMM(date = '') {\n const d = new Date(date);\n const day = d.getDate();\n const month = d.getMonth() + 1;\n\n return [day < 10 ? `0${day}` : day, month < 10 ? `0${month}` : month].join('/');\n}\n\n/**\n * toYear\n * @param {string} Date ISOString\n * @returns {string} Formated date to YYYY\n *\n * example\n * toYYYY('08/27/2016')\n * > 2016\n */\nfunction toYYYY(date = '') {\n const d = new Date(date);\n\n return d.getFullYear();\n}\n\n/* Exports */\nmodule.exports = {\n toDDMMYYYY,\n toDDMM,\n toYYYY\n};\n","/* ==========================================================================\n Helpers > Text\n ========================================================================== */\n\n/**\n * First character\n * @param {string} Text\n * @returns {string} First character of the text\n */\nfunction firstCharacter(text = '') {\n return text.charAt(0);\n}\n\n/**\n * Uppercase\n * @param {string} Text\n * @returns {string} Text in uppercase\n */\nfunction uppercase(text = '') {\n return text.toUpperCase();\n}\n\n/**\n * Kebab to camel\n * @param {string} text-input\n * @returns {string} camelCased\n */\nfunction kebabToCamel(text = '') {\n return text.replace(/-([a-z])/g, g => uppercase(g[1]));\n}\n\n/**\n * Kebab to pascal\n * @param {string} text-input\n * @returns {string} PascalCased\n */\nfunction kebabToPascal(text = '') {\n const toCamel = kebabToCamel(text);\n return uppercase(toCamel[0]) + toCamel.substr(1);\n}\n\nfunction kebabToPascalWithoutHyphens(text = '') {\n const pascal = kebabToPascal(text);\n return pascal.replace(/-/g, '');\n}\n\n/* Exports */\nmodule.exports = {\n firstCharacter,\n uppercase,\n kebabToCamel,\n kebabToPascal,\n kebabToPascalWithoutHyphens\n};\n","/* ==========================================================================\n CruiseReviews > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'CruiseReviews',\n init: true,\n start: true,\n hooks: {\n container: '[data-container]'\n },\n css: {\n score: 'cruise-reviews__score',\n hidden: 'is-hidden',\n loading: 'is-loading'\n }\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n CruiseReviews > Client > Services\n ========================================================================== */\n\n/* Modules */\nconst { of } = require('rxjs');\nconst { catchError, switchMap } = require('rxjs/operators');\nconst { fromFetch } = require('rxjs/fetch');\n\n/* Global variables for AbortController */\nlet controller;\nlet signal;\n\n/**\n * Get the cards list from the remote server\n * @param {string} endpoint Remote address to connect\n * @param {object} params\n * @returns {JSON} data\n */\nfunction getReviews(data, instance) {\n const { config } = instance;\n const { context } = config;\n const { modelAjaxEndpoint, businessAreaName } = context;\n const { codBarco = 0, pageNum = 1, pageSize = 5 } = data;\n\n /* Cancel the previous request */\n if (controller !== undefined) {\n controller.abort();\n }\n\n /* Feature detect */\n if ('AbortController' in window) {\n controller = new AbortController();\n signal = controller.signal;\n }\n\n /**\n * Set header request\n */\n const headers = new Headers();\n headers.append('Content-Type', 'application/json');\n headers.append('X-Requested-With', 'XMLHttpRequest');\n\n /**\n * Set parameters\n */\n const params = {\n signal,\n method: 'POST',\n headers,\n credentials: 'include',\n body: JSON.stringify({\n Name: 'ship-reviews-model',\n BusinessAreaName: businessAreaName,\n Arguments: [\n {\n Name: 'productType',\n Value: 'Cruises'\n },\n {\n Name: 'codBarco',\n Value: `${codBarco}`\n },\n {\n Name: 'pageNum',\n Value: `${pageNum}`\n },\n {\n Name: 'pageSize',\n Value: `${pageSize}`\n }\n ]\n })\n };\n\n return fromFetch(modelAjaxEndpoint, params).pipe(\n switchMap(response => {\n if (response.ok) {\n return response.json();\n }\n return of({ error: true, message: `Error fetching products ${response.statusText}` });\n }),\n catchError(err => {\n return of({ error: true, message: err.message });\n })\n );\n}\n\n/* Exports */\nmodule.exports = {\n getReviews\n};\n","/* ==========================================================================\n ReviewItem > template\n ========================================================================== */\n\n/* Import modules */\nconst { html } = require('common-tags');\nconst { pipe } = require('@bluekiri/alexandria/helpers/pipe');\nconst { icon, markdown } = require('@bluekiri/alexandria/core/ViewHelpers')();\nconst { toDDMMYYYY } = require('@bluekiri/alexandria/helpers/date');\nconst { firstCharacter, uppercase } = require('@bluekiri/alexandria/helpers/text');\n\n/**\n * ReviewItem template\n * @param {object} data Object containing the data model for this component.\n * @returns {object} Additional data to have available in the template\n */\nmodule.exports = function Template(data) {\n /* Data */\n const { user = '', value = 0, description = '', date = new Date(), positive = '', negative = '' } = data;\n\n /* Pipe */\n const pipes = {\n toDDMMYYYY: pipe(toDDMMYYYY),\n letter: pipe(firstCharacter, uppercase)\n };\n\n return html(`\n
\n
\n
\n

${pipes.letter(user)}

\n
\n ${value}\n
\n
\n
\n

${user}

\n

${description}

\n

${pipes.toDDMMYYYY(new Date(date))}

\n
\n
\n
\n
\n

\n ${icon('thumbs-up')}\n ${markdown(positive)}\n

\n

\n ${icon('thumbs-down')}\n ${markdown(negative)}\n

\n
\n
\n
\n `);\n};\n","/* ==========================================================================\n ScoreRxjs > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\n\nconst prototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * ScoreRxjs component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function ScoreRxjs(selector = '[data-component=ScoreRxjs]', configuration = {}) {\n if (elementExist(selector)) {\n /* Instance */\n const instance = Object.create(prototype);\n\n /* Element */\n instance.element = document.querySelector(selector);\n\n /* Selector */\n instance.selector = 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 CruiseReviews > Client > Prototype\n ========================================================================= */\n/* Modules */\nconst { Store } = require('@bluekiri/alexandria/helpers/state');\nconst { toNode } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst { of } = require('rxjs');\nconst { take } = require('rxjs/operators');\n\n/* Store */\nconst pagTypes = require('@bluekiri/alexandria-contrib-components/components/pagination-rxjs/client/js/store/actions')\n .types;\nconst { actions, types } = require('./store/actions');\nconst { reducer } = require('./store/reducer');\n\n/* Service */\nconst { getReviews } = require('./service');\n\nconst { addReviewItems, destroyReviewItems } = require('./reviewItem');\n\n/* Prototype */\nconst prototype = {\n /* Setup store */\n setupStore() {\n if (this.store) return this;\n\n this.store = new Store({\n reviews: 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 display: () => {\n return this.store.dispatch(actions.display());\n },\n hide: () => {\n return this.store.dispatch(actions.hide());\n },\n fetchResults: filters => {\n return this.store.dispatch(actions.fetchResults(filters));\n },\n cleanResults: () => {\n return this.store.dispatch(actions.cleanResults());\n },\n setResults: results => {\n return this.store.dispatch(actions.setResults(results));\n },\n setDescription: descriptionPag => {\n return this.store.dispatch(actions.setDescription(descriptionPag));\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 [...Object.keys(this.reactions)].forEach(key => this.reactions[key].unsubscribe());\n\n /* Remove DOM */\n this.element.parentNode.removeChild(this.element);\n\n /* Clean */\n [...Object.keys(this)].forEach(key => delete this[key]);\n }),\n display: this.store.subscribe((state, action) => {\n if (action.type !== types.DISPLAY) return;\n\n const { css } = this.config;\n\n this.element.classList.remove(css.hidden);\n }),\n hide: this.store.subscribe((state, action) => {\n if (action.type !== types.HIDE) return;\n\n const { css } = this.config;\n\n this.element.classList.add(css.hidden);\n }),\n fetchResults: this.store.subscribe((state, action) => {\n if (action.type !== types.FETCH_RESULTS) return;\n\n getReviews(action.payload, this)\n .pipe(take(1))\n .subscribe({\n next: results => {\n this.actions.setResults(results.error ? [] : results);\n return true;\n },\n error: err => {\n return of({ error: true, message: err.message });\n }\n });\n }),\n cleanResults: this.store.subscribe((state, action) => {\n if (action.type !== types.CLEAN_RESULTS) return;\n\n this.hooks.container.classList.add(this.config.css.loading);\n\n destroyReviewItems(this);\n }),\n setResults: this.store.subscribe((state, action) => {\n if (action.type !== types.SET_RESULTS) return;\n\n addReviewItems(this, action.payload);\n this.hooks.container.classList.remove(this.config.css.loading);\n }),\n setDescription: this.store.subscribe((state, action) => {\n if (action.type !== types.SET_DESCRIPTION) return;\n\n this.pagination.element.removeChild(this.pagination.element.querySelector('span'));\n const { size, page } = action.payload;\n const multi = size * page;\n const viewNumber = `${multi - size + 1}-${multi}`;\n const content = this.config.paginationLabel.replace('##viewNumber##', viewNumber);\n const node = toNode(`${content}`)[0];\n this.pagination.element.insertBefore(node, this.pagination.hooks.wrapper);\n }),\n paginationChanged: this.pagination.store.subscribe((state, action) => {\n if (action.type !== pagTypes.CHANGE_PAGE) return;\n\n const { page, size } = this.pagination.store.select('pagination');\n\n this.actions.cleanResults();\n\n this.actions.setDescription({ page, size });\n this.actions.fetchResults({ codBarco: this.config.codBarco, pageSize: size, pageNum: action.payload });\n if (document.querySelector('[data-component=\"TabsShipInfo\"]'))\n window.scrollTo(0, document.querySelector('[data-component=\"TabsShipInfo\"]').offsetTop);\n else window.scrollTo(0, this.element.offsetTop);\n })\n };\n\n return this;\n },\n start() {\n if (!this.config.start) return;\n\n const { page, size } = this.pagination.store.select('pagination');\n\n this.actions.setDescription({ page, size });\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 /* Start */\n this.start();\n\n return this;\n }\n};\n\n// Exports\nmodule.exports = prototype;\n","/* ==========================================================================\n Pipe\n ========================================================================== */\n\n/* Pipe builder */\nconst pipe = (...fns) => arg => fns.reduce((acc, val) => val(acc), arg);\n\n/* Exports */\nmodule.exports = {\n pipe\n};\n","/* ==========================================================================\n CruiseReviews > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'CRUISE_REVIEWS::DESTROY';\nconst DISPLAY = 'CRUISE_REVIEWS::DISPLAY';\nconst HIDE = 'CRUISE_REVIEWS::HIDE';\n\n// Results related\nconst CLEAN_RESULTS = 'CRUISE_REVIEWS::CLEAN_RESULTS';\nconst FETCH_RESULTS = 'CRUISE_REVIEWS::FETCH_RESULTS';\nconst SET_RESULTS = 'CRUISE_REVIEWS::SET_RESULTS';\nconst SET_DESCRIPTION = 'CRUISE_REVIEWS::SET_DESCRIPTION';\n\n/* Actions */\nconst destroy = () => ({ type: DESTROY });\nconst display = () => ({ type: DISPLAY });\nconst hide = () => ({ type: HIDE });\nconst cleanResults = () => ({ type: CLEAN_RESULTS });\nconst fetchResults = payload => ({ type: FETCH_RESULTS, payload });\nconst setResults = payload => ({ type: SET_RESULTS, payload });\nconst setDescription = payload => ({ type: SET_DESCRIPTION, payload });\n\n/* Exports */\nmodule.exports = {\n types: {\n DESTROY,\n DISPLAY,\n HIDE,\n CLEAN_RESULTS,\n FETCH_RESULTS,\n SET_RESULTS,\n SET_DESCRIPTION\n },\n actions: {\n destroy,\n display,\n hide,\n cleanResults,\n fetchResults,\n setResults,\n setDescription\n }\n};\n","/* ==========================================================================\n ScoreRxjs > Client > Store > Actions\n ========================================================================== */\n\n/* Types */\nconst DESTROY = 'SCORERXJS::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 ScoreRxjs > Client > Config\n ========================================================================== */\n\n/* Import modules */\n\n/* Config */\nconst config = {\n component: 'ScoreRxjs',\n init: true,\n start: true,\n css: {},\n type: {}\n};\n\nmodule.exports = () => config;\n","/* ==========================================================================\n ScoreRxjs > 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 CruiseReviews > Client > ReviewItem\n ========================================================================== */\n\n/* Modules */\nconst { toNode } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst reviewItemTemplate = require('../../../review-item');\n\nfunction createReviewItem(data) {\n /* template */\n const template = reviewItemTemplate(data);\n\n /* toNode */\n const node = toNode(template)[0];\n\n return node;\n}\n\nfunction addReviewItems(instance, data) {\n const inst = instance;\n\n const nodes = data.map(item => createReviewItem(item));\n\n inst.reviews = nodes.map(node => inst.hooks.container.appendChild(node));\n\n return inst;\n}\n\nfunction destroyReviewItems(instance) {\n const inst = instance;\n\n (inst.reviews || []).forEach(node => inst.hooks.container.removeChild(node));\n\n delete inst.reviews;\n\n return instance;\n}\n\n/* Exports */\nmodule.exports = {\n addReviewItems,\n destroyReviewItems\n};\n","/* ==========================================================================\n CruiseReviews > Client\n ========================================================================== */\n\n/* Import modules */\nconst { elementExist } = require('@bluekiri/alexandria/helpers/domHelpers');\nconst ScoreRxjs = require('@bluekiri/alexandria-contrib-components/components/score-rxjs/client/js');\nconst PaginationRxjs = require('@bluekiri/alexandria-contrib-components/components/pagination-rxjs/client/js');\nconst prototype = require('./prototype');\nconst config = require('./config');\n\n/**\n * CruiseReviews component\n * @param {selector} String selector for the component in the client side.\n */\nmodule.exports = function CruiseReviews(selector = '[data-component=CruiseReviews]', configuration = {}) {\n if (elementExist(selector)) {\n /* Instance */\n const instance = Object.create(prototype);\n\n /* Element reference */\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\n return result;\n })()\n };\n\n instance.hooks = {\n container: instance.element.querySelector('[data-container]')\n };\n\n instance.reviews = instance.element.querySelectorAll('[data-component=\"ReviewItem\"]');\n\n instance.score = ScoreRxjs(`${selector} [data-component=\"ScoreRxjs\"]`);\n\n instance.pagination = PaginationRxjs(`${selector} [data-component=\"PaginationRxjs\"]`, {\n ...configuration.pagination\n });\n\n instance.init();\n\n /* Return */\n return instance;\n }\n};\n","/* ==========================================================================\n CruiseReviews > Client > Store > Reducer\n ========================================================================== */\n\n/* Modules */\nconst { types } = require('./actions');\n\n/* Initial state */\nconst initialState = {\n hidden: false,\n loading: false,\n filter: {},\n results: [],\n pagination: {},\n descriptionPag: {}\n};\n\n/* Reducer */\nfunction reducer(state = initialState, action) {\n switch (action.type) {\n case types.DESTROY:\n return state;\n case types.DISPLAY:\n return {\n ...state,\n hidden: false\n };\n case types.HIDE:\n return {\n ...state,\n hidden: true\n };\n case types.FETCH_RESULTS:\n return {\n ...state,\n loading: true,\n filter: action.payload\n };\n case types.CLEAN_RESULTS:\n return {\n ...state,\n filter: {},\n results: []\n };\n case types.SET_RESULTS:\n return {\n ...state,\n loading: false,\n results: action.payload\n };\n case types.SET_DESCRIPTION:\n return {\n ...state,\n loading: false,\n descriptionPag: action.payload\n };\n default:\n return state;\n }\n}\n\n/* Exports */\nmodule.exports = {\n reducer\n};\n","/* ==========================================================================\n ScoreRxjs > 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\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 /* Start */\n this.start();\n\n return this;\n }\n};\n\n/* Exports */\nmodule.exports = prototype;\n"],"sourceRoot":""}