55         $this->_design = $design;
    67         if ($this->_assignedTheme === 
null) {
    68             $this->_prepareThemeCustomizations();
    81         if ($this->_unassignedTheme === 
null) {
    82             $this->_prepareThemeCustomizations();
    92     public function getStoresByThemes()
    95         $stores = $this->_storeManager->getStores();
    99             if (!isset($storesByThemes[$themeId])) {
   100                 $storesByThemes[$themeId] = [];
   102             $storesByThemes[$themeId][] = 
$store;
   104         return $storesByThemes;
   118             return isset($assignedThemes[
$theme->getId()]);
   153         return $this->_design->getConfigurationDesignTheme(
   168     protected function _prepareThemeCustomizations()
   171         $themeCollection = $this->themeProvider->getThemeCustomizations(\
Magento\Framework\
App\Area::AREA_FRONTEND);
   173         $assignedThemes = $this->getStoresByThemes();
   175         $this->_assignedTheme = [];
   176         $this->_unassignedTheme = [];
   179         foreach ($themeCollection as 
$theme) {
   180             if (isset($assignedThemes[
$theme->getId()])) {
   181                 $theme->setAssignedStores($assignedThemes[
$theme->getId()]);
 getUnassignedThemeCustomizations()
__construct(\Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\View\DesignInterface $design, \Magento\Framework\View\Design\Theme\ThemeProviderInterface $themeProvider)
_getConfigurationThemeId($store)
getAssignedThemeCustomizations()
isThemeAssignedToStore($theme, $store=null)
_isThemeAssignedToSpecificStore($theme, $store)