<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* @author Amasty Team
* @copyright Copyright (c) 2022 Amasty (https://www.amasty.com)
* @package Automatic Related Products for Magento 2
*/-->

<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">amasty_mostviewed_pack_form.amasty_mostviewed_pack_form_data_source</item>
            <item name="deps" xsi:type="string">amasty_mostviewed_pack_form.amasty_mostviewed_pack_form_data_source</item>
        </item>
        <item name="label" xsi:type="string" translate="true">Bundle Pack</item>
        <item name="config" xsi:type="array">
            <item name="dataScope" xsi:type="string">data</item>
            <item name="namespace" xsi:type="string">amasty_mostviewed_pack_form</item>
        </item>
        <item name="template" xsi:type="string">templates/form/collapsible</item>
        <item name="buttons" xsi:type="array">
            <item name="back" xsi:type="array">
                <item name="name" xsi:type="string">back</item>
                <item name="label" xsi:type="string" translate="true">Back</item>
                <item name="class" xsi:type="string">back</item>
                <item name="url" xsi:type="string">*/*/</item>
            </item>
            <item name="save" xsi:type="string">Amasty\Mostviewed\Block\Adminhtml\Rule\Edit\SaveButton</item>
            <item name="save_and_continue" xsi:type="string">Amasty\Mostviewed\Block\Adminhtml\Rule\Edit\SaveAndContinueButton</item>
            <item name="delete" xsi:type="string">Amasty\Mostviewed\Block\Adminhtml\Rule\Edit\DeleteButton</item>
        </item>
    </argument>
    <dataSource name="amasty_mostviewed_pack_form_data_source">
        <argument name="dataProvider" xsi:type="configurableObject">
            <argument name="class" xsi:type="string">Amasty\Mostviewed\Model\Pack\DataProvider</argument>
            <argument name="name" xsi:type="string">amasty_mostviewed_pack_form_data_source</argument>
            <argument name="primaryFieldName" xsi:type="string">pack_id</argument>
            <argument name="requestFieldName" xsi:type="string">id</argument>
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="submit_url" xsi:type="url" path="amasty_mostviewed/pack/save"/>
                </item>
            </argument>
        </argument>
        <argument name="data" xsi:type="array">
            <item name="js_config" xsi:type="array">
                <item name="component" xsi:type="string">Amasty_Mostviewed/js/form/provider</item>
            </item>
        </argument>
    </dataSource>
    <fieldset name="general">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="label" xsi:type="string" translate="true">General</item>
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="opened" xsi:type="boolean">true</item>
            </item>
        </argument>
        <field name="id">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="visible" xsi:type="boolean">false</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="dataScope" xsi:type="string">pack_id</item>
                </item>
            </argument>
        </field>
        <field name="status">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">boolean</item>
                    <item name="label" xsi:type="string" translate="true">Status</item>
                    <item name="formElement" xsi:type="string">checkbox</item>
                    <item name="prefer" xsi:type="string">toggle</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="sortOrder" xsi:type="number">5</item>
                    <item name="dataScope" xsi:type="string">status</item>
                    <item name="valueMap" xsi:type="array">
                        <item name="true" xsi:type="number">1</item>
                        <item name="false" xsi:type="number">0</item>
                    </item>
                    <item name="default" xsi:type="number">1</item>
                </item>
            </argument>
        </field>

        <container name="date_group">
            <argument name="data" xsi:type="array">
                <item name="type" xsi:type="string">group</item>
                <item name="config" xsi:type="array">
                    <item name="additionalClasses" xsi:type="string">admin__control-grouped-date</item>
                    <item name="required" xsi:type="boolean">false</item>
                    <item name="sortOrder" xsi:type="number">6</item>
                    <item name="component" xsi:type="string">Magento_Ui/js/form/components/group</item>
                    <item name="breakLine" xsi:type="boolean">false</item>
                </item>
            </argument>
            <field name="date_from">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="default" xsi:type="string"> </item>
                        <item name="sortOrder" xsi:type="number">7</item>
                        <item name="formElement" xsi:type="string">date</item>
                        <item name="dataScope" xsi:type="string">date_from</item>
                        <item name="label" xsi:type="string" translate="true">Enable From</item>
                        <item name="dataType" xsi:type="string">string</item>
                        <item name="options" xsi:type="array">
                            <item name="showsTime" xsi:type="boolean">true</item>
                        </item>
                        <item name="additionalClasses" xsi:type="array">
                            <item name="admin__field-date" xsi:type="boolean">true</item>
                        </item>
                    </item>
                </argument>
            </field>
            <field name="date_to">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="sortOrder" xsi:type="number">8</item>
                        <item name="formElement" xsi:type="string">date</item>
                        <item name="scopeLabel" xsi:type="string"> </item>
                        <item name="dataType" xsi:type="string">string</item>
                        <item name="dataScope" xsi:type="string">date_to</item>
                        <item name="label" xsi:type="string" translate="true">To</item>
                        <item name="options" xsi:type="array">
                            <item name="showsTime" xsi:type="boolean">true</item>
                        </item>
                        <item name="additionalClasses" xsi:type="array">
                            <item name="admin__field-date" xsi:type="boolean">true</item>
                        </item>
                    </item>
                </argument>
            </field>
        </container>

        <field name="name">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Bundle Pack Name</item>
                    <item name="notice" xsi:type="string" translate="true">For internal use</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="dataScope" xsi:type="string">name</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>

        <field name="stores">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Store Views</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">multiselect</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="dataScope" xsi:type="string">stores</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                    <item name="tooltip" xsi:type="array">
                        <item name="link" xsi:type="string">http://docs.magento.com/m2/ce/user_guide/configuration/scope.html</item>
                        <item name="description" xsi:type="string">What is this?</item>
                    </item>
                    <item name="default" xsi:type="string">0</item>
                </item>
                <item name="options" xsi:type="object">Amasty\Mostviewed\Model\Group\StoresOptionsProvider</item>
            </argument>
        </field>

        <field name="customer_group_ids">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Customer Groups</item>
                    <item name="dataType" xsi:type="string">string</item>
                    <item name="formElement" xsi:type="string">multiselect</item>
                    <item name="value" xsi:type="string">32000</item><!-- CustomerGroupInterface::CUST_GROUP_ALL -->
                    <item name="sortOrder" xsi:type="number">20</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
                <item name="options" xsi:type="object">Magento\Customer\Model\Customer\Source\Group</item>
            </argument>
        </field>

        <field name="block_title">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Title</item>
                    <item name="notice" xsi:type="string" translate="true">Displayed on the products page</item>
                    <item name="default" xsi:type="string" translate="true">Buy together</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="dataScope" xsi:type="string">block_title</item>
                </item>
            </argument>
        </field>

        <field name="discount_type">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Discount Type</item>
                    <item name="dataType" xsi:type="string">string</item>
                    <item name="formElement" xsi:type="string">select</item>
                    <item name="component" xsi:type="string">Amasty_Mostviewed/js/pack/form/discount-type</item>
                    <item name="listens" xsi:type="array">
                        <item name="value" xsi:type="string">updateVisibleFields</item>
                    </item>
                </item>
                <item name="options" xsi:type="object">Amasty\Mostviewed\Model\OptionSource\DiscountType</item>
            </argument>
        </field>

        <field name="discount_amount">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Discount Amount</item>
                    <item name="additionalInfo" xsi:type="string"><![CDATA[Defines the discount for Main Product (if the corresponding setting is enabled) and all Bundle Pack Products.</br>
                                    You can set unique discount amounts per item on the Bundle Pack Products grid below (including 0).
                                    If discount fields on the grid are left empty the value of the current setting is applied as a discount.
                        ]]></item>
                    <item name="additionalClasses" xsi:type="array">
                        <item name="amrelated-additional-info" xsi:type="string">amrelated-additional-info</item>
                    </item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">number</item>
                    <item name="formElement" xsi:type="string">input</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="dataScope" xsi:type="string">discount_amount</item>
                    <item name="validation" xsi:type="array">
                        <item name="validate-number" xsi:type="boolean">true</item>
                        <item name="greater-than-equals-to" xsi:type="number">0</item>
                    </item>
                    <item name="default" xsi:type="number">10</item>
                </item>
            </argument>
        </field>

        <field name="apply_for_parent">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">boolean</item>
                    <item name="label" xsi:type="string" translate="true">Apply Discount to the Main Product</item>
                    <item name="formElement" xsi:type="string">checkbox</item>
                    <item name="prefer" xsi:type="string">toggle</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="sortOrder" xsi:type="number">25</item>
                    <item name="dataScope" xsi:type="string">apply_for_parent</item>
                    <item name="valueMap" xsi:type="array">
                        <item name="true" xsi:type="number">1</item>
                        <item name="false" xsi:type="number">0</item>
                    </item>
                    <item name="default" xsi:type="number">1</item>
                </item>
            </argument>
        </field>

        <field name="apply_condition">
            <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">Apply Discount if</item>
                    <item name="formElement" xsi:type="string">select</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="sortOrder" xsi:type="number">30</item>
                    <item name="dataScope" xsi:type="string">apply_condition</item>
                    <item name="tooltip" xsi:type="array">
                        <item name="description" xsi:type="string"><![CDATA[
                            If set to ‘All’:
                            <ul>
                                <li>Bundle Pack discount will be canceled if any of bundle product is unchecked;</li>
                                <li>Bundle Pack will not be displayed if any of bundle items is not present on the storefront.</li>
                            </ul>
                        ]]></item>
                    </item>
                </item>
                <item name="options" xsi:type="object">Amasty\Mostviewed\Model\OptionSource\ApplyCondition</item>
            </argument>
        </field>

        <field name="cart_message">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Upsell Message</item>
                    <item name="visible" xsi:type="boolean">true</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="formElement" xsi:type="string">textarea</item>
                    <item name="source" xsi:type="string">mostviewed_pack</item>
                    <item name="dataScope" xsi:type="string">cart_message</item>
                    <item name="default" xsi:type="string">Add {product_names} and save up to {discount_amount}</item>
                    <item name="additionalInfo" xsi:type="string"><![CDATA[Please make sure the Bundle Packs > 'Display Upsell Message in Cart' setting is enabled in the configuration.</br>
                        Allowed variables: {product_names}, {discount_amount} , {total_discount_amount}.</br>
                        Note:
                        <ul>
                            <li>{total_discount_amount} is for Fixed Discount Type only;</li>
                            <li>if you set unique discounts for Bundle Pack Products the {discount_amount} variable won't be displayed.</li>
                        </ul>
                    ]]></item>
                    <item name="additionalClasses" xsi:type="array">
                        <item name="amrelated-additional-info" xsi:type="string">amrelated-additional-info</item>
                    </item>
                </item>
            </argument>
        </field>
    </fieldset>

    <fieldset name="conditional_discounts">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="label" xsi:type="string" translate="true">Conditional Discounts</item>
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="opened" xsi:type="boolean">false</item>
                <item name="visible" xsi:type="boolean">false</item>
                <item name="showIfConditional" xsi:type="string">1</item>
            </item>
        </argument>

        <container name="conditional_discounts" />
    </fieldset>

    <fieldset name="child_products">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="label" xsi:type="string" translate="true">Bundle Pack Products</item>
                <item name="collapsible" xsi:type="boolean">true</item>
                <item name="sortOrder" xsi:type="number">40</item>
                <item name="opened" xsi:type="boolean">false</item>
            </item>
        </argument>
        <container name="child_buttons">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="boolean">false</item>
                    <item name="formElement" xsi:type="string">container</item>
                    <item name="componentType" xsi:type="string">container</item>
                    <item name="component" xsi:type="string">Magento_Ui/js/form/components/button</item>
                    <item name="title" xsi:type="string" translate="true">Add products</item>
                    <item name="actions" xsi:type="array">
                        <item name="0" xsi:type="array">
                            <item name="targetName" xsi:type="string">amasty_mostviewed_pack_form.amasty_mostviewed_pack_form.child_products.child_modal</item>
                            <item name="actionName" xsi:type="string">toggleModal</item>
                        </item>
                        <item name="1" xsi:type="array">
                            <item name="targetName" xsi:type="string">amasty_mostviewed_pack_form.amasty_mostviewed_pack_form.child_products.child_modal.products_grid</item>
                            <item name="actionName" xsi:type="string">render</item>
                        </item>
                    </item>
                </item>
            </argument>
        </container>
        <container name="child_modal">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="componentType" xsi:type="string">modal</item>
                    <item name="component" xsi:type="string">Magento_Ui/js/modal/modal-component</item>
                    <item name="options" xsi:type="array">
                        <item name="type" xsi:type="string">slide</item>
                        <item name="title" xsi:type="string" translate="true">Add Bundle Products</item>
                        <item name="buttons" xsi:type="array">
                            <item name="0" xsi:type="array">
                                <item name="text" xsi:type="string" translate="true">Cancel</item>
                                <item name="actions" xsi:type="array">
                                    <item name="0" xsi:type="string">closeModal</item>
                                </item>
                            </item>
                            <item name="1" xsi:type="array">
                                <item name="text" xsi:type="string" translate="true">Add Selected Products</item>
                                <item name="class" xsi:type="string">action-primary</item>
                                <item name="actions" xsi:type="array">
                                    <item name="0" xsi:type="array">
                                        <item name="targetName" xsi:type="string">index = products_grid</item>
                                        <item name="actionName" xsi:type="string">save</item>
                                    </item>
                                    <item name="1" xsi:type="string">closeModal</item>
                                </item>
                            </item>
                        </item>
                    </item>
                </item>
            </argument>
            <insertListing name="products_grid">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <!--Avoid admin__scope-old cssclass assign -->
                        <item name="cssclass" xsi:type="string">product-grid-insert-listing</item>
                        <item name="dataScope" xsi:type="string">child_products_container</item>
                        <item name="autoRender" xsi:type="boolean">false</item>
                        <item name="selectionsProvider" xsi:type="string">amasty_mostviewed_child_product_listing.amasty_mostviewed_child_product_listing.product_listing_columns.ids</item>
                        <item name="externalProvider" xsi:type="string">amasty_mostviewed_child_product_listing.amasty_mostviewed_child_product_listing_data_source</item>
                        <item name="ns" xsi:type="string">amasty_mostviewed_child_product_listing</item>
                        <item name="realTimeLink" xsi:type="boolean">true</item>
                        <item name="behaviourType" xsi:type="string">edit</item>
                        <item name="dataLinks" xsi:type="array">
                            <item name="imports" xsi:type="boolean">false</item>
                            <item name="exports" xsi:type="boolean">true</item>
                        </item>
                        <item name="externalFilterMode" xsi:type="boolean">true</item>
                    </item>
                </argument>
            </insertListing>
        </container>
        <container name="child_products_container">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="additionalClasses" xsi:type="string">admin__field-wide</item>
                    <item name="componentType" xsi:type="string">dynamicRows</item>
                    <item name="component" xsi:type="string">Amasty_Mostviewed/js/dynamic-rows/dynamic-rows-grid</item>
                    <item name="template" xsi:type="string">ui/dynamic-rows/templates/grid</item>
                    <item name="recordTemplate" xsi:type="string">record</item>
                    <item name="addButton" xsi:type="boolean">false</item>
                    <item name="columnsHeader" xsi:type="boolean">false</item>
                    <item name="columnsHeaderAfterRender" xsi:type="boolean">true</item>
                    <item name="renderDefaultRecord" xsi:type="boolean">false</item>
                    <item name="deleteButtonLabel" xsi:type="string" translate="true">Remove</item>
                    <item name="dataScope" xsi:type="string">product_ids</item>
                    <item name="identificationProperty" xsi:type="string">entity_id</item>
                    <item name="identificationDRProperty" xsi:type="string">entity_id</item>
                    <item name="dataProvider" xsi:type="string">data.child_products_container</item>
                    <item name="positionProvider" xsi:type="string">position</item>
                    <item name="map" xsi:type="array">
                        <item name="entity_id" xsi:type="string">entity_id</item>
                        <item name="thumbnail" xsi:type="string">thumbnail_src</item>
                        <item name="name" xsi:type="string">name</item>
                        <item name="status" xsi:type="string">status</item>
                        <item name="type_id" xsi:type="string">type_id</item>
                        <item name="sku" xsi:type="string">sku</item>
                        <item name="price" xsi:type="string">price</item>
                        <item name="position" xsi:type="string">position</item>
                    </item>
                    <item name="links" xsi:type="array">
                        <item name="insertData" xsi:type="string">${ $.provider }:${ $.dataProvider }</item>
                    </item>
                    <item name="dndConfig" xsi:type="array">
                        <item name="enabled" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
            <container name="record">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="component" xsi:type="string">Magento_Ui/js/dynamic-rows/record</item>
                        <item name="isTemplate" xsi:type="boolean">true</item>
                        <item name="positionProvider" xsi:type="string">position</item>
                        <item name="is_collection" xsi:type="boolean">true</item>
                    </item>
                </argument>
                <field name="entity_id">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">entity_id</item>
                            <item name="label" xsi:type="string" translate="true">ID</item>
                            <item name="sortOrder" xsi:type="string">10</item>
                        </item>
                    </argument>
                </field>
                <field name="thumbnail">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/thumbnail</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">thumbnail</item>
                            <item name="label" xsi:type="string" translate="true">Thumbnail</item>
                            <item name="sortOrder" xsi:type="string">20</item>
                        </item>
                    </argument>
                </field>
                <field name="name">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">false</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">name</item>
                            <item name="label" xsi:type="string" translate="true">Name</item>
                            <item name="sortOrder" xsi:type="string">30</item>
                            <item name="resizeEnabled" xsi:type="boolean">true</item>
                            <item name="resizeDefaultWidth" xsi:type="string">100</item>
                        </item>
                    </argument>
                </field>
                <field name="type_id">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">type_id</item>
                            <item name="label" xsi:type="string" translate="true">Type</item>
                            <item name="sortOrder" xsi:type="string">40</item>
                        </item>
                    </argument>
                </field>
                <field name="sku">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">false</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">sku</item>
                            <item name="label" xsi:type="string" translate="true">SKU</item>
                            <item name="sortOrder" xsi:type="string">50</item>
                        </item>
                    </argument>
                </field>
                <field name="price">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">false</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">price</item>
                            <item name="label" xsi:type="string" translate="true">Price</item>
                            <item name="sortOrder" xsi:type="string">60</item>
                        </item>
                    </argument>
                </field>
                <field name="quantity">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="label" xsi:type="string" translate="true">Qty</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="dataType" xsi:type="string">number</item>
                            <item name="componentType" xsi:type="string">field</item>
                            <item name="dataScope" xsi:type="string">quantity</item>
                            <item name="sortOrder" xsi:type="string">70</item>
                            <item name="default" xsi:type="number">1</item>
                            <item name="visible" xsi:type="boolean">true</item>
                            <item name="additionalClasses" xsi:type="array">
                                <item name="amrelated-qty" xsi:type="string">amrelated-qty</item>
                            </item>
                            <item name="validation" xsi:type="array">
                                <item name="validate-digits" xsi:type="boolean">true</item>
                                <item name="validate-greater-than-zero" xsi:type="boolean">true</item>
                            </item>
                        </item>
                    </argument>
                </field>
                <field name="discount_amount">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="label" xsi:type="string" translate="true">Discount Amount</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="dataType" xsi:type="string">number</item>
                            <item name="componentType" xsi:type="string">field</item>
                            <item name="dataScope" xsi:type="string">discount_amount</item>
                            <item name="hideIfConditional" xsi:type="string">1</item>
                            <item name="sortOrder" xsi:type="string">75</item>
                            <item name="default" xsi:type="string" />
                            <item name="visible" xsi:type="boolean">true</item>
                            <item name="additionalClasses" xsi:type="array">
                                <item name="amrelated-qty" xsi:type="string">amrelated-qty</item>
                            </item>
                            <item name="validation" xsi:type="array">
                                <item name="validate-zero-or-greater" xsi:type="boolean">true</item>
                            </item>
                        </item>
                    </argument>
                </field>
                <field name="status">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="formElement" xsi:type="string">select</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Amasty_Mostviewed/js/dynamic-rows/element/select-label</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">status</item>
                            <item name="label" xsi:type="string" translate="true">Status</item>
                            <item name="sortOrder" xsi:type="string">80</item>
                        </item>
                        <item name="options" xsi:type="object">Magento\Catalog\Model\Product\Attribute\Source\Status</item>
                    </argument>
                </field>
                <field name="position">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="dataType" xsi:type="string">number</item>
                            <item name="componentType" xsi:type="string">field</item>
                            <item name="dataScope" xsi:type="string">position</item>
                            <item name="sortOrder" xsi:type="string">90</item>
                            <item name="visible" xsi:type="boolean">false</item>
                        </item>
                    </argument>
                </field>
                <actionDelete>
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="additionalClasses" xsi:type="string">data-grid-actions-cell</item>
                            <item name="componentType" xsi:type="string">actionDelete</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="label" xsi:type="string" translate="true">Actions</item>
                            <item name="sortOrder" xsi:type="number">99</item>
                        </item>
                    </argument>
                </actionDelete>
            </container>
        </container>
    </fieldset>

    <fieldset name="parent_products">
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
                <item name="label" xsi:type="string" translate="true">Main Products</item>
                <item name="collapsible" xsi:type="boolean">true</item>
            </item>
        </argument>

        <container name="parent_buttons">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="boolean">false</item>
                    <item name="formElement" xsi:type="string">container</item>
                    <item name="componentType" xsi:type="string">container</item>
                    <item name="component" xsi:type="string">Magento_Ui/js/form/components/button</item>
                    <item name="title" xsi:type="string" translate="true">Add Main Products</item>
                    <item name="actions" xsi:type="array">
                        <item name="0" xsi:type="array">
                            <item name="targetName" xsi:type="string">amasty_mostviewed_pack_form.amasty_mostviewed_pack_form.parent_products.parent_modal</item>
                            <item name="actionName" xsi:type="string">toggleModal</item>
                        </item>
                        <item name="1" xsi:type="array">
                            <item name="targetName" xsi:type="string">amasty_mostviewed_pack_form.amasty_mostviewed_pack_form.parent_products.parent_modal.parent_products_grid</item>
                            <item name="actionName" xsi:type="string">render</item>
                        </item>
                    </item>
                </item>
            </argument>
        </container>
        <container name="parent_modal">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="componentType" xsi:type="string">modal</item>
                    <item name="component" xsi:type="string">Magento_Ui/js/modal/modal-component</item>
                    <item name="options" xsi:type="array">
                        <item name="type" xsi:type="string">slide</item>
                        <item name="title" xsi:type="string" translate="true">Add Main Products</item>
                        <item name="buttons" xsi:type="array">
                            <item name="0" xsi:type="array">
                                <item name="text" xsi:type="string" translate="true">Cancel</item>
                                <item name="actions" xsi:type="array">
                                    <item name="0" xsi:type="string">closeModal</item>
                                </item>
                            </item>
                            <item name="1" xsi:type="array">
                                <item name="text" xsi:type="string" translate="true">Add Selected Products</item>
                                <item name="class" xsi:type="string">action-primary</item>
                                <item name="actions" xsi:type="array">
                                    <item name="0" xsi:type="array">
                                        <item name="targetName" xsi:type="string">index = parent_products_grid</item>
                                        <item name="actionName" xsi:type="string">save</item>
                                    </item>
                                    <item name="1" xsi:type="string">closeModal</item>
                                </item>
                            </item>
                        </item>
                    </item>
                </item>
            </argument>
            <insertListing name="parent_products_grid">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <!--Avoid admin__scope-old cssclass assign -->
                        <item name="cssclass" xsi:type="string">product-grid-insert-listing</item>
                        <item name="dataScope" xsi:type="string">parent_products_container</item>
                        <item name="autoRender" xsi:type="boolean">false</item>
                        <item name="selectionsProvider" xsi:type="string">amasty_mostviewed_parent_product_listing.amasty_mostviewed_parent_product_listing.parent_product_listing_columns.ids</item>
                        <item name="externalProvider" xsi:type="string">amasty_mostviewed_parent_product_listing.amasty_mostviewed_parent_product_listing_data_source</item>
                        <item name="ns" xsi:type="string">amasty_mostviewed_parent_product_listing</item>
                        <item name="realTimeLink" xsi:type="boolean">true</item>
                        <item name="behaviourType" xsi:type="string">edit</item>
                        <item name="dataLinks" xsi:type="array">
                            <item name="imports" xsi:type="boolean">false</item>
                            <item name="exports" xsi:type="boolean">true</item>
                        </item>
                        <item name="externalFilterMode" xsi:type="boolean">true</item>
                    </item>
                </argument>
            </insertListing>
        </container>
        <container name="parent_products_container">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="additionalClasses" xsi:type="string">admin__field-wide</item>
                    <item name="componentType" xsi:type="string">dynamicRows</item>
                    <item name="component" xsi:type="string">Amasty_Mostviewed/js/dynamic-rows/dynamic-rows-grid</item>
                    <item name="template" xsi:type="string">ui/dynamic-rows/templates/grid</item>
                    <item name="recordTemplate" xsi:type="string">record</item>
                    <item name="addButton" xsi:type="boolean">false</item>
                    <item name="columnsHeader" xsi:type="boolean">false</item>
                    <item name="columnsHeaderAfterRender" xsi:type="boolean">true</item>
                    <item name="renderDefaultRecord" xsi:type="boolean">false</item>
                    <item name="deleteButtonLabel" xsi:type="string" translate="true">Remove</item>
                    <item name="dataScope" xsi:type="string">parent_ids</item>
                    <item name="identificationProperty" xsi:type="string">entity_id</item>
                    <item name="identificationDRProperty" xsi:type="string">entity_id</item>
                    <item name="dataProvider" xsi:type="string">data.parent_products_container</item>
                    <item name="positionProvider" xsi:type="string">position2</item>
                    <item name="map" xsi:type="array">
                        <item name="entity_id" xsi:type="string">entity_id</item>
                        <item name="thumbnail" xsi:type="string">thumbnail_src</item>
                        <item name="name" xsi:type="string">name</item>
                        <item name="status" xsi:type="string">status</item>
                        <item name="type_id" xsi:type="string">type_id</item>
                        <item name="sku" xsi:type="string">sku</item>
                        <item name="price" xsi:type="string">price</item>
                    </item>
                    <item name="links" xsi:type="array">
                        <item name="insertData" xsi:type="string">${ $.provider }:${ $.dataProvider }</item>
                    </item>
                    <item name="dndConfig" xsi:type="array">
                        <item name="enabled" xsi:type="boolean">false</item>
                    </item>
                </item>
            </argument>
            <container name="record">
                <argument name="data" xsi:type="array">
                    <item name="config" xsi:type="array">
                        <item name="component" xsi:type="string">Magento_Ui/js/dynamic-rows/record</item>
                        <item name="isTemplate" xsi:type="boolean">true</item>
                        <item name="positionProvider" xsi:type="string">position2</item>
                        <item name="is_collection" xsi:type="boolean">true</item>
                    </item>
                </argument>
                <field name="entity_id">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">entity_id</item>
                            <item name="label" xsi:type="string" translate="true">ID</item>
                            <item name="sortOrder" xsi:type="string">10</item>
                        </item>
                    </argument>
                </field>
                <field name="thumbnail">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/thumbnail</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">thumbnail</item>
                            <item name="label" xsi:type="string" translate="true">Thumbnail</item>
                            <item name="sortOrder" xsi:type="string">20</item>
                        </item>
                    </argument>
                </field>
                <field name="name">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">false</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">name</item>
                            <item name="label" xsi:type="string" translate="true">Name</item>
                            <item name="sortOrder" xsi:type="string">30</item>
                        </item>
                    </argument>
                </field>
                <field name="type_id">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">type_id</item>
                            <item name="label" xsi:type="string" translate="true">Type</item>
                            <item name="sortOrder" xsi:type="string">40</item>
                        </item>
                    </argument>
                </field>
                <field name="sku">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">false</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">sku</item>
                            <item name="label" xsi:type="string" translate="true">SKU</item>
                            <item name="sortOrder" xsi:type="string">50</item>
                        </item>
                    </argument>
                </field>
                <field name="price">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">false</item>
                            <item name="formElement" xsi:type="string">input</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Magento_Ui/js/form/element/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">price</item>
                            <item name="label" xsi:type="string" translate="true">Price</item>
                            <item name="sortOrder" xsi:type="string">60</item>
                        </item>
                    </argument>
                </field>
                <field name="status">
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="formElement" xsi:type="string">select</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="component" xsi:type="string">Amasty_Mostviewed/js/dynamic-rows/element/select-label</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="dataScope" xsi:type="string">status</item>
                            <item name="label" xsi:type="string" translate="true">Status</item>
                            <item name="sortOrder" xsi:type="string">70</item>
                        </item>
                        <item name="options" xsi:type="object">Magento\Catalog\Model\Product\Attribute\Source\Status</item>
                    </argument>
                </field>
                <actionDelete>
                    <argument name="data" xsi:type="array">
                        <item name="config" xsi:type="array">
                            <item name="fit" xsi:type="boolean">true</item>
                            <item name="additionalClasses" xsi:type="string">data-grid-actions-cell</item>
                            <item name="componentType" xsi:type="string">actionDelete</item>
                            <item name="elementTmpl" xsi:type="string">ui/dynamic-rows/cells/text</item>
                            <item name="dataType" xsi:type="string">text</item>
                            <item name="label" xsi:type="string" translate="true">Actions</item>
                            <item name="sortOrder" xsi:type="number">99</item>
                        </item>
                    </argument>
                </actionDelete>
            </container>
        </container>
    </fieldset>
</form>
