1const filterPlugin = store => { 2 store.filterAndChangeQty = function(state, responseData) { 3 let basketItemsClone = state.basket.items.slice(); 4 for (let i in state.basket.items) { 5 let basketItemId = state.basket.items[i].id; 6 let basketItem = basketItemsClone.filter(x => x.id === basketItemId)[0]; 7 let responseItem = responseData.items.filter(item => item.id === basketItem.id)[0]; 8 if (typeof responseItem === 'undefined') { 9 basketItemsClone = basketItemsClone.filter(x => x.id != basketItem.id); 10 } 11 else { 12 basketItem.quantity = responseItem.quantity; 13 basketItem.price = responseItem.price; 14 } 15 } 16 return basketItemsClone; 17 } 18} 19const store = Vuex.createStore({ 20 strict: true, 21 plugins: [filterPlugin], 22 state() { 23 return { 24 basket: jsonBasket.data?.basket, 25 extendedData: extendedData, 26 currentItemId: null, 27 notepadIds: [], 28 ajaxFilterModalOpen: false, 29 orderPlaced: false, } 30 }, 31 mutations: { 32 SET_BASKET_ITEM_QTY(state, responseData) { 33 let newItems = responseData.items.filter(i => !state.basket.items.some((element) => element.id === i.id)); 34 state.basket.items = state.basket.items.concat(newItems); 35 state.basket.items = this.filterAndChangeQty(state, responseData); 36 if (!responseData.items.length == 0) { 37 delete responseData.items; 38 } 39 Object.assign(state.basket, Object.assign(responseData)); 40 }, 41 ADD_BASKET_ITEM(state, responseData) { 42 let newItems = responseData.items.filter(i => !state.basket.items.some((element) => element.id === i.id)); 43 state.basket.items = state.basket.items.concat(newItems); 44 state.basket.items = this.filterAndChangeQty(state, responseData); 45 delete responseData.items; 46 Object.assign(state.basket, Object.assign(responseData)); 47 }, 48 SETEXTRA(state, payload) { 49 state[payload.key] = payload.value; 50 }, 51 }, 52 actions: { 53 SET_BASKET_ITEM_QTY(context, responseData) { 54 context.commit('SET_BASKET_ITEM_QTY', responseData); 55 }, 56 ADD_BASKET_ITEM(context, responseData) { 57 context.commit('ADD_BASKET_ITEM', responseData); 58 }, 59 SETEXTRA(context, responseData) { 60 context.commit('SETEXTRA', responseData); 61 }, 62 }, 63});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.