Assign Customer attribute to customer group from the storefront properties add setting in customer attributes setting page

I am using community edition. I have enabled customer attributes on my store. I want to add store view and customer group select option in the adminhtml for storefront properties like available on the admin customer edit page. How to get the this in the custom module.
I have the following options available on the storefront properties.
current options

I want to display the store view and customer group multiselect on the storefront properties. like below. I am new to magento and I have no idea about the this much level of customisations. I have tried to get in to dev docs for magento repository, but it seems hard to understand at this level for me. Please some one help me how can I achieve this.

required functinality in adminhtml custome module

This is my code in the storefront properties page

use MagentoBackendBlockTemplateContext;
use MagentoBackendBlockWidgetForm;
use MagentoBackendBlockWidgetFormGeneric;
use MagentoConfigModelConfigSourceYesno;
use MagentoCatalogModelEntityAttribute;
use MagentoEavBlockAdminhtmlAttributePropertyLocker;
use MagentoFrameworkDataFormFactory;
use MagentoFrameworkRegistry;

class Front extends Generic
{
    /**
     * @var Yesno
     */
    protected $_yesNo;

    /**
     * @var PropertyLocker
     */
    private $propertyLocker;

    /**
     * @param Context $context
     * @param Registry $registry
     * @param FormFactory $formFactory
     * @param Yesno $yesNo
     * @param PropertyLocker $propertyLocker
     * @param array $data
     */
    public function __construct(
        Context $context,
        Registry $registry,
        FormFactory $formFactory,
        Yesno $yesNo,
        PropertyLocker $propertyLocker,
        array $data = ()
    ) {
        $this->_yesNo = $yesNo;
        $this->propertyLocker = $propertyLocker;
        parent::__construct($context, $registry, $formFactory, $data);
    }

    /**
     * {@inheritdoc}
     * @return $this
     */
    protected function _prepareForm()
    {
        /** @var Attribute $attributeObject */
        $attributeObject = $this->_coreRegistry->registry('entity_attribute');

        /** @var MagentoFrameworkDataForm $form */
        $form = $this->_formFactory->create(
            ('data' => ('id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post'))
        );

        $yesnoSource = $this->_yesNo->toOptionArray();

        $fieldset = $form->addFieldset(
            'front_fieldset',
            ('legend' => __('Storefront Properties'), 'collapsable' => $this->getRequest()->has('popup'))
        );
        
        $fieldset->addField(
            'sort_order',
            'text',
            (
                'name' => 'sort_order',
                'label' => __('Sort Order'),
                'title' => __('Sort Order'),
                'class' => 'validate-digits',
                'note' => __('The order to display attribute on the frontend'),
            )
        );
        
        $usedInForms = $attributeObject->getUsedInForms();
        
        $showOnRegistration = ($attributeObject->getAttributeId()) ? 
                (in_array('customer_account_create', $usedInForms) ? 1 : 0) : 1;
        $fieldset->addField(
            'customer_account_create',
            'select',
            (
                'name' => 'customer_account_create',
                'label' => __('Registration Page'),
                'title' => __('Registration Page'),
                'values' => $yesnoSource,
                'value' => $showOnRegistration,
            )
        );
        
        $showAccountEdit = ($attributeObject->getAttributeId()) ? 
                (in_array('customer_account_edit', $usedInForms) ? 1 : 0) : 1;
        $fieldset->addField(
            'customer_account_edit',
            'select',
            (
                'name' => 'customer_account_edit',
                'label' => __('Account Edit Page'),
                'title' => __('Account Edit Page'),
                'values' => $yesnoSource,
                'value' => $showAccountEdit,
            )
        );
        
        $showAdminManageCustomers = ($attributeObject->getAttributeId()) ? 
                (in_array('adminhtml_customer', $usedInForms) ? 1 : 0) : 1;
        $fieldset->addField(
            'adminhtml_customer',
            'select',
            (
                'name' => 'adminhtml_customer',
                'label' => __('Manage Customers'),
                'title' => __('Manage Customers'),
                'values' => $yesnoSource,
                'value' => $showAdminManageCustomers,
                'note'  =>_('Admin Manage Customers'),
            )
        );
        
        $this->setForm($form);
        $this->propertyLocker->lock($form);
        return parent::_prepareForm();
    }
    
    /**
     * Initialize form fileds values
     *
     * @return $this
     */
    protected function _initFormValues()
    {
        $this->getForm()->addValues($this->getAttributeObject()->getData());
        return parent::_initFormValues();
    }
    
    /**
     * Retrieve attribute object from registry
     *
     * @return mixed
     */
    private function getAttributeObject()
    {
        return $this->_coreRegistry->registry('entity_attribute');
    }
}

Thanks in advance