{"version":3,"file":"ToastReducer.cjs","sources":["../../../../src/lib/Toast/ToastReducer.ts"],"sourcesContent":["/**\n * Action names collection\n * @example\n * import { Actions } from './ToastReducer';\n * dispatch({ type: Toast.TOAST_CLOSE})\n * dispatch({ type: Toast.TOAST_OPEN})\n * */\nexport enum Actions {\n    TOAST_CLOSE = 'TOAST_CLOSE',\n    TOAST_OPEN = 'TOAST_OPEN',\n}\n\n/** Toast ID type */\nexport type Id = string;\n\n/** Toast state type */\nexport type ToastState = {\n    /** List of open Toasts' IDs */\n    open: Id;\n};\n\nexport const initialState = {\n    open: '',\n} as ToastState;\n\nexport type ToastAction = {\n    /** ID of target Toast */\n    id: Id;\n    /** Action name */\n    type: Actions;\n};\n\nexport const ToastReducer = (state = initialState, action: ToastAction): ToastState => {\n    switch (action.type) {\n        case Actions.TOAST_CLOSE: {\n            const {id} = action;\n            const nextOpen = state.open === id ? '' : state.open;\n            return {\n                ...state,\n                open: nextOpen,\n            };\n        }\n        case Actions.TOAST_OPEN: {\n            const {id} = action;\n            return {\n                ...state,\n                open: id,\n            };\n        }\n        default:\n            return state;\n    }\n};\n"],"names":["Actions","initialState","ToastReducer","state","action","id","nextOpen"],"mappings":"6FAOO,IAAKA,GAAAA,IACRA,EAAA,YAAc,cACdA,EAAA,WAAa,aAFLA,IAAAA,GAAA,CAAA,CAAA,EAcL,MAAMC,EAAe,CACxB,KAAM,EACV,EASaC,EAAe,CAACC,EAAQF,EAAcG,IAAoC,CACnF,OAAQA,EAAO,KAAA,CACX,IAAK,cAAqB,CACtB,KAAM,CAAC,GAAAC,GAAMD,EACPE,EAAWH,EAAM,OAASE,EAAK,GAAKF,EAAM,KAChD,MAAO,CACH,GAAGA,EACH,KAAMG,CAAA,CAEd,CACA,IAAK,aAAoB,CACrB,KAAM,CAAC,GAAAD,GAAMD,EACb,MAAO,CACH,GAAGD,EACH,KAAME,CAAA,CAEd,CACA,QACI,OAAOF,CAAA,CAEnB"}