GridStackSkinManager.php in GridStack 8.2
File
src/GridStackSkinManager.php
View source
<?php
namespace Drupal\gridstack;
class GridStackSkinManager extends GridStackPluginManagerBase implements GridStackSkinManagerInterface {
protected $skinDefinition;
protected $skinOptions;
protected $libraryInfoBuild;
public function getSkins() {
if (!isset($this->skinDefinition)) {
$this->skinDefinition = $this
->getData([
'skins',
], TRUE);
}
return $this->skinDefinition;
}
public function getSkinOptions() {
if (!isset($this->skinOptions)) {
$this->skinOptions = $this
->getDataOptions($this
->getSkins());
}
return $this->skinOptions;
}
public function attach(array &$load, array $attach = []) {
if (isset($attach['skin']) && ($skin = $attach['skin'])) {
$skins = $this
->getSkins();
$provider = isset($skins[$skin]['provider']) ? $skins[$skin]['provider'] : 'gridstack';
$load['library'][] = 'gridstack/' . $provider . '.' . $skin;
}
}
public function libraryInfoBuild() {
if (!isset($this->libraryInfoBuild)) {
$libraries = [];
foreach ($this
->getSkins() as $key => $skin) {
$provider = isset($skin['provider']) ? $skin['provider'] : 'gridstack';
$id = $provider . '.' . $key;
foreach ([
'css',
'js',
'dependencies',
] as $property) {
if (isset($skin[$property]) && is_array($skin[$property])) {
$libraries[$id][$property] = $skin[$property];
}
}
$libraries[$id]['dependencies'][] = 'gridstack/skin';
}
foreach (range(1, 12) as $key) {
$libraries['gridstack.' . $key] = [
'css' => [
'layout' => [
'css/layout/grid-stack-' . $key . '.css' => [],
],
],
'dependencies' => [
'gridstack/library',
],
];
}
$this->libraryInfoBuild = $libraries;
}
return $this->libraryInfoBuild;
}
}