Zend certified PHP/Magento developer

sub category multi selector through ui component in magneto 2

i want category hirarchey like this

the code that i have done shows all categories in a list but hirarchey
form.xml

<!-- drop down -->
        <field name="admin_category_form_field">
                <argument name="data" xsi:type="array">
                        <item name="options" xsi:type="object">FSDCategoryBannerModelCategory</item>
                        <item name="config" xsi:type="array">
                        <item name="dataType" xsi:type="string">text</item>
                        <item name="label" translate="true" xsi:type="string">Category</item>
                        <item name="component" xsi:type="string">Magento_Ui/js/form/element/ui-select</item>
                        <item name="elementTmpl" xsi:type="string">ui/grid/filters/elements/ui-select</item>
                        <item name="formElement" xsi:type="string">select</item>
                        <item name="filterOptions" xsi:type="boolean">true</item>
                        <item name="showCheckbox" xsi:type="boolean">true</item>
                        <item name="multiple" xsi:type="boolean">true</item>
                        <item name="source" xsi:type="string">name</item>
                        <item name="sortOrder" xsi:type="number">20</item>
                        <item name="dataScope" xsi:type="string">admin_category_form_field</item>
                        <item name="validation" xsi:type="array">
                            <item name="required-entry" xsi:type="boolean">false</item>
                        </item>
                    </item>
                </argument>
            </field>
        <!-- end drop down -->

category.php

<?php

namespace FSDCategoryBannerModel;

class Category implements MagentoFrameworkOptionArrayInterface
{

    protected $_categories;
    protected $_storeManager;

    public function __construct(
        MagentoCatalogModelResourceModelCategoryCollectionFactory $collection,
        MagentoStoreModelStoreManagerInterface $storeManager
    )
    {
        $this->_categories = $collection;
        $this->_storeManager = $storeManager;
    }

    public function toOptionArray()
    {   
        
    $categories = $this->_categories->create();
    
    $collection = $categories->addAttributeToSelect('*')->addFieldToFilter('is_active', 1)->setStore($this->_storeManager->getStore());
    $itemArray = array('value' => '', 'label' => '--Please Select--');
        //
        $categoryArray = array();
        $categoryArray[] = $itemArray;
        foreach ($collection as $category)
        {       
            $categoryArray[] = array('value' => $category->getId(), 'label' => $category->getName());

        }
        // dd($categoryArray);
        return $categoryArray;
    }
}