{"version":3,"file":"ModifaceVTO.js","names":["BaseStore","a","default","execute","initialData","vtoActivationHistory","isVTOActivated","currentPid","category","currentLook","previewProductsMap","currentEditPid","isMultipleSelection","mode","modifaceStore","enableVTO","state","data","currentVtoStates","Object","assign","pid","look","forEach","item","upc","disableVTO","selectLook","lookProductsMap","unSelectLook","removeProduct","filter","editProduct","updateProductQuantity","map","productData","newProductData","qty","reset","accessBy","resetLook","selectMode","unselectMode"],"sources":["stores/ModifaceVTO.js"],"sourcesContent":["import BaseStore from 'stores/BaseStore';\n\nconst initialData = {\n    vtoActivationHistory: {}, // list of variations where VTO was activated during current page visit\n    isVTOActivated: false, // current \"activation\" state of Modiface VTO\n    currentPid: null, // current product id\n    category: null, // Modiface category\n    currentLook: null, // object with current look data [{\"category\":\"eyeshadow\",\"upc\":\"3605533330142\",\"color_id\":0}, ...]\n    // data about list of products and quantities which will be addded to basket\n    previewProductsMap: [], // list of product which should be added to basket\n    currentEditPid: null, // product id which is currently editing\n    isMultipleSelection: false, // is multiple product selection allowed\n    mode: null, // Modiface VTO iframe mode\n};\n\nconst modifaceStore = new BaseStore(initialData, {\n    enableVTO: (state, data) => {\n        const currentVtoStates = Object.assign({}, state.vtoActivationHistory);\n\n        if (data.pid) {\n            currentVtoStates[data.pid] = true;\n        }\n\n        const look = data.look || state.currentLook;\n        // add look products to VTO state history\n        if (look) {\n            look.forEach((item) => {\n                currentVtoStates[item.upc] = true;\n            });\n        }\n\n        return Object.assign({}, state, {\n            vtoActivationHistory: currentVtoStates,\n            isVTOActivated: true,\n            currentPid: data.pid,\n            currentLook: data.look || state.currentLook,\n        });\n    },\n\n    disableVTO: state => Object.assign({}, state, {\n        isVTOActivated: false,\n    }),\n\n    selectLook: (state, data) => Object.assign({}, state, {\n        currentPid: data.pid,\n        currentLook: data.look || state.currentLook,\n        previewProductsMap: data.lookProductsMap || [],\n        currentEditPid: null,\n    }),\n\n    unSelectLook: state => Object.assign({}, state, {\n        currentPid: null,\n        currentLook: null,\n        previewProductsMap: [],\n        currentEditPid: null,\n    }),\n\n    removeProduct: (state, data) => {\n        const previewProductsMap = state.previewProductsMap.filter(item => data.pid !== item.pid);\n\n        return Object.assign({}, state, {\n            previewProductsMap,\n        });\n    },\n\n    editProduct: (state, data) => Object.assign({}, state, {\n        currentEditPid: data.pid,\n    }),\n\n    updateProductQuantity: (state, data) => {\n        const previewProductsMap = state.previewProductsMap.map((productData) => {\n            const newProductData = Object.assign({}, productData);\n            if (data.pid === newProductData.pid) {\n                newProductData.qty = data.qty || 1;\n            }\n            return newProductData;\n        });\n\n        return Object.assign({}, state, {\n            previewProductsMap,\n        });\n    },\n\n    reset: state => Object.assign({}, state, {\n        isVTOActivated: false,\n        currentPid: null,\n        category: null,\n        currentLook: null,\n        vtoActivationHistory: {},\n        previewProductsMap: [],\n        currentEditPid: null,\n        accessBy: null,\n        mode: null,\n    }),\n\n    resetLook: state => Object.assign({}, state, {\n        currentLook: null,\n        previewProductsMap: [],\n        currentEditPid: null,\n    }),\n\n    selectMode: (state, data) => Object.assign({}, state, {\n        mode: data,\n    }),\n\n    unselectMode: state => Object.assign({}, state, {\n        mode: null,\n    }),\n});\n\nexport default modifaceStore;\n"],"mappings":"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","ignoreList":[]}