/*! Cart storage component for Mackmyra portal This is not autogenerated code 2023 Maksym Vikarii */ var CartStorage = (function (exports) { const cartStorageKey = "cartStorageKeyMackmyra"; const bannedCasksKey = "bannedCasksMackmyra"; function getEvents() { const eventsData = localStorage.getItem(cartStorageKey); const eventsObj = JSON.parse(eventsData); return eventsObj; } function getEventsCount() { const eventsObj = getEvents(); if (eventsObj) { return Object.keys(eventsObj).length; } else return 0; } /* Control cart event state Event line { id - item id(product or customer cask), entType - entity type, count - items count, itemPrice, currency } Event name and event time can be null on update */ function editEvent(eventId, eventLines, eventName, eventTime) { if (!eventId) throw "Event id is null"; let eventsObj = getEvents() || {}; if (!eventLines || !eventLines.length) { delete eventsObj[eventId]; } else { if (eventLines[eventId]) { eventName = eventName || eventLines[eventId].name; eventTime = eventTime || eventLines[eventId].eventTime; } else { if (!eventName) throw "Event name is null"; if (!eventTime) throw "Event time is null"; } const event = { name: eventName, time: eventTime, lines: eventLines }; eventsObj = { ...eventsObj, [eventId]: event }; } localStorage.setItem(cartStorageKey, JSON.stringify(eventsObj)); } function clean() { localStorage.setItem(cartStorageKey, null); } function banShipmentDetails() { const events = getEvents(); const bannedCaskIds = []; for (let eventId in events) { const event = events[eventId]; event.lines.forEach((item) => { if (item.entType === "msw_shipment_details_entity") { bannedCaskIds.push(item.id); } }); } localStorage.setItem( bannedCasksKey, JSON.stringify({ expire: new Date(new Date().setMinutes(new Date().getMinutes() + 30)), bannedCaskIds, }) ); } function getBannedCasksIds() { const bannedJson = localStorage.getItem(bannedCasksKey); if (!bannedJson) return []; const bannedObj = JSON.parse(bannedJson); if (!bannedObj.bannedCaskIds) return []; const expireDate = new Date(bannedObj.expire); if (expireDate < new Date()) return []; return bannedObj.bannedCaskIds; } exports.getEvents = getEvents; exports.getEventsCount = getEventsCount; exports.editEvent = editEvent; exports.clean = clean; exports.banShipmentDetails = banShipmentDetails; exports.getBannedCasksIds = getBannedCasksIds; Object.defineProperty(exports, "__esModule", { value: true }); return exports; })({});