{"version":3,"sources":["webpack:///./src/feature/add-to-cart/add-to-cart.js","webpack:///./src/foundation/utilities/cartCookie.js"],"names":["AddToCart","element","initDomCache","el","updateState","addSubscriptions","initEvents","addEventListener","clickAdd","subscribe","getAttribute","setDisabledState","setAvailable","newItem","section","id","name","isDocument","filename","publish","disabled","BaseFeature","initCartCookie","resetCookie","getCartAsJson","setNewCookie","findItemInCookie","addCartItemToCookie","removeCartItemFromCookie","getNumberOfCartItems","cookieName","cookieBase","cart","cartSections","documents","date","Date","setDate","getDate","JSON","stringify","expires","c","parse","data","cookie","productId","sectionId","exists","pattern","Object","keys","forEach","key","item","documentSection","sectionIdentifier","push","r","sectionItems","length","count"],"mappings":"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","file":"1-d0cd9554.pkg.js","sourcesContent":["import BaseFeature from '../../foundation/base/base';\r\nimport { addCartItemToCookie, findItemInCookie } from '../../foundation/utilities/cartCookie';\r\n\r\nexport default class AddToCart extends BaseFeature {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.initDomCache();\r\n\t\tthis.el = element;\r\n\r\n\t\tthis.updateState();\r\n\t\tthis.addSubscriptions();\r\n\t\tthis.initEvents();\r\n\t}\r\n\r\n\tinitEvents() {\r\n\t\tthis.addEventListener(this.el, 'click', () => {\r\n\t\t\tthis.clickAdd();\r\n\t\t});\r\n\t}\r\n\r\n\taddSubscriptions() {\r\n\t\tthis.subscribe('/cart/updateAddLinks', () => {\r\n\t\t\tthis.updateState();\r\n\t\t});\r\n\t}\r\n\r\n\tupdateState() {\r\n\t\tif (!this.el.getAttribute('data-id')) {\r\n\t\t\tthis.setDisabledState(); // Set as disabled if no id is set\r\n\t\t} else if (findItemInCookie(this.el.getAttribute('data-id'), this.el.getAttribute('data-section-id'))) {\r\n\t\t\tthis.setDisabledState();\r\n\t\t} else {\r\n\t\t\tthis.setAvailable();\r\n\t\t}\r\n\t}\r\n\r\n\tclickAdd() {\r\n\t\tconst newItem = {};\r\n\t\tnewItem.section = {};\r\n\t\tnewItem.id = this.el.getAttribute('data-id');\r\n\t\tnewItem.name = this.el.getAttribute('data-name');\r\n\t\tnewItem.section.id = this.el.getAttribute('data-section-id');\r\n\t\tnewItem.section.name = this.el.getAttribute('data-section-name');\r\n\t\tnewItem.isDocument = this.el.getAttribute('data-is-document');\r\n\t\tnewItem.filename = this.el.getAttribute('data-filename');\r\n\t\tif (newItem.isDocument === 'true') {\r\n\t\t\taddCartItemToCookie(newItem, true);\r\n\t\t} else {\r\n\t\t\taddCartItemToCookie(newItem, false);\r\n\t\t}\r\n\t\tthis.publish('/cart/updateCart');\r\n\t\tthis.publish('/cart/openCart');\r\n\t\tthis.setDisabledState();\r\n\t}\r\n\r\n\tsetAvailable() {\r\n\t\tthis.el.disabled = false;\r\n\t}\r\n\r\n\tsetDisabledState() {\r\n\t\tthis.el.disabled = true;\r\n\t}\r\n}\r\n","import { getCookie, setCookie } from 'tiny-cookie';\r\nimport { camelCase, reject, pickBy, isEmpty } from 'lodash';\r\n\r\nconst cookieName = 'PSTCART';\r\nconst cookieBase = {\r\n\tcart: {}\r\n};\r\n\r\nconst cartSections = {\r\n\tdocuments: 'documents'\r\n};\r\n\r\nexport function initCartCookie() {\r\n\tif (getCookie(cookieName)) return;\r\n\tconst date = new Date();\r\n\tdate.setDate(date.getDate() + 365);\r\n\tsetCookie(cookieName, JSON.stringify(cookieBase), { expires: date });\r\n}\r\n\r\nexport function resetCookie() {\r\n\tconst date = new Date();\r\n\tdate.setDate(date.getDate() + 365);\r\n\tsetCookie(cookieName, JSON.stringify(cookieBase), { expires: date });\r\n}\r\n\r\nexport function getCartAsJson() {\r\n\tconst c = getCookie(cookieName);\r\n\tif (!c) {\r\n\t\treturn {};\r\n\t};\r\n\tconst cart = JSON.parse(c);\r\n\treturn cart.cart;\r\n}\r\n\r\nexport function setNewCookie(data) {\r\n\tconst cookie = { cart: {} };\r\n\tcookie.cart = data;\r\n\tconst date = new Date();\r\n\tdate.setDate(date.getDate() + 365);\r\n\tsetCookie(cookieName, JSON.stringify(cookie), { expires: date });\r\n}\r\n\r\nexport function findItemInCookie(productId, sectionId) {\r\n\tlet exists = false;\r\n\tconst cart = getCartAsJson();\r\n\t// Pattern used to find item in cookie\r\n\tconst pattern = { id: productId, section: { id: sectionId } };\r\n\r\n\tObject.keys(cart).forEach((key) => {\r\n\t\t// Check if item exists\r\n\t\tif (!isEmpty(pickBy(cart[key], pattern))) {\r\n\t\t\texists = true;\r\n\t\t}\r\n\t});\r\n\r\n\treturn exists;\r\n}\r\n\r\nexport function addCartItemToCookie(item, documentSection) {\r\n\tconst cart = getCartAsJson();\r\n\t// If this should be set as a document, use document as identifier\r\n\tconst sectionIdentifier = documentSection ? cartSections.documents : camelCase(item.section.name);\r\n\t// Pattern used to find item in cookie\r\n\tconst pattern = { id: item.id, section: { id: item.section.id } };\r\n\r\n\tif (cart[sectionIdentifier]) {\r\n\t\t// Only add item if it does not exist\r\n\t\tif (isEmpty(pickBy(cart[sectionIdentifier], pattern))) {\r\n\t\t\tcart[sectionIdentifier].push(item);\r\n\t\t\tsetNewCookie(cart);\r\n\t\t}\r\n\t} else {\r\n\t\t// If sections doesnt exist, create it and add item\r\n\t\tcart[sectionIdentifier] = [];\r\n\t\tcart[sectionIdentifier].push(item);\r\n\t\tsetNewCookie(cart);\r\n\t}\r\n}\r\n\r\nexport function removeCartItemFromCookie(productId, sectionId) {\r\n\tlet r = false; // Value updated if an item is removed\r\n\tconst cart = getCartAsJson();\r\n\tconst data = {};\r\n\tObject.keys(cart).forEach((key) => {\r\n\t\t// Check if item exists\r\n\t\tr = r ? true : !isEmpty(pickBy(cart[key], { id: productId, section: { id: sectionId } }));\r\n\t\t// Dont pick out item that should be removed\r\n\t\tconst sectionItems = reject(cart[key], { id: productId, section: { id: sectionId } });\r\n\t\t// Create section again based on remaining items\r\n\t\tif (sectionItems.length > 0) {\r\n\t\t\tdata[key] = sectionItems;\r\n\t\t}\r\n\t});\r\n\tsetNewCookie(data);\r\n\treturn r;\r\n}\r\n\r\nexport function getNumberOfCartItems() {\r\n\tconst cart = getCartAsJson();\r\n\tlet count = 0;\r\n\tObject.keys(cart).forEach((key) => {\r\n\t\tcount += Object.keys(cart[key]).length; // Update count variable for each item\r\n\t});\r\n\treturn count;\r\n}\r\n"],"sourceRoot":""}
体育平台
Wynn-Palace,-Macau-admin@paingame.net
皇冠官网
中国演出票务网
Asian-sports-betting-platform-support@cesametal.net
永利皇宫
赌博网站推荐
阆中在线
中江种业
Sun-City-customerservice@westridgeparkapartments.com
Sun-City-sales@khobuon.net
金羊网健康
江西国税网
济南网络广播电视台生活频道
游泳梦工厂
博彩平台大全
赶驴网
Wynn-Palace-admin@paingame.net
365-Sports-Betting-sales@tt99949.com
体育平台
重庆欣欣旅游网
宜运股份
凤凰家居
适嘉网
阳光重庆
滁州本地宝
湖南自考网
广州华美医疗美容医院
海报工厂
58同城泰州分类信息网
骷髅猫博客
爱易房网
动漫网
细高跟鞋网
扬州房地产信息网