UNPKG

@nguyenmv2/buy-button

Version:

BuyButton.js allows merchants to build Shopify interfaces into any website

78 lines (60 loc) 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _merge = _interopRequireDefault(require("../utils/merge")); var _component = _interopRequireDefault(require("../component")); var _toggle = _interopRequireDefault(require("../views/toggle")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } var CartToggle = /*#__PURE__*/ function (_Component) { _inheritsLoose(CartToggle, _Component); function CartToggle(config, props) { var _this; _this = _Component.call(this, config, props) || this; _this.typeKey = 'toggle'; _this.node = config.node || _this.props.cart.node.parentNode.insertBefore(document.createElement('div'), _this.props.cart.node); _this.view = new _toggle.default(_assertThisInitialized(_this)); return _this; } var _proto = CartToggle.prototype; _proto.toggleCart = function toggleCart(evt) { evt.stopPropagation(); this.props.cart.toggleVisibility(); }; _createClass(CartToggle, [{ key: "count", get: function get() { if (!this.props.cart.model) { return 0; } return this.props.cart.model.lineItems.reduce(function (acc, lineItem) { return acc + lineItem.quantity; }, 0); } }, { key: "viewData", get: function get() { return Object.assign({}, this.options.viewData, { classes: this.classes, text: this.options.text, count: this.count }); } }, { key: "DOMEvents", get: function get() { return (0, _merge.default)({}, { click: this.toggleCart.bind(this) }, this.options.DOMEvents); } }]); return CartToggle; }(_component.default); exports.default = CartToggle;