UNPKG

@shopify/app-bridge-core

Version:

**[Join our team and work on libraries like this one.](https://www.shopify.ca/careers)**

165 lines (162 loc) 6.74 kB
import { actionWrapper } from '../helper.js'; import { ActionSet } from '../ActionSet.js'; import { Group } from '../types.js'; var Action; (function (Action) { Action["FETCH"] = "APP::CART::FETCH"; Action["UPDATE"] = "APP::CART::UPDATE"; Action["SET_CUSTOMER"] = "APP::CART::SET_CUSTOMER"; Action["REMOVE_CUSTOMER"] = "APP::CART::REMOVE_CUSTOMER"; Action["ADD_CUSTOMER_ADDRESS"] = "APP::CART::ADD_CUSTOMER_ADDRESS"; Action["UPDATE_CUSTOMER_ADDRESS"] = "APP::CART::UPDATE_CUSTOMER_ADDRESS"; Action["SET_DISCOUNT"] = "APP::CART::SET_DISCOUNT"; Action["SET_CODE_DISCOUNT"] = "APP::CART::SET_CODE_DISCOUNT"; Action["REMOVE_DISCOUNT"] = "APP::CART::REMOVE_DISCOUNT"; Action["REMOVE_ALL_DISCOUNTS"] = "APP::CART::REMOVE_ALL_DISCOUNTS"; Action["SET_PROPERTIES"] = "APP::CART::SET_PROPERTIES"; Action["REMOVE_PROPERTIES"] = "APP::CART::REMOVE_PROPERTIES"; Action["CLEAR"] = "APP::CART::CLEAR"; Action["ADD_LINE_ITEM"] = "APP::CART::ADD_LINE_ITEM"; Action["UPDATE_LINE_ITEM"] = "APP::CART::UPDATE_LINE_ITEM"; Action["REMOVE_LINE_ITEM"] = "APP::CART::REMOVE_LINE_ITEM"; Action["SET_LINE_ITEM_DISCOUNT"] = "APP::CART::SET_LINE_ITEM_DISCOUNT"; Action["REMOVE_LINE_ITEM_DISCOUNT"] = "APP::CART::REMOVE_LINE_ITEM_DISCOUNT"; Action["SET_LINE_ITEM_PROPERTIES"] = "APP::CART::SET_LINE_ITEM_PROPERTIES"; Action["REMOVE_LINE_ITEM_PROPERTIES"] = "APP::CART::REMOVE_LINE_ITEM_PROPERTIES"; })(Action || (Action = {})); /** * Cart action * @internal */ function createCartAction(type, payload = {}) { return actionWrapper({ group: Group.Cart, type, payload, }); } function fetch() { return createCartAction(Action.FETCH); } function update(payload) { return createCartAction(Action.UPDATE, payload); } function setCustomer(payload) { return createCartAction(Action.SET_CUSTOMER, payload); } function addCustomerAddress(payload) { return createCartAction(Action.ADD_CUSTOMER_ADDRESS, payload); } function updateCustomerAddress(payload) { return createCartAction(Action.UPDATE_CUSTOMER_ADDRESS, payload); } function setDiscount(payload) { return createCartAction(Action.SET_DISCOUNT, payload); } function setCodeDiscount(payload) { return createCartAction(Action.SET_CODE_DISCOUNT, payload); } function removeAllDiscounts(payload) { return createCartAction(Action.REMOVE_ALL_DISCOUNTS, payload); } function setProperties(payload) { return createCartAction(Action.SET_PROPERTIES, payload); } function removeProperties(payload) { return createCartAction(Action.REMOVE_PROPERTIES, payload); } function addLineItem(payload) { return createCartAction(Action.ADD_LINE_ITEM, payload); } function updateLineItem(payload) { return createCartAction(Action.UPDATE_LINE_ITEM, payload); } function removeLineItem(payload) { return createCartAction(Action.REMOVE_LINE_ITEM, payload); } function setLineItemDiscount(payload) { return createCartAction(Action.SET_LINE_ITEM_DISCOUNT, payload); } function removeLineItemDiscount(payload) { return createCartAction(Action.REMOVE_LINE_ITEM_DISCOUNT, payload); } function setLineItemProperties(payload) { return createCartAction(Action.SET_LINE_ITEM_PROPERTIES, payload); } /** * Cart */ class Cart extends ActionSet { constructor(app, options) { super(app, Group.Cart, Group.Cart, options ? options.id : undefined); } dispatch(action, payload) { switch (action) { case Action.FETCH: this.dispatchCartAction(Action.FETCH); break; case Action.UPDATE: this.dispatchCartAction(Action.UPDATE, payload); break; case Action.SET_CUSTOMER: this.dispatchCartAction(Action.SET_CUSTOMER, payload); break; case Action.REMOVE_CUSTOMER: this.dispatchCartAction(Action.REMOVE_CUSTOMER, payload); break; case Action.ADD_CUSTOMER_ADDRESS: this.dispatchCartAction(Action.ADD_CUSTOMER_ADDRESS, payload); break; case Action.UPDATE_CUSTOMER_ADDRESS: this.dispatchCartAction(Action.UPDATE_CUSTOMER_ADDRESS, payload); break; case Action.SET_DISCOUNT: this.dispatchCartAction(Action.SET_DISCOUNT, payload); break; case Action.SET_CODE_DISCOUNT: this.dispatchCartAction(Action.SET_CODE_DISCOUNT, payload); break; case Action.REMOVE_DISCOUNT: this.dispatchCartAction(Action.REMOVE_DISCOUNT, payload); break; case Action.REMOVE_ALL_DISCOUNTS: this.dispatchCartAction(Action.REMOVE_ALL_DISCOUNTS, payload); break; case Action.SET_PROPERTIES: this.dispatchCartAction(Action.SET_PROPERTIES, payload); break; case Action.REMOVE_PROPERTIES: this.dispatchCartAction(Action.REMOVE_PROPERTIES, payload); break; case Action.CLEAR: this.dispatchCartAction(Action.CLEAR, payload); break; case Action.ADD_LINE_ITEM: this.dispatchCartAction(Action.ADD_LINE_ITEM, payload); break; case Action.UPDATE_LINE_ITEM: this.dispatchCartAction(Action.UPDATE_LINE_ITEM, payload); break; case Action.REMOVE_LINE_ITEM: this.dispatchCartAction(Action.REMOVE_LINE_ITEM, payload); break; case Action.SET_LINE_ITEM_DISCOUNT: this.dispatchCartAction(Action.SET_LINE_ITEM_DISCOUNT, payload); break; case Action.REMOVE_LINE_ITEM_DISCOUNT: this.dispatchCartAction(Action.REMOVE_LINE_ITEM_DISCOUNT, payload); break; case Action.SET_LINE_ITEM_PROPERTIES: this.dispatchCartAction(Action.SET_LINE_ITEM_PROPERTIES, payload); break; case Action.REMOVE_LINE_ITEM_PROPERTIES: this.dispatchCartAction(Action.REMOVE_LINE_ITEM_PROPERTIES, payload); break; } return this; } dispatchCartAction(type, payload) { this.app.dispatch(createCartAction(type, { ...payload, id: this.id })); } } export { Action, Cart, addCustomerAddress, addLineItem, fetch, removeAllDiscounts, removeLineItem, removeLineItemDiscount, removeProperties, setCodeDiscount, setCustomer, setDiscount, setLineItemDiscount, setLineItemProperties, setProperties, update, updateCustomerAddress, updateLineItem };