1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * @api
- */
- define([
- 'ko',
- 'Magento_Checkout/js/model/quote',
- 'Magento_Customer/js/customer-data'
- ], function (ko, quote, customerData) {
- 'use strict';
- var quoteItems = ko.observable(quote.totals().items),
- cartData = customerData.get('cart'),
- quoteSubtotal = parseFloat(quote.totals().subtotal),
- subtotalAmount = parseFloat(cartData().subtotalAmount);
- quote.totals.subscribe(function (newValue) {
- quoteItems(newValue.items);
- });
- if (quoteSubtotal !== subtotalAmount) {
- customerData.reload(['cart'], false);
- }
- return {
- totals: quote.totals,
- isLoading: ko.observable(false),
- /**
- * @return {Function}
- */
- getItems: function () {
- return quoteItems;
- },
- /**
- * @param {*} code
- * @return {*}
- */
- getSegment: function (code) {
- var i, total;
- if (!this.totals()) {
- return null;
- }
- for (i in this.totals()['total_segments']) { //eslint-disable-line guard-for-in
- total = this.totals()['total_segments'][i];
- if (total.code == code) { //eslint-disable-line eqeqeq
- return total;
- }
- }
- return null;
- }
- };
- });
|