File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/magento/module-ui/Component/Bookmark.php
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Ui\Component;
use Magento\Framework\Api\FilterBuilder;
use Magento\Framework\View\Element\UiComponent\ContextInterface;
use Magento\Ui\Api\BookmarkManagementInterface;
use Magento\Ui\Api\BookmarkRepositoryInterface;
/**
* Class Bookmark
*/
class Bookmark extends AbstractComponent
{
const NAME = 'bookmark';
/**
* @var BookmarkRepositoryInterface
*/
protected $bookmarkRepository;
/**
* @var FilterBuilder
*/
protected $filterBuilder;
/**
* @var BookmarkManagementInterface
*/
protected $bookmarkManagement;
/**
* @param ContextInterface $context
* @param BookmarkRepositoryInterface $bookmarkRepository
* @param BookmarkManagementInterface $bookmarkManagement
* @param array $components
* @param array $data
*/
public function __construct(
ContextInterface $context,
BookmarkRepositoryInterface $bookmarkRepository,
BookmarkManagementInterface $bookmarkManagement,
array $components = [],
array $data = []
) {
parent::__construct($context, $components, $data);
$this->bookmarkRepository = $bookmarkRepository;
$this->bookmarkManagement = $bookmarkManagement;
}
/**
* Get component name
*
* @return string
*/
public function getComponentName()
{
return static::NAME;
}
/**
* Register component
*
* @return void
*/
public function prepare()
{
$namespace = $this->getContext()->getRequestParam('namespace', $this->getContext()->getNamespace());
$config = [];
if (!empty($namespace)) {
$bookmarks = $this->bookmarkManagement->loadByNamespace($namespace);
/** @var \Magento\Ui\Api\Data\BookmarkInterface $bookmark */
foreach ($bookmarks->getItems() as $bookmark) {
if ($bookmark->isCurrent()) {
$config['activeIndex'] = $bookmark->getIdentifier();
}
$config = array_merge_recursive($config, $bookmark->getConfig());
}
}
$this->setData('config', array_replace_recursive($config, $this->getConfiguration()));
parent::prepare();
$jsConfig = $this->getConfiguration();
$this->getContext()->addComponentDefinition($this->getComponentName(), $jsConfig);
}
}