![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-checkout/view/frontend/web/js/view/shipping-address/ |
/** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ 'underscore', 'ko', 'mageUtils', 'uiComponent', 'uiLayout', 'Magento_Customer/js/model/address-list' ], function (_, ko, utils, Component, layout, addressList) { 'use strict'; var defaultRendererTemplate = { parent: '${ $.$data.parentName }', name: '${ $.$data.name }', component: 'Magento_Checkout/js/view/shipping-address/address-renderer/default', provider: 'checkoutProvider' }; return Component.extend({ defaults: { template: 'Magento_Checkout/shipping-address/list', visible: addressList().length > 0, rendererTemplates: [] }, /** @inheritdoc */ initialize: function () { this._super() .initChildren(); addressList.subscribe(function (changes) { var self = this; changes.forEach(function (change) { if (change.status === 'added') { self.createRendererComponent(change.value, change.index); } }); }, this, 'arrayChange' ); return this; }, /** @inheritdoc */ initConfig: function () { this._super(); // the list of child components that are responsible for address rendering this.rendererComponents = []; return this; }, /** @inheritdoc */ initChildren: function () { _.each(addressList(), this.createRendererComponent, this); return this; }, /** * Create new component that will render given address in the address list * * @param {Object} address * @param {*} index */ createRendererComponent: function (address, index) { var rendererTemplate, templateData, rendererComponent; if (index in this.rendererComponents) { this.rendererComponents[index].address(address); } else { // rendererTemplates are provided via layout rendererTemplate = address.getType() != undefined && this.rendererTemplates[address.getType()] != undefined ? //eslint-disable-line utils.extend({}, defaultRendererTemplate, this.rendererTemplates[address.getType()]) : defaultRendererTemplate; templateData = { parentName: this.name, name: index }; rendererComponent = utils.template(rendererTemplate, templateData); utils.extend(rendererComponent, { address: ko.observable(address) }); layout([rendererComponent]); this.rendererComponents[index] = rendererComponent; } } }); });