{"version":3,"sources":["store/actions/authentication.js","api/authentication.js","store/actions/player.js","lib/authentication.js","store/actions/entities/index.js","lib/request.js","store/actions/serie.js","store/actions/search.js","store/lib/fetchApi.js","polyfill.js","screens/404.js","store/reducers/authentication.js","store/reducers/error.js","store/lib/createEntityReducer.js","store/reducers/entities/ambiences.js","store/reducers/entities/ambienceTypes.js","store/reducers/entities/causalElementCategories.js","store/reducers/entities/collections.js","store/reducers/entities/impulseResponses.js","store/reducers/entities/mainMaterialCategories.js","store/reducers/entities/microphoneBrands.js","store/reducers/entities/narrativeElementCategories.js","store/reducers/entities/programTypes.js","store/reducers/entities/recorderBrands.js","store/reducers/entities/recordingTypes.js","store/reducers/entities/secondaryMaterialCategories.js","store/reducers/entities/structureCategories.js","store/reducers/entities/users.js","store/reducers/entities/index.js","store/reducers/loading.js","store/reducers/player.js","store/reducers/search.js","store/reducers/serie.js","store/index.js","App.js","serviceWorker.js","index.js"],"names":["ACTION_KEY","LOGIN_FAILURE","LOGIN_REQUEST","LOGIN_SUCCESS","LOGOUT","UPDATE","select","state","authentication","selectToken","token","loginAction","username","password","dispatch","type","basicToken","btoa","request","headers","authorization","then","user","login","auth","update","successAction","error","failureAction","logoutAction","clear","updateAction","updatedUserProfile","prevLocalStorage","get","updatedProfile","nextLocalStorage","Object","assign","PAUSE","PLAY","SET_CURRENT","SET_PLAYLIST","CLEAR_PLAYLIST","TOGGLE","player","selectCurrent","current","selectIsCurrent","sound","_id","selectIsPlaying","isPlaying","selectPlaylist","playlist","selectCurrentSound","currentIndex","findIndex","pauseAction","setCurrentAction","toggleAction","startPlaylistAction","sounds","setTimeout","setPlaylistAction","stopAction","nextAction","getState","next","length","previousAction","previous","LOCAL_STORAGE_KEY","localStorage","setItem","JSON","stringify","removeItem","parse","getItem","ADD_ENTITIES","REMOVE_ENTITIES","REMOVE_ENTITY","selectEntities","entities","addEntities","payload","removeEntities","result","response","Promise","resolve","reject","ok","json","message","catch","path","opts","options","body","FormData","base","fetchOptions","api","process","fetch","requestNoContentType","ADD_RESULTS","CLEAR_RESULTS","series","addResults","results","clearResults","search","withApi","apiCreator","actionCreator","action","reduxThunkerArgs","otherArgs","fetchApi","mergedOptions","AudioContext","window","webkitAudioContext","global","isSafariHell","webkitDecodeAudioData","prototype","decodeAudioData","audioBuffer","call","PageNotFound","getInitialState","storedAuthentication","getAuthentication","loggedIn","matches","exec","requestName","requestState","createEntityReducer","entityName","idAttribute","entries","reduce","mergedEntities","id","entity","keys","newState","deletedEntities","Array","isArray","forEach","deletedEntity","STATE_KEY","reducer","combineReducers","AMBIENCES_STATE_KEY","ambiencesEntitiesReducer","AMBIENCE_TYPES_STATE_KEY","ambienceTypesEntitiesReducer","CAUSAL_ELEMENT_CATEGORIES_STATE_KEY","causalElementCategoriesEntitiesReducer","COLLECTIONS_STATE_KEY","collectionsEntitiesReducer","IMPULSE_RESPONSES_STATE_KEY","impulseResponsesEntitiesReducer","MAIN_MATERIAL_CATEGORIES_STATE_KEY","mainMaterialCategoriesEntititesReducer","MICROPHONE_BRANDS_STATE_KEY","microphoneBrandsEntitiesReducer","NARRATIVE_ELEMENT_CATEGORIES_STATE_KEY","narrativeElementCategoriesEntitiesReducer","PROGRAM_TYPES_STATE_KEY","programTypesEntitiesReducer","RECORDER_BRANDS_STATE_KEY","recorderBrandsEntitiesReducer","RECORDING_TYPES_STATE_KEY","recordingTypesEntitiesReducer","SECONDARY_MATERIAL_CATEGORIES_STATE_KEY","secondaryMaterialCategoriesEntititesReducer","STRUCTURE_CATEGORIES_STATE_KEY","structureCategoriesEntitiesReducer","USERS_STATE_KEY","usersEntitiesReducer","loading","newValue","previousValue","Math","max","ambiences","impulseResponses","scene","space","label","logger","createLogger","predicate","collapsed","thunk","createThunkerMiddleware","extraArgumentsEnhanced","app","loggingIn","errorReducer","entitiesReducer","loadingReducer","playerReducer","searchReducer","searchSeriesReducer","store","createStore","applyMiddleware","DefaultLayout","Loadable","loader","className","App","exact","name","component","Page404","Boolean","location","hostname","match","console","info","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.e46bdd5b.chunk.js","sourcesContent":["import { login } from '../../api/authentication';\nimport { update, clear, get } from '../../lib/authentication';\n\nconst ACTION_KEY = 'authentication';\n\n/**\n * actions\n */\nexport const LOGIN_FAILURE = `${ACTION_KEY}/login/FAILURE`;\nexport const LOGIN_REQUEST = `${ACTION_KEY}/login/REQUEST`;\nexport const LOGIN_SUCCESS = `${ACTION_KEY}/login/SUCCESS`;\nexport const LOGOUT = `${ACTION_KEY}/logout`;\nexport const UPDATE = `${ACTION_KEY}/update`;\n\n/**\n * selectors\n */\nexport function select(state) {\n\treturn state.authentication;\n}\n\nexport function selectUser(state) {\n\treturn select(state).user;\n}\n\nexport function selectToken(state) {\n\treturn select(state).token;\n}\n\n/**\n * actions creators\n */\nfunction requestAction() { return { type: LOGIN_REQUEST }; }\nfunction successAction(auth) { return { type: LOGIN_SUCCESS, auth }; }\nfunction failureAction(error) { return { type: LOGIN_FAILURE, error }; }\n\nexport function loginAction(username, password) {\n\treturn ({ dispatch }) => {\n\t\tdispatch(requestAction({ username }));\n\n\t\treturn login(username, password)\n\t\t\t.then(\n\t\t\t\t(auth) => {\n\t\t\t\t\tupdate(auth);\n\t\t\t\t\tdispatch(successAction(auth));\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tdispatch(failureAction(error));\n\t\t\t\t\tthrow error;\n\t\t\t\t},\n\t\t\t);\n\t};\n}\n\nexport function logoutAction() {\n\tclear();\n\treturn { type: LOGOUT };\n}\n\nexport function updateAction(updatedUserProfile) {\n\tconst prevLocalStorage = get();\n\tconst { token, user } = prevLocalStorage;\n\n\tconst updatedProfile = { ...user, ...updatedUserProfile };\n\n\tconst nextLocalStorage = {\n\t\ttoken,\n\t\tuser: Object.assign({}, updatedProfile),\n\t};\n\n\tupdate(nextLocalStorage);\n\n\treturn { type: UPDATE };\n}\n","import request from '../lib/request';\n\nexport const AUTHENTICATION_API_PATH = '/auth';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const login = (username, password) => {\n\tconst basicToken = btoa(`${username}:${password}`);\n\n\treturn request(\n\t\t`${AUTHENTICATION_API_PATH}/login`,\n\t\t{\n\t\t\theaders: {\n\t\t\t\tauthorization: `basic ${basicToken}`,\n\t\t\t},\n\t\t},\n\t).then(user => (\n\t\t{\n\t\t\ttoken: basicToken,\n\t\t\tuser,\n\t\t}\n\t));\n};\n","const ACTION_KEY = 'player';\n\n/**\n * actions\n */\nexport const PAUSE = `${ACTION_KEY}/pause`;\nexport const PLAY = `${ACTION_KEY}/play`;\nexport const SET_CURRENT = `${ACTION_KEY}/set-current`;\nexport const SET_PLAYLIST = `${ACTION_KEY}/set-playlist`;\nexport const CLEAR_PLAYLIST = `${ACTION_KEY}/clear-playlist`;\n\nexport const TOGGLE = `${ACTION_KEY}/toggle`;\n\n/**\n * selectors\n */\nexport const select = state => state.player;\nexport const selectCurrent = state => select(state).current;\nexport const selectIsCurrent = (state, sound) => {\n\tconst current = selectCurrent(state);\n\tif (!current || !sound) return false;\n\treturn current === sound._id;\n};\n\nexport const selectIsPlaying = state => select(state).isPlaying;\n\nexport const selectPlaylist = state => select(state).playlist;\nexport const selectCurrentSound = (state) => {\n\tconst playlist = selectPlaylist(state);\n\tconst current = selectCurrent(state);\n\tconst currentIndex = playlist.findIndex(sound => sound._id === current);\n\tif (currentIndex === -1) return false;\n\treturn playlist[currentIndex];\n};\n\n/**\n * actions creators\n */\nexport const clearPlaylistAction = () => ({ type: CLEAR_PLAYLIST });\nexport const pauseAction = () => ({ type: PAUSE });\nexport const playAction = () => ({ type: PLAY });\nexport const setCurrentAction = sound => ({ type: SET_CURRENT, sound });\nexport const setPlaylistAction = sounds => ({ type: SET_PLAYLIST, playlist: sounds });\nexport const toggleAction = () => ({ type: TOGGLE });\n\nexport const startPlaylistAction = (sounds, sound) => ({ dispatch }) => {\n\tdispatch(pauseAction());\n\tsetTimeout(() => {\n\t\tdispatch(setPlaylistAction(sounds));\n\t\tdispatch(setCurrentAction(sound));\n\t\tdispatch(playAction());\n\t});\n};\n\nexport const stopAction = () => ({ dispatch }) => {\n\tdispatch(pauseAction());\n\tdispatch(setCurrentAction());\n\tdispatch(clearPlaylistAction());\n};\n\nexport const nextAction = () => ({ dispatch, getState }) => {\n\tconst state = getState();\n\tconst playlist = selectPlaylist(state);\n\n\tconst current = selectCurrent(state);\n\tconst currentIndex = playlist.findIndex(sound => sound._id === current);\n\n\tconst nextIndex = (currentIndex + 1) % playlist.length;\n\tconst next = playlist[nextIndex];\n\tdispatch(setCurrentAction(next));\n};\n\nexport const previousAction = () => ({ dispatch, getState }) => {\n\tconst state = getState();\n\tconst playlist = selectPlaylist(state);\n\n\tconst { length } = playlist;\n\tconst current = selectCurrent(state);\n\tconst currentIndex = playlist.findIndex(sound => sound._id === current);\n\tconst previousIndex = (((currentIndex - 1) % length) + length) % length;\n\tconst previous = playlist[previousIndex];\n\tdispatch(setCurrentAction(previous));\n};\n","export const LOCAL_STORAGE_KEY = 'authentication';\n\nexport const update = auth => (\n\tlocalStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(auth))\n);\n\nexport const clear = () => (\n\tlocalStorage.removeItem(LOCAL_STORAGE_KEY)\n);\n\nexport const get = () => (\n\tJSON.parse(localStorage.getItem(LOCAL_STORAGE_KEY))\n);\n","const ACTION_KEY = 'entities';\n\n/**\n * actions\n */\nexport const ADD_ENTITIES = `${ACTION_KEY}/add-entities`;\nexport const REMOVE_ENTITIES = `${ACTION_KEY}/remove-entities`;\nexport const REMOVE_ENTITY = `${ACTION_KEY}/delete-entity`;\n\n/**\n * selectors\n */\nexport const selectEntities = state => state.entities;\n\n/**\n * actions creators\n */\nexport const addEntities = entities => ({\n\ttype: ADD_ENTITIES,\n\tpayload: entities,\n});\n\nexport const removeEntity = (key, entity) => ({\n\ttype: REMOVE_ENTITY,\n\tpayload: {\n\t\t[key]: entity,\n\t},\n});\n\nexport const removeEntities = entities => ({\n\ttype: REMOVE_ENTITIES,\n\tpayload: entities,\n});\n","const { REACT_APP_API_URL } = process.env;\n\nexport const result = response => (\n\tnew Promise((resolve, reject) => {\n\t\tif (!response.ok) {\n\t\t\tresponse.json()\n\t\t\t\t.then((error) => {\n\t\t\t\t\tif (!error.message) {\n\t\t\t\t\t\terror.message = error.error || 'Error';\n\t\t\t\t\t}\n\t\t\t\t\treject(error);\n\t\t\t\t})\n\t\t\t\t.catch(reject);\n\t\t\treturn;\n\t\t}\n\t\tresolve(response.json());\n\t})\n);\n\nexport const requestNoContentType = (\n\tpath,\n\topts,\n) => {\n\tconst {\n\t\tbase,\n\t\ttoken,\n\t\t...fetchOptions\n\t} = opts;\n\n\tconst options = {\n\t\t...fetchOptions,\n\t\theaders: {\n\t\t\t...opts.headers,\n\t\t},\n\t};\n\n\tif (token) {\n\t\toptions.headers.authorization = `basic ${token}`;\n\t}\n\n\tconst api = `${(base || REACT_APP_API_URL)}${path}`;\n\n\treturn fetch(\n\t\tapi,\n\t\toptions,\n\t).then(result);\n};\n\nexport default (path, opts) => {\n\tconst options = {\n\t\t...opts,\n\t\theaders: {\n\t\t\t...opts.headers,\n\t\t},\n\t};\n\n\t// Add Content-Type only if not multipart to allow fetch api to add correct boundary\n\tif (!(options.body instanceof FormData)) {\n\t\toptions.headers['Content-Type'] = 'application/json';\n\t}\n\n\treturn requestNoContentType(path, options);\n};\n","const ACTION_KEY = 'series';\n\n/**\n * actions\n */\nexport const ADD_RESULTS = `${ACTION_KEY}/add-results`;\nexport const CLEAR_RESULTS = `${ACTION_KEY}/clear-results`;\n\n/**\n * selectors\n */\nexport const select = state => state.series;\n\n/**\n * actions creators\n */\nexport const addResults = results => ({ type: ADD_RESULTS, results });\nexport const clearResults = () => ({ type: CLEAR_RESULTS });\n","const ACTION_KEY = 'search';\n\n/**\n * actions\n */\nexport const ADD_RESULTS = `${ACTION_KEY}/add-results`;\n\n/**\n * selectors\n */\nexport const select = state => state.search;\n\n/**\n * actions creators\n */\nexport const addResults = results => ({ type: ADD_RESULTS, results });\n","import { selectToken } from '../actions/authentication';\nimport request from '../../lib/request';\n\nexport const withApi = (apiCreator, actionCreator) => (\n\t(...actionCreatorArgs) => {\n\t\tconst action = actionCreator(...actionCreatorArgs);\n\n\t\treturn (reduxThunkerArgs, ...otherArgs) => action(\n\t\t\t{\n\t\t\t\t...reduxThunkerArgs,\n\t\t\t\tapi: apiCreator(reduxThunkerArgs.fetchApi),\n\t\t\t},\n\t\t\t...otherArgs,\n\t\t);\n\t}\n);\n\nconst fetchApi = ({ getState }) => (\n\tpath,\n\toptions,\n) => {\n\tconst token = selectToken(getState());\n\n\tconst mergedOptions = {\n\t\t...options,\n\t\ttoken,\n\t};\n\n\treturn request(path, mergedOptions);\n};\n\nexport default fetchApi;\n","let { AudioContext } = window;\n\nif (window.webkitAudioContext) {\n\tglobal.isSafariHell = true;\n}\n\nif (!AudioContext) {\n\tconst { webkitAudioContext } = window;\n\tconst webkitDecodeAudioData = webkitAudioContext.prototype.decodeAudioData;\n\n\twebkitAudioContext.prototype.decodeAudioData = function decodeAudioData(audioBuffer) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\twebkitDecodeAudioData.call(this, audioBuffer, resolve, reject);\n\t\t});\n\t};\n\n\tAudioContext = webkitAudioContext;\n}\n\nglobal.AudioContext = AudioContext;\n","import React from 'react';\n\nconst PageNotFound = () => (\n\t