{"version":3,"file":"reducer.mjs","sources":["../../../../admin/src/components/UsersPermissions/reducer.js"],"sourcesContent":["/* eslint-disable consistent-return */\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport take from 'lodash/take';\n\nexport const initialState = {\n  initialData: {},\n  modifiedData: {},\n  routes: {},\n  selectedAction: '',\n  policies: [],\n};\n\nconst reducer = (state, action) =>\n  produce(state, (draftState) => {\n    switch (action.type) {\n      case 'ON_CHANGE': {\n        const keysLength = action.keys.length;\n        const isChangingCheckbox = action.keys[keysLength - 1] === 'enabled';\n\n        if (action.value && isChangingCheckbox) {\n          const selectedAction = take(action.keys, keysLength - 1).join('.');\n          draftState.selectedAction = selectedAction;\n        }\n\n        set(draftState, ['modifiedData', ...action.keys], action.value);\n        break;\n      }\n      case 'ON_CHANGE_SELECT_ALL': {\n        const pathToValue = ['modifiedData', ...action.keys];\n        const oldValues = get(state, pathToValue, {});\n        const updatedValues = Object.keys(oldValues).reduce((acc, current) => {\n          acc[current] = { ...oldValues[current], enabled: action.value };\n\n          return acc;\n        }, {});\n\n        set(draftState, pathToValue, updatedValues);\n\n        break;\n      }\n      case 'ON_RESET': {\n        draftState.modifiedData = state.initialData;\n        break;\n      }\n      case 'ON_SUBMIT_SUCCEEDED': {\n        draftState.initialData = state.modifiedData;\n        break;\n      }\n\n      case 'SELECT_ACTION': {\n        const { actionToSelect } = action;\n        draftState.selectedAction = actionToSelect === state.selectedAction ? '' : actionToSelect;\n        break;\n      }\n      default:\n        return draftState;\n    }\n  });\n\nexport default reducer;\n"],"names":["initialState","initialData","modifiedData","routes","selectedAction","policies","reducer","state","action","produce","draftState","type","keysLength","keys","length","isChangingCheckbox","value","take","join","set","pathToValue","oldValues","get","updatedValues","Object","reduce","acc","current","enabled","actionToSelect"],"mappings":";;;;;MAMaA,YAAAA,GAAe;AAC1BC,IAAAA,WAAAA,EAAa,EAAC;AACdC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,MAAAA,EAAQ,EAAC;IACTC,cAAAA,EAAgB,EAAA;AAChBC,IAAAA,QAAAA,EAAU;AACZ;AAEA,MAAMC,UAAU,CAACC,KAAAA,EAAOC,MAAAA,GACtBC,OAAAA,CAAQF,OAAO,CAACG,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOG,IAAI;YACjB,KAAK,WAAA;AAAa,gBAAA;AAChB,oBAAA,MAAMC,UAAAA,GAAaJ,MAAAA,CAAOK,IAAI,CAACC,MAAM;AACrC,oBAAA,MAAMC,qBAAqBP,MAAAA,CAAOK,IAAI,CAACD,UAAAA,GAAa,EAAE,KAAK,SAAA;oBAE3D,IAAIJ,MAAAA,CAAOQ,KAAK,IAAID,kBAAAA,EAAoB;wBACtC,MAAMX,cAAAA,GAAiBa,KAAKT,MAAAA,CAAOK,IAAI,EAAED,UAAAA,GAAa,CAAA,CAAA,CAAGM,IAAI,CAAC,GAAA,CAAA;AAC9DR,wBAAAA,UAAAA,CAAWN,cAAc,GAAGA,cAAAA;AAC9B,oBAAA;AAEAe,oBAAAA,GAAAA,CAAIT,UAAAA,EAAY;AAAC,wBAAA,cAAA;AAAmBF,wBAAAA,GAAAA,MAAAA,CAAOK;AAAK,qBAAA,EAAEL,OAAOQ,KAAK,CAAA;AAC9D,oBAAA;AACF,gBAAA;YACA,KAAK,sBAAA;AAAwB,gBAAA;AAC3B,oBAAA,MAAMI,WAAAA,GAAc;AAAC,wBAAA,cAAA;AAAmBZ,wBAAAA,GAAAA,MAAAA,CAAOK;AAAK,qBAAA;AACpD,oBAAA,MAAMQ,SAAAA,GAAYC,GAAAA,CAAIf,KAAAA,EAAOa,WAAAA,EAAa,EAAC,CAAA;oBAC3C,MAAMG,aAAAA,GAAgBC,OAAOX,IAAI,CAACQ,WAAWI,MAAM,CAAC,CAACC,GAAAA,EAAKC,OAAAA,GAAAA;wBACxDD,GAAG,CAACC,QAAQ,GAAG;4BAAE,GAAGN,SAAS,CAACM,OAAAA,CAAQ;AAAEC,4BAAAA,OAAAA,EAASpB,OAAOQ;AAAM,yBAAA;wBAE9D,OAAOU,GAAAA;AACT,oBAAA,CAAA,EAAG,EAAC,CAAA;AAEJP,oBAAAA,GAAAA,CAAIT,YAAYU,WAAAA,EAAaG,aAAAA,CAAAA;AAE7B,oBAAA;AACF,gBAAA;YACA,KAAK,UAAA;AAAY,gBAAA;oBACfb,UAAAA,CAAWR,YAAY,GAAGK,KAAAA,CAAMN,WAAW;AAC3C,oBAAA;AACF,gBAAA;YACA,KAAK,qBAAA;AAAuB,gBAAA;oBAC1BS,UAAAA,CAAWT,WAAW,GAAGM,KAAAA,CAAML,YAAY;AAC3C,oBAAA;AACF,gBAAA;YAEA,KAAK,eAAA;AAAiB,gBAAA;oBACpB,MAAM,EAAE2B,cAAc,EAAE,GAAGrB,MAAAA;AAC3BE,oBAAAA,UAAAA,CAAWN,cAAc,GAAGyB,cAAAA,KAAmBtB,KAAAA,CAAMH,cAAc,GAAG,EAAA,GAAKyB,cAAAA;AAC3E,oBAAA;AACF,gBAAA;AACA,YAAA;gBACE,OAAOnB,UAAAA;AACX;AACF,IAAA,CAAA;;;;"}