<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <argument name="data" xsi:type="array">
        <item name="js_config" xsi:type="array">
            <item name="provider" xsi:type="string">transaction_form.transaction_form_data_source</item>
        </item>
        <item name="label" xsi:type="string" translate="true">Transaction Information</item>
        <item name="template" xsi:type="string">templates/form/collapsible</item>
    </argument>
    <settings>
        <buttons>
            <button name="save" class="Artnetis\ManageTransaction\Block\Adminhtml\Transaction\Add\SaveButton"/>
            <button name="back" class="Artnetis\ManageTransaction\Block\Adminhtml\Transaction\Add\BackButton"/>
        </buttons>
        <namespace>transaction_form</namespace>
        <dataScope>data</dataScope>
        <deps>
            <dep>transaction_form.transaction_form_data_source</dep>
        </deps>
    </settings>
    <dataSource name="transaction_form_data_source">
        <argument name="data" xsi:type="array">
            <item name="js_config" xsi:type="array">
                <item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
            </item>
        </argument>
        <argument name="dataProvider" xsi:type="configurableObject">
            <argument name="class" xsi:type="string">Artnetis\ManageTransaction\Ui\DataProvider\TransactionDataProvider</argument>
            <argument name="name" xsi:type="string">transaction_form_data_source</argument>
            <argument name="primaryFieldName" xsi:type="string">entity_id</argument>
            <argument name="requestFieldName" xsi:type="string">order_id</argument>
        </argument>
        <settings>
            <submitUrl path="artnetis/transaction/save"/>
        </settings>
    </dataSource>
    <fieldset name="txn_details">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="collapsible" xsi:type="boolean">false</item>
                <item name="label" xsi:type="string" translate="true">Transaction Data</item>
                <item name="sortOrder" xsi:type="number">20</item>
            </item>
        </argument>
        <field name="entity_id">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="visible" xsi:type="boolean">false</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">transaction</item>
                    <item name="dataScope" xsi:type="string">entity_id</item>
                </item>
            </argument>
        </field>
        <field name="order_id">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="disabled" xsi:type="boolean">true</item>
                    <item name="label" xsi:type="string" translate="true">Order Id</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">transaction</item>
                    <item name="dataScope" xsi:type="string">order_id</item>
                </item>
            </argument>
        </field>
        <field name="txn_id">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">Transaction Id</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">transaction</item>
                    <item name="dataScope" xsi:type="string">txn_id</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
        <field name="parent_txn_id">
            <argument name="data" xsi:type="array">
                <item name="options" xsi:type="object">Artnetis\ManageTransaction\Model\Transaction\Transactions</item>
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">Parent Transaction</item>
                    <item name="formElement" xsi:type="string">select</item>
                    <item name="source" xsi:type="string">transaction</item>
                    <item name="dataScope" xsi:type="string">parent_txn_id</item>
                    <item name="caption" xsi:type="string" translate="true">N/A</item>
                </item>
            </argument>
        </field>
        <field name="transaction_type">
            <argument name="data" xsi:type="array">
                <item name="options" xsi:type="object">Artnetis\ManageTransaction\Model\Transaction\Types</item>
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">Transaction Type</item>
                    <item name="formElement" xsi:type="string">select</item>
                    <item name="source" xsi:type="string">transaction</item>
                    <item name="dataScope" xsi:type="string">transaction_type</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
        <field name="is_closed">
            <argument name="data" xsi:type="array">
                <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item>
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="label" xsi:type="string" translate="true">Is Closed</item>
                    <item name="formElement" xsi:type="string">select</item>
                    <item name="source" xsi:type="string">transaction</item>
                    <item name="dataScope" xsi:type="string">is_closed</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
        <dynamicRows name="add_data">
            <settings>
                <addButtonLabel translate="true">Add</addButtonLabel>
                <componentType>dynamicRows</componentType>
                <dndConfig>
                    <param name="enabled" xsi:type="boolean">true</param>
                </dndConfig>
                <label>Transaction Details</label>
            </settings>
            <container name="record" component="Magento_Ui/js/dynamic-rows/record">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="isTemplate" xsi:type="boolean">true</item>
                        <item name="is_collection" xsi:type="boolean">true</item>
                        <item name="componentType" xsi:type="string">container</item>
                    </item>
                </argument>
                <field name="name" formElement="select">
                    <argument name="data" xsi:type="array">
                        <item name="options" xsi:type="object">Artnetis\ManageTransaction\Model\Transaction\Items</item>
                        <item name="config" xsi:type="array">
                            <item name="dataScope" xsi:type="string">key</item>
                            <item name="fit" xsi:type="boolean">false</item>
                            <item name="label" xsi:type="string" translate="true">Key</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="validation" xsi:type="array">
                                <item name="required-entry" xsi:type="boolean">true</item>
                            </item>
                        </item>
                    </argument>
                </field>
                <field name="value" formElement="input">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="dataScope" xsi:type="string">value</item>
                            <item name="fit" xsi:type="boolean">false</item>
                            <item name="label" xsi:type="string" translate="true">Value</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="validation" xsi:type="array">
                                <item name="required-entry" xsi:type="boolean">true</item>
                            </item>
                        </item>
                    </argument>
                </field>
                <actionDelete name="action_delete">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="prefixName" xsi:type="string">Params.delete</item>
                            <item name="dataType" xsi:type="string">text</item>
                        </item>
                    </argument>
                    <settings>
                        <dataType>text</dataType>
                        <componentType>actionDelete</componentType>
                    </settings>
                </actionDelete>
            </container>
        </dynamicRows>
    </fieldset>
</form>