{"version":3,"file":"DialogReducer.cjs","sources":["../../../../src/lib/Dialog/DialogReducer.ts"],"sourcesContent":["import {without} from '@/internal/utils/without.ts';\n\n/**\n * Action names collection\n * @example\n * import { Actions } from './DialogReducer';\n * dispatch({ type: Actions.DIALOG_CLOSE})\n * dispatch({ type: Actions.DIALOG_OPEN})\n * */\nexport enum Actions {\n    DIALOG_CLOSE = 'DIALOG_CLOSE',\n    DIALOG_OPEN = 'DIALOG_OPEN',\n}\n\n/** Dialog parameters */\nexport type DialogParams = Record<string, unknown>;\n\n/** Dialog ID type */\nexport type Id = string;\n\n/** Dialog state type */\nexport type DialogState = {\n    /** List of open modals' IDs */\n    open: {id: Id; params?: DialogParams}[];\n};\n\nexport const initialState = {\n    open: [],\n} as DialogState;\n\nexport type DialogAction = {\n    /** ID of target Dialog */\n    id: Id;\n    /** Action name */\n    type: Actions;\n    /** Optional Dialog parameters */\n    params?: DialogParams;\n};\n\nexport const DialogReducer = (state = initialState, action: DialogAction): DialogState => {\n    switch (action.type) {\n        case Actions.DIALOG_CLOSE: {\n            const {id} = action;\n            const nextOpen = without(({id: dialogId}) => dialogId !== id, state.open);\n            return {\n                ...state,\n                open: nextOpen,\n            };\n        }\n        case Actions.DIALOG_OPEN: {\n            const {id, params} = action;\n            return {\n                ...state,\n                open: [...state.open, {id, params}],\n            };\n        }\n        default:\n            return state;\n    }\n};\n"],"names":["Actions","initialState","DialogReducer","state","action","id","nextOpen","without","dialogId","params"],"mappings":"iJASO,IAAKA,GAAAA,IACRA,EAAA,aAAe,eACfA,EAAA,YAAc,cAFNA,IAAAA,GAAA,CAAA,CAAA,EAiBL,MAAMC,EAAe,CACxB,KAAM,CAAA,CACV,EAWaC,EAAgB,CAACC,EAAQF,EAAcG,IAAsC,CACtF,OAAQA,EAAO,KAAA,CACX,IAAK,eAAsB,CACvB,KAAM,CAAC,GAAAC,GAAMD,EACPE,EAAWC,UAAQ,CAAC,CAAC,GAAIC,KAAcA,IAAaH,EAAIF,EAAM,IAAI,EACxE,MAAO,CACH,GAAGA,EACH,KAAMG,CAAA,CAEd,CACA,IAAK,cAAqB,CACtB,KAAM,CAAC,GAAAD,EAAI,OAAAI,CAAA,EAAUL,EACrB,MAAO,CACH,GAAGD,EACH,KAAM,CAAC,GAAGA,EAAM,KAAM,CAAC,GAAAE,EAAI,OAAAI,EAAO,CAAA,CAE1C,CACA,QACI,OAAON,CAAA,CAEnB"}