<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Checkout\Model\CompositeConfigProvider">
        <arguments>
            <argument name="configProviders" xsi:type="array">
                <item name="braintree_config_provider" xsi:type="object">Magento\Braintree\Model\Ui\ConfigProvider</item>
                <item name="braintree_paypal_config_provider" xsi:type="object">Magento\Braintree\Model\Ui\PayPal\ConfigProvider</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\Payment\Model\CcGenericConfigProvider">
        <arguments>
            <argument name="methodCodes" xsi:type="array">
                <item name="braintree" xsi:type="const">Magento\Braintree\Model\Ui\ConfigProvider::CODE</item>
            </argument>
        </arguments>
    </type>
    <type name="Magento\Braintree\Block\Info">
        <arguments>
            <argument name="data" xsi:type="array">
                <item xsi:type="string" name="is_secure_mode">1</item>
            </argument>
        </arguments>
    </type>

    <type name="Magento\Vault\Model\Ui\TokensConfigProvider">
        <arguments>
            <argument name="tokenUiComponentProviders" xsi:type="array">
                <item name="braintree" xsi:type="object">Magento\Braintree\Model\Ui\TokenUiComponentProvider</item>
                <item name="braintree_paypal" xsi:type="object">Magento\Braintree\Model\Ui\PayPal\TokenUiComponentProvider</item>
            </argument>
        </arguments>
    </type>

    <type name="Magento\Braintree\Controller\Payment\GetNonce">
        <arguments>
            <argument name="session" xsi:type="object">Magento\Customer\Model\Session</argument>
        </arguments>
    </type>

    <type name="Magento\Braintree\Block\Paypal\Button">
        <arguments>
            <argument name="localeResolver" xsi:type="object">Magento\Braintree\Model\LocaleResolver</argument>
            <argument name="data" xsi:type="array">
                <item name="template" xsi:type="string">Magento_Braintree::paypal/button.phtml</item>
                <item name="alias" xsi:type="string">braintree.paypal.mini-cart</item>
                <item name="button_id" xsi:type="string">braintree-paypal-mini-cart</item>
            </argument>
            <argument name="payment" xsi:type="object">BraintreePayPalFacade</argument>
        </arguments>
    </type>
    <virtualType name="Magento\Braintree\Block\Paypal\ButtonShoppingCartVirtual" type="Magento\Braintree\Block\Paypal\Button">
        <arguments>
            <argument name="data" xsi:type="array">
                <item name="template" xsi:type="string">Magento_Braintree::paypal/button_shopping_cart.phtml</item>
                <item name="alias" xsi:type="string">braintree.paypal.mini-cart</item>
                <item name="button_id" xsi:type="string">braintree-paypal-mini-cart</item>
            </argument>
        </arguments>
    </virtualType>
    <type name="Magento\Braintree\Observer\AddPaypalShortcuts">
        <arguments>
            <argument name="buttonBlocks" xsi:type="array">
                <item name="mini_cart" xsi:type="string">Magento\Braintree\Block\Paypal\Button</item>
                <item name="shopping_cart" xsi:type="string">Magento\Braintree\Block\Paypal\ButtonShoppingCartVirtual</item>
            </argument>
        </arguments>
    </type>
    
    <type name="Magento\Braintree\Model\Ui\PayPal\ConfigProvider">
        <arguments>
            <argument name="resolver" xsi:type="object">Magento\Braintree\Model\LocaleResolver</argument>
        </arguments>
    </type>
    <type name="Magento\Multishipping\Model\Checkout\Type\Multishipping\PlaceOrderPool">
        <arguments>
            <argument name="services" xsi:type="array">
                <item name="braintree" xsi:type="string">Magento\Braintree\Model\Multishipping\PlaceOrder</item>
                <item name="braintree_paypal" xsi:type="string">Magento\Braintree\Model\Multishipping\PlaceOrder</item>
            </argument>
        </arguments>
    </type>
</config>
