diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..351be020
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+.idea/
+.DS_Store
+node_modules/
+.vscode/
+*.map
\ No newline at end of file
diff --git a/Classes/Helpers/CoreVersionCondition.php b/Classes/Helpers/CoreVersionCondition.php
new file mode 100644
index 00000000..d9882467
--- /dev/null
+++ b/Classes/Helpers/CoreVersionCondition.php
@@ -0,0 +1,105 @@
+|
+ * [global]
+ *
+ */
+class CoreVersionCondition extends AbstractCondition
+{
+ /**
+ * Evaluate condition
+ *
+ * @param array $conditionParameters
+ * @return bool
+ */
+ public function matchCondition(array $conditionParameters)
+ {
+ if (empty($conditionParameters)) {
+ return false;
+ }
+
+ $coreVersion = VersionNumberUtility::getNumericTypo3Version();
+ $coreVersionInteger = VersionNumberUtility::convertVersionNumberToInteger($coreVersion);
+ foreach ($conditionParameters as $expression) {
+ if (\TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($expression)) {
+ $expression = '=' . $expression;
+ }
+ if ($this->compareNumber($expression, $coreVersionInteger)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Evaluates a $leftValue based on an operator: "<", ">", "<=", ">=", "!=" or "="
+ *
+ * @param string $test The value to compare with on the form [operator][number]. Eg. "< 123
+ * @param float $leftValue The value on the left side
+ * @return bool If $value is "50" and $test is "< 123" then it will return TRUE.
+ */
+ protected function compareNumber($test, $leftValue)
+ {
+ if (preg_match('/^(!?=+|<=?|>=?)\\s*([^\\s]*)\\s*$/', $test, $matches)) {
+ $operator = $matches[1];
+ $rightValue = $matches[2];
+ switch ($operator) {
+ case '>=':
+ return $leftValue >= VersionNumberUtility::convertVersionNumberToInteger($rightValue);
+ case '<=':
+ return $leftValue <= VersionNumberUtility::convertVersionNumberToInteger($rightValue);
+ case '!=':
+ // multiple values may be split with '|'
+ // see if none matches ("not in list")
+ $found = false;
+ $rightValueParts = GeneralUtility::trimExplode('|', $rightValue);
+ foreach ($rightValueParts as $rightValueSingle) {
+ if ($leftValue == VersionNumberUtility::convertVersionNumberToInteger($rightValueSingle)) {
+ $found = true;
+ break;
+ }
+ }
+ return $found === false;
+ case '<':
+ return $leftValue < VersionNumberUtility::convertVersionNumberToInteger($rightValue);
+ case '>':
+ return $leftValue > VersionNumberUtility::convertVersionNumberToInteger($rightValue);
+ default:
+ // nothing valid found except '=', use '='
+ // multiple values may be split with '|'
+ // see if one matches ("in list")
+ $found = false;
+ $rightValueParts = GeneralUtility::trimExplode('|', $rightValue);
+ foreach ($rightValueParts as $rightValueSingle) {
+ if ($leftValue == VersionNumberUtility::convertVersionNumberToInteger($rightValueSingle)) {
+ $found = true;
+ break;
+ }
+ }
+ return $found;
+ }
+ }
+ return false;
+ }
+}
diff --git a/Classes/Helpers/GetDoc.php b/Classes/Helpers/GetDoc.php
new file mode 100644
index 00000000..cea879a9
--- /dev/null
+++ b/Classes/Helpers/GetDoc.php
@@ -0,0 +1,202 @@
+
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This script is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+
+if (!defined('TYPO3_DLOG')) {
+ define('TYPO3_DLOG', 0);
+}
+
+class GetDoc
+{
+ /**
+ * This holds the current document
+ *
+ * @var tx_dlf_document
+ * @access protected
+ */
+ protected $doc;
+
+ /**
+ * Get page's download link
+ *
+ * @access public
+ *
+ * @param integer $pagenumber:The current page numbert
+ *
+ * @return string: The left and right download url
+ */
+ public function getPageLink($pagenumber)
+ {
+
+ if (!$this->init()) {
+ return '';
+ }
+
+ $details = $this->doc->physicalStructureInfo[$this->doc->physicalStructure[$pagenumber]];
+ $file = $details['files']['DOWNLOAD'];
+
+ if (!empty($file)) {
+
+ $pageLink = $this->doc->getFileLocation($file);
+
+ }
+
+ return $pageLink;
+ }
+
+ /**
+ * Get work's download link
+ *
+ * @access public
+ *
+ * @return string: The left and right download url
+ */
+ public function getWorkLink()
+ {
+
+ if (!$this->init()) {
+ return '';
+ }
+
+ // Get work link.
+ if (!empty($this->doc->physicalStructureInfo[$this->doc->physicalStructure[0]]['files']['DOWNLOAD'])) {
+
+ $workLink = $this->doc->getFileLocation($this->doc->physicalStructureInfo[$this->doc->physicalStructure[0]]['files']['DOWNLOAD']);
+
+ } else {
+
+ $details = $this->doc->getLogicalStructure($this->doc->toplevelId);
+
+ if (!empty($details['files']['DOWNLOAD'])) {
+
+ $workLink = $this->doc->getFileLocation($details['files']['DOWNLOAD']);
+
+ }
+
+ }
+
+ return $workLink;
+ }
+
+ /**
+ * get xpath result
+ *
+ * @access public
+ *
+ * @param string $content: The PlugIn content
+ *
+ * @return string The content that is displayed on the website
+ */
+ public function getXpath($xpath)
+ {
+ if (!$this->init()) {
+ return '';
+ }
+ return $this->doc->mets->xpath($xpath);
+ }
+
+ /**
+ * Initialize and load the document
+ *
+ * @access protected
+ *
+ * @return boolean
+ */
+ protected function init()
+ {
+ // Load current document.
+ $this->loadDocument();
+
+ if ($this->doc === null) {
+
+ // Quit without doing anything if required variables are not set.
+ return null;
+
+ }
+
+ $this->doc->mets->registerXPathNamespace('mets', 'http://www.loc.gov/METS/');
+ $this->doc->mets->registerXPathNamespace('mods', 'http://www.loc.gov/mods/v3');
+ $this->doc->mets->registerXPathNamespace('dv', 'http://dfg-viewer.de/');
+ $this->doc->mets->registerXPathNamespace('slub', 'http://slub-dresden.de/');
+
+ return true;
+ }
+
+ /**
+ * Loads the current document into $this->doc
+ *
+ * @access protected
+ *
+ * @return void
+ */
+ protected function loadDocument()
+ {
+ $piVarsSet = GeneralUtility::_GPmerged('set');
+
+ $piVars = GeneralUtility::_GPmerged('tx_dlf');
+
+ // overwrite tx_dlf[] parameters by (old) set[] ones
+ if (!empty($piVarsSet['mets'])) {
+ $piVars['id'] = $piVarsSet['mets'];
+ }
+ if (!empty($piVarsSet['double'])) {
+ $piVars['double'] = $piVarsSet['double'];
+ }
+ if (!empty($piVarsSet['image'])) {
+ $piVars['page'] = $piVarsSet['image'];
+ }
+
+ // Check for required variable.
+ if (!empty($piVars['id'])) {
+
+ // Get instance of tx_dlf_document.
+ if (version_compare(\TYPO3\CMS\Core\Utility\VersionNumberUtility::getNumericTypo3Version(), '8.7.0', '>=')) {
+ $this->doc =& \Kitodo\Dlf\Common\Document::getInstance($piVars['id'], 0);
+ } else {
+ $this->doc =& \tx_dlf_document::getInstance($piVars['id'], 0);
+ }
+
+
+ if (!$this->doc->ready) {
+
+ // Destroy the incomplete object.
+ $this->doc = null;
+
+ if (TYPO3_DLOG) {
+ \TYPO3\CMS\Core\Utility\GeneralUtility::devLog('[tx_dlf_plugin->loadDocument()] Failed to load document with UID "'.$piVars['id'].'"', $this->extKey, SYSLOG_SEVERITY_ERROR);
+ }
+ } else {
+
+ // Set configuration PID.
+ $this->doc->cPid = $this->conf['pages'];
+ }
+ } else {
+ if (TYPO3_DLOG) {
+ \TYPO3\CMS\Core\Utility\GeneralUtility::devLog('[tx_dlf_plugin->loadDocument()] Failed to load document with record ID "'.$this->piVars['recordId'].'"', $this->extKey, SYSLOG_SEVERITY_ERROR);
+ }
+ }
+ }
+}
diff --git a/Classes/ViewHelpers/CalcViewHelper.php b/Classes/ViewHelpers/CalcViewHelper.php
new file mode 100644
index 00000000..4012b5a5
--- /dev/null
+++ b/Classes/ViewHelpers/CalcViewHelper.php
@@ -0,0 +1,86 @@
+
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This script is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
+use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
+
+/**
+ * ViewHelper to calculate two integers
+ *
+ * # Example: Basic example
+ *
+ *
+ * 1
+ *
+ *
+ * Will output the value of tx_dlf[page]
+ *
+ *
+ * @package TYPO3
+ */
+class CalcViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
+{
+ use CompileWithRenderStatic;
+
+ /**
+ * Initialize arguments.
+ */
+ public function initializeArguments()
+ {
+ parent::initializeArguments();
+ $this->registerArgument('val1', 'integer', 'first value', true);
+ $this->registerArgument('val2', 'integer', 'second value', true);
+ $this->registerArgument('operator', 'string', 'operator', false, '+');
+ }
+
+ /**
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ) {
+ $val1 = $arguments['val1'];
+ $val2 = $arguments['val2'];
+ $operator = $arguments['operator'];
+
+ switch ($operator) {
+ case '+': $result = (int)$val1 + (int)$val2;
+ break;
+ case '-': $result = (int)$val1 - (int)$val2;
+ break;
+ case '*': $result = (int)$val1 * (int)$val2;
+ break;
+ case '/': $result = (int)((int)$val1 / (int)$val2);
+ break;
+ }
+
+ return $result;
+ }
+}
diff --git a/Classes/ViewHelpers/CollectionsViewHelper.php b/Classes/ViewHelpers/CollectionsViewHelper.php
new file mode 100644
index 00000000..9f9d7c2f
--- /dev/null
+++ b/Classes/ViewHelpers/CollectionsViewHelper.php
@@ -0,0 +1,86 @@
+
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This script is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
+use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
+
+/**
+ * ViewHelper to get kitodo collections froms olr
+ *
+ * @package TYPO3
+ */
+class CollectionsViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
+{
+ use CompileWithRenderStatic;
+
+ /**
+ * Initialize arguments.
+ */
+ public function initializeArguments()
+ {
+ parent::initializeArguments();
+ $this->registerArgument('kitodoId', 'integer', 'Id of Kitodo document', true);
+ $this->registerArgument('solrHost', 'string', 'Id of Kitodo document', false, "http://sdvsolr2.slub-dresden.de:8983/solr/dlfCore0/");
+ $this->registerArgument('solrTimeout', 'integer', 'Id of Kitodo document', false, 5);
+ }
+
+ /**
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ) {
+ $kitodoId = $arguments['kitodoId'];
+ $solrHost = rtrim($arguments['solrHost'], "/");
+ $solrTimeout = $arguments['solrTimeout'];
+ if (\TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($kitodoId)) {
+ // calculate cache identifier
+ $cacheIdentifier = $kitodoId;
+ $cache = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Cache\\CacheManager')->getCache('slub_digitalcollections_collections');
+
+ if (($entry = $cache->get($cacheIdentifier)) === FALSE) {
+ $context = stream_context_create(array(
+ 'http' => array(
+ 'timeout' => $solrTimeout
+ )
+ )
+ );
+ $apiAnswer = file_get_contents( $solrHost . '/select?q=uid:' . $kitodoId . '%20AND%20toplevel:true&rows=1&wt=json', false, $context);
+ $entry = json_decode($apiAnswer);
+ // Save value in cache
+ if ($entry) {
+ $cache->set($cacheIdentifier, $entry);
+ }
+ }
+ } else {
+ return FALSE;
+ }
+ return $entry;
+ }
+}
diff --git a/Classes/ViewHelpers/DownloadLinksViewHelper.php b/Classes/ViewHelpers/DownloadLinksViewHelper.php
new file mode 100644
index 00000000..e0fe7eb7
--- /dev/null
+++ b/Classes/ViewHelpers/DownloadLinksViewHelper.php
@@ -0,0 +1,88 @@
+
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This script is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
+use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
+
+/**
+ * ViewHelper to get page info
+ *
+ * # Example: Basic example
+ *
+ *
+ * 123
+ *
+ *
+ * Will output the page record
+ *
+ *
+ * @package TYPO3
+ */
+class DownloadLinksViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
+{
+ use CompileWithRenderStatic;
+
+ /**
+ * Initialize arguments.
+ */
+ public function initializeArguments()
+ {
+ parent::initializeArguments();
+ $this->registerArgument('type', 'string', 'type of download ("page-left", "page-right" or "work")', false, 'page-left');
+ $this->registerArgument('pagenumber', 'integer', 'current page number', false, 1);
+ }
+
+ /**
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ) {
+ $type = $arguments['type'];
+ $pagenumber = $arguments['pagenumber'];
+
+ $doc = GeneralUtility::makeInstance(\Slub\DigitalCollections\Helpers\GetDoc::class);
+
+ switch ($type) {
+ case 'page-right':
+ $result = $doc->getPageLink((int)$pagenumber + 1);
+ break;
+ case 'work':
+ $result = $doc->getWorkLink((int)$pagenumber);
+ break;
+ case 'page-left':
+ default:
+ $result = $doc->getPageLink((int)$pagenumber);
+ break;
+ }
+
+ return $result;
+ }
+}
diff --git a/Classes/ViewHelpers/ExtractFulltextViewHelper.php b/Classes/ViewHelpers/ExtractFulltextViewHelper.php
new file mode 100644
index 00000000..6e88a712
--- /dev/null
+++ b/Classes/ViewHelpers/ExtractFulltextViewHelper.php
@@ -0,0 +1,80 @@
+
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This script is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
+use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
+
+/**
+ * ViewHelper to parse the ALTO fulltext
+ *
+ * # Example: Basic example
+ *
+ *
+ *
+ *
+ * Will output all words out of the ALTO files
+ *
+ *
+ * @package TYPO3
+ */
+class ExtractFulltextViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
+{
+ use CompileWithRenderStatic;
+
+ /**
+ * Initialize arguments.
+ */
+ public function initializeArguments()
+ {
+ parent::initializeArguments();
+ $this->registerArgument('file', 'string', 'URI of the ALTO fulltext file', true);
+ }
+
+ /**
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ) {
+ $file= $arguments['file'];
+
+ $altoXml = simplexml_load_file($file);
+
+ $altoXml->registerXPathNamespace('alto', 'http://www.loc.gov/standards/alto/ns-v2#');
+ // Get all (presumed) words of the text.
+ $words = $altoXml->xpath('./alto:Layout/alto:Page/alto:PrintSpace//alto:TextBlock/alto:TextLine/alto:String/@CONTENT');
+ if (!empty($words)) {
+ $rawText = implode(' ', $words);
+ }
+ return $rawText;
+
+ }
+
+}
\ No newline at end of file
diff --git a/Classes/ViewHelpers/PageInfoViewHelper.php b/Classes/ViewHelpers/PageInfoViewHelper.php
new file mode 100644
index 00000000..e103608f
--- /dev/null
+++ b/Classes/ViewHelpers/PageInfoViewHelper.php
@@ -0,0 +1,80 @@
+
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This script is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
+use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
+
+/**
+ * ViewHelper to get page info
+ *
+ * # Example: Basic example
+ *
+ *
+ * 123
+ *
+ *
+ * Will output the page record
+ *
+ *
+ * @package TYPO3
+ */
+class PageInfoViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
+{
+ use CompileWithRenderStatic;
+
+ /**
+ * Initialize arguments.
+ */
+ public function initializeArguments()
+ {
+ parent::initializeArguments();
+ $this->registerArgument('uid', 'integer', 'uid of page', true);
+ $this->registerArgument('field', 'string', 'field to fetch from page record', false, 'title');
+ }
+
+ /**
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ) {
+ $pageUid = $arguments['uid'];
+ $field = $arguments['field'];
+ if (0 === $uid) {
+ $pageUid = $GLOBALS['TSFE']->id;
+ }
+ $pageRepository = GeneralUtility::makeInstance(\TYPO3\CMS\Frontend\Page\PageRepository::class);
+ $page = $pageRepository->getPage($pageUid);
+
+ $output = $page[$field];
+
+ return $output;
+ }
+}
diff --git a/Classes/ViewHelpers/PiVarsViewHelper.php b/Classes/ViewHelpers/PiVarsViewHelper.php
new file mode 100644
index 00000000..587a15c8
--- /dev/null
+++ b/Classes/ViewHelpers/PiVarsViewHelper.php
@@ -0,0 +1,78 @@
+
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This script is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
+use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
+
+/**
+ * ViewHelper to get piVars (GET variables)
+ *
+ * # Example: Basic example
+ *
+ *
+ * 1
+ *
+ *
+ * Will output the value of tx_dlf[page]
+ *
+ *
+ * @package TYPO3
+ */
+class PiVarsViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
+{
+ use CompileWithRenderStatic;
+
+ /**
+ * Initialize arguments.
+ */
+ public function initializeArguments()
+ {
+ parent::initializeArguments();
+ $this->registerArgument('var', 'string', 'variable name', true);
+ $this->registerArgument('default', 'string', 'default value if variable is empty', false, '');
+ }
+
+ /**
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ) {
+ $var = $arguments['var'];
+ $default = $arguments['default'];
+ $piVars = GeneralUtility::_GP('tx_dlf');
+
+ if (!isset($piVars[$var])) {
+ return $default;
+ }
+
+ return $piVars[$var];
+ }
+}
diff --git a/Classes/ViewHelpers/XpathViewHelper.php b/Classes/ViewHelpers/XpathViewHelper.php
new file mode 100644
index 00000000..db9c1c3e
--- /dev/null
+++ b/Classes/ViewHelpers/XpathViewHelper.php
@@ -0,0 +1,102 @@
+
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ *
+ * This script is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface;
+use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
+
+/**
+ * ViewHelper to get page info
+ *
+ * # Example: Basic example
+ *
+ *
+ * 123
+ *
+ *
+ * Will output the page record
+ *
+ *
+ * @package TYPO3
+ */
+class XpathViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
+{
+
+ use CompileWithRenderStatic;
+
+ /**
+ * Initialize arguments.
+ */
+ public function initializeArguments()
+ {
+ parent::initializeArguments();
+ $this->registerArgument('xpath', 'string', 'Xpath Expression', true);
+ $this->registerArgument('htmlspecialchars', 'boolean', 'Use htmlspecialchars() on the found result.', false, true);
+ $this->registerArgument('returnArray', 'boolean', 'Return results in an array instead of string.', false, false);
+ }
+
+ /**
+ * Render the supplied DateTime object as a formatted date.
+ *
+ * @param array $arguments
+ * @param \Closure $renderChildrenClosure
+ * @param RenderingContextInterface $renderingContext
+ */
+ public static function renderStatic(
+ array $arguments,
+ \Closure $renderChildrenClosure,
+ RenderingContextInterface $renderingContext
+ ) {
+ $xpath = $arguments['xpath'];
+ $htmlspecialchars = $arguments['htmlspecialchars'];
+ $returnArray = $arguments['returnArray'];
+
+ $doc = GeneralUtility::makeInstance(\Slub\DigitalCollections\Helpers\GetDoc::class);
+
+ $result = $doc->getXpath($xpath);
+
+ if (is_array($result)) {
+ foreach ($result as $row) {
+ if ($returnArray) {
+ $output[] = $htmlspecialchars ? htmlspecialchars(trim($row)) : trim($row);
+ } else {
+ $output .= $htmlspecialchars ? htmlspecialchars(trim($row)) : trim($row) . ' ';
+ }
+ }
+ } else {
+ if ($returnArray) {
+ $output[] = $htmlspecialchars ? htmlspecialchars(trim($row)) : trim($row);
+ } else {
+ $output = $htmlspecialchars ? htmlspecialchars(trim($row)) : trim($row);
+ }
+ }
+
+ if (! $returnArray) {
+ return trim($output);
+ } else {
+ return $output;
+ }
+ }
+}
diff --git a/Configuration/TCA/Overrides/pages.php b/Configuration/TCA/Overrides/pages.php
new file mode 100644
index 00000000..235e6969
--- /dev/null
+++ b/Configuration/TCA/Overrides/pages.php
@@ -0,0 +1,20 @@
+ jQuery must be provided by Kitodo.Presentation --> include Template "Basis Configuration"
+ includeJSFooterlibs {
+ kitodo-frontend = EXT:slub_digitalcollections/Resources/Public/Javascript/DigitalcollectionsListScripts.js
+ }
+}
+
+[globalVar = TSFE:page|backend_layout = pagets__kitodo]||[globalVar = TSFE:page|backend_layout = pagets__emptyworkview]
+ config.disableWrapInBaseClass = 1
+
+ # switch to viewer css
+ page.includeCSS.kitodo = {$config.kitodo.css.page}
+
+ # switch to viewer js
+ page.includeJSFooterlibs.kitodo = EXT:slub_digitalcollections/Resources/Public/Javascript/DigitalcollectionsScripts.js
+
+ # clear not required js
+ page.includeJSFooterlibs.kitodo-frontend >
+
+[global]
+
+# --------------------------------------------------------------------------------------------------------------------
+# add opengraph social metatags in single view with a valid id
+# --------------------------------------------------------------------------------------------------------------------
+[globalVar = GP:tx_dlf|id > 0]
+
+ page.2 = LOAD_REGISTER
+ page.2 {
+
+ pageUrlDigital {
+ cObject = TEXT
+ cObject {
+ dataWrap = DB:tx_dlf_documents:{GP:tx_dlf|id}:purl
+ wrap3={|}
+ insertData=1
+ }
+ }
+
+ # sometimes partOf is set...
+ partOf {
+ cObject = TEXT
+ cObject {
+ dataWrap = DB:tx_dlf_documents:{GP:tx_dlf|id}:partof
+ wrap3={|}
+ insertData=1
+ }
+ }
+
+ postDescription {
+ cObject = COA
+ cObject {
+ 10 = CONTENT
+ 10 {
+ table = tx_dlf_documents
+ select {
+ pidInList = 4152
+ selectFields=title,author,year,place
+ where=uid=###postid###
+ markers {
+ #postid.data = GP:tx_dlf|id
+ postid.data = register:partOf
+ }
+ }
+
+ renderObj=COA
+ renderObj {
+ 10 = TEXT
+ 10 {
+ field = author
+ stdWrap.if.isTrue.field = author
+ stdWrap.noTrimWrap = ||: |
+ }
+ 20 = TEXT
+ 20 {
+ field = title
+ stdWrap.if.isTrue.field = title
+ stdWrap.noTrimWrap = ||, |
+ }
+ 30 = TEXT
+ 30 {pagets__
+ field = place
+ stdWrap.if.isTrue.field = place
+ }
+ 40 = TEXT
+ 40 {
+ field = year
+ stdWrap.if.isTrue.field = year
+ stdWrap.noTrimWrap = |, ||
+ }
+ }
+ }
+
+ 20 = CONTENT
+ 20 {
+
+ table = tx_dlf_documents
+ select {
+ pidInList = 4152
+ selectFields=title,author,year,place
+ where=uid=###postid###
+ markers {
+ # would work, but we want the year too...
+ #postid.data = register:partOf // GP:tx_dlf|id
+ postid.data = GP:tx_dlf|id
+ }
+ }
+
+ renderObj=COA
+ renderObj {
+ 10 = TEXT
+ 10 {
+ field = author
+ stdWrap.if.isTrue.field = author
+ stdWrap.noTrimWrap = ||: |
+ }
+ 20 = TEXT
+ 20 {
+ field = title
+ stdWrap.if.isTrue.field = title
+ stdWrap.noTrimWrap = ||, |
+ }
+ 30 = TEXT
+ 30 {
+ field = place
+ stdWrap.if.isTrue.field = place
+ }
+ 40 = TEXT
+ 40 {
+ field = year
+ stdWrap.if.isTrue.field = year
+ stdWrap.noTrimWrap = | | |
+ }
+ }
+ }
+ }
+ }
+
+ postTitle {
+ cObject = COA
+ cObject {
+ 10 = TEXT
+ 10 {
+ dataWrap = DB:tx_dlf_documents:{GP:tx_dlf|id}:title
+ wrap3 = {|}
+ insertData = 1
+ if {
+ value = 1
+ isEmpty.data = register:partOf
+ }
+ }
+
+ 20 = TEXT
+ 20 {
+ dataWrap = DB:tx_dlf_documents:{register:partOf}:title
+ wrap3={|}
+ insertData = 1
+ if {
+ value = 1
+ isTrue.data = register:partOf
+ }
+ }
+ }
+ }
+
+ }
+
+
+ # overwrite page title:
+ config.noPageTitle = 2
+ page.headerData.10 >
+ page.headerData.10 = TEXT
+ page.headerData.10 {
+ wrap =
|
+ value = {register:postTitle} - {$config.kitodo.rootPage.title}
+ insertData = 1
+ htmlSpecialChars = 1
+ }
+
+ # overwrite page.meta.description with blog teaser
+ page.meta.description.data = register:postDescription
+
+ page.headerData.300 = COA
+ page.headerData.300 {
+ 10 = TEXT
+ 10.value (
+
+
+
+
+
+ )
+ 10.insertData = 1
+
+ 11 = TEXT
+ 11 {
+ data = register:postDescription
+ wrap =
+ required = {register:postDescription}
+ trim = 1
+ htmlSpecialChars = 1
+ htmlSpecialChars.preserveEntities = 1
+ }
+
+ }
+
+[global]
diff --git a/Configuration/TypoScript/Plugin/Kitodo/setup7.ts b/Configuration/TypoScript/Plugin/Kitodo/setup7.ts
new file mode 100644
index 00000000..ca7cb818
--- /dev/null
+++ b/Configuration/TypoScript/Plugin/Kitodo/setup7.ts
@@ -0,0 +1,294 @@
+
+
+# --------------------------------------------------------------------------------------------------------------------
+# search
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_search {
+ templateFile = {$config.kitodo.templates.search}
+}
+
+lib.kitodo.fulltext.search = USER
+lib.kitodo.fulltext.search {
+ includeLibs = EXT:dlf/plugins/search/class.tx_dlf_search.php
+ userFunc = tx_dlf_search->main
+ // storagePid of SLUB Digitale Sammlungen
+ pages = {$config.kitodo.storagePid}
+ // UID of dlfCore0
+ solrcore = {$config.kitodo.solr.core}
+ limit = {$config.kitodo.solr.searchLimit}
+ // we activate fulltext here and search only in fulltext (see template)
+ fulltext = 1
+ // search only in current document
+ searchIn = document
+ // doesn't work due to javascript inclusion of autocomplete in header
+ suggest = 0
+ targetPid = {$config.kitodo.listView}
+ // this feature doesn't work in our case. It always jumps to page 1
+ showSingleResult = 0
+ templateFile = {$config.kitodo.templates.searchFullText}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# ajax search in workview
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_toolsSearchindocument {
+ toolTemplateFile = {$config.kitodo.templates.searchInDocumentTool}
+ pages = {$config.kitodo.storagePid}
+ // UID of dlfCore0
+ solrcore = {$config.kitodo.solr.core}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# collections
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_collection {
+ templateFile = {$config.kitodo.templates.collections}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# listview
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_listview {
+ templateFile = {$config.kitodo.templates.listView}
+ # getTitle = 1
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# metadata
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_metadata {
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 0
+ linkTitle = 0
+ getTitle = 0
+ showFull = 1
+ rootline = 1
+ separator = #
+ templateFile = {$config.kitodo.templates.metadata}
+}
+
+lib.kitodo.metadata.title = USER
+lib.kitodo.metadata.title {
+ includeLibs = typo3conf/ext/dlf/plugins/metadata/class.tx_dlf_metadata.php
+ userFunc = tx_dlf_metadata->main
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 1
+ linkTitle = 0
+ getTitle = 1
+ showFull = 0
+ rootline = 2
+ separator = #
+ templateFile = {$config.kitodo.templates.titledata}
+}
+
+lib.kitodo.metadata.full = USER
+lib.kitodo.metadata.full {
+ includeLibs = typo3conf/ext/dlf/plugins/metadata/class.tx_dlf_metadata.php
+ userFunc = tx_dlf_metadata->main
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 0
+ linkTitle = 0
+ getTitle = 0
+ showFull = 1
+ rootline = 1
+ separator = #
+ templateFile = {$config.kitodo.templates.metadata}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# pageview / workview
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_pageview {
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 0
+ features =
+ elementId = tx-dlf-map
+ templateFile = {$config.kitodo.templates.pageView}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# thumbnail previews
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_pagegrid {
+ pages = {$config.kitodo.storagePid}
+ limit = {$config.kitodo.pagegrid.limit}
+ targetPid = #
+ templateFile = {$config.kitodo.templates.gridView}
+}
+# --------------------------------------------------------------------------------------------------------------------
+# table of contents
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_toc {
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 0
+ targetPid.data = TSFE:page|uid
+ templateFile = {$config.kitodo.templates.tableOfContents}
+ menuConf {
+ expAll = 0
+ 1 = TMENU
+ 1 {
+ noBlur = 1
+ wrap =
+ NO = 1
+ NO {
+ stdWrap {
+ htmlSpecialChars = 1
+ htmlSpecialChars.preserveEntities = 1
+ crop = 65 | ... | 1
+ ifEmpty {
+ field = type
+ append.fieldRequired = volume
+ append = TEXT
+ append.field = volume
+ append.wrap = |
+ }
+ # show metadata type in front of menu item "Illustrierte Magazine"-Style
+ dataWrap = {field:type} |
+
+ # do not show metadata type
+ # dataWrap = |
+ }
+ allWrap.cObject = TEXT
+ allWrap.cObject {
+ insertData = 1
+ value = |
+ override.cObject = TEXT
+ override.cObject {
+ value = |{field:basketButtonHref}
+ if {
+ isTrue.field = basketButtonHref
+ }
+ }
+ }
+ doNotLinkIt.field = doNotLinkIt
+ ATagTitle.field = title // type // orderlabel
+ allWrap = |
+ allWrap.fieldRequired = doNotLinkIt
+ wrapItemAndSub = |
+ }
+ IFSUB < .NO
+ IFSUB.wrapItemAndSub =
+ CUR < .NO
+ CUR.wrapItemAndSub = |
+ CURIFSUB < .NO
+ CURIFSUB.wrapItemAndSub =
+ ACT < .NO
+ ACT.wrapItemAndSub = |
+ ACTIFSUB < .NO
+ ACTIFSUB.wrapItemAndSub =
+ }
+ 2 < .1
+ 3 < .2
+ 4 < .3
+ 5 < .4
+ 6 < .5
+ 7 < .6
+ }
+}
+
+
+# --------------------------------------------------------------------------------------------------------------------
+# navigation
+# --------------------------------------------------------------------------------------------------------------------
+
+# --------------------------------------------------------------------------------------------------------------------
+# foward and back buttons in page view
+# --------------------------------------------------------------------------------------------------------------------
+lib.kitodo.navigation.pagecontrol = USER
+lib.kitodo.navigation.pagecontrol {
+ includeLibs = typo3conf/ext/dlf/plugins/navigation/class.tx_dlf_navigation.php
+ userFunc = tx_dlf_navigation->main
+ pages = {$config.kitodo.storagePid}
+ pageStep = 10
+ templateFile = {$config.kitodo.templates.navigationPagecontrol}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# rotate and zoom buttons in page view
+# --------------------------------------------------------------------------------------------------------------------
+lib.kitodo.navigation.viewfunction = USER
+lib.kitodo.navigation.viewfunction {
+ includeLibs = typo3conf/ext/dlf/plugins/navigation/class.tx_dlf_navigation.php
+ userFunc = tx_dlf_navigation->main
+ pages = {$config.kitodo.storagePid}
+ pageStep = 10
+ templateFile = {$config.kitodo.templates.navigationViewfunction}
+}
+
+lib.kitodo.navigation.viewfunction_deactivated = USER
+lib.kitodo.navigation.viewfunction_deactivated {
+ includeLibs = typo3conf/ext/dlf/plugins/navigation/class.tx_dlf_navigation.php
+ userFunc = tx_dlf_navigation->main
+ pages = {$config.kitodo.storagePid}
+ pageStep = 10
+ templateFile = {$config.kitodo.templates.navigationViewfunction-deactivated}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# Tools like imagemanipulation, fulltext and downloads eg.
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_toolbox {
+ pages = {$config.kitodo.storagePid}
+ fileGrpsImageDownload = MIN,DEFAULT,MAX
+
+ # this overwrites the backend plugin settings --> avoid it here
+ tools = tx_slubdlfhacks_pdfdownload,tx_dlf_toolsImagedownload,tx_dlf_toolsFulltext,tx_dlf_toolsImagemanipulation
+ templateFile = {$config.kitodo.templates.toolbox}
+}
+
+plugin.tx_dlf_toolsPdf {
+ pages = {$config.kitodo.storagePid}
+ toolTemplateFile = {$config.kitodo.templates.toolsPdf}
+}
+
+plugin.tx_dlf_toolsFulltext {
+ pages = {$config.kitodo.storagePid}
+ toolTemplateFile = {$config.kitodo.templates.toolFullText}
+}
+
+plugin.tx_dlf_toolsImagemanipulation {
+ pages = {$config.kitodo.storagePid}
+ toolTemplateFile = {$config.kitodo.templates.toolsImageManipulation}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# newspaper navigation
+# --------------------------------------------------------------------------------------------------------------------
+lib.kitodo.newspaper.years = USER
+lib.kitodo.newspaper.years {
+ includeLibs = typo3conf/ext/dlf/plugins/newspaper/class.tx_dlf_newspaper.php
+ userFunc = tx_dlf_newspaper->years
+ pages = {$config.kitodo.storagePid}
+ targetPid = {$config.kitodo.pageView}
+ templateFile = {$config.kitodo.templates.newspaperYear}
+}
+
+lib.kitodo.newspaper.calendar = USER
+lib.kitodo.newspaper.calendar {
+ includeLibs = typo3conf/ext/dlf/plugins/newspaper/class.tx_dlf_newspaper.php
+ userFunc = tx_dlf_newspaper->calendar
+ pages = {$config.kitodo.storagePid}
+ targetPid = {$config.kitodo.pageView}
+ templateFile = {$config.kitodo.templates.newspaperCalendar}
+}
+
+[userFunc = user_dlf_docTypeCheck(newspaper)]
+page.10.variables {
+ isNewspaper = TEXT
+ isNewspaper.value = newspaper_anchor
+}
+[END]
+
+[userFunc = user_dlf_docTypeCheck(year)]
+page.10.variables {
+ isNewspaper = TEXT
+ isNewspaper.value = newspaper_year
+}
+[END]
+
+[userFunc = user_dlf_docTypeCheck(issue)]
+page.10.variables {
+ isNewspaper = TEXT
+ isNewspaper.value = newspaper_issue
+}
+[END]
diff --git a/Configuration/TypoScript/Plugin/Kitodo/setup9.typoscript b/Configuration/TypoScript/Plugin/Kitodo/setup9.typoscript
new file mode 100644
index 00000000..8336fd3c
--- /dev/null
+++ b/Configuration/TypoScript/Plugin/Kitodo/setup9.typoscript
@@ -0,0 +1,288 @@
+
+
+# --------------------------------------------------------------------------------------------------------------------
+# search
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_search {
+ templateFile = {$config.kitodo.templates.search}
+}
+
+lib.kitodo.fulltext.search = USER
+lib.kitodo.fulltext.search {
+ userFunc = Kitodo\Dlf\Plugin\Search->main
+ // storagePid of SLUB Digitale Sammlungen
+ pages = {$config.kitodo.storagePid}
+ // UID of dlfCore0
+ solrcore = {$config.kitodo.solr.core}
+ limit = {$config.kitodo.solr.searchLimit}
+ // we activate fulltext here and search only in fulltext (see template)
+ fulltext = 0
+ // search only in current document
+ searchIn = document
+ // doesn't work due to javascript inclusion of autocomplete in header
+ suggest = 0
+ targetPid = {$config.kitodo.listView}
+ // this feature doesn't work in our case. It always jumps to page 1
+ showSingleResult = 0
+ templateFile = {$config.kitodo.templates.searchFullText}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# ajax search in workview
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_searchindocumenttool {
+ templateFile = {$config.kitodo.templates.searchInDocumentTool}
+ pages = {$config.kitodo.storagePid}
+ // UID of dlfCore0
+ solrcore = {$config.kitodo.solr.core}
+}
+# For compatibiltiy of Fluid templates with Kitodo.Presentation 2.x
+plugin.tx_dlf_toolsSearchindocument < plugin.tx_dlf_searchindocumenttool
+
+# --------------------------------------------------------------------------------------------------------------------
+# collections
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_collection {
+ templateFile = {$config.kitodo.templates.collections}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# listview
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_listview {
+ templateFile = {$config.kitodo.templates.listView}
+ # getTitle = 1
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# metadata
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_metadata {
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 0
+ linkTitle = 0
+ getTitle = 0
+ showFull = 1
+ rootline = 1
+ separator = #
+ templateFile = {$config.kitodo.templates.metadata}
+}
+
+lib.kitodo.metadata.title = USER
+lib.kitodo.metadata.title {
+ userFunc = Kitodo\Dlf\Plugin\Metadata->main
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 1
+ linkTitle = 0
+ getTitle = 1
+ showFull = 0
+ rootline = 2
+ separator = #
+ templateFile = {$config.kitodo.templates.titledata}
+}
+
+lib.kitodo.metadata.full = USER
+lib.kitodo.metadata.full {
+ userFunc = Kitodo\Dlf\Plugin\Metadata->main
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 0
+ linkTitle = 0
+ getTitle = 0
+ showFull = 1
+ rootline = 1
+ separator = #
+ templateFile = {$config.kitodo.templates.metadata}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# pageview / workview
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_pageview {
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 0
+ features =
+ elementId = tx-dlf-map
+ templateFile = {$config.kitodo.templates.pageView}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# thumbnail previews
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_pagegrid {
+ pages = {$config.kitodo.storagePid}
+ limit = {$config.kitodo.pagegrid.limit}
+ targetPid = #
+ templateFile = {$config.kitodo.templates.gridView}
+}
+# --------------------------------------------------------------------------------------------------------------------
+# table of contents
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_tableofcontents {
+ pages = {$config.kitodo.storagePid}
+ excludeOther = 0
+ targetPid.data = TSFE:page|uid
+ templateFile = {$config.kitodo.templates.tableOfContents}
+ menuConf {
+ expAll = 0
+ 1 = TMENU
+ 1 {
+ noBlur = 1
+ wrap =
+ NO = 1
+ NO {
+ stdWrap {
+ htmlSpecialChars = 1
+ htmlSpecialChars.preserveEntities = 1
+ crop = 65 | ... | 1
+ ifEmpty {
+ field = type
+ append.fieldRequired = volume
+ append = TEXT
+ append.field = volume
+ append.wrap = |
+ }
+ # show metadata type in front of menu item "Illustrierte Magazine"-Style
+ dataWrap = {field:type} |
+
+ # do not show metadata type
+ # dataWrap = |
+ }
+ allWrap.cObject = TEXT
+ allWrap.cObject {
+ insertData = 1
+ value = |
+ override.cObject = TEXT
+ override.cObject {
+ value = |{field:basketButtonHref}
+ if {
+ isTrue.field = basketButtonHref
+ }
+ }
+ }
+ doNotLinkIt.field = doNotLinkIt
+ ATagTitle.field = title // type // orderlabel
+ allWrap = |
+ allWrap.fieldRequired = doNotLinkIt
+ wrapItemAndSub = |
+ }
+ IFSUB < .NO
+ IFSUB.wrapItemAndSub =
+ CUR < .NO
+ CUR.wrapItemAndSub = |
+ CURIFSUB < .NO
+ CURIFSUB.wrapItemAndSub =
+ ACT < .NO
+ ACT.wrapItemAndSub = |
+ ACTIFSUB < .NO
+ ACTIFSUB.wrapItemAndSub =
+ }
+ 2 < .1
+ 3 < .2
+ 4 < .3
+ 5 < .4
+ 6 < .5
+ 7 < .6
+ }
+}
+# For compatibiltiy of Fluid templates with Kitodo.Presentation 2.x
+plugin.tx_dlf_toc < plugin.tx_dlf_tableofcontents
+
+# --------------------------------------------------------------------------------------------------------------------
+# navigation
+# --------------------------------------------------------------------------------------------------------------------
+
+# --------------------------------------------------------------------------------------------------------------------
+# foward and back buttons in page view
+# --------------------------------------------------------------------------------------------------------------------
+lib.kitodo.navigation.pagecontrol = USER
+lib.kitodo.navigation.pagecontrol {
+ userFunc = Kitodo\Dlf\Plugin\Navigation->main
+ pages = {$config.kitodo.storagePid}
+ pageStep = 10
+ templateFile = {$config.kitodo.templates.navigationPagecontrol}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# rotate and zoom buttons in page view
+# --------------------------------------------------------------------------------------------------------------------
+lib.kitodo.navigation.viewfunction = USER
+lib.kitodo.navigation.viewfunction {
+ userFunc = Kitodo\Dlf\Plugin\Navigation->main
+ pages = {$config.kitodo.storagePid}
+ pageStep = 10
+ templateFile = {$config.kitodo.templates.navigationViewfunction}
+}
+
+lib.kitodo.navigation.viewfunction_deactivated = USER
+lib.kitodo.navigation.viewfunction_deactivated {
+ userFunc = Kitodo\Dlf\Plugin\Navigation->main
+ pages = {$config.kitodo.storagePid}
+ pageStep = 10
+ templateFile = {$config.kitodo.templates.navigationViewfunction-deactivated}
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# Tools like imagemanipulation, fulltext and downloads eg.
+# --------------------------------------------------------------------------------------------------------------------
+plugin.tx_dlf_toolbox {
+ pages = {$config.kitodo.storagePid}
+ fileGrpsImageDownload = MIN,DEFAULT,MAX
+
+ # this overwrites the backend plugin settings --> avoid it here
+ tools = tx_slubdlfhacks_pdfdownload,tx_dlf_toolsImagedownload,tx_dlf_toolsFulltext,tx_dlf_toolsImagemanipulation
+ templateFile = {$config.kitodo.templates.toolbox}
+}
+
+plugin.tx_dlf_fulltexttool {
+ pages = {$config.kitodo.storagePid}
+ templateFile = {$config.kitodo.templates.toolFullText}
+}
+# For compatibiltiy of Fluid templates with Kitodo.Presentation 2.x
+plugin.tx_dlf_toolsFulltext < plugin.tx_dlf_fulltexttool
+
+plugin.tx_dlf_imagemanipulationtool {
+ pages = {$config.kitodo.storagePid}
+ templateFile = {$config.kitodo.templates.toolsImageManipulation}
+}
+# For compatibiltiy of Fluid templates with Kitodo.Presentation 2.x
+plugin.tx_dlf_toolsImagemanipulation < plugin.tx_dlf_imagemanipulationtool
+
+# --------------------------------------------------------------------------------------------------------------------
+# newspaper navigation
+# --------------------------------------------------------------------------------------------------------------------
+lib.kitodo.newspaper.years = USER
+lib.kitodo.newspaper.years {
+ userFunc = Kitodo\Dlf\Plugin\Calendar->years
+ pages = {$config.kitodo.storagePid}
+ targetPid = {$config.kitodo.pageView}
+ templateFile = {$config.kitodo.templates.newspaperYear}
+}
+
+lib.kitodo.newspaper.calendar = USER
+lib.kitodo.newspaper.calendar {
+ userFunc = Kitodo\Dlf\Plugin\Calendar->calendar
+ pages = {$config.kitodo.storagePid}
+ targetPid = {$config.kitodo.pageView}
+ templateFile = {$config.kitodo.templates.newspaperCalendar}
+}
+
+[userFunc = user_dlf_docTypeCheck(newspaper, {$config.kitodo.storagePid})]
+page.10.variables {
+ isNewspaper = TEXT
+ isNewspaper.value = newspaper_anchor
+}
+[global]
+
+[userFunc = user_dlf_docTypeCheck(year, {$config.kitodo.storagePid})]
+page.10.variables {
+ isNewspaper = TEXT
+ isNewspaper.value = newspaper_year
+}
+[global]
+
+[userFunc = user_dlf_docTypeCheck(issue, {$config.kitodo.storagePid})]
+page.10.variables {
+ isNewspaper = TEXT
+ isNewspaper.value = newspaper_issue
+}
+[global]
diff --git a/Configuration/TypoScript/constants.ts b/Configuration/TypoScript/constants.ts
new file mode 100644
index 00000000..f2a67703
--- /dev/null
+++ b/Configuration/TypoScript/constants.ts
@@ -0,0 +1,140 @@
+###################################################
+# All used Constants for SLUB Digital Collections
+###################################################
+config {
+ kitodo {
+
+ # basic solr config
+ solr {
+ # cat=plugin.tx_slubdigitalcollections/links/0200; type=int+; label= solr core uid
+ core = 1
+
+ # cat=plugin.tx_slubdigitalcollections/links/0201; type=int+; label= solr search query limit
+ searchLimit = 1000
+
+ # cat=plugin.tx_slubdigitalcollections/links/0202; type=string; label= solr url including scheme, port and path
+ host = http://sdvsolr2.slub-dresden.de:8983/solr
+
+ # cat=plugin.tx_slubdigitalcollections/links/0203; type=string; label= solr core name
+ coreName = dlfCore0
+
+ # cat=plugin.tx_slubdigitalcollections/links/0204; type=int+; label= solr connection timeout (s)
+ timeout = 5
+ }
+
+ # basic id config
+ rootPage {
+ # cat=plugin.tx_slubdigitalcollections/links/0300; type=int+; label= Kitodo Rootpage
+ pid = 5346
+
+ # cat=plugin.tx_slubdigitalcollections/links/0301; type=string; label= Kitodo Title
+ title = Digitale Sammlungen
+
+ # cat=plugin.tx_slubdigitalcollections/links/0302; type=string; label= Kitodo CSS-class
+ cssClass = dlf-slub-logo
+ }
+
+ # cat=plugin.tx_slubdigitalcollections/links/0320; type=int+; label= Dlf Storage Pid
+ storagePid = 4152
+
+ # cat=plugin.tx_slubdigitalcollections/links/0321; type=int+; label= Kitodo Terms of Use Page
+ termsOfUsePid = 5345
+
+ # cat=plugin.tx_slubdigitalcollections/links/0322; type=list; label= Pids for Navigation
+ viewerNavigationPids = 4010, 5346, 9259, 4012, 10105
+
+ # cat=plugin.tx_slubdigitalcollections/links/0323; type=int+; label= Kitodo Pageview
+ pageView = 5363
+
+ # cat=plugin.tx_slubdigitalcollections/links/0324; type=int+; label= pagegrid limit (thumbnail preview)
+ pagegrid.limit = 35
+
+ # cat=plugin.tx_slubdigitalcollections/links/0325; type=int+; label= Kitodo Collection Page
+ collectionView = 5362
+
+ # cat=plugin.tx_slubdigitalcollections/links/0326; type=int+; label= Kitodo List Page
+ listView = 5364
+
+ css {
+ # cat=plugin.tx_slubdigitalcollections/advanced/0500; type=string; label=CSS file for all lists (eg. collections)
+ lists = EXT:slub_digitalcollections/Resources/Public/Css/DigitalcollectionsLists.css
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0501; type=string; label=CSS file for kitodo pageview
+ page = EXT:slub_digitalcollections/Resources/Public/Css/Digitalcollections.css
+ }
+
+ templates {
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0400; type=string; label=Collections Template
+ collections = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/Collections.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0401; type=string; label=Listview Template
+ listView = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/Listview.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0402; type=string; label=Gridview Template
+ gridView = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/Gridview.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0403; type=string; label=Pageview Template
+ pageView = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/Pageview.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0404; type=string; label=Search Template
+ search = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/Search.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0405; type=string; label=SearchFullText Template
+ searchFullText = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/SearchFullText.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0406; type=string; label=SearchInDocumentTool Template
+ searchInDocumentTool = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/SearchInDocumentTool.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0407; type=string; label=Metadata Template
+ metadata = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/Metadata.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0408; type=string; label=Titledata Template
+ titledata = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/Titledata.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0409; type=string; label=TableOfContents Template
+ tableOfContents = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/TableOfContents.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0410; type=string; label=NavigationPagecontrol Template
+ navigationPagecontrol = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/NavigationPagecontrol.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0411; type=string; label=NavigationViewfunction Template
+ navigationViewfunction = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/NavigationViewfunction.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0412; type=string; label=NavigationViewfunction deactivated Template
+ navigationViewfunction-deactivated = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/NavigationViewfunction-deactivated.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0413; type=string; label=Toolbox Template
+ toolbox = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/Toolbox.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0414; type=string; label=ToolsPdf Template
+ toolsPdf = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/ToolsPdf.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0415; type=string; label=ToolFullText Template
+ toolFullText = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/ToolFullText.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0416; type=string; label=ToolsImagemanipulation Template
+ toolsImageManipulation = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/ToolsImagemanipulation.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0417; type=string; label=NewspaperYear Template
+ newspaperYear = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/NewspaperYear.html
+
+ # cat=plugin.tx_slubdigitalcollections/advanced/0418; type=string; label=NewspaperCalendar Template
+ newspaperCalendar = EXT:slub_digitalcollections/Resources/Private/Plugins/Kitodo/NewspaperCalendar.html
+ }
+
+ }
+
+ # matomo configuration (maybe overwritten)
+ # cat=plugin.tx_slubdigitalcollections/piwik/0310; type=string; label=Matomo Hostname
+ piwik_hostname = piwik.slub-dresden.de
+ # cat=plugin.tx_slubdigitalcollections/piwik/0320; type=int+; label=Matomo Idsite
+ piwik_idsite =
+ # cat=plugin.tx_slubdigitalcollections/piwik/0330; type=string; label=Matomo Domains (optional)
+ piwik_domains = *.slub-dresden.de
+
+ # template path config
+ templateRootPath = EXT:slub_digitalcollections/Resources/Private/Templates/
+ partialRootPath = EXT:slub_digitalcollections/Resources/Private/Partials/
+ layoutRootPath = EXT:slub_digitalcollections/Resources/Private/Layouts/
+}
\ No newline at end of file
diff --git a/Configuration/TypoScript/setup.ts b/Configuration/TypoScript/setup.ts
new file mode 100644
index 00000000..64d15fc8
--- /dev/null
+++ b/Configuration/TypoScript/setup.ts
@@ -0,0 +1,151 @@
+# --------------------------------------------------------------------------------------------------------------------
+# Typoscript setup for SLUB Digital Collections
+# --------------------------------------------------------------------------------------------------------------------
+
+# --------------------------------------------------------------------------------------------------------------------
+# pageview navigation
+# --------------------------------------------------------------------------------------------------------------------
+
+lib.navigation.kitodo = HMENU
+lib.navigation.kitodo {
+ special = list
+ special.value = {$config.kitodo.viewerNavigationPids}
+ includeNotInMenu = 1
+ 1 = TMENU
+ 1 {
+ expAll = 1
+ insertData = 1
+ noBlur = 1
+ NO = 1
+ NO {
+ wrapItemAndSub = |
+ ATagTitle.field = description // title
+ }
+ }
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# render new page in pageview / workview
+# --------------------------------------------------------------------------------------------------------------------
+
+page {
+ # assume "10"
+ 10 {
+ # Template names will be generated automatically by converting the applied
+ # backend_layout, there is no explicit mapping necessary anymore.
+ #
+ # BackendLayout Key
+ # subnavigation_right_2_columns -> SubnavigationRight2Columns.html
+ #
+ # Backend Record
+ # uid: 1 -> 1.html
+ #
+ # Database Entry
+ # value: -1 -> None.html
+ # value: pagets__subnavigation_right_2_columns -> SubnavigationRight2Columns.html
+ templateName = TEXT
+ templateName {
+ cObject = TEXT
+ cObject {
+ data = pagelayout
+ required = 1
+ case = uppercamelcase
+ split {
+ token = pagets__
+ cObjNum = 1
+ 1.current = 1
+ }
+ }
+ ifEmpty = Default
+ }
+
+ layoutRootPaths.10 = {$config.layoutRootPath}
+ partialRootPaths.10 = {$config.partialRootPath}
+ templateRootPaths.10 = {$config.templateRootPath}
+ settings {
+ rootPage {
+ pid = {$config.kitodo.rootPage.pid}
+ title = {$config.kitodo.rootPage.title}
+ cssClass = {$config.kitodo.rootPage.cssClass}
+ }
+
+ termsOfUsePid = {$config.kitodo.termsOfUsePid}
+
+ matomo {
+ hostname = {$config.piwik_hostname}
+ siteId = {$config.piwik_idsite}
+ setdomains = {$config.piwik_domains}
+ }
+
+ collections {
+ solrHost = {$config.kitodo.solr.host}/{$config.kitodo.solr.coreName}
+ solrTimeout = {$config.kitodo.solr.timeout}
+ }
+ }
+ variables {
+ content < styles.content.get
+ sidebar < styles.content.get
+ sidebar.select.where = colPos=1
+
+ isKitodoPageView = TEXT
+ isKitodoPageView.value = 1
+
+ docTitle = TEXT
+ docTitle {
+ value = {register:postTitle}
+ insertData = 1
+ }
+
+ # kitodo vars
+ gp-id = TEXT
+ gp-id {
+ data = GP:tx_dlf|id
+ ifEmpty = 1
+ }
+
+ gp-page = TEXT
+ gp-page {
+ data = GP:tx_dlf|page
+ ifEmpty = 1
+ }
+
+ gp-page2 = TEXT
+ gp-page2 {
+ cObject = TEXT
+ cObject.data = GP:tx_dlf|page
+ cObject.wrap = | +1
+ prioriCalc = 1
+ }
+
+ gp-double = TEXT
+ gp-double.data = GP:tx_dlf|double
+
+ gp-pagegrid = TEXT
+ gp-pagegrid.data = GP:tx_dlf|pagegrid
+
+ }
+ }
+}
+
+# --------------------------------------------------------------------------------------------------------------------
+# load kitodo configs depending on TYPO3 version
+# --------------------------------------------------------------------------------------------------------------------
+# The condition is necessary because you cannot nest TypoScript conditions. But inside the included TypoScript files,
+# more conditions appear.
+
+# for TYPO3 8.7 and 9.5 with Kitodo.Presentation 3.x
+
+# for TYPO3 7.6 with Kitodo.Presentation 2.x
+
+
+# --------------------------------------------------------------------------------------------------------------------
+# body class overrides
+# --------------------------------------------------------------------------------------------------------------------
+[globalVar = TSFE:id={$config.kitodo.collectionView}]
+page.bodyTag =
+# render content parts only
+[END]
+
+[globalVar = TSFE:id={$config.kitodo.listView}]
+page.bodyTag =
+[END]
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..ea287d25
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# SLUB Digital Collections
+
+The Digital Collections by SLUB Dresden.
\ No newline at end of file
diff --git a/Resources/Private/Javascript/Cookies.js b/Resources/Private/Javascript/Cookies.js
new file mode 100644
index 00000000..1d83ea44
--- /dev/null
+++ b/Resources/Private/Javascript/Cookies.js
@@ -0,0 +1,163 @@
+/*!
+ * JavaScript Cookie v2.2.1
+ * https://github.com/js-cookie/js-cookie
+ *
+ * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
+ * Released under the MIT license
+ */
+;(function (factory) {
+ var registeredInModuleLoader;
+ if (typeof define === 'function' && define.amd) {
+ define(factory);
+ registeredInModuleLoader = true;
+ }
+ if (typeof exports === 'object') {
+ module.exports = factory();
+ registeredInModuleLoader = true;
+ }
+ if (!registeredInModuleLoader) {
+ var OldCookies = window.Cookies;
+ var api = window.Cookies = factory();
+ api.noConflict = function () {
+ window.Cookies = OldCookies;
+ return api;
+ };
+ }
+}(function () {
+ function extend () {
+ var i = 0;
+ var result = {};
+ for (; i < arguments.length; i++) {
+ var attributes = arguments[ i ];
+ for (var key in attributes) {
+ result[key] = attributes[key];
+ }
+ }
+ return result;
+ }
+
+ function decode (s) {
+ return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
+ }
+
+ function init (converter) {
+ function api() {}
+
+ function set (key, value, attributes) {
+ if (typeof document === 'undefined') {
+ return;
+ }
+
+ attributes = extend({
+ path: '/'
+ }, api.defaults, attributes);
+
+ if (typeof attributes.expires === 'number') {
+ attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);
+ }
+
+ // We're using "expires" because "max-age" is not supported by IE
+ attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
+
+ try {
+ var result = JSON.stringify(value);
+ if (/^[\{\[]/.test(result)) {
+ value = result;
+ }
+ } catch (e) {}
+
+ value = converter.write ?
+ converter.write(value, key) :
+ encodeURIComponent(String(value))
+ .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
+
+ key = encodeURIComponent(String(key))
+ .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
+ .replace(/[\(\)]/g, escape);
+
+ var stringifiedAttributes = '';
+ for (var attributeName in attributes) {
+ if (!attributes[attributeName]) {
+ continue;
+ }
+ stringifiedAttributes += '; ' + attributeName;
+ if (attributes[attributeName] === true) {
+ continue;
+ }
+
+ // Considers RFC 6265 section 5.2:
+ // ...
+ // 3. If the remaining unparsed-attributes contains a %x3B (";")
+ // character:
+ // Consume the characters of the unparsed-attributes up to,
+ // not including, the first %x3B (";") character.
+ // ...
+ stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];
+ }
+
+ return (document.cookie = key + '=' + value + stringifiedAttributes);
+ }
+
+ function get (key, json) {
+ if (typeof document === 'undefined') {
+ return;
+ }
+
+ var jar = {};
+ // To prevent the for loop in the first place assign an empty array
+ // in case there are no cookies at all.
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
+ var i = 0;
+
+ for (; i < cookies.length; i++) {
+ var parts = cookies[i].split('=');
+ var cookie = parts.slice(1).join('=');
+
+ if (!json && cookie.charAt(0) === '"') {
+ cookie = cookie.slice(1, -1);
+ }
+
+ try {
+ var name = decode(parts[0]);
+ cookie = (converter.read || converter)(cookie, name) ||
+ decode(cookie);
+
+ if (json) {
+ try {
+ cookie = JSON.parse(cookie);
+ } catch (e) {}
+ }
+
+ jar[name] = cookie;
+
+ if (key === name) {
+ break;
+ }
+ } catch (e) {}
+ }
+
+ return key ? jar[key] : jar;
+ }
+
+ api.set = set;
+ api.get = function (key) {
+ return get(key, false /* read as raw */);
+ };
+ api.getJSON = function (key) {
+ return get(key, true /* read as json */);
+ };
+ api.remove = function (key, attributes) {
+ set(key, '', extend(attributes, {
+ expires: -1
+ }));
+ };
+
+ api.defaults = {};
+
+ api.withConverter = init;
+
+ return api;
+ }
+
+ return init(function () {});
+}));
\ No newline at end of file
diff --git a/Resources/Private/Javascript/DigitalcollectionsListScripts.js b/Resources/Private/Javascript/DigitalcollectionsListScripts.js
new file mode 100644
index 00000000..9146b0dc
--- /dev/null
+++ b/Resources/Private/Javascript/DigitalcollectionsListScripts.js
@@ -0,0 +1,150 @@
+/*
+ *
+ * JS functions
+ * ================================================
+ * functions and adjustments to
+ * the list views
+ *
+ */
+
+$(function () {
+
+ // setup mobile event
+ var mobileEvent = mobileCheck() ? 'touchstart' : 'click';
+
+ // sub entry toggle in list views
+ $('.tx-dlf-morevolumes, .tx-dlf-hidevolumes').on(mobileEvent, function (event) {
+ $(this).parent().toggleClass('tx-dlf-volumes-open').find('.tx-dlf-volume').slideToggle();
+ });
+
+ // Additional transformations for sidebar search box to use it as offcanvas element in smaller views
+ $('#rightcol .tx-dlf-search').parent().addClass('tx-dlf-enable-offcanvas').append('
');
+ $transition = 'all .3s ease-out';
+ setTimeout(function () {
+ $('#rightcol .tx-dlf-search').parent().css({
+ '-webkit-transition': $transition,
+ '-o-transition': $transition,
+ 'transition': $transition
+ });
+ }, 250);
+
+ // Menu toggles for offcanvas toc and metadata
+ $('.offcanvas-toggle').on(mobileEvent, function (event) {
+ $(this).parent().toggleClass('open');
+ });
+
+ // Init collection overview on intro page
+ var layoutColumns = ' ';
+ $('.tx-dlf-collection-list').prepend(layoutColumns).append($('.tx-dlf-collection-list-additionals').html()).randomize('li.tx-dlf-collection-item').colcade({
+ columns: '.tx-dlf-collection-col',
+ items: '.tx-dlf-collection-item'
+ });
+
+ // Add toggle element and corresponding function to facets
+ $('.tx-dlf-search-facets > ul > li').each(function () {
+ var facetsToShow = 5,
+ facetCount = $(this).find('ul').children('li').length,
+ facetShowLabel = ($('html[lang="de-DE"]')[0]) ? 'Zeige ' + (facetCount - facetsToShow) + ' weitere Facetten' : 'Show ' + (facetCount - facetsToShow) + ' more facets',
+ facetHideLabel = ($('html[lang="de-DE"]')[0]) ? 'Letzten ' + (facetCount - facetsToShow) + ' Facetten ausblenden' : 'Hide ' + (facetCount - facetsToShow) + ' last facets';
+ if (facetCount > facetsToShow) {
+ $(this).find('ul li:gt(' + (facetsToShow - 1) + ')').hide();
+ $(this).append('' + facetShowLabel + '
');
+ $(this).find('.facets-toggle').on(mobileEvent, function () {
+ $(this).text(($(this).parent().hasClass('facets-expanded')) ? facetShowLabel : facetHideLabel).parent().toggleClass('facets-expanded');
+ $(this).parent().find('ul li:gt(' + (facetsToShow - 1) + ')').slideToggle();
+ });
+ }
+ });
+
+ // Add click event to complete collections element on intro page
+ $('.tx-dlf-collection-item .tx-dlf-collection-thumbnail img').on(mobileEvent, function () {
+ window.location = $(this).parent().parent().find('h4 a').attr('href');
+ return false;
+ });
+
+ // Add a switch and function for alphabetical order of collections elements on intro page
+ var labelGallery = ($('html[lang="de-DE"]')[0]) ? 'Galerie' : 'Gallery',
+ labelAlphabetical = ($('html[lang="de-DE"]')[0]) ? 'Alphabetisch' : 'Alphabetical',
+ sortItems = $('.tx-dlf-collection-list li.tx-dlf-collection-item').get(),
+ storedItems = sortItems;
+ $('.tx-dlf-collection').prepend('' + labelGallery + ' ' + labelAlphabetical + ' ');
+ $('.tx-dlf-list-toggle-container').on(mobileEvent, function () {
+ if ($(this).hasClass('alphabetical')) {
+ $('.tx-dlf-collection-list li.order-label').remove();
+ $.each(storedItems, function (i, li) {
+ $('.tx-dlf-collection-list').append(li);
+ });
+ $('.tx-dlf-collection-list').removeClass('alphabetical alphabetical-ready').colcade({
+ columns: '.tx-dlf-collection-col',
+ items: '.tx-dlf-collection-item'
+ });
+ document.cookie = 'tx-dlf-galleryview-state=gallery; path=/';
+ } else {
+ $('.tx-dlf-collection-list').colcade('destroy').addClass('alphabetical');
+ sortAlphabetical(this, sortItems);
+ document.cookie = 'tx-dlf-galleryview-state=alphabetical; path=/';
+ }
+ $(this).toggleClass('alphabetical').find('.label').toggleClass('active');
+ });
+
+ // Add toggle and function for extended search
+ var extendedSearchLabel = $('html[lang="de-DE"]')[0] ? 'Erweiterte Suche ausblenden ' : 'Hide Extended Search';
+ $('#c15323 .tx-dlf-search form').append('' + extendedSearchLabel + '
');
+ $('.extended-search-toggle').on(mobileEvent, function () {
+ $(this).parent().toggleClass('extendend-search-active');
+ });
+
+});
+
+// check mobile device to specify click events and set a global variable. Simple use it via $('selector').on(mobileEvent, function() { do something });
+function mobileCheck() {
+ var check = false;
+ (function (a) {
+ if (/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true
+ })(navigator.userAgent || navigator.vendor || window.opera);
+ return check;
+}
+
+// randomizer to shuffle collection elements on intro page
+$.fn.randomize = function (selector) {
+ (selector ? this.find(selector) : this).parent().each(function () {
+ $(this).children(selector).sort(function () {
+ return Math.random() - 0.5;
+ }).detach().appendTo(this);
+ });
+ return this;
+};
+
+// Sort function for collection entries on intro page
+sortAlphabetical = function (element, sortItems) {
+ sortItems.sort(function (a, b) {
+ var sortA = $(a).find('h4').text();
+ var sortB = $(b).find('h4').text();
+ if (sortA < sortB) return -1;
+ if (sortA > sortB) return 1;
+ return 0;
+ });
+ var prevFirstChar,
+ isAlreadyShown = false;
+ $.each(sortItems, function (i, li) {
+ $('.tx-dlf-collection-list').append(li);
+ currentFirstChar = $(this).find('h4').text().charAt(0);
+ if (prevFirstChar !== currentFirstChar && isNaN(currentFirstChar)) {
+ $(this).before('' + $(this).find('h4').text().charAt(0) + '
');
+ }
+ if (!isNaN(currentFirstChar) && !isAlreadyShown) {
+ $(this).before('0–9
');
+ isAlreadyShown = true;
+ }
+ prevFirstChar = $(this).find('h4').text().charAt(0);
+ currentFirstChar = undefined;
+ });
+
+ function showAlphabeticalList() {
+ $('.tx-dlf-collection-list').addClass('alphabetical-ready');
+ }
+ window.setTimeout(showAlphabeticalList, 100);
+};
+
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Javascript/DigitalcollectionsScripts.js b/Resources/Private/Javascript/DigitalcollectionsScripts.js
new file mode 100644
index 00000000..d91348be
--- /dev/null
+++ b/Resources/Private/Javascript/DigitalcollectionsScripts.js
@@ -0,0 +1,226 @@
+/*
+ *
+ * JS functions
+ * ================================================
+ * a few additional calls to
+ * enhance the user experience
+ *
+ */
+
+$(function () {
+
+ // inital javascript "hello, i'm here!"
+ $('html').removeClass('no-js');
+
+ // setup mobile event
+ var mobileEvent = mobileCheck() ? 'touchstart' : 'click';
+
+ // menu toggles for offcanvas toc and metadata
+ $('.offcanvas-toggle').on(mobileEvent, function (event) {
+ $(this).parent().toggleClass('open');
+ });
+
+ // active toggle for submenus
+ $('li.submenu > a').on(mobileEvent, function (event) {
+ $('li.submenu.open a').not(this).parent().removeClass('open');
+ $(this).parent().toggleClass('open');
+ });
+
+ // secondary nav toggle
+ $('nav .nav-toggle').on(mobileEvent, function (event) {
+ $(this).toggleClass('active');
+ $('nav .secondary-nav').toggleClass('open');
+ });
+
+ // calendar dropdowns on click/touch
+ $('.calendar-view div.issues h4').on(mobileEvent, function (event) {
+ var issuelinks = $(this).parents('div.issues').find('div ul li a');
+ if (issuelinks.length == 1) {
+ // if only one issue, open this directly
+ window.open(issuelinks[0].href, '_self');
+ } else {
+ $('.calendar-view table td.open').not($(this).parents('td')).removeClass('open');
+ $(this).parents('td').toggleClass('open');
+ }
+ });
+
+ // add body class if any calendar is present
+ $('.tx-dlf-calendar, .tx-dlf-calendar-years').parents('body').addClass('calendar');
+
+ // add body class if gridview is shown
+ $('.tx-dlf-pagegrid-list').parents('body').addClass('gridview');
+
+ // Inject view switch functions for calendar/list view (initial show calendar)
+ if ($('.tx-dlf-calendar .calendar-list-selection a.select-calendar-view').hasClass('active')) {
+ $('.tx-dlf-calendar .calendar-list-selection a.select-calendar-view').removeClass('active');
+ }
+ $('.tx-dlf-calendar .calendar-list-selection a.select-calendar-view, .tx-dlf-calendar .calendar-view').addClass('active');
+ $('.tx-dlf-calendar .calendar-list-selection a').on(mobileEvent, function (event) {
+ if (!$(this).hasClass('active')) {
+ var targetElement = '.' + $(this).attr('class').replace('select-', '');
+ $('.tx-dlf-calendar .active').removeClass('active');
+ $(this).addClass('active');
+ $(targetElement).addClass('active');
+ }
+ });
+
+ // Copy selected page number to mobile meta (in order to transform select field to ui button)
+ if ($('.pages select option[selected]')[0]) {
+ $('dl.mobile-meta').append('No. ' + $('.pages select option[selected]').text() + ' ');
+ }
+
+ $('.provider').append('
');
+ $('.view-functions .pages form, .view-functions .zoom a.fullscreen').clone().appendTo('.provider .mobile-controls');
+
+ // Shorten mobile meta title
+ shortenMobileMetaElement = $('.provider dl.mobile-meta dd.tx-dlf-title a');
+ shortenMobileMetaTitle = shortenMobileMetaElement.text();
+ if (shortenMobileMetaTitle.length > 140) {
+ shortenMobileMetaTitle = shortenMobileMetaTitle.substr(0, 140) + '...';
+ shortenMobileMetaElement.text(shortenMobileMetaTitle);
+ }
+
+ // Check if there are is a download list. Otherwise change a to span to disable button
+ if (!$('.submenu.downloads ul li')[0]) {
+ $(".submenu.downloads>a").replaceWith(function () {
+ return $("" + $(this).html() + " ");
+ });
+ }
+
+ // Toggle function for full meta data view
+ if ($('.tx-dlf-metadata dl.tx-dlf-metadata-titledata').length > 1) {
+ metadataToggleLabelMore = ($('html[lang^="de"]')[0]) ? 'mehr Metadaten' : 'more Metadata';
+ metadataToggleLabelLess = ($('html[lang^="de"]')[0]) ? 'weniger Metadaten' : 'less Metadata';
+ $('.control-bar .metadata-wrapper').append('' + metadataToggleLabelMore + '
');
+ $('.metadata-toggle').on(mobileEvent, function () {
+ if (!$('.control-bar').hasClass('all-metadata')) {
+ Cookies.set('tx-dlf-allmetadata', 'true');
+ $(this).text(metadataToggleLabelLess);
+ } else {
+ Cookies.remove('tx-dlf-allmetadata');
+ $(this).text(metadataToggleLabelMore);
+ }
+ $('.control-bar').toggleClass('all-metadata').find('dl:nth-child(n+3)').slideToggle();
+ });
+ }
+
+ // enable click on fullscreen button
+ $('a.fullscreen').on(mobileEvent, function () {
+ if ($('body.fullscreen')[0]) {
+ exitFullscreen();
+ } else {
+ enterFullscreen();
+ }
+ });
+
+ // if cookie for fullscreen view is present adapat initial page rendering
+ if (Cookies.get('tx-dlf-pageview-zoomFullscreen')) {
+ $('body').addClass('fullscreen static');
+ $('.zoom .fullscreen').addClass('active');
+ }
+
+ // TOC folding function to make sure that active pages are in viewport
+ if ($('ul.toc ul li.current')[0]) {
+ tocPlaceholderLabel = ($('html[lang^="de"]')[0]) ? 'Einige Einträge sind ausgeblendet' : 'Some entires are hidden';
+ tocPlaceholderTitle = ($('html[lang^="de"]')[0]) ? 'Hier klicken um alle Einträge zu ziegen' : 'Click to show all entries';
+ $('ul.toc ul li.current').first().prevAll(':eq(4)').prevUntil(':nth-child(2)').hide();
+ $('ul.toc ul li:nth-child(2)').after('' + tocPlaceholderLabel + ' ');
+ $('ul.toc ul li.placeholder').on(mobileEvent, function () {
+ $(this).remove();
+ $('ul.toc ul li').slideDown();
+ });
+ }
+
+ // Toggle and setup for the 'in document search'
+ if ($('.tx-dlf-toolsFulltextsearch form')[0]) {
+ $('.fulltext-search-toggle').on(mobileEvent, function () { // selector should be semantically: .search-indocument-toggle
+ $('body').toggleClass('search-indocument-active');
+ $('#tx-dlf-search-in-document-query').trigger('focus');
+ });
+ } else {
+ $('.fulltext-search-toggle').addClass('disabled');
+ }
+
+ // Check if a click on page navigation is made and unfold next/back navigation
+ $('.fwds, .backs')
+ .on('mouseenter', function () {
+ $(this).addClass('over');
+ })
+ .on('mouseleave', function () {
+ $(this).removeClass('over');
+ })
+ .on('click', function () {
+ localStorage.txDlfFromPage = $(this).attr('class').split(' ')[0];
+ });
+ if (localStorage.txDlfFromPage) {
+ $('.' + localStorage.txDlfFromPage).addClass('no-transition over');
+ }
+
+ // Add a error message if no map element in document viewer given
+ if (!$('.tx-dlf-pageview').children()[0]) {
+ emptyMessage = ($('html[lang^="de"]')[0]) ? 'Kein Band ausgewählt. Klicken Sie hier um zum ersten Band dieses Werks zu gelangen.' : 'No volume selected. Click to jump to the first available volume.';
+ $('.tx-dlf-pageview').append('');
+ }
+
+ // Add class to collection related DD elements in metadata lists
+ $('dl.tx-dlf-metadata-titledata').find('dt:contains(mmlung), dt:contains(llection)').nextUntil('dt', 'dd').addClass('tx-dlf-metadata-collection');
+
+ // Finally all things are settled. Curtain up and bring back animations a second later.
+ $('body').removeClass('hidden');
+ setTimeout(function () {
+ localStorage.clear();
+ $('.fwds, .backs').removeClass('no-transition');
+ $('body').removeClass('static');
+ }, 1000);
+
+});
+
+$(document).keyup(function (e) {
+
+ // Check if ESC key is pressed. Then end fullscreen mode or close SRU form.
+ if (e.keyCode == 27) {
+ if ($('body.fullscreen')[0]) {
+ return exitFullscreen();
+ }
+ if ($('.document-functions .search.open')[0]) {
+ $('.document-functions .search').removeClass('open');
+ }
+ }
+ // Check if the F key is pressed and no text input in SRU form is taking place.
+ if (e.keyCode == 70 && !$('#tx-dlf-search-in-document-query').is(':focus')) {
+ return enterFullscreen();
+ }
+
+});
+
+// Activate fullscreen mode and set corresponding cookie
+function enterFullscreen() {
+ setTimeout(function () {
+ window.dispatchEvent(new Event('resize'));
+ }, 220);
+ $("body").addClass('fullscreen');
+ $('a.fullscreen').addClass('active');
+ Cookies.set('tx-dlf-pageview-zoomFullscreen', 'true');
+}
+
+// Exit fullscreen mode and drop cookie
+function exitFullscreen() {
+ setTimeout(function () {
+ window.dispatchEvent(new Event('resize'));
+ }, 220);
+ $("body").removeClass('fullscreen');
+ $('a.fullscreen').removeClass('active');
+ Cookies.remove('tx-dlf-pageview-zoomFullscreen');
+}
+
+// check mobile device to specify click events and set a global variable. Simple use it via $('selector').on(mobileEvent, function() { do something });
+function mobileCheck() {
+ var check = false;
+ (function (a) {
+ if (/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true
+ })(navigator.userAgent || navigator.vendor || window.opera);
+ return check;
+}
+
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Javascript/colcade.js b/Resources/Private/Javascript/colcade.js
new file mode 100644
index 00000000..67261adf
--- /dev/null
+++ b/Resources/Private/Javascript/colcade.js
@@ -0,0 +1,366 @@
+/*!
+ * Colcade v0.2.0
+ * Lightweight masonry layout
+ * by David DeSandro
+ * MIT license
+ */
+
+/*jshint browser: true, undef: true, unused: true */
+
+( function( window, factory ) {
+ // universal module definition
+ /*jshint strict: false */
+ /*global define: false, module: false */
+ if ( typeof define == 'function' && define.amd ) {
+ // AMD
+ define( factory );
+ } else if ( typeof module == 'object' && module.exports ) {
+ // CommonJS
+ module.exports = factory();
+ } else {
+ // browser global
+ window.Colcade = factory();
+ }
+
+}( window, function factory() {
+
+// -------------------------- Colcade -------------------------- //
+
+function Colcade( element, options ) {
+ element = getQueryElement( element );
+
+ // do not initialize twice on same element
+ if ( element && element.colcadeGUID ) {
+ var instance = instances[ element.colcadeGUID ];
+ instance.option( options );
+ return instance;
+ }
+
+ this.element = element;
+ // options
+ this.options = {};
+ this.option( options );
+ // kick things off
+ this.create();
+}
+
+var proto = Colcade.prototype;
+
+proto.option = function( options ) {
+ this.options = extend( this.options, options );
+};
+
+// globally unique identifiers
+var GUID = 0;
+// internal store of all Colcade intances
+var instances = {};
+
+proto.create = function() {
+ this.errorCheck();
+ // add guid for Colcade.data
+ var guid = this.guid = ++GUID;
+ this.element.colcadeGUID = guid;
+ instances[ guid ] = this; // associate via id
+ // update initial properties & layout
+ this.reload();
+ // events
+ this._windowResizeHandler = this.onWindowResize.bind( this );
+ this._loadHandler = this.onLoad.bind( this );
+ window.addEventListener( 'resize', this._windowResizeHandler );
+ this.element.addEventListener( 'load', this._loadHandler, true );
+};
+
+proto.errorCheck = function() {
+ var errors = [];
+ if ( !this.element ) {
+ errors.push( 'Bad element: ' + this.element );
+ }
+ if ( !this.options.columns ) {
+ errors.push( 'columns option required: ' + this.options.columns );
+ }
+ if ( !this.options.items ) {
+ errors.push( 'items option required: ' + this.options.items );
+ }
+
+ if ( errors.length ) {
+ throw new Error( '[Colcade error] ' + errors.join('. ') );
+ }
+};
+
+// update properties and do layout
+proto.reload = function() {
+ this.updateColumns();
+ this.updateItems();
+ this.layout();
+};
+
+proto.updateColumns = function() {
+ this.columns = querySelect( this.options.columns, this.element );
+};
+
+proto.updateItems = function() {
+ this.items = querySelect( this.options.items, this.element );
+};
+
+proto.getActiveColumns = function() {
+ return this.columns.filter( function( column ) {
+ var style = getComputedStyle( column );
+ return style.display != 'none';
+ });
+};
+
+// ----- layout ----- //
+
+// public, updates activeColumns
+proto.layout = function() {
+ this.activeColumns = this.getActiveColumns();
+ this._layout();
+};
+
+// private, does not update activeColumns
+proto._layout = function() {
+ // reset column heights
+ this.columnHeights = this.activeColumns.map( function() {
+ return 0;
+ });
+ // layout all items
+ this.layoutItems( this.items );
+};
+
+proto.layoutItems = function( items ) {
+ items.forEach( this.layoutItem, this );
+};
+
+proto.layoutItem = function( item ) {
+ // layout item by appending to column
+ var minHeight = Math.min.apply( Math, this.columnHeights );
+ var index = this.columnHeights.indexOf( minHeight );
+ this.activeColumns[ index ].appendChild( item );
+ // at least 1px, if item hasn't loaded
+ // Not exactly accurate, but it's cool
+ this.columnHeights[ index ] += item.offsetHeight || 1;
+};
+
+// ----- adding items ----- //
+
+proto.append = function( elems ) {
+ var items = this.getQueryItems( elems );
+ // add items to collection
+ this.items = this.items.concat( items );
+ // lay them out
+ this.layoutItems( items );
+};
+
+proto.prepend = function( elems ) {
+ var items = this.getQueryItems( elems );
+ // add items to collection
+ this.items = items.concat( this.items );
+ // lay out everything
+ this._layout();
+};
+
+proto.getQueryItems = function( elems ) {
+ elems = makeArray( elems );
+ var fragment = document.createDocumentFragment();
+ elems.forEach( function( elem ) {
+ fragment.appendChild( elem );
+ });
+ return querySelect( this.options.items, fragment );
+};
+
+// ----- measure column height ----- //
+
+proto.measureColumnHeight = function( elem ) {
+ var boundingRect = this.element.getBoundingClientRect();
+ this.activeColumns.forEach( function( column, i ) {
+ // if elem, measure only that column
+ // if no elem, measure all columns
+ if ( !elem || column.contains( elem ) ) {
+ var lastChildRect = column.lastElementChild.getBoundingClientRect();
+ // not an exact calculation as it includes top border, and excludes item bottom margin
+ this.columnHeights[ i ] = lastChildRect.bottom - boundingRect.top;
+ }
+ }, this );
+};
+
+// ----- events ----- //
+
+proto.onWindowResize = function() {
+ clearTimeout( this.resizeTimeout );
+ this.resizeTimeout = setTimeout( function() {
+ this.onDebouncedResize();
+ }.bind( this ), 100 );
+};
+
+proto.onDebouncedResize = function() {
+ var activeColumns = this.getActiveColumns();
+ // check if columns changed
+ var isSameLength = activeColumns.length == this.activeColumns.length;
+ var isSameColumns = true;
+ this.activeColumns.forEach( function( column, i ) {
+ isSameColumns = isSameColumns && column == activeColumns[i];
+ });
+ if ( isSameLength && isSameColumns ) {
+ return;
+ }
+ // activeColumns changed
+ this.activeColumns = activeColumns;
+ this._layout();
+};
+
+proto.onLoad = function( event ) {
+ this.measureColumnHeight( event.target );
+};
+
+// ----- destroy ----- //
+
+proto.destroy = function() {
+ // move items back to container
+ this.items.forEach( function( item ) {
+ this.element.appendChild( item );
+ }, this );
+ // remove events
+ window.removeEventListener( 'resize', this._windowResizeHandler );
+ this.element.removeEventListener( 'load', this._loadHandler, true );
+ // remove data
+ delete this.element.colcadeGUID;
+ delete instances[ this.guid ];
+};
+
+// -------------------------- HTML init -------------------------- //
+
+docReady( function() {
+ var dataElems = querySelect('[data-colcade]');
+ dataElems.forEach( htmlInit );
+});
+
+function htmlInit( elem ) {
+ // convert attribute "foo: bar, qux: baz" into object
+ var attr = elem.getAttribute('data-colcade');
+ var attrParts = attr.split(',');
+ var options = {};
+ attrParts.forEach( function( part ) {
+ var pair = part.split(':');
+ var key = pair[0].trim();
+ var value = pair[1].trim();
+ options[ key ] = value;
+ });
+
+ new Colcade( elem, options );
+}
+
+Colcade.data = function( elem ) {
+ elem = getQueryElement( elem );
+ var id = elem && elem.colcadeGUID;
+ return id && instances[ id ];
+};
+
+// -------------------------- jQuery -------------------------- //
+
+Colcade.makeJQueryPlugin = function( $ ) {
+ $ = $ || window.jQuery;
+ if ( !$ ) {
+ return;
+ }
+
+ $.fn.colcade = function( arg0 /*, arg1 */) {
+ // method call $().colcade( 'method', { options } )
+ if ( typeof arg0 == 'string' ) {
+ // shift arguments by 1
+ var args = Array.prototype.slice.call( arguments, 1 );
+ return methodCall( this, arg0, args );
+ }
+ // just $().colcade({ options })
+ plainCall( this, arg0 );
+ return this;
+ };
+
+ function methodCall( $elems, methodName, args ) {
+ var returnValue;
+ $elems.each( function( i, elem ) {
+ // get instance
+ var colcade = $.data( elem, 'colcade' );
+ if ( !colcade ) {
+ return;
+ }
+ // apply method, get return value
+ var value = colcade[ methodName ].apply( colcade, args );
+ // set return value if value is returned, use only first value
+ returnValue = returnValue === undefined ? value : returnValue;
+ });
+ return returnValue !== undefined ? returnValue : $elems;
+ }
+
+ function plainCall( $elems, options ) {
+ $elems.each( function( i, elem ) {
+ var colcade = $.data( elem, 'colcade' );
+ if ( colcade ) {
+ // set options & init
+ colcade.option( options );
+ colcade.layout();
+ } else {
+ // initialize new instance
+ colcade = new Colcade( elem, options );
+ $.data( elem, 'colcade', colcade );
+ }
+ });
+ }
+};
+
+// try making plugin
+Colcade.makeJQueryPlugin();
+
+// -------------------------- utils -------------------------- //
+
+function extend( a, b ) {
+ for ( var prop in b ) {
+ a[ prop ] = b[ prop ];
+ }
+ return a;
+}
+
+// turn element or nodeList into an array
+function makeArray( obj ) {
+ var ary = [];
+ if ( Array.isArray( obj ) ) {
+ // use object if already an array
+ ary = obj;
+ } else if ( obj && typeof obj.length == 'number' ) {
+ // convert nodeList to array
+ for ( var i=0; i < obj.length; i++ ) {
+ ary.push( obj[i] );
+ }
+ } else {
+ // array of single index
+ ary.push( obj );
+ }
+ return ary;
+}
+
+// get array of elements
+function querySelect( selector, elem ) {
+ elem = elem || document;
+ var elems = elem.querySelectorAll( selector );
+ return makeArray( elems );
+}
+
+function getQueryElement( elem ) {
+ if ( typeof elem == 'string' ) {
+ elem = document.querySelector( elem );
+ }
+ return elem;
+}
+
+function docReady( onReady ) {
+ if ( document.readyState == 'complete' ) {
+ onReady();
+ return;
+ }
+ document.addEventListener( 'DOMContentLoaded', onReady );
+}
+
+// -------------------------- end -------------------------- //
+
+return Colcade;
+
+}));
diff --git a/Resources/Private/Javascript/modernizrCustom.js b/Resources/Private/Javascript/modernizrCustom.js
new file mode 100644
index 00000000..255141a8
--- /dev/null
+++ b/Resources/Private/Javascript/modernizrCustom.js
@@ -0,0 +1,3 @@
+/*! modernizr 3.5.0 (Custom Build) | MIT *
+ * https://modernizr.com/download/?-csstransforms3d-csstransitions-objectfit-touchevents-domprefixes-prefixed-prefixes-setclasses-testallprops-testprop-teststyles !*/
+!function(e,t,n){function r(e,t){return typeof e===t}function o(){var e,t,n,o,i,s,a;for(var f in S)if(S.hasOwnProperty(f)){if(e=[],t=S[f],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;nc;c++)if(m=e[c],h=A.style[m],a(m,"-")&&(m=s(m)),A.style[m]!==n){if(i||r(o,"undefined"))return l(),"pfx"==t?m:!0;try{A.style[m]=o}catch(y){}if(A.style[m]!=h)return l(),"pfx"==t?m:!0}return l(),!1}function g(e,t,n,o,i){var s=e.charAt(0).toUpperCase()+e.slice(1),a=(e+" "+E.join(s+" ")+s).split(" ");return r(t,"string")||r(t,"undefined")?h(a,t,o,i):(a=(e+" "+P.join(s+" ")+s).split(" "),c(a,t,n))}function y(e,t,r){return g(e,n,n,t,r)}var C=[],S=[],x={_version:"3.5.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){S.push({name:e,fn:t,options:n})},addAsyncTest:function(e){S.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=x,Modernizr=new Modernizr;var w=x._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""];x._prefixes=w;var _=t.documentElement,b="svg"===_.nodeName.toLowerCase(),z="Moz O ms Webkit",P=x._config.usePrefixes?z.toLowerCase().split(" "):[];x._domPrefixes=P;var T="CSS"in e&&"supports"in e.CSS,j="supportsCSS"in e;Modernizr.addTest("supports",T||j);var E=x._config.usePrefixes?z.split(" "):[];x._cssomPrefixes=E;var k=function(t){var r,o=w.length,i=e.CSSRule;if("undefined"==typeof i)return n;if(!t)return!1;if(t=t.replace(/^@/,""),r=t.replace(/-/g,"_").toUpperCase()+"_RULE",r in i)return"@"+t;for(var s=0;o>s;s++){var a=w[s],f=a.toUpperCase()+"_"+r;if(f in i)return"@-"+a.toLowerCase()+"-"+t}return!1};x.atRule=k;var N=x.testStyles=u;Modernizr.addTest("touchevents",function(){var n;if("ontouchstart"in e||e.DocumentTouch&&t instanceof DocumentTouch)n=!0;else{var r=["@media (",w.join("touch-enabled),("),"heartz",")","{#modernizr{top:9px;position:absolute}}"].join("");N(r,function(e){n=9===e.offsetTop})}return n});var L={elem:f("modernizr")};Modernizr._q.push(function(){delete L.elem});var A={style:L.elem.style};Modernizr._q.unshift(function(){delete A.style});x.testProp=function(e,t,r){return h([e],n,t,r)};x.testAllProps=g;var O=x.prefixed=function(e,t,n){return 0===e.indexOf("@")?k(e):(-1!=e.indexOf("-")&&(e=s(e)),t?g(e,t,n):g(e,"pfx"))};x.testAllProps=y,Modernizr.addTest("csstransforms3d",function(){var e=!!y("perspective","1px",!0),t=Modernizr._config.usePrefixes;if(e&&(!t||"webkitPerspective"in _.style)){var n,r="#modernizr{width:0;height:0}";Modernizr.supports?n="@supports (perspective: 1px)":(n="@media (transform-3d)",t&&(n+=",(-webkit-transform-3d)")),n+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}",N(r+n,function(t){e=7===t.offsetWidth&&18===t.offsetHeight})}return e}),Modernizr.addTest("csstransitions",y("transition","all",!0)),Modernizr.addTest("objectfit",!!O("objectFit"),{aliases:["object-fit"]}),o(),i(C),delete x.addTest,delete x.addAsyncTest;for(var R=0;R
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Resources/Private/Language/locallang.xlf b/Resources/Private/Language/locallang.xlf
new file mode 100644
index 00000000..0358c37a
--- /dev/null
+++ b/Resources/Private/Language/locallang.xlf
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Resources/Private/Layouts/KitodoPage.html b/Resources/Private/Layouts/KitodoPage.html
new file mode 100644
index 00000000..a6c88992
--- /dev/null
+++ b/Resources/Private/Layouts/KitodoPage.html
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Resources/Private/Less/Controls.less b/Resources/Private/Less/Controls.less
new file mode 100644
index 00000000..13407284
--- /dev/null
+++ b/Resources/Private/Less/Controls.less
@@ -0,0 +1,930 @@
+/*
+ *
+ * Controls
+ * ================================================
+ * Control elements like next and previous buttons,
+ * download buttons and so on...
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+/* ==============[ basic settings for document control and view buttons ]================= */
+.document-functions,
+.view-functions {
+ > ul {
+ position: absolute;
+ text-align: center;
+ .text-hide();
+ z-index: 10;
+ > li {
+ position: relative;
+ display: inline-block;
+ > a, > span {
+ position: relative;
+ display: inline-block;
+ width: 40px;
+ height: 40px;
+ .text-hide();
+ border-radius: 20px;
+ margin: 0 5px;
+ background: white url('@{control-icons}') no-repeat 0 0;
+ background-size: auto 120px;
+ }
+ > span {
+ opacity: 0.5;
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ > a, > span {
+ margin: 0 2px;
+ }
+ a {
+ .no-touchevents & {
+ .transition();
+ cursor: pointer;
+ &:hover {
+ .transform(scale(1.2));
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ > a, > span {
+ margin: 0 4px;
+ }
+ }
+ }
+ }
+}
+
+/* ==============[ document functions for downloads, double page eg. ]===================== */
+.document-functions {
+ > ul {
+ bottom: 15px;
+ left: 15px;
+ right: 15px;
+ > li {
+ &.submenu {
+ &:before {
+ position: absolute;
+ top: -17.5px;
+ left: 50%;
+ width: 0;
+ height: 0;
+ margin-left: -10px;
+ border: solid transparent;
+ border-width: 0 10px;
+ border-top-color: fade(@secondary-color, 97%);
+ content: " ";
+ z-index: 200;
+ opacity: 0;
+ .transition();
+ }
+ > ul {
+ position: fixed;
+ bottom: 80px;
+ left: 40px;
+ right: 40px;
+ padding: 20px;
+ background: fade(@secondary-color, 97%);
+ font-family: Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.4;
+ text-align: left;
+ transform-origin: center bottom;
+ .transition();
+ .transform(scaleY(0) translateY(100px));
+ opacity: 0;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
+ li {
+ a {
+ position: relative;
+ color: white;
+ display: block;
+ padding-left: 40px;
+ margin: 15px 0;
+
+ &:before {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ margin-top: -20px;
+ width: 40px;
+ height: 40px;
+ content: " ";
+ background: url('@{control-icons}') no-repeat 0 0;
+ background-size: auto 120px;
+ }
+ &.download-fulltext:before {
+ background-position: -280px -40px;
+ }
+ &.local-presentation:before {
+ background-position: -440px -80px;
+ }
+ &.local-catalog:before {
+ background-position: -400px -80px;
+ }
+ &.local-contact:before {
+ background-position: -400px -40px;
+ }
+ &.download-document:before,
+ &[title$="Seite"]:before,
+ &[title$="Page"]:before {
+ background-position: -360px -40px;
+ }
+ &.download-page:before,
+ &[title$="ument"]:before {
+ background-position: -320px -40px;
+ }
+ &.persistence-document:before {
+ background-position: -360px -80px;
+ }
+ &.persistence-page:before {
+ background-position: -320px -80px;
+ }
+ &.terms-of-use:before {
+ background-position: -640px -80px;
+ }
+ }
+ }
+ }
+ &.open {
+ &:before {
+ top: -13.5px;
+ border-top-width: 10px;
+ opacity: 1;
+ }
+ ul {
+ .transform(scaleY(1) translateY(0));
+ opacity: 1;
+ }
+ }
+ }
+ &.downloads {
+ > a, > span {
+ background-position: -40px 0;
+ }
+ }
+ &.fulltext {
+ > a, > span {
+ background-position: -120px 0;
+ }
+ }
+ &.doublepage {
+ display: none;
+ > a, > span {
+ background-position: -80px 0;
+ }
+ a.tx-dlf-navigation-doubleOff:before {
+ position: absolute;
+ top: 2px;
+ right: 0;
+ width: 8px;
+ height: 8px;
+ border-radius: 8px;
+ border: 2px solid white;
+ background: @primary-color;
+ display: block;
+ content: " ";
+ }
+ a.tx-dlf-navigation-doublePlusOne {
+ position: absolute;
+ bottom: 2px;
+ right: -1px;
+ width: 0;
+ height: 0;
+ border: solid transparent;
+ border-width: 9px 0 9px 13px;
+ border-left-color: white;
+ border-radius: 0;
+ background: transparent;
+ span {
+ position: absolute;
+ bottom: -5px;
+ right: 3px;
+ width: 0;
+ height: 0;
+ display: block;
+ overflow: hidden;
+ border: solid transparent;
+ border-width: 5px 0 5px 8px;
+ border-left-color: @primary-color;
+ }
+ }
+ }
+ &.fulltext {
+ a.select {
+ &.active:before {
+ position: absolute;
+ top: 2px;
+ right: 0;
+ width: 8px;
+ height: 8px;
+ border-radius: 8px;
+ border: 2px solid white;
+ background: @primary-color;
+ display: block;
+ content: " ";
+ }
+ }
+ }
+ &.grid {
+ > a, > span {
+ background-position: -160px 0;
+ }
+ a.active:before {
+ position: absolute;
+ top: 2px;
+ right: 0;
+ width: 8px;
+ height: 8px;
+ border-radius: 8px;
+ border: 2px solid white;
+ background: @primary-color;
+ display: block;
+ content: " ";
+ }
+ }
+ &.disabled {
+ opacity: .5;
+ pointer-events: none;
+ }
+ }
+ }
+ @media screen and (min-width: @tabletViewportWidth) {
+ > ul {
+ li.submenu {
+ > ul {
+ position: absolute;
+ width: auto;
+ left: 20px;
+ right: auto;
+ bottom: 53px;
+ transform-origin: center top;
+ .transform(scaleY(0) translateY(100px));
+ li a {
+ white-space: nowrap;
+ }
+ }
+ &.open {
+ > ul {
+ .transform(scaleY(1) translateY(0));
+ }
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ > ul {
+ top: 20px;
+ left: 20px;
+ right: auto;
+ bottom: auto;
+ li.doublepage {
+ display: inline-block;
+ }
+ li {
+ &.submenu {
+ &:before {
+ top: auto;
+ bottom: -60px;
+ border-width: 0 10px;
+ border-bottom-color: fade(@secondary-color, 97%);
+ }
+ > ul {
+ top: 50px;
+ left: -20px;
+ right: auto;
+ bottom: auto;
+ width: auto;
+ font-size: 12px;
+ padding: 15px;
+ z-index: 3000;
+ transform-origin: center top;
+ .transform(scaleY(0) translateY(-100px));
+ li {
+ a {
+ margin: 0;
+ padding-right: 5px;
+ min-height: 40px;
+ line-height: 40px;
+ .no-touchevents & {
+ &:hover {
+ .transform(scale(1));
+ background: rgba(255, 255, 255, 0.2);
+ }
+ }
+ }
+ }
+ }
+ &.open {
+ &:before {
+ top: auto;
+ bottom: -10px;
+ border-width: 0 10px 10px 10px;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+/* ==============[ view functions for zoom, rotate and other view related functions ]===== */
+.view-functions {
+ ul {
+ position: relative;
+ li {
+ display: none;
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ position: absolute;
+ top: 20px;
+ right: 50px;
+ display: block;
+ height: 40px;
+ li {
+ display: inline-block;
+ &.rotate {
+ display: none;
+ }
+ &.pages {
+ position: relative;
+ top: auto;
+ right: auto;
+ display: inline-block;
+ form {
+ position: absolute;
+ top: 0;
+ right: 0;
+ select {
+ border: 1px solid @secondary-color;
+ color: @secondary-color;
+ background: white url('data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyMCAxMiI+PHN0eWxlPi5zdDB7ZmlsbDpub25lO3N0cm9rZTojNGU2NDY2O3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMH08L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMy40IDMuMkw3IDkuNi42IDMuMiIgaWQ9IlhNTElEXzFfIi8+PC9zdmc+') no-repeat right center;
+ background-size: 16px auto;
+ font-weight: 700;
+ line-height: 1.2;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ padding: 10px 20px 10px 14px;
+ background-size: 20px 12px;
+ margin: 0 6px;
+ font-size: 16px;
+ outline: none;
+ border-radius: 20px;
+ cursor: pointer;
+ .no-touchevents & {
+ .transition();
+ &:hover {
+ border: 1px solid @secondary-color;
+ background-color: desaturate(lighten(@secondary-color, 65%), 25%);
+ color: @basegrey-color;
+ }
+ }
+ }
+ }
+ }
+ &.tx-dlf-toolsImagemanipulation {
+ > span {
+ opacity: 1;
+ overflow: hidden;
+ width: auto;
+ height: auto;
+ display: inline;
+ margin: 0;
+ > span > a {
+ position: relative;
+ display: inline-block;
+ width: 40px;
+ height: 40px;
+ .text-hide();
+ border-radius: 20px;
+ margin: 0 5px;
+ background: white url('@{control-icons}') no-repeat -200px 0;
+ background-size: auto 120px;
+ &.active:before {
+ position: absolute;
+ top: 2px;
+ right: 0;
+ width: 8px;
+ height: 8px;
+ border-radius: 8px;
+ border: 2px solid white;
+ background: @primary-color;
+ display: block;
+ content: " ";
+ }
+ }
+ }
+ }
+ &.rotate {
+ .rotate-left {
+ background-position: -240px 0;
+ }
+ .rotate-right {
+ background-position: -240px -40px;
+ }
+ .upend {
+ background-position: -280px 0;
+ }
+ }
+ &.zoom {
+ .in {
+ background-position: -360px 0;
+ }
+ .out {
+ background-position: -400px 0;
+ }
+ .fullscreen { // The fullscreen button
+ position: relative;
+ flex: 0 0 40px;
+ width: 40px;
+ height: 40px;
+ border-radius: 20px;
+ .text-hide();
+ z-index: 1000;
+ background: white;
+ &:before,
+ &:after {
+ position: absolute;
+ width: 12px;
+ height: 12px;
+ background: url('@{control-icons}') no-repeat -575px -54px;
+ background-size: auto 120px;
+ display: block;
+ content: " ";
+ .transition();
+ pointer-events: none;
+ .static & {
+ .transition(none);
+ }
+ }
+ &:before {
+ top: 9px;
+ right: 9px;
+ }
+ &:after {
+ bottom: 9px;
+ left: 9px;
+ .transform(rotate(180deg));
+ }
+ &.active {
+ &:before {
+ .transform(rotate(180deg));
+ }
+ &:after {
+ .transform(rotate(0));
+ }
+ }
+ .fullscreen & {
+ top: 5px !important;
+ }
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ li {
+ &.rotate {
+ display: inline-block;
+ }
+ &.pages {
+ form {
+ select {
+ margin: 0 4px;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+/* ==============[ the image manipulation tools ]========================================= */
+.image-manipulation {
+ position: absolute;
+ top: 70px;
+ right: 55px;
+ z-index: 1010;
+ .slider-container {
+ background: fade(@secondary-color, 90%);
+ padding: 30px 20px 10px 56px;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
+ &:before {
+ position: absolute;
+ top: -10px;
+ right: 10px;
+ width: 0;
+ height: 0;
+ border: 10px solid transparent;
+ border-bottom-color: fade(@secondary-color, 90%);
+ border-top: 0;
+ content: " ";
+ }
+ .slider {
+ position: relative;
+ width: 200px;
+ height: 30px;
+ border: 0 none;
+ border-radius: 0;
+ background: transparent;
+ -webkit-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+ margin-right: 24px;
+ &:before {
+ position: absolute;
+ top: -19px;
+ left: -36px;
+ width: 40px;
+ height: 40px;
+ content: " ";
+ background: url('@{control-icons}') no-repeat 0 0;
+ background-size: auto 120px;
+ }
+ &:after {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 2px;
+ border-radius: 2px;
+ background: white;
+ content: "";
+ }
+ .tooltip {
+ position: absolute;
+ opacity: 1;
+ top: -4px;
+ left: 210px !important;
+ color: white;
+ font-size: 10px;
+ text-align: left;
+ }
+ }
+ .slider-contrast .tooltip, .slider-saturation .tooltip {
+ left: 100%;
+ }
+ .slider-brightness .tooltip, .slider-hue .tooltip {
+ left: 50%;
+ }
+ .slider-contrast:before {
+ background-position: -480px 0;
+ }
+ .slider-saturation:before {
+ background-position: -480px -40px;
+ }
+ .slider-brightness:before {
+ background-position: -480px -80px;
+ }
+ .slider-hue:before {
+ background-position: -520px 0;
+ }
+ .checkbox, button.reset-btn {
+ position: relative;
+ border: 0 none;
+ color: white;
+ font-size: 11px;
+ margin-top: -15px;
+ padding-left: 36px;
+ line-height: 40px;
+ display: inline-block;
+ background: transparent;
+ &:before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 40px;
+ height: 40px;
+ background: url('@{control-icons}') no-repeat 0 0;
+ background-size: auto 120px;
+ content: " ";
+ }
+ }
+ button.reset-btn {
+ margin-left: 10px;
+ outline: none;
+ &:before {
+ background-position: -520px -80px;
+ }
+ }
+ .checkbox {
+ margin-left: -36px;
+ &:before {
+ background-position: -520px -40px;
+ }
+ label input {
+ margin-right: 4px;
+ }
+ }
+ }
+}
+
+.slider-imagemanipulation.ui-slider-horizontal {
+ .ui-slider-handle {
+ position: absolute;
+ z-index: 2;
+ top: -7px;
+ width: 14px;
+ height: 14px;
+ background: white;
+ border: 0 none;
+ border-radius: 7px;
+ box-shadow: 1px 1px 0 @primary-color;
+ cursor: col-resize;
+ margin-left: -6px;
+ &:after {
+ content: none;
+ }
+ .ui-slider-handle {
+ &:focus, &:active {
+ border: 0;
+ outline: none;
+ }
+ }
+ }
+ .ui-slider-range {
+ background: rgba(0, 177, 158, 0.5);
+ }
+}
+
+/* ==============[ page control buttons (fwd/back) ]====================================== */
+.page-control {
+ position: absolute;
+ bottom: 15px;
+ height: 1px;
+ width: 290px;
+ left: 50%;
+ margin-left: -145px;
+ line-height: 0;
+ > div {
+ position: absolute;
+ bottom: 0;
+ z-index: 1020;
+ span {
+ display: none;
+ a, span {
+ position: relative;
+ display: inline-block;
+ .text-hide();
+ &:before {
+ position: absolute;
+ bottom: -1px;
+ width: 40px;
+ height: 40px;
+ border-radius: 20px;
+ background: white url('@{control-icons}') no-repeat 0 0;
+ background-size: auto 120px;
+ content: " ";
+ }
+ }
+ span {
+ opacity: 0.3;
+ }
+ &.next {
+ display: block;
+ a:before, span:before {
+ right: 0;
+ background-position: -280px -80px;
+ }
+ }
+ &.prev {
+ display: block;
+ a:before, span:before {
+ left: 0;
+ background-position: -240px -80px;
+ }
+ }
+ }
+ }
+ .backs {
+ left: 0;
+ }
+ .fwds {
+ right: 0;
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ pointer-events: none;
+ > div {
+ height: 80px;
+ min-width: 80px;
+ pointer-events: all;
+ span {
+ display: block;
+ a, span {
+ position: absolute;
+ font-size: 14px;
+ color: @primary-color;
+ white-space: nowrap;
+ display: block;
+ height: 40px;
+ line-height: 40px;
+ .transition();
+ &:before {
+ .transition();
+ }
+ }
+ .no-touchevents & {
+ a:hover {
+ .transform(scale(1.1));
+ }
+ }
+ span {
+ cursor: not-allowed;
+ }
+ }
+ bottom: 50%;
+ margin-bottom: -20px;
+ &.no-transition {
+ a, span, a:before, span:before {
+ -webkit-transition: none !important;
+ -moz-transition: none !important;
+ -o-transition: none !important;
+ transition: none !important;
+ }
+ }
+ &.backs {
+ left: 10px;
+ span {
+ a, span {
+ left: 0;
+ text-align: left;
+ padding-left: 80px;
+ &:before {
+ left: 20px;
+ }
+ }
+ &.prev {
+ a, span {
+ top: 0;
+ height: 80px;
+ line-height: 80px;
+ color: fade(@primary-color, 0%);
+ &:before {
+ left: 0;
+ width: 80px;
+ height: 80px;
+ border-radius: 40px;
+ background-position: 0 -40px;
+ }
+ }
+ }
+ &.rwnd {
+ a, span {
+ top: 0;
+ color: fade(@primary-color, 0%);
+ z-index: 301;
+ &:before {
+ left: 41px;
+ width: 32px;
+ height: 32px;
+ background-position: -86px -43px;
+ }
+ }
+ span {
+ opacity: 0;
+ }
+ }
+ &.first {
+ a, span {
+ bottom: 0;
+ opacity: 0;
+ z-index: 302;
+ &:before {
+ background-position: -80px -80px;
+ }
+ }
+ }
+ }
+ &.over {
+ span {
+ &.prev {
+ a, span {
+ color: @primary-color;
+ }
+ }
+ &.rwnd {
+ a, span {
+ top: -45px;
+ color: @primary-color;
+ &:before {
+ bottom: -1px;
+ left: 20px;
+ width: 40px;
+ height: 40px;
+ background-position: -80px -40px;
+ }
+ }
+ span {
+ opacity: .3;
+ }
+ }
+ &.first {
+ a, span {
+ bottom: -45px;
+ }
+ a {
+ opacity: 1;
+ }
+ span {
+ opacity: 0.3;
+ }
+ }
+ }
+ }
+ }
+ &.fwds {
+ right: 10px;
+ span {
+ a, span {
+ right: 0;
+ text-align: right;
+ padding-right: 80px;
+ &:before {
+ right: 20px;
+ }
+ }
+ &.next {
+ a, span {
+ top: 0;
+ height: 80px;
+ line-height: 80px;
+ color: fade(@primary-color, 0%);
+ &:before {
+ right: 0;
+ width: 80px;
+ height: 80px;
+ border-radius: 40px;
+ background-position: -160px -40px;
+ }
+ }
+ }
+ &.fwd {
+ a, span {
+ top: 0;
+ color: fade(@primary-color, 0%);
+ &:before {
+ right: 41px;
+ width: 32px;
+ height: 32px;
+ background-position: -122px -42px;
+ }
+ }
+ }
+ &.last {
+ a, span {
+ bottom: 0;
+ opacity: 0;
+ &:before {
+ background-position: -120px -80px;
+ }
+ }
+ }
+ }
+ &.over {
+ span {
+ &.next {
+ a, span {
+ color: @primary-color;
+ }
+ }
+ &.fwd {
+ a, span {
+ top: -45px;
+ color: @primary-color;
+ &:before {
+ bottom: -1px;
+ right: 20px;
+ width: 40px;
+ height: 40px;
+ background-position: -120px -40px;
+ }
+ }
+ }
+ &.last {
+ a, span {
+ bottom: -45px;
+ }
+ a {
+ opacity: 1;
+ }
+ span {
+ opacity: 0.3;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ .calendar & {
+ display: none;
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Digitalcollections.less b/Resources/Private/Less/Digitalcollections.less
new file mode 100644
index 00000000..4d222426
--- /dev/null
+++ b/Resources/Private/Less/Digitalcollections.less
@@ -0,0 +1,30 @@
+/*
+ *
+ * Digital Collections design
+ * ================================================
+ * The complete LESS bindings for the
+ * Digital Collections by SLUB Dresden
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+// Helpers & variables
+@import "Helper/Variables.less";
+@import "Helper/Mixins.less";
+@import "Helper/Normalize.less";
+
+// Basic Settings
+@import "Structure.less";
+@import "Sidebar.less";
+@import "Controls.less";
+
+// Modules linkage
+@import "Modules/Newspapers.less";
+@import "Modules/Pagegrid.less";
+@import "Modules/Fulltext.less";
+@import "Modules/Indocsearch.less";
+
+// Theming Options (see '/Resources/Private/Less/Themes' for more)
+// @import "Themes/Basictheme.less";
+@import "Themes/Slubtheme.less";
\ No newline at end of file
diff --git a/Resources/Private/Less/DigitalcollectionsLists.less b/Resources/Private/Less/DigitalcollectionsLists.less
new file mode 100644
index 00000000..bb7cc723
--- /dev/null
+++ b/Resources/Private/Less/DigitalcollectionsLists.less
@@ -0,0 +1,26 @@
+/*
+ *
+ * Lists
+ * ================================================
+ * Design for lists and collection views
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+// Helpers & variables
+@import "Helper/Variables.less";
+@import "Helper/Mixins.less";
+@import "Helper/Normalize.less";
+
+// Theming Options (see '/Resources/Private/Less/Themes' for more)
+// @import "Themes/Basictheme.less";
+@import "Themes/Slubtheme.less";
+
+// Additional imports for lists
+@import "Modules/Listresults.less";
+@import "Modules/Listsearch.less";
+@import "Modules/Listfacets.less";
+@import "Modules/Listintro.less";
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Helper/Mixins.less b/Resources/Private/Less/Helper/Mixins.less
new file mode 100644
index 00000000..08af069f
--- /dev/null
+++ b/Resources/Private/Less/Helper/Mixins.less
@@ -0,0 +1,49 @@
+/*
+ *
+ * Mixins
+ * ================================================
+ * Own mixins for clearfixes, text removal,
+ * gradients and some other minor stuff
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+.clearfix() { // Guess what. ;-)
+ &:before, &:after {
+ content: " ";
+ display: table;
+ }
+ &:after {
+ clear: both;
+ }
+}
+
+.text-overflow() { // If you need the three dots on the end of a text element
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.text-hide() { // Fully hide the text of an element (Often used as image replacement)
+ font: ~"0/0" 'Open Sans', Helvetica, Arial, sans-serif;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+.transition(@transition: all .3s ease-out) { // Standardized CSS transitions
+ -webkit-transition: @transition;
+ -o-transition: @transition;
+ transition: @transition;
+}
+
+.transform(@transform) { // Use this to ensure all transforms are proper prefixed
+ -webkit-transform: @transform;
+ -moz-transform: @transform;
+ -ms-transform: @transform;
+ transform: @transform;
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Helper/Normalize.less b/Resources/Private/Less/Helper/Normalize.less
new file mode 100644
index 00000000..11d1a768
--- /dev/null
+++ b/Resources/Private/Less/Helper/Normalize.less
@@ -0,0 +1,22 @@
+/*
+ *
+ * Normalize
+ * ================================================
+ * Reset some browser based settings to start from
+ * a clean white sheet of paper
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { background: transparent; border: 0; margin: 0; padding: 0; vertical-align: baseline; }
+body { line-height: 1; }
+h1, h2, h3, h4, h5, h6 { clear: both; font-weight: normal; }
+ol, ul { list-style: none; }
+blockquote { quotes: none; }
+blockquote:before, blockquote:after { content: ''; content: none; }
+del { text-decoration: line-through; }
+table { border-collapse: collapse; border-spacing: 0; }
+a img { border: none; }
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Helper/Variables.less b/Resources/Private/Less/Helper/Variables.less
new file mode 100644
index 00000000..0773912d
--- /dev/null
+++ b/Resources/Private/Less/Helper/Variables.less
@@ -0,0 +1,24 @@
+/*
+ *
+ * Variables
+ * ================================================
+ * Value settings for type, breakpoints and
+ * base settings for calculations
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+// Base value
+@base-calc: 16px;
+
+// Media queries
+@phoneLandscapeViewportWidth: 480px;
+@tabletViewportWidth: 768px;
+@tabletLandscapeViewportWidth: 1024px;
+@desktopViewportWidth: 1200px;
+
+// Paths
+@basepath: '/typo3conf/ext/slub_digitalcollections/';
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Modules/Fulltext.less b/Resources/Private/Less/Modules/Fulltext.less
new file mode 100644
index 00000000..ea0f6a6d
--- /dev/null
+++ b/Resources/Private/Less/Modules/Fulltext.less
@@ -0,0 +1,77 @@
+/*
+ *
+ * Fulltext
+ * ================================================
+ * Specials for the fulltext view
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+.fulltext-container {
+ position: absolute;
+ top: 55px;
+ right: 0;
+ bottom: 0;
+ background: rgba(255, 255, 255, 0.95);
+ text-align: left;
+ .transition();
+ #tx-dlf-fulltextselection {
+ position: relative;
+ top: 0;
+ right: 0;
+ width: 100%;
+ height: 100%;
+ padding: 60px 20px;
+ overflow: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ line-height: 1.6em;
+ font-size: 16px;
+ color: @basegrey-color;
+ display: none;
+ &:empty {
+ padding: 0;
+ }
+ .textline {
+ &:after {
+ content: " ";
+ }
+ }
+ .fulltext-visible & {
+ display: block;
+ }
+ }
+ .fullscreen & {
+ top: 0;
+ }
+ @media screen and (min-width: @tabletViewportWidth) {
+ #tx-dlf-fulltextselection {
+ padding: 60px 15%;
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ top: 0;
+ max-width: 71.7%;
+ &:before {
+ height: 100px;
+ }
+ &:after {
+ height: 80px;
+ }
+ #tx-dlf-fulltextselection {
+ padding: 80px 100px 60px 30px;
+ line-height: 1.8;
+ border-left: 1px solid @secondary-color-light;
+ .highlight {
+ padding: 3px 0;
+ background: lighten(@secondary-color-light,30%);
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ max-width: 50%;
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Modules/Indocsearch.less b/Resources/Private/Less/Modules/Indocsearch.less
new file mode 100644
index 00000000..d2eb1c71
--- /dev/null
+++ b/Resources/Private/Less/Modules/Indocsearch.less
@@ -0,0 +1,312 @@
+/*
+ *
+ * In Document Search
+ * ================================================
+ * The ajax based search inside the work view
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+.tx-dlf-toolsFulltextsearch { // should be semantically: .tx-dlf-tools-search-indocument
+ position: absolute;
+ top: 0;
+ right: 106px;
+ .fulltext-search-toggle { // should be semantically: .search-indocument-toggle
+ position: absolute;
+ top: 10px;
+ right: 0;
+ width: 40px;
+ height: 40px;
+ background: white url('@{control-icons}') no-repeat -560px 0;
+ background-size: auto 120px;
+ border-radius: 20px;
+ cursor: pointer;
+ &:after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 40px;
+ width: 40px;
+ text-align: center;
+ content: "+";
+ font-size: 42px;
+ line-height: 32px;
+ color: @secondary-color;
+ .transition();
+ opacity: 0;
+ }
+ .search-indocument-active & {
+ background: lighten(@secondary-color-light, 40%);
+ &:after {
+ .transform(rotate(45deg));
+ opacity: 1;
+ }
+ }
+ &.disabled {
+ opacity: .5;
+ pointer-events: none;
+ }
+ .no-touchevents & {
+ .transition();
+ &:hover {
+ .transform(scale(1.2));
+ }
+ }
+ }
+ form {
+ position: absolute;
+ top: 60px;
+ right: -106px;
+ height: 40px;
+ width: 100vw;
+ padding: 0 15px;
+ opacity: 0;
+ pointer-events: none;
+ .transition();
+ .transform(translateY(-100%));
+ label {
+ display: none;
+ }
+ input {
+ &[type="text"] {
+ position: relative;
+ width: 100%;
+ font-family: @font-sans-normal;
+ background: white;
+ border-radius: 20px;
+ border: 0;
+ font-size: 14px;
+ line-height: 1.1;
+ padding: 4px 10px;
+ height: 40px;
+ color: @basegrey-color;
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
+ &:focus {
+ color: @secondary-color;
+ }
+ }
+ }
+ button,
+ input {
+ &[type="submit"] {
+ position: absolute;
+ top: 0;
+ right: 15px;
+ width: 40px;
+ height: 40px;
+ .text-hide();
+ background: lighten(@secondary-color-light, 40%) url('@{control-icons}') no-repeat -560px 0;
+ background-size: auto 120px;
+ border-radius: 20px;
+ }
+ }
+ .search-indocument-active & {
+ pointer-events: all;
+ opacity: 1;
+ .transform(translateY(0));
+ }
+ }
+ #tx-dlf-search-in-document-loading,
+ #tx-dlf-search-in-document-clearing {
+ display: none;
+ }
+ #tx-dlf-search-in-document-results {
+ position: fixed;
+ top: 230px;
+ right: 15px;
+ max-height: calc(100vh - 310px);
+ left: 15px;
+ background: white;
+ text-align: center;
+ border-radius: 20px;
+ font-family: @font-sans-normal;
+ overflow: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ pointer-events: none;
+ opacity: 0;
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
+ .transition();
+ .transform(translateY(-100%));
+ li {
+ padding: 15px 10px;
+ border-bottom: 1px solid @lightgrey-color;
+ line-height: 1.2;
+ .structure {
+ font-size: 14px;
+ position: relative;
+ display: block;
+ font-family: @font-sans-bold;
+ text-transform: uppercase;
+ color: darken(@lightgrey-color, 20%);
+ }
+ .highlight,
+ em {
+ font-family: @font-sans-bold;
+ color: @primary-color;
+ font-style: normal;
+ }
+ .textsnippet {
+ a {
+ color: #333;
+ }
+ &:before,
+ &:after {
+ content: "…";
+ }
+ }
+ }
+ .button-previous,
+ .button-next {
+ position: relative;
+ margin: 30px 10px;
+ background: @secondary-color-light;
+ appearance: none;
+ border: 0;
+ padding: 10px 20px;
+ line-height: 1;
+ font-family: @font-sans-bold;
+ text-transform: uppercase;
+ color: white;
+ }
+ .search-indocument-active & {
+ pointer-events: all;
+ opacity: 1;
+ .transform(translateY(0));
+ &:empty {
+ pointer-events: none;
+ opacity: 0;
+ .transform(translateY(-100%));
+ }
+ }
+ }
+ @media screen and (min-width: @phoneLandscapeViewportWidth) {
+ form {
+ top: 10px;
+ right: 40px;
+ width: 400px;
+ }
+ #tx-dlf-search-in-document-results {
+ top: 165px;
+ z-index: 1030;
+ max-height: calc(100vh - 170px);
+ li {
+ .structure {
+ display: inline;
+ }
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+ }
+ @media screen and (min-width: @tabletViewportWidth) {
+ #tx-dlf-search-in-document-results {
+ top: 180px;
+ max-height: calc(100vh - 280px);
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ top: 10px;
+ right: 8px;
+ form {
+ top: 80px;
+ right: 0;
+ width: 450px;
+ height: 70px;
+ margin: 0;
+ border-radius: 0;
+ background: fade(@secondary-color, 90%);
+ padding: 15px;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
+ input[type="text"] {
+ border-radius: 0;
+ }
+ button,
+ input {
+ &[type="submit"] {
+ top: 15px;
+ border-radius: 20px 0 0 20px;
+ background-color: lighten(@secondary-color-light, 30%);
+ }
+ }
+ &:before {
+ position: absolute;
+ top: -10px;
+ right: 10px;
+ width: 0;
+ height: 0;
+ border: 10px solid transparent;
+ border-bottom-color: fade(@secondary-color, 90%);
+ border-top: 0;
+ content: " ";
+ }
+ }
+ #tx-dlf-search-in-document-results {
+ position: absolute;
+ top: 150px;
+ right: 0;
+ left: auto;
+ bottom: auto;
+ width: 450px;
+ height: 400px;
+ border-radius: 0;
+ background: fade(@secondary-color, 90%);
+ padding: 0 15px 15px 15px;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
+ li {
+ text-align: left;
+ padding: 10px 0;
+ color: white;
+ .structure {
+ color: white;
+ opacity: .6;
+ }
+ a {
+ color: white;
+ .highlight,
+ em {
+ color: white;
+ }
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ form {
+ width: 600px;
+ }
+ #tx-dlf-search-in-document-results {
+ width: 600px;
+ font-size: 14px;
+ height: auto;
+ max-height: 70vh;
+ }
+ }
+}
+
+body.calendar .tx-dlf-toolsFulltextsearch { // If the search appears in calendar view
+ top: -20px;
+ right: 15px;
+ form {
+ right: -15px;
+ }
+ @media screen and (min-width: @phoneLandscapeViewportWidth) {
+ form {
+ right: 40px;
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ top: 30px;
+ right: 35px;
+ .fulltext-search-toggle {
+ border: 1px solid @secondary-color;
+ }
+ form {
+ right: 0;
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Modules/Listfacets.less b/Resources/Private/Less/Modules/Listfacets.less
new file mode 100644
index 00000000..2c523c03
--- /dev/null
+++ b/Resources/Private/Less/Modules/Listfacets.less
@@ -0,0 +1,92 @@
+/*
+ *
+ * Facets styling
+ * ================================================
+ * Styling for the facets in list views
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+#rightcol .tx-dlf-search-facets {
+ position: relative;
+ font-family: @font-sans-normal;
+ color: white;
+ ul {
+ padding: 0;
+ margin: 0;
+ li {
+ font-size: 18px;
+ font-family: @font-sans-bold;
+ text-transform: uppercase;
+ padding: 0;
+ display: none;
+ margin: 30px 0;
+ &.tx-dlf-search-ifsub {
+ display: block;
+ }
+ ul {
+ border-top: 1px solid rgba(255, 255, 255, .3);
+ li {
+ font-family: @font-sans-normal;
+ text-transform: none;
+ opacity: 1;
+ display: block;
+ margin: 0;
+ a {
+ position: relative;
+ color: white;
+ font-size: 14px;
+ padding: 5px 0;
+ display: inline-block;
+ }
+ &.tx-dlf-search-cur {
+ font-family: @font-sans-bold;
+ }
+ }
+ }
+ .facets-toggle {
+ font-size: 14px;
+ border-top: 1px solid rgba(255, 255, 255, .6);
+ padding-top: 5px;
+ opacity: .5;
+ .no-touchevents & {
+ cursor: pointer;
+ }
+ }
+
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ color: lighten(@basegrey-color, 20%);
+ font-size: 16px;
+ ul {
+ margin: 5px 0;
+ border-top: 1px solid @lightgrey-color;
+ li {
+ a {
+ color: @secondary-color;
+ }
+ &.tx-dlf-search-cur a {
+ position: relative;
+ padding-left: 18px;
+ &:after {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ margin-top: -16px;
+ content: "+";
+ font-size: 30px;
+ line-height: 30px;
+ .transform(rotate(45deg));
+ }
+ }
+ }
+ }
+ .facets-toggle {
+ border-top: 1px solid @lightgrey-color;
+ }
+ }
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Modules/Listintro.less b/Resources/Private/Less/Modules/Listintro.less
new file mode 100644
index 00000000..1a9e5928
--- /dev/null
+++ b/Resources/Private/Less/Modules/Listintro.less
@@ -0,0 +1,601 @@
+/*
+ *
+ * Collection Overview
+ * ================================================
+ * Styling for the full size overview
+ * on all collections
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+body.collections {
+ #leftcol {
+ #c15323 { // The search on intropage
+ h3 {
+ margin-top: 0;
+ font-size: 14px;
+ bottom: -11px;
+ padding: 0 5px;
+ left: 15px;
+ text-transform: uppercase;
+ color: darken(@lightgrey-color, 39%);
+ background: white;
+ display: inline-block;
+ }
+ .tx-dlf-search {
+ border: solid @lightgrey-color;
+ border-width: 1px 0;
+ padding: 20px 0 15px 0;
+ form { // The input fields and buttons
+ position: relative;
+ margin: 0;
+ font-family: @font-sans-normal;
+ font-size: 14px;
+ label {
+ width: auto;
+ margin: 0;
+ display: inline-block;
+ float: none;
+ vertical-align: middle;
+ }
+ input {
+ &[type="text"] {
+ position: relative;
+ width: 100%;
+ font-family: @font-sans-normal;
+ font-size: 14px;
+ background: white;
+ border: 1px solid @secondary-color;
+ line-height: 1.1;
+ padding: 4px 10px;
+ height: 40px;
+ color: @basegrey-color;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
+ margin-bottom: 10px;
+ float: none;
+ &:focus {
+ color: @secondary-color;
+ }
+ }
+ &[type="submit"] {
+ position: absolute;
+ top: 1px;
+ right: 1px;
+ width: 38px;
+ height: 38px;
+ .text-hide();
+ background: lighten(@secondary-color-light, 40%) url('@{control-icons}') no-repeat -560px 0;
+ background-size: auto 120px;
+ border-radius: 20px 0 0 20px;
+ }
+ &[type="radio"] {
+ position: relative;
+ appearance: none;
+ -webkit-appearance: none;
+ width: 16px;
+ height: 16px;
+ border-radius: 10px;
+ vertical-align: middle;
+ margin: 0 3px 0 0;
+ float: none;
+ background: lighten(@secondary-color, 10%);
+ &:after {
+ position: absolute;
+ top: 5px;
+ left: 5px;
+ width: 6px;
+ height: 6px;
+ border-radius: 4px;
+ background: white;
+ content: " ";
+ opacity: 0;
+ }
+ &:hover {
+ border-color: white;
+ }
+ &:checked {
+ background: @secondary-color;
+ &:after {
+ opacity: 1;
+ }
+ }
+ }
+ }
+ label {
+ margin-right: 10px;
+ &[for="tx-dlf-search-query"] {
+ display: none;
+ }
+ }
+ #tx-dlf-search-suggest {
+ position: absolute;
+ &:after {
+ position: absolute;
+ top: 0;
+ left: 20px;
+ width: 0;
+ height: 0;
+ border: 10px solid transparent;
+ border-top-width: 0;
+ border-bottom-color: white;
+ content: " ";
+ z-index: 301;
+ }
+ ul {
+ z-index: 300;
+ margin: 10px 0 0 0;
+ padding: 0;
+ background: white;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
+ li {
+ color: @secondary-color;
+ padding: 10px 15px;
+ font-family: @font-sans-bold;
+ border-bottom: 1px solid @lightgrey-color;
+ .no-touchevents & {
+ .transition(all .15s ease-in);
+ cursor: pointer;
+ &:hover {
+ background: white;
+ color: @secondary-color;
+ }
+ }
+ }
+ }
+ }
+ .tx-dlf-search-extended,
+ .extended-search-toggle {
+ display: none;
+ }
+ }
+ }
+ }
+ .tx-dlf-collection {
+ position: relative;
+ padding-top: 30px;
+ margin-top: 20px;
+ }
+ .tx-dlf-collection-list { // The listing
+ margin: 0 -5px;
+ padding: 0;
+ .clearfix();
+ .tx-dlf-collection-col {
+ width: 100%;
+ &.col-2, &.col-3 {
+ display: none;
+ }
+ .tx-dlf-collection-item {
+ position: relative;
+ padding: 15px 0;
+ .tx-dlf-collection-thumbnail {
+ overflow: hidden;
+ border: 1px solid @lightgrey-color;
+ img {
+ border: 2px solid white;
+ min-width: 100%;
+ }
+ }
+ .tx-dlf-collection-meta-information {
+ position: absolute;
+ right: 3px;
+ bottom: 18px;
+ left: 3px;
+ background: white;
+ overflow: hidden;
+ padding: 10px;
+ line-height: 1.3;
+ .tx-dlf-collection-counts {
+ font-size: 14px;
+ margin: 0;
+
+ }
+ h4 {
+ margin: 0 0 4px 0;
+ font-family: @font-sans-bold;
+ font-size: 16px;
+ text-transform: uppercase;
+ a {
+ font-color: @secondary-color;
+ text-decoration: none;
+ }
+ }
+ > a[href*="rss"] {
+ display: none;
+ }
+ }
+ .no-touchevents & {
+ cursor: pointer;
+ .tx-dlf-collection-thumbnail img,
+ .tx-dlf-collection-meta-information,
+ .tx-dlf-collection-meta-information h4 a {
+ .transition();
+ }
+ .tx-dlf-collection-meta-information {
+ h4 {
+ padding-right: 30px;
+ }
+ > a {
+ position: absolute;
+ top: 50%;
+ right: 10px;
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ display: block;
+ .text-hide();
+ background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCI+PHBhdGggZD0iTTE1IDM4LjFoM2MwLTExIDguOS0xOS41IDIwLjMtMTkuNXYtM2MtMTMtLjEtMjMuMyA5LjgtMjMuMyAyMi41eiIvPjxwYXRoIGQ9Ik0yLjMgMzguMWgzQzUuMyAxOS41IDE5LjggNSAzOC4zIDVWMmMtMjAuMiAwLTM2IDE1LjgtMzYgMzYuMXoiLz48Y2lyY2xlIGN4PSIzMy44IiBjeT0iMzMuNiIgcj0iNC41Ii8+PC9zdmc+") no-repeat center center;
+ background-size: 30px auto;
+ .transition();
+ .transform(translateX(60px));
+ opacity: 0;
+ img {
+ display: none;
+ }
+ }
+ }
+ &:hover {
+ .tx-dlf-collection-thumbnail img {
+ .transform(scale(1.2));
+ opacity: .8;
+ }
+ .tx-dlf-collection-meta-information {
+ padding-bottom: 20px;
+ h4 a {
+ color: @primary-color;
+ }
+ > a {
+ .transform(translateX(0));
+ opacity: .3;
+ &:hover {
+ opacity: 1;
+ .transform(scale(1.1));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ &.alphabetical {
+ position: relative;
+ min-height: 2000px;
+ margin-top: 30px;
+ li {
+ position: relative;
+ width: 100%;
+ border-top: 1px dotted #ccc;
+ padding: 20px 0;
+ display: flex;
+ align-items: center;
+ &.tx-dlf-collection-col {
+ display: none;
+ }
+ &.order-label {
+ border: 0 none;
+ height: 0;
+ padding: 0;
+ z-index: 122;
+ .order-label-value {
+ position: absolute;
+ top: -25px;
+ right: 50%;
+ height: 50px;
+ min-width: 50px;
+ border-radius: 25px;
+ background: fade(#d8e9ed, 70%);
+ border: 1px solid white;
+ color: @secondary-color;
+ padding: 5px 15px;
+ text-align: center;
+ font-size: 30px;
+ font-family: @font-sans-normal;
+ white-space: nowrap;
+ line-height: 1.1;
+ .transform(translateX(50%));
+ -moz-font-feature-settings: "lnum";
+ -webkit-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+ }
+ &:hover {
+ &:before {
+ display: none;
+ }
+ }
+ }
+ .tx-dlf-collection-thumbnail {
+ width: 70px;
+ height: 100px;
+ background: white;
+ z-index: 120;
+ img {
+ height: 100%;
+ min-width: 70px;
+ object-fit: cover;
+ border: 1px solid @lightgrey-color;
+ }
+ }
+ .tx-dlf-collection-meta-information {
+ position: relative;
+ bottom: auto;
+ left: auto;
+ right: auto;
+ background: transparent;
+ padding: 0 0 0 20px;
+ overflow: visible;
+ h4 {
+ font-size: 18px;
+ font-weight: normal;
+ margin: 0;
+ a {
+ color: #333;
+ text-decoration: none;
+ &:hover {
+ text-decoration: none;
+ }
+ }
+ }
+ > a {
+ display: none;
+ }
+ p {
+ height: auto;
+ opacity: 1;
+ font-size: 16px;
+ padding: 5px 0 0 0;
+ margin: 0;
+ color: #333;
+ }
+ > a {
+ right: -25px;
+ top: 0;
+ bottom: auto;
+ }
+ }
+ &:before {
+ position: absolute;
+ top: 5px;
+ right: -5px;
+ bottom: 5px;
+ left: -5px;
+ background: #d8e9ed;
+ content: " ";
+ opacity: 0;
+ pointer-events: none;
+ .transition();
+ }
+ &:hover {
+ .tx-dlf-collection-thumbnail img,
+ &:before {
+ opacity: 1;
+ }
+ .tx-dlf-collection-meta-information {
+ p {
+ border-top-color: transparent;
+ }
+ > a {
+ bottom: auto;
+ }
+ }
+ }
+ }
+ }
+ &.alphabetical-ready {
+ li {
+ opacity: 1;
+ }
+ }
+ }
+ .tx-dlf-list-toggle-container {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: flex;
+ align-items: center;
+ cursor: pointer;
+ z-index: 130;
+ font-family: @font-sans-normal;
+ .tx-dlf-list-toggle {
+ position: relative;
+ width: 35px;
+ height: 20px;
+ background: white;
+ border-radius: 20px;
+ border: 1px solid @secondary-color;
+ margin: 0 10px;
+ .toggle-state {
+ position: absolute;
+ top: 2px;
+ left: 2px;
+ width: 14px;
+ height: 14px;
+ border-radius: 7px;
+ background: @secondary-color;
+ .transition();
+ }
+ }
+ &.alphabetical {
+ .tx-dlf-list-toggle {
+ .toggle-state {
+ left: 17px;
+ }
+ }
+ }
+ .label {
+ font-size: 14px;
+ opacity: .4;
+ .transition();
+ &.active {
+ opacity: 1;
+ font-family: @font-sans-bold;
+ }
+ }
+ }
+ .tx-dlf-collection-list-additionals {
+ display: none;
+ }
+ @media screen and (min-width: @phoneLandscapeViewportWidth) {
+ .tx-dlf-collection {
+ padding-top: 0;
+ }
+ .tx-dlf-list-toggle-container {
+ right: 0;
+ top: -45px;
+ left: auto;
+ }
+ .tx-dlf-collection-list {
+ .tx-dlf-collection-col {
+ width: 50%;
+ float: left;
+ &.col-2 {
+ display: block;
+ }
+ &.col-3 {
+ display: none;
+ }
+ .tx-dlf-collection-item {
+ padding: 5px;
+ .tx-dlf-collection-meta-information {
+ right: 8px;
+ bottom: 8px;
+ left: 8px;
+ }
+ }
+ }
+ &.alphabetical {
+ margin-top: 0;
+ }
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ padding: 0;
+ width: 100%;
+ float: none;
+ .tx-dlf-statistics {
+ font-family: @font-sans-normal;
+ strong {
+ font-family: @font-sans-normal;
+ font-size: 26px;
+ white-space: nowrap;
+ color: @primary-color;
+ }
+ }
+ #c15323 .tx-dlf-search {
+ padding: 30px 10% 30px 0;
+ form {
+ input {
+ &[type="text"] {
+ border-color: fade(@secondary-color, 50%);
+ }
+ &[type="submit"] {
+ .transition();
+ }
+ }
+ .tx-dlf-search-extended {
+ position: relative;
+ display: block;
+ margin: 0;
+ height: 0;
+ opacity: 0;
+ pointer-events: none;
+ .transition();
+ select {
+ position: absolute;
+ top: 0;
+ display: block;
+ appearance: none;
+ -webkit-appearance: none;
+ height: 40px;
+ background: transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMiA0MCI+PHBhdGggZmlsbD0iIzE2NyIgZD0iTTguNiAxOGwtNC4xIDYuMDRMLjQgMTh6Ii8+PC9zdmc+") no-repeat right center;
+ background-size: auto 40px;
+ border-right: 1px solid;
+ border-color: transparent @secondary-color transparent transparent;
+ border-radius: 0;
+ font-family: @font-sans-bold;
+ z-index: 100;
+ padding: 10px;
+ color: @secondary-color;
+ font-size: 14px;
+ &.tx-dlf-search-operator {
+ left: 0;
+ width: 70px;
+ }
+ &.tx-dlf-search-field {
+ left: 70px;
+ }
+ }
+ }
+ .extended-search-toggle {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ display: block;
+ cursor: pointer;
+ text-decoration: underline;
+ span {
+ display: none;
+ }
+ }
+ &.extendend-search-active {
+ padding-bottom: 40px;
+ input[type="submit"] {
+ top: 267px;
+ right: -10%;
+ height: 50px;
+ width: 50px;
+ border-radius: 25px;
+ background-position: -555px 5px;
+ }
+ .tx-dlf-search-extended {
+ margin: 15px 0 -5px 0;
+ height: 40px;
+ opacity: 1;
+ pointer-events: all;
+ }
+ .extended-search-toggle {
+ span {
+ display: inline;
+ }
+ }
+ }
+ }
+ }
+ .tx-dlf-collection-list {
+ margin: 20px -15px;
+ .tx-dlf-collection-col {
+ width: 33.333333%;
+ float: left;
+ &.col-3 {
+ display: block;
+ }
+ .tx-dlf-collection-item {
+ padding: 15px;
+ .tx-dlf-collection-meta-information {
+ right: 16px;
+ left: 16px;
+ bottom: 16px;
+ padding: 15px 15px 15px 15px;
+ h4 {
+ margin: 0;
+ }
+ .tx-dlf-collection-counts {
+ font-family: @font-sans-normal;
+ font-size: 12px;
+ }
+ }
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ .tx-dlf-statistics {
+ padding-right: 20%;
+ }
+ #c15323 .tx-dlf-search {
+ padding: 30px 20% 30px 0;
+ }
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Modules/Listresults.less b/Resources/Private/Less/Modules/Listresults.less
new file mode 100644
index 00000000..bba0dddd
--- /dev/null
+++ b/Resources/Private/Less/Modules/Listresults.less
@@ -0,0 +1,327 @@
+/*
+ *
+ * Results styling
+ * ================================================
+ * CSS for the listing and its controls
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+.listview {
+ h2,
+ #rightcol .rightnav {
+ display: none;
+ }
+}
+
+.tx-dlf-listview { // The basic setup and the control fields above the listing
+ #leftcol & {
+ h2 {
+ font-size: 24px;
+ display: block;
+ margin: 0;
+ }
+ p.tx-dlf-search-numHits {
+ font-family: @font-sans-normal;
+ margin-top: 0;
+ font-size: 14px;
+ }
+ p.tx-dlf-sortinfo ~ form {
+ display: none;
+ }
+ p.tx-dlf-sortinfo {
+ text-align: center;
+ margin: 0;
+ font-family: @font-sans-bold;
+ clear: both;
+ }
+ p.tx-dlf-pagebrowser {
+ margin: 20px 0;
+ font-family: @font-sans-bold;
+ -moz-font-feature-settings: "lnum";
+ -webkit-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+ color: @basegrey-color;
+ text-align: center;
+ a {
+ display: inline-block;
+ min-width: 30px;
+ height: 30px;
+ border: 1px solid @lightgrey-color;
+ text-decoration: none;
+ border-radius: 15px;
+ margin: 0 5px;
+ background: white;
+ padding: 0 5px;
+ }
+ }
+ @media screen and (min-width: @phoneLandscapeViewportWidth) {
+ h2 {
+ font-size: 28px;
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ p.tx-dlf-sortinfo ~ form {
+ position: relative;
+ display: block;
+ > div {
+ position: absolute;
+ top: -45px;
+ right: 0;
+ width: 65%;
+ display: flex;
+ font-family: @font-sans-normal;
+ font-size: 14px;
+ label {
+ white-space: nowrap;
+ text-align: right;
+ line-height: 35px;
+ margin: 0 5px 0 0;
+ }
+ select {
+ position: relative;
+ appearance: none;
+ -webkit-appearance: none;
+ border: 1px solid @lightgrey-color;
+ height: 35px;
+ background: white url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCAyMDAiPjxwYXRoIGQ9Ik0xMC4zIDMzLjVsMi4yLTIuMSA3LjctNy44LTIuMS0yLjEtNy44IDcuNy03LjctNy43LTIuMiAyLjEgNy44IDcuOCAyLjEgMi4xeiIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMwNzgwNzgiLz48cGF0aCBkPSJNMTAuMyAxMzMuNWwyLjItMi4xIDcuNy03LjgtMi4xLTIuMS03LjggNy43LTcuNy03LjctMi4yIDIuMSA3LjggNy44IDIuMSAyLjF6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI2MwMCIvPjwvc3ZnPg==") no-repeat right 3px;
+ background-size: auto 100px;
+ padding: 5px 20px 5px 5px;
+ border-radius: 0;
+ font-family: @font-sans-bold;
+ font-size: 14px;
+ line-height: 1;
+ box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
+ color: lighten(@basegrey-color, 20%);
+ .transition();
+ &:hover {
+ background-position: right -47px;
+ border-color: @secondary-color;
+ color: @primary-color;
+ }
+ }
+
+ }
+ }
+ p.tx-dlf-sortinfo {
+ text-align: left;
+ height: 40px;
+ border-bottom: 1px solid @lightgrey-color;
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ h2 {
+ font-size: 36px;
+ }
+ }
+ }
+}
+
+.tx-dlf-listview { // The List itself
+ #leftcol & {
+ .tx-dlf-abstracts {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ li {
+ position: relative;
+ padding: 30px 0;
+ text-align: center;
+ border-bottom: 1px solid @lightgrey-color;
+ &:before {
+ display: none;
+ }
+ .tx-dlf-listview-thumbnail {
+ margin-bottom: 10px;
+ img {
+ max-height: 150px;
+ }
+ }
+ dl {
+ font-family: @font-sans-normal;
+ font-size: 14px;
+ -moz-font-feature-settings: "lnum";
+ -webkit-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+ dt, dd {
+ display: inline;
+ }
+ dt {
+ font-family: @font-sans-bold;
+ &:after {
+ content: ": ";
+ }
+ &.tx-dlf-title {
+ display: none
+ }
+ }
+ dd {
+ &.tx-dlf-title {
+ font-size: 22px;
+ display: block;
+ a {
+ text-decoration: none;
+ font-family: @font-sans-bold;
+ }
+ &:after {
+ display: none;
+ }
+ }
+ &:after {
+ content: "//";
+ margin: 0 5px;
+ }
+ &:last-child:after {
+ display: none;
+ }
+ }
+ }
+ .tx-dlf-morevolumes {
+ position: relative;
+ width: 40px;
+ height: 40px;
+ .text-hide();
+ display: inline-block;
+ .transform(rotate(90deg));
+ .transition();
+ transform-origin: center center;
+ cursor: pointer;
+ &:before {
+ position: absolute;
+ top: -5px;
+ left: 5px;
+ content: ">>";
+ font-size: 40px;
+ line-height: 40px;
+ font-family: @font-sans-bold;
+ color: @secondary-color;
+ display: block;
+ letter-spacing: -.1em;
+ }
+ }
+ .tx-dlf-hidevolumes {
+ display: none;
+ }
+ &.tx-dlf-volumes-open {
+ .tx-dlf-morevolumes {
+ .transform(rotate(-90deg));
+ }
+ }
+ .tx-dlf-volume {
+ position: relative;
+ background: desaturate(lighten(@secondary-color-light, 40%), 15%);
+ padding: 15px 0;
+ display: none;
+ li {
+ border-bottom: 1px solid white;
+ padding: 15px;
+ .tx-dlf-listview-thumbnail img {
+ width: 60px;
+ margin-left: 15px;
+ }
+ dl dd.tx-dlf-title {
+ font-size: 18px;
+ a {
+ color: darken(@secondary-color, 5%);
+ }
+ }
+ &:first-child {
+ border-top: 1px solid white;
+ }
+ }
+ &:before {
+ position: absolute;
+ top: -15px;
+ left: 50%;
+ margin-left: -15px;
+ height: 0;
+ width: 0;
+ border: 15px solid transparent;
+ border-top-width: 0;
+ border-bottom-color: desaturate(lighten(@secondary-color-light, 40%), 15%);
+ content: " ";
+ }
+ }
+ }
+ @media screen and (min-width: @phoneLandscapeViewportWidth) {
+ border-top: 1px solid @lightgrey-color;
+ li {
+ text-align: left;
+ display: flex;
+ align-items: center;
+ line-height: 1.7;
+ flex-wrap: wrap;
+ .tx-dlf-listview-thumbnail {
+ position: relative;
+ margin: 0 25px 0 0;
+ line-height: 0;
+ flex: 0 1 auto;
+ img {
+ width: 90px;
+ height: auto;
+ }
+ &:empty {
+ width: 90px;
+ min-height: 90px;
+ border: 1px solid @lightgrey-color;
+ &:before,
+ &:after {
+ margin: -25px -3px 0 0;
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ width: 1px;
+ height: 50px;
+ background: @lightgrey-color;
+ content: " ";
+ }
+ &:before {
+ .transform(rotate(-45deg));
+ }
+ &:after {
+ .transform(rotate(45deg));
+ }
+ }
+ }
+ dl {
+ flex: 1 1 60%;
+ dd.tx-dlf-title {
+ line-height: 1.2;
+ margin-bottom: 5px;
+ }
+ }
+ .tx-dlf-volume {
+ flex: 0 0 100%;
+ &:before {
+ left: auto;
+ right: 5px;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+.tx-dlf-listview { // styling for collection headers (Image and some paragraphs)
+ > img {
+ width: 100%;
+ height: auto;
+ border: 1px solid @lightgrey-color;
+ margin-top: 20px;
+ max-height: 350px;
+ }
+ > p > img { // Hide old inline images
+ display: none;
+ }
+ @media screen and (min-width: @tabletViewportWidth) {
+ > img {
+ float: left;
+ width: auto;
+ margin: 30px 15px 15px 0;
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Modules/Listsearch.less b/Resources/Private/Less/Modules/Listsearch.less
new file mode 100644
index 00000000..838bf03e
--- /dev/null
+++ b/Resources/Private/Less/Modules/Listsearch.less
@@ -0,0 +1,255 @@
+/*
+ *
+ * List search elements
+ * ================================================
+ * Styling for simple and extended
+ * search forms in list views
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+#rightcol .tx-dlf-enable-offcanvas { // the basic setup for the off-canvas behaviour
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ width: 90%;
+ background: fade(@secondary-color, 97%);
+ z-index: 102;
+ text-align: left;
+ padding: 15px;
+ margin: 0;
+ border: none;
+ color: white;
+ .transform(translateX(100%));
+ .offcanvas-toggle {
+ position: absolute;
+ left: -30px;
+ border-radius: 30px 0 0 30px;
+ bottom: 100px;
+ width: 30px;
+ height: 60px;
+ background: fade(@secondary-color, 97%);
+ &:before {
+ position: absolute;
+ top: 20px;
+ left: 7px;
+ width: 14px;
+ height: 14px;
+ border-radius: 14px;
+ border: 2px solid white;
+ content: " ";
+ }
+ &:after {
+ position: absolute;
+ right: 4px;
+ bottom: 20px;
+ width: 2px;
+ height: 8px;
+ background: white;
+ content: " ";
+ .transform(rotate(-45deg));
+ }
+ }
+ &.open {
+ .transform(translateX(0));
+ z-index: 1100;
+ .offcanvas-toggle {
+ border-color: white;
+ }
+ }
+ h3 {
+ color: white;
+ }
+ @media screen and (min-width: @tabletViewportWidth) {
+ width: 60%;
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ position: relative;
+ top: auto;
+ right: auto;
+ bottom: auto;
+ width: auto;
+ background: white;
+ color: @basegrey-color;
+ .transform(none);
+ .offcanvas-toggle {
+ display: none;
+ }
+ h3 {
+ color: @primary-color;
+ }
+ }
+}
+
+#rightcol .tx-dlf-search { // the scrolling container with search elements
+ position: absolute;
+ top: 60px;
+ right: 15px;
+ bottom: 15px;
+ left: 15px;
+ overflow: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ form { // The input fields and buttons
+ position: relative;
+ margin-bottom: 20px;
+ font-family: @font-sans-normal;
+ font-size: 14px;
+ input {
+ &[type="text"] {
+ position: relative;
+ width: 100%;
+ font-family: @font-sans-normal;
+ font-size: 14px;
+ background: white;
+ border: 0;
+ line-height: 1.1;
+ padding: 4px 10px;
+ height: 40px;
+ color: @basegrey-color;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
+ margin-bottom: 10px;
+ &:focus {
+ color: @secondary-color;
+ }
+ }
+ &[type="submit"] {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 40px;
+ height: 40px;
+ .text-hide();
+ background: lighten(@secondary-color-light, 40%) url('@{control-icons}') no-repeat -560px 0;
+ background-size: auto 120px;
+ border-radius: 20px 0 0 20px;
+ }
+ &[type="radio"] {
+ position: relative;
+ appearance: none;
+ -webkit-appearance: none;
+ border: 2px solid rgba(255, 255, 255, 0.4);
+ width: 20px;
+ height: 20px;
+ border-radius: 10px;
+ vertical-align: middle;
+ &:after {
+ position: absolute;
+ top: 4px;
+ left: 4px;
+ width: 8px;
+ height: 8px;
+ border-radius: 4px;
+ background: white;
+ content: " ";
+ opacity: 0;
+ }
+ &:hover {
+ border-color: white;
+ }
+ &:checked {
+ background: lighten(@secondary-color, 10%);
+ &:after {
+ opacity: 1;
+ }
+ }
+ }
+ }
+ label {
+ margin-right: 10px;
+ &[for="tx-dlf-search-query"] {
+ display: none;
+ }
+ }
+ #tx-dlf-search-suggest {
+ position: absolute;
+ ul {
+ z-index: 300;
+ margin: 10px 0 0 0;
+ padding: 0;
+ background: white;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
+ li {
+ color: @secondary-color;
+ padding: 10px 15px;
+ font-family: @font-sans-bold;
+ border-bottom: 1px solid @lightgrey-color;
+ .no-touchevents & {
+ .transition(all .15s ease-in);
+ cursor: pointer;
+ &:hover {
+ background: white;
+ color: @secondary-color;
+ }
+ }
+ }
+ &:after {
+ position: absolute;
+ top: -10px;
+ left: 20px;
+ width: 0;
+ height: 0;
+ border: 10px solid transparent;
+ border-top-width: 0;
+ border-bottom-color: white;
+ content: " ";
+ z-index: 301;
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ position: relative;
+ top: auto;
+ right: auto;
+ bottom: auto;
+ left: auto;
+ overflow: visible;
+ form {
+ input {
+ &[type="text"] {
+ box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
+ border: 1px solid rgb(175, 175, 175);
+ }
+ &[type="submit"] {
+ top: 1px;
+ right: 1px;
+ height: 38px;
+ }
+ &[type="radio"] {
+ border-color: @secondary-color;
+ height: 16px;
+ width: 16px;
+ border-radius: 8px;
+ &:after {
+ top: 2px;
+ left: 2px;
+ }
+ &:hover {
+ border-color: @primary-color;
+ }
+ }
+ }
+ label {
+ &:hover {
+ color: @primary-color;
+ }
+ }
+ #tx-dlf-search-suggest {
+ ul {
+ background: rgba(@secondary-color, .9);
+ li {
+ color: white;
+ }
+ &:after {
+ border-bottom-color: rgba(@secondary-color, .9);
+ }
+ }
+ }
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Modules/Newspapers.less b/Resources/Private/Less/Modules/Newspapers.less
new file mode 100644
index 00000000..d5fe6f31
--- /dev/null
+++ b/Resources/Private/Less/Modules/Newspapers.less
@@ -0,0 +1,423 @@
+/*
+ *
+ * Newspapers
+ * ================================================
+ * All styles for newspaper specials like
+ * calendar and issue views
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+/* ==============[ general settings for newspaper related things ]======================== */
+.tx-dlf-calendar-years,
+.tx-dlf-calendar {
+ padding: 0 10px 60px 10px;
+ max-height: 100%;
+ overflow: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ text-align: left;
+ font-family: @font-sans-normal;
+ font-feature-settings: 'lnum';
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ position: relative;
+ height: 100%;
+ padding: 30px 30px 60px 30px;
+ }
+}
+
+body.calendar {
+ .document-functions,
+ .view-functions {
+ display: none;
+ }
+ .step-back-button {
+ top: 60px;
+ left: 10px;
+ border: 1px solid @lightgrey-color;
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ .step-back-button {
+ border: 0 none;
+ top: 80px;
+ left: 15px;
+ }
+ }
+}
+
+/* ==============[ all volumes of this newspapers ]======================================== */
+.tx-dlf-calendar-years {
+ .year-anchor {
+ border-bottom: 1px solid @lightgrey-color;
+ line-height: 1.4;
+ font-family: @font-sans-bold;
+ font-size: 14px;
+ padding: 5px 0 10px 50px;
+ a {
+ color: @secondary-color;
+ }
+ }
+ .meta-hint-year {
+ display: none;
+ }
+ ul {
+ li {
+ margin: 20px;
+ a {
+ display: block;
+ padding: 25px 20px;
+ text-align: center;
+ color: @secondary-color;
+ font-family: @font-sans-bold;
+ background: lighten(@secondary-color-light, 40%);
+ }
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ vertical-align: middle;
+ .year-anchor {
+ padding: 0 0 10px 30px;
+ }
+ .meta-hint-year {
+ display: block;
+ opacity: .5;
+ padding: 5px 0 0 30px;
+ font-size: 14px;
+ }
+ ul {
+ position: relative;
+ margin-top: 30px;
+ min-height: calc(100% - 60px);
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-content: center;
+ li {
+ display: inline-block;
+ a {
+ .no-touchevents & {
+ .transition();
+ &:hover {
+ .transform(scale(1.2));
+ }
+ }
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ ul {
+ li {
+ margin: 30px;
+ a {
+ font-size: 20px;
+ font-family: @font-sans-normal;
+ }
+ }
+ }
+ }
+}
+
+/* ==============[ monthly navigation with day dropdowns ]================================ */
+.tx-dlf-calendar {
+ .calendar-list-selection, .list-view {
+ display: none;
+ }
+ .year-anchor {
+ border-bottom: 1px solid @lightgrey-color;
+ line-height: 1.4;
+ font-family: @font-sans-bold;
+ font-size: 14px;
+ padding: 5px 0 10px 50px;
+ a {
+ color: @secondary-color;
+ }
+ }
+ .year {
+ font-size: 20px;
+ margin: 20px 0 -20px 0;
+ font-weight: bold;
+ line-height: 1.4;
+ text-align: center;
+ }
+ .calendar-view {
+ position: relative;
+ margin: 30px 0 0 0;
+ .year {
+ flex: 0 0 calc(100% - 60px);
+ font-family: @font-serif-bold;
+ font-size: 20px;
+ margin: 20px 30px;
+ border-bottom: 1px solid @lightgrey-color;
+ color: @secondary-color;
+ text-shadow: -4px 0 3px white, 4px 0 3px white;
+ height: 16px;
+ }
+ table {
+ width: 100%;
+ margin: 50px 0;
+ text-align: center;
+ border-bottom: 1px solid @lightgrey-color;
+ caption {
+ font-family: @font-sans-bold;
+ border-bottom: 1px solid @lightgrey-color;
+ font-size: 12px;
+ text-transform: uppercase;
+ padding-bottom: 5px;
+ color: @basegrey-color;
+ }
+ tr {
+ td, th {
+ width: 14.285%;
+ padding: 6px;
+ }
+ th {
+ font-family: @font-sans-bold;
+ font-size: 14px;
+ color: lighten(@basegrey-color, 25%);
+ }
+ td {
+ color: @secondary-color;
+ h4,
+ .day-label {
+ position: relative;
+ color: @secondary-color;
+ .transition();
+ font-weight: bold;
+ display: block;
+ border: 1px solid transparent;
+ &:after {
+ position: absolute;
+ top: 19px;
+ left: 50%;
+ margin-left: -5px;
+ width: 0;
+ height: 0;
+ border: 5px solid transparent;
+ border-top-width: 0;
+ border-bottom-color: fade(@secondary-color, 93%);
+ content: " ";
+ opacity: 0;
+ .transform(translateY(15px));
+ .transition();
+ }
+ }
+ h4 {
+ font-family: @font-sans-bold;
+ border-color: rgba(@secondary-color,.2);
+ background: lighten(@secondary-color-light, 40%);
+ border-radius: 100%;
+ }
+ .no-touchevents & {
+ cursor: pointer;
+ }
+ ul {
+ position: absolute;
+ left: 0;
+ right: 0;
+ padding: 10px;
+ margin-top: 10px;
+ background: fade(@secondary-color, 93%);
+ opacity: 0;
+ .transform(scaleY(0));
+ .transition();
+ transform-origin: center top;
+ li {
+ margin: 10px 0;
+ a {
+ display: block;
+ padding: 10px;
+ color: #fff;
+ }
+ }
+ }
+ &.open {
+ h4,
+ .day-label{
+ .transform(scale(1.2));
+ &:after {
+ opacity: 1;
+ .transform(translateY(0));
+ }
+ }
+ ul {
+ opacity: 1;
+ z-index: 10000;
+ .transform(scaleY(1));
+ }
+ }
+ }
+ &:nth-child(even) {
+ td {
+ background: lighten(@secondary-color-light, 40%);
+ h4 {
+ border-color: rgba(@secondary-color,.4);
+ background: white;
+ }
+ }
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ .calendar-list-selection {
+ display: block;
+ }
+ .calendar-list-selection {
+ position: absolute;
+ top: 85px;
+ right: 85px;
+ a {
+ position: relative;
+ border: 1px solid @secondary-color;
+ color: @secondary-color;
+ background: white;
+ font-size: 14px;
+ font-family: @font-sans-bold;
+ line-height: 18px;
+ padding: 10px;
+ height: 40px;
+ border-radius: 30px;
+ display: inline-block;
+ margin-left: 5px;
+ .no-touchevents & {
+ cursor: pointer;
+ }
+ &.active {
+ background: @secondary-color;
+ color: white;
+ &:before {
+ position: absolute;
+ bottom: -5px;
+ left: 50%;
+ margin-left: -5px;
+ width: 0;
+ height: 0;
+ border: 5px solid transparent;
+ border-bottom-width: 0;
+ border-top-color: @secondary-color;
+ content: " ";
+ }
+ }
+ }
+ }
+ .year-anchor {
+ padding: 0 0 10px 30px
+ }
+ .year {
+ font-weight: normal;
+ font-size: 30px;
+ }
+ .calendar-view, .list-view {
+ position: absolute;
+ top: 160px;
+ right: 30px;
+ left: 30px;
+ opacity: 0;
+ .transform(translateY(-100px) scaleY(0));
+ .transition();
+ display: block;
+ pointer-events: none;
+ padding-bottom: 60px;
+ height: 0;
+ &.active {
+ .transform(translateY(0) scaleY(1));
+ opacity: 1;
+ pointer-events: all;
+ }
+ }
+ .calendar-view {
+ margin: 0 -30px;
+ display: flex;
+ flex-wrap: wrap;
+ .month {
+ position: relative;
+ padding: 30px;
+ flex: 1 0 auto;
+ table {
+ width: 100%;
+ margin: 0;
+ tr {
+ td {
+ position: relative;
+ h4,
+ .day-label {
+ padding: 5px;
+ }
+ ul {
+ left: 50%;
+ right: auto;
+ padding: 0 10px;
+ .transform(translateX(-50%));
+ }
+ &.open {
+ h4,
+ .day-label {
+ .transform(scale(1.4));
+ &:after {
+ top: 26px;
+ opacity: 1;
+ .transform(translateY(0));
+ }
+ }
+ ul {
+ z-index: 200;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ .list-view {
+ ul {
+ li {
+ padding: 10px;
+ margin: 10px 0;
+ font-size: 14px;
+ .transition();
+ &:nth-child(even) {
+ background: lighten(@secondary-color-light, 40%);
+ }
+ .listview-date {
+ line-height: 25px;
+ &:after {
+ content: ": ";
+ }
+ }
+ a {
+ background: @secondary-color;
+ color: #fff;
+ display: inline-block;
+ border-radius: 6px;
+ padding: 5px 10px;
+ margin: 0 5px;
+ .transition();
+ &:last-child {
+ margin-right: 0;
+ }
+ .no-touchevents & {
+ &:hover {
+ background: fade(@primary-color, 50%);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ .calendar-list-selection {
+ top: 40px;
+ }
+ .calendar-view {
+ justify-content: center;
+ .month {
+ flex: 0 0 auto;
+ }
+ }
+ }
+}
+
+// EOF
diff --git a/Resources/Private/Less/Modules/Pagegrid.less b/Resources/Private/Less/Modules/Pagegrid.less
new file mode 100644
index 00000000..eb529d08
--- /dev/null
+++ b/Resources/Private/Less/Modules/Pagegrid.less
@@ -0,0 +1,179 @@
+/*
+ *
+ * Gridview
+ * ================================================
+ * All special styles for the gridview which shows
+ * multiple pages of one document side by side
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+body.gridview {
+ .view-functions {
+ display: none;
+ }
+ .step-back-button {
+ top: 60px;
+ left: 10px;
+ border: 1px solid @lightgrey-color;
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ .step-back-button {
+ border: 0 none;
+ top: 80px;
+ left: 15px;
+ }
+ }
+}
+
+.tx-dlf-pagegrid-list {
+ position: absolute;
+ top: 60px;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ overflow: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ li {
+ width: 100px;
+ height: 160px;
+ display: inline-block;
+ margin: 10px;
+ .no-touchevents & {
+ .transition();
+ &:hover {
+ .transform(scale(1.1));
+ }
+ }
+ img {
+ position: relative;
+ height: 100%;
+ width: 100%;
+ object-fit: contain;
+ max-height: 150px;
+ }
+ .tx-dlf-pagegrid-pagination {
+ margin-top: 5px;
+ font-weight: 700;
+ font-size: 12px;
+ color: @secondary-color;
+ }
+ &.current {
+ .transform(scale(1.1));
+ img {
+ border: 6px solid @secondary-color;
+ }
+ }
+ }
+ @media screen and (min-width: @tabletViewportWidth) {
+ top: 0;
+ padding-top: 70px;
+ li {
+ width: 120px;
+ height: 180px;
+ margin: 20px;
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ li {
+ width: 150px;
+ height: 200px;
+ .tx-dlf-pagegrid-pagination {
+ font-size: 14px;
+ }
+ }
+ }
+}
+
+.tx-dlf-pagegrid-pagebrowser { // The stupid old paging. YEAH!
+ position: absolute;
+ bottom: 15px;
+ height: 1px;
+ width: 290px;
+ left: 50%;
+ margin-left: -145px;
+ line-height: 0;
+ background: green;
+ .text-hide();
+ a {
+ position: absolute;
+ bottom: 0;
+ display: none;
+ width: 40px;
+ height: 40px;
+ &:before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: -1px;
+ width: 40px;
+ height: 40px;
+ border-radius: 20px;
+ background: white url('@{control-icons}') no-repeat 0 0;
+ content: " ";
+ }
+ &:first-child {
+ display: block;
+ left: 0;
+ &:before {
+ background-position: -240px -80px;
+ }
+ }
+ &:last-child {
+ display: block;
+ right: 0;
+ &:before {
+ background-position: -280px -80px;
+ }
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ height: 70px;
+ padding: 15px;
+ font-family: @font-sans-bold;
+ font-size: 14px;
+ line-height: 30px;
+ color: white;
+ white-space: nowrap;
+ width: auto;
+ margin: 0;
+ .transform(translateX(-50%));
+ -moz-font-feature-settings: "lnum";
+ -webkit-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+ background: fade(@secondary-color, 90%);
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
+ a,
+ a:first-child,
+ a:last-child {
+ color: @secondary-color;
+ position: relative;
+ display: inline-block;
+ bottom: auto;
+ margin: 0 3px;
+ left: auto;
+ right: auto;
+ background: white;
+ border-radius: 20px;
+ width: 30px;
+ height: 30px;
+ &:before {
+ display: none;
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ font-size: 18px;
+ line-height: 40px;
+ a,
+ a:first-child,
+ a:last-child {
+ width: 40px;
+ height: 40px;
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Sidebar.less b/Resources/Private/Less/Sidebar.less
new file mode 100644
index 00000000..6c83a126
--- /dev/null
+++ b/Resources/Private/Less/Sidebar.less
@@ -0,0 +1,771 @@
+/*
+ *
+ * Sidebar
+ * ================================================
+ * Special styles for the sidebar which
+ * represents the base control unit
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+/* ==============[ Basic settings for the control bar ]===== */
+.control-bar {
+ -moz-font-feature-settings: "lnum";
+ -webkit-font-feature-settings: "lnum";
+ font-feature-settings: "lnum";
+ .fullscreen & {
+ width: 0;
+ overflow: hidden;
+ }
+ .static & {
+ .transition(none);
+ }
+ .header-bar { // header bar (with logo, secondary navigation and language switch)
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ min-height: 50px;
+ z-index: 100;
+ overflow: hidden;
+ background: @primary-color;
+ font-family: @font-sans-normal;
+ .brand {
+ position: absolute;
+ top: 15px;
+ left: 10px;
+ height: 22px;
+ text-transform: uppercase;
+ white-space: nowrap;
+ .logo-replacement {
+ display: none;
+ }
+ a {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ color: white;
+ font-size: 14px;
+ line-height: 28px;
+ text-align: left;
+ background: url('@{header-logo}') no-repeat left center;
+ background-size: auto 100%;
+ display: block;
+ padding-left: 80px;
+ &:before {
+ content: "> ";
+ }
+ }
+ }
+ nav {
+ .nav-toggle {
+ position: absolute;
+ top: 13px;
+ right: 15px;
+ width: 25px;
+ height: 30px;
+ padding: 0;
+ border: 0 none;
+ background: transparent;
+ outline: none;
+ .nav-label {
+ display: none;
+ }
+ .nav-button-bar {
+ position: relative;
+ width: 100%;
+ height: 2px;
+ border-radius: 2px;
+ margin-bottom: 4px;
+ background: white;
+ display: block;
+ .transition();
+ }
+ &.active {
+ .nav-button-bar {
+ &:nth-of-type(2) {
+ .transform(translateY(6px) rotate(45deg));
+ }
+ &:nth-of-type(3) {
+ .transform(scale(0));
+ opacity: 0;
+ }
+ &:nth-of-type(4) {
+ .transform(translateY(-6px) rotate(-45deg));
+ }
+ }
+ }
+ }
+ .language-nav {
+ position: absolute;
+ right: 45px;
+ top: 15px;
+ font-size: 12px;
+ li {
+ position: relative;
+ display: inline-block;
+ margin-right: 4px;
+ a,
+ span {
+ position: relative;
+ padding: 6px;
+ display: block;
+ color: white;
+ }
+ &.text-muted {
+ opacity: .4;
+ }
+ }
+ &:before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ margin-left: -6px;
+ content: "/";
+ opacity: 0.2;
+ font-size: 24px;
+ color: white;
+ font-weight: 100;
+ text-align: center;
+ width: 10px;
+ }
+ }
+ .secondary-nav {
+ position: relative;
+ top: 55px;
+ width: 100%;
+ text-align: left;
+ padding-bottom: 0;
+ max-height: 0;
+ opacity: 0;
+ background: @secondary-color;
+ .transition(all .3s ease-out);
+ border-top: 2px solid white;
+ font-family: @font-sans-bold;
+ li {
+ a {
+ padding: 15px;
+ display: block;
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+ color: white;
+ }
+ &:first-child {
+ a {
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
+ }
+ }
+ }
+ &.open {
+ padding-bottom: 65px;
+ max-height: 320px;
+ min-height: 60px;
+ opacity: 1;
+ }
+ }
+ }
+ .fullscreen & {
+ min-height: 0;
+ }
+ }
+ .step-back-button {
+ position: absolute;
+ top: 120px;
+ left: 15px;
+ width: 40px;
+ height: 40px;
+ border-radius: 20px;
+ z-index: 50;
+ .text-hide();
+ background: white url('@{control-icons}') no-repeat -600px -40px;
+ background-size: auto 120px;
+ }
+ .metadata-wrapper, .toc-wrapper { // metadata and table of contents (as off canvas elements in mobile)
+ position: absolute;
+ top: 55px;
+ bottom: 0;
+ width: 90%;
+ background: fade(@secondary-color, 97%);
+ z-index: 102;
+ text-align: left;
+ padding: 15px;
+ .transition();
+ .offcanvas-toggle {
+ position: absolute;
+ bottom: 5px;
+ width: 30px;
+ height: 60px;
+ background: fade(@secondary-color, 97%) url('@{control-icons}') no-repeat 0 0;
+ background-size: auto 120px;
+ border: 1px solid fade(white, 50%);
+ }
+ &.open {
+ .transform(translateX(0));
+ z-index: 1100;
+ .offcanvas-toggle {
+ border-color: white;
+ }
+ }
+ h3 {
+ display: none;
+ }
+ }
+ .metadata-wrapper {
+ right: 0;
+ .transform(translateX(100%));
+ .offcanvas-toggle {
+ left: -30px;
+ border-radius: 30px 0 0 30px;
+ background-position: -442px 9px;
+ border-right: 0 none;
+ }
+ .metadata-toggle {
+ display: none;
+ }
+
+ }
+ .toc-wrapper {
+ left: 0;
+ .transform(translateX(-100%));
+ .offcanvas-toggle {
+ right: -30px;
+ border-radius: 0 30px 30px 0;
+ background-position: -447px -30px;
+ border-left: 0 none;
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 33%;
+ z-index: 1100;
+ color: @basegrey-color;
+ border-right: 2px solid white;
+ .transition();
+ &:before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 70px;
+ background: @primary-color;
+ content: " ";
+ pointer-events: none;
+ }
+ &:after {
+ position: absolute;
+ top: 90px;
+ right: 0;
+ bottom: 15px;
+ width: 1px;
+ content: " ";
+ background: @lightgrey-color;
+ }
+ .header-bar {
+ position: absolute;
+ top: 10px;
+ background: transparent;
+ overflow: visible;
+ .brand a {
+ font-size: 12px;
+ }
+ &:after {
+ display: none;
+ content: none;
+ }
+ nav {
+ .nav-toggle {
+ top: 12px;
+ right: 12px;
+ }
+ .language-nav {
+ right: 35px;
+ top: 14px;
+ }
+ .secondary-nav {
+ position: absolute;
+ top: -5px;
+ right: 0;
+ width: 200px;
+ background: fade(@secondary-color, 97%);
+ max-height: none;
+ font-size: 14px;
+ .transform(scaleX(0));
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
+ padding: 15px;
+ border-top: 0;
+ &:before {
+ position: absolute;
+ top: 20px;
+ left: -10px;
+ width: 0;
+ height: 0;
+ border: 10px solid transparent;
+ border-left-width: 0;
+ border-right-color: fade(@secondary-color, 97%);;
+ content: " ";
+ }
+ li {
+ a {
+ padding: 0 10px;
+ border: 0 none;
+ line-height: 30px;
+ .transition();
+ color: white;
+ &:hover {
+ background: rgba(255, 255, 255, 0.2);
+ }
+ }
+ &:first-child {
+ a {
+ border: 0 none;
+ }
+ }
+ }
+ &.open {
+ padding: 15px;
+ opacity: 1;
+ right: -220px;
+ .transform(scaleX(1));
+ }
+ }
+ }
+ }
+ .step-back-button {
+ top: 80px;
+ left: 20px;
+ width: auto;
+ background: transparent;
+ font-size: 12px;
+ color: @secondary-color;
+ font-family: @font-sans-bold;
+ line-height: 1.1;
+ text-transform: uppercase;
+ cursor: pointer;
+ &:before {
+ content: "<";
+ font-size: 16px;
+ margin-right: 5px;
+ }
+ }
+ .ctrldata-container {
+ position: absolute;
+ top: 105px;
+ right: 15px;
+ bottom: 20px;
+ left: 15px;
+ overflow: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+ .metadata-wrapper, .toc-wrapper {
+ position: relative;
+ .transform(translateX(0));
+ text-align: left;
+ background: transparent;
+ padding: 20px 0;
+ width: 100%;
+ .offcanvas-toggle {
+ display: none;
+ }
+ }
+ .metadata-wrapper {
+ top: auto;
+ bottom: auto;
+ padding-bottom: 40px;
+ .transition();
+ .tx-dlf-metadata {
+ overflow: hidden;
+ }
+ .metadata-toggle {
+ position: absolute;
+ bottom: 0;
+ right: 20px;
+ padding: 4px 20px 4px 0;
+ font-size: 12px;
+ color: @primary-color;
+ display: block;
+ cursor: pointer;
+ &:before {
+ position: absolute;
+ top: -5px;
+ right: -5px;
+ width: 30px;
+ height: 30px;
+ background: white url('@{control-icons}') no-repeat -564px -84px;
+ background-size: auto 120px;
+ content: " ";
+ .transform(scale(.6));
+ }
+ }
+ }
+ .toc-wrapper {
+ top: auto;
+ bottom: auto;
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ width: 25%;
+ .header-bar {
+ .brand {
+ top: 5px;
+ left: 20px;
+ height: 40px;
+ a {
+ font-size: 11px;
+ line-height: 11px;
+ padding: 30px 0 0 31px;
+ background-size: auto 30px;
+ background-position: 0 0;
+ }
+ }
+ }
+ .metadata-wrapper, .toc-wrapper {
+ padding: 20px 5px;
+ }
+ .metadata-wrapper {
+ padding-bottom: 40px;
+ }
+ }
+ @media screen and (min-width: 1600px) {
+ width: 22%;
+ }
+ @media screen and (min-width: 2000px) {
+ width: 20%;
+ }
+}
+
+/* ==============[ toc (inside the respective wrap > see above) ]========================= */
+.tx-dlf-toc {
+ position: relative;
+ height: 100%;
+ ul.toc {
+ position: relative;
+ overflow: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ height: 100%;
+ line-height: 1.2;
+ font-size: 14px;
+ border-top: 1px solid @lightgrey-color;
+ ul li {
+ position: relative;
+ &.submenu {
+ a {
+ padding-right: 10px;
+ }
+ &:before {
+ position: absolute;
+ top: 15px;
+ right: 0;
+ width: 0;
+ height: 0;
+ content: " ";
+ border: 3px solid transparent;
+ border-bottom-width: 0;
+ border-top-color: white;
+ }
+ }
+ &.current {
+ background: white;
+ a {
+ color: @secondary-color;
+ .meta-type-icon {
+ background-position-y: -30px !important;
+ }
+ }
+ }
+ &.placeholder {
+ position: relative;
+ padding: 15px 0 15px 30px;
+ color: white;
+ font-family: @font-sans-bold;
+ &:before {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 12px;
+ width: 1px;
+ background: white;
+ opacity: .4;
+ content: " ";
+ }
+ &:after {
+ position: absolute;
+ top: 16px;
+ left: 3px;
+ height: 15px;
+ font-size: 24px;
+ line-height: 0;
+ content: "...";
+ background: lighten(@secondary-color, 1%);
+ }
+ }
+ a, span.a, > span.title {
+ position: relative;
+ padding: 8px 0 8px 30px;
+ display: block;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ color: white;
+ .pagination {
+ margin-left: 3px;
+ opacity: 0.4;
+ }
+ .meta-type-icon {
+ position: absolute;
+ top: 1px;
+ left: -2px;
+ width: 30px;
+ height: 30px;
+ text-indent: 100%;
+ overflow: hidden;
+ background: url('@{basepath}Resources/Public/Images/viewerTocIcons.svg') no-repeat -90px 0;
+ background-size: auto 60px;
+ display: block;
+ .transform(scale(.6));
+ &.meta-type-Abbildung {
+ background-position: 0 0;
+ }
+ &.meta-type-Werbung {
+ background-position: -30px 0;
+ }
+ &.meta-type-Artikel {
+ background-position: -60px 0;
+ }
+ }
+ }
+ span.a, > span.title {
+ opacity: 0.5;
+ font-weight: normal;
+ }
+ }
+ }
+ .tx-dlf-wincontent > ul.toc > li > a { // Based on old shitty markup, it selects the issue title
+ color: white;
+ font-size: 16px;
+ padding: 5px 0;
+ display: block;
+ .meta-type-icon {
+ margin-right: 5px;
+ opacity: .6;
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ &:after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ height: 1px;
+ background: @lightgrey-color;
+ content: " ";
+ }
+ ul.toc {
+ font-size: 12px;
+ .transition();
+ ul li {
+ &:nth-child(even) {
+ background: lighten(@secondary-color-light, 40%);
+ }
+ &.submenu {
+ a {
+ padding-right: 15px;
+ }
+ &:before {
+ top: 12px;
+ right: 5px;
+ border-top-color: fade(@secondary-color-light, 40%);
+ }
+ }
+ &.current {
+ background: @secondary-color-light;
+ a {
+ color: white;
+ .meta-type-icon {
+ background-position-y: 0 !important;
+ opacity: .8;
+ }
+ }
+ }
+ &.placeholder {
+ padding: 20px 0 20px 30px;
+ color: lighten(@basegrey-color, 30%);
+ cursor: pointer;
+ &:before {
+ left: 10px;
+ background: @secondary-color-light;
+ }
+ &:after {
+ top: 20px;
+ left: 1px;
+ background: white;
+ }
+ }
+ a, span.a, > span.title {
+ padding: 6px 0 6px 20px;
+ margin: 2px 0;
+ color: @basegrey-color;
+ .meta-type-icon {
+ top: -3px;
+ left: -6px;
+ opacity: .5;
+ .transform(scale(.5));
+ background-position: -90px -30px;
+ &.meta-type-Abbildung {
+ background-position: 0 -30px;
+ }
+ &.meta-type-Werbung {
+ background-position: -30px -30px;
+ }
+ &.meta-type-Artikel {
+ background-position: -60px -30px;
+ }
+ }
+ }
+ .no-touchevents & a {
+ .transition();
+ &:hover {
+ background: fade(@secondary-color-light, 30%);
+ }
+ }
+ }
+ }
+ .tx-dlf-wincontent > ul.toc > li > a { // Based on old shitty markup, it selects the issue title (again)
+ color: @basegrey-color;
+ }
+ }
+}
+
+/* ==============[ metadata (inside the respective wrap > see above) ]==================== */
+.tx-dlf-metadata {
+ position: relative;
+ overflow: hidden;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ height: 100%;
+ line-height: 1.4;
+ h1 {
+ font-size: 20px;
+ font-weight: normal;
+ font-family: @font-serif-bold;;
+ border-bottom: 1px solid @lightgrey-color;
+ padding-bottom: 10px;
+ margin-bottom: 5px;
+ line-height: 1.1;
+ color: white;
+ }
+ dl {
+ color: white;
+ margin: 20px 0;
+ dt, dd {
+ display: block;
+ }
+ dt {
+ font-size: 12px;
+ font-family: @font-serif-bold;;
+ margin-top: 20px;
+ &:first-child {
+ margin-top: 0;
+ }
+ }
+ dd a {
+ color: white;
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ line-height: 1.4;
+ h1 {
+ color: black;
+ margin-bottom: -5px;
+ }
+ dl {
+ color: black;
+ border-bottom: 1px solid @lightgrey-color;
+ padding: 10px 0;
+ margin: 0;
+ dt, dd {
+ font-size: 14px;
+ display: inline;
+ line-height: 20px;
+ }
+ dd {
+ margin-right: 4px;
+ & + dd {
+ display: inline-block;
+ }
+ &.tx-dlf-metadata-collection {
+ background: lighten(@lightgrey-color,5%);
+ border-radius: 20px;
+ padding: 2px 5px;
+ margin-right: 6px;
+ }
+ &.tx-dlf-metadata-author a {
+ background: lighten(@secondary-color-light,25%);
+ border-radius: 20px;
+ padding: 2px 5px;
+ margin-right: 2px;
+ }
+ }
+ dt {
+ &:before {
+ position: relative;
+ width: 100%;
+ height: 1px;
+ display: table;
+ clear: both;
+ content: " ";
+ }
+ &:after {
+ content: ": ";
+ }
+ }
+ /*
+ * Disable following styles in order to match new (a bit buggy) meta data markup
+ *
+ * dt.tx-dlf-type {
+ * display: none;
+ * }
+ * dd.tx-dlf-type {
+ * font-size: 12px;
+ * font-weight: 400;
+ * opacity: 0.5;
+ * display: inline;
+ * }
+ * dt.tx-dlf-title {
+ * display: none;
+ * }
+ * dd.tx-dlf-title {
+ * font-weight: 300;
+ * font-size: 22px;
+ * a {
+ * color: @slub-basegrey;
+ * }
+ * }
+ *
+ */
+ &:nth-of-type(n+2) {
+ display: none;
+ }
+ dd {
+ a {
+ color: black;
+ &[href*="digital.slub"] {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: inline-block;
+ width: 80%;
+ line-height: 16px;
+ vertical-align: text-bottom;
+ }
+ }
+ }
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Structure.less b/Resources/Private/Less/Structure.less
new file mode 100644
index 00000000..3f3837c5
--- /dev/null
+++ b/Resources/Private/Less/Structure.less
@@ -0,0 +1,360 @@
+/*
+ *
+ * Structure
+ * ================================================
+ * Basic definition of body, containers and other
+ * structural elements
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+/* ==============[ basic html element settings ]========================================== */
+* {
+ box-sizing: border-box;
+}
+
+html, body {
+ position: relative;
+ height: 100%;
+}
+
+body {
+ text-align: center;
+ font-family: @font-serif-normal;
+ background: @secondary-color-light;
+ line-height: 1;
+}
+
+a {
+ color: @primary-color;
+ text-decoration: none;
+}
+
+/* ==============[ 'window' structure with small offset ]================================= */
+.main-wrapper {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 12px;
+ left: 0;
+ background: white;
+ box-shadow: 0 3px 8px rgba(0, 0, 0, 0.2);
+ overflow: hidden;
+ .transition();
+ .hidden & {
+ opacity: 0;
+ }
+ .static & {
+ .transition(none);
+ }
+ .fullscreen & {
+ bottom: 0;
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ top: 5px;
+ right: 5px;
+ bottom: 5px;
+ left: 5px;
+ .fullscreen & {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ top: 20px;
+ right: 20px;
+ bottom: 25px;
+ left: 20px;
+ }
+}
+
+.document-view {
+ position: absolute;
+ top: 55px;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ .transition();
+ .fullscreen & {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+ .static & {
+ .transition(none);
+ }
+ #tx-dlf-map,
+ .tx-dlf-map {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+ .tx-dlf-logobar {
+ position: absolute;
+ pointer-events: none;
+ right: 0;
+ bottom: 80px;
+ left: 0;
+ height: 30px;
+ opacity: .15;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ li {
+ position: relative;
+ flex: 0 0 auto;
+ padding: 0 15px;
+ height: 40px;
+ img {
+ max-height: 30px;
+ -webkit-filter: grayscale(100%);
+ filter: grayscale(100%);
+ }
+ }
+ }
+ .document-functions {
+ .provider {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ text-align: left;
+ background: rgba(white, 92%);
+ display: flex;
+ align-items: center;
+ padding: 10px;
+ border-bottom: 1px solid @lightgrey-color;
+ .transition();
+ > a {
+ display: none; // Kill the logo inside the control bar in order to use the new logobar (.tx-dlf-logobar)
+ }
+ .mobile-meta {
+ position: relative;
+ font-size: 12px;
+ line-height: 1.3;
+ flex: 0 1 auto;
+ dt {
+ display: none;
+ }
+ dd {
+ &.tx-dlf-title a {
+ position: relative;
+ font-weight: bold;
+ color: @basegrey-color;
+ font-size: 16px;
+ }
+ }
+ }
+ .mobile-controls {
+ position: absolute;
+ bottom: -50px;
+ right: 15px;
+ display: flex;
+ form { // The goto page button
+ position: relative;
+ width: 40px;
+ height: 40px;
+ flex: 0 0 40px;
+ margin-right: 5px;
+ label {
+ display: none;
+ }
+ select {
+ position: relative;
+ width: 40px;
+ height: 40px;
+ padding-left: 40px;
+ background: white url('@{control-icons}') no-repeat -600px -80px;
+ background-size: auto 120px;
+ outline: none;
+ border-radius: 20px;
+ -webkit-appearance: none;
+ border: 0 none;
+ &[disabled] {
+ display: none;
+ }
+ }
+ }
+ .fullscreen { // The fullscreen button
+ position: relative;
+ flex: 0 0 40px;
+ width: 40px;
+ height: 40px;
+ border-radius: 20px;
+ .text-hide();
+ z-index: 98;
+ background: white;
+ &:before,
+ &:after {
+ position: absolute;
+ width: 12px;
+ height: 12px;
+ background: url('@{control-icons}') no-repeat -576px -54px;
+ background-size: auto 120px;
+ display: block;
+ content: " ";
+ .transition();
+ pointer-events: none;
+ .static & {
+ .transition(none);
+ }
+ }
+ &:before {
+ top: 9px;
+ right: 9px;
+ }
+ &:after {
+ bottom: 9px;
+ left: 9px;
+ .transform(rotate(180deg));
+ }
+ &.active {
+ &:before {
+ .transform(rotate(180deg));
+ }
+ &:after {
+ .transform(rotate(0));
+ }
+ }
+ }
+ }
+ .fullscreen & {
+ .transform(translateY(-100%));
+ }
+ }
+ }
+ @media screen and (min-width: @phoneLandscapeViewportWidth) {
+ .tx-dlf-logobar {
+ top: 5px;
+ right: 5px;
+ bottom: auto;
+ left: auto;
+ width: 40%;
+ height: 40px;
+ z-index: 200;
+ justify-content: flex-end;
+ li {
+ flex: 0 1 auto;
+ height: auto;
+ img {
+ max-width: 100%;
+ }
+ }
+ }
+ .document-functions .provider {
+ padding-right: 40%;
+ }
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ top: 0;
+ left: 33%;
+ padding: 0;
+ #tx-dlf-map {
+ top: 0;
+ }
+ .tx-dlf-logobar {
+ top: auto;
+ right: 15px;
+ bottom: 15px;
+ z-index: auto;
+ }
+ .document-functions {
+ .provider {
+ top: 10px;
+ left: 10px;
+ right: auto;
+ background: transparent;
+ padding: 0;
+ .mobile-meta,
+ .mobile-controls {
+ display: none;
+ }
+ }
+ }
+ }
+ @media screen and (min-width: @desktopViewportWidth) {
+ left: 25%;
+ }
+ @media screen and (min-width: 1600px) {
+ left: 22%;
+ }
+ @media screen and (min-width: 2000px) {
+ left: 20%;
+ }
+}
+
+/* ==============[ empty pageview element message ]======================================= */
+.tx-dlf-empty {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ display: flex;
+ align-items: center;
+ padding: 30px;
+ font-family: @font-sans-bold;
+ line-height: 1.4;
+ a {
+ position: relative;
+ color: @secondary-color;
+ padding-bottom: 60px;
+ .error-arrow {
+ position: absolute;
+ bottom: 0;
+ left: 50%;
+ width: 40px;
+ height: 40px;
+ margin-left: -20px;
+ text-align: center;
+ font-size: 40px;
+ line-height: 40px;
+ font-family: @font-sans-normal;
+ .transform(rotate(-45deg));
+ opacity: .3;
+ }
+ }
+ @media screen and (min-width: @phoneLandscapeViewportWidth) {
+ padding: 30px 20%;
+ a {
+ padding: 0;
+ .error-arrow {
+ display: none;
+ }
+ }
+ }
+ @media screen and (min-width: @tabletViewportWidth) {
+ a {
+ padding-top: 300px;
+ &:before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ width: 260px;
+ height: 260px;
+ border-radius: 130px;
+ margin-left: -130px;
+ border: 1px solid @lightgrey-color;
+ content: " ";
+ }
+ &:after {
+ position: absolute;
+ top: 30px;
+ left: 50%;
+ width: 1px;
+ height: 200px;
+ background: @lightgrey-color;
+ content: " ";
+ .transform(rotate(-45deg));
+ }
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Themes/Basictheme.less b/Resources/Private/Less/Themes/Basictheme.less
new file mode 100644
index 00000000..f208c27e
--- /dev/null
+++ b/Resources/Private/Less/Themes/Basictheme.less
@@ -0,0 +1,29 @@
+/*
+ *
+ * Basic Styles
+ * ================================================
+ * Color typography and adjustments as a
+ * basic styling for out of the box implementation
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+// The paths to external Resources
+@header-logo: '@{basepath}Resources/Public/Images/Basiclogo.svg';
+@control-icons: '@{basepath}Resources/Public/Images/viewerControlIcons.svg';
+
+// Colors
+@primary-color: rgb(0, 119, 204);
+@secondary-color: rgb(102, 102, 102);
+@secondary-color-light: lighten(@secondary-color, 30%);
+@basegrey-color: rgb(51, 51, 51);
+@lightgrey-color: lighten(@basegrey-color, 65%);
+
+// Typography
+@font-sans-normal: 'Calibri', 'Helvetica', Sans-serif;
+@font-sans-bold: 'Calibri-Bold', 'Helvetica', Sans-serif;
+@font-serif-normal: 'Rockwell', 'Georgia', "Times New Roman", 'Times', serif;
+@font-serif-bold: 'Rockwell-Bold', 'Georgia', 'Times', serif;
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Less/Themes/Slubtheme.less b/Resources/Private/Less/Themes/Slubtheme.less
new file mode 100644
index 00000000..89c00c8f
--- /dev/null
+++ b/Resources/Private/Less/Themes/Slubtheme.less
@@ -0,0 +1,65 @@
+/*
+ *
+ * SLUB Styles
+ * ================================================
+ * Color typography and adjustments
+ * for custom styling
+ *
+ * Author: Thomas Jung
+ *
+ */
+
+// The paths to external Resources
+@header-logo: '@{basepath}Resources/Public/Images/Slub/Slublogo.svg';
+@control-icons: '@{basepath}Resources/Public/Images/Slub/viewerControlIcons.svg';
+
+// Colors
+@primary-color: rgb(204, 0, 0);
+@secondary-color: rgb(17, 102, 119);
+@secondary-color-light: desaturate(lighten(@secondary-color, 27%), 22%);
+@basegrey-color: rgb(51, 51, 51);
+@lightgrey-color: lighten(@basegrey-color, 65%);
+
+// Typography
+@font-sans-normal: 'VistaSansBook', 'Calibri', 'Helvetica', Sans-serif;
+@font-sans-bold: 'VistaSansBold', 'Calibri-Bold', 'Helvetica', Sans-serif;
+@font-serif-normal: 'VistaSlabReg', 'Rockwell', 'Georgia', "Times New Roman", 'Times', serif;
+@font-serif-bold: 'VistaSlabBold', 'Rockwell-Bold', 'Georgia', 'Times', serif;
+
+// Dedicated restyling
+.control-bar {
+ .header-bar .brand a {
+ line-height: 24px;
+ }
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ &:before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: -60px;
+ height: 85px;
+ background: url('@{basepath}Resources/Public/Images/Slub/headerbarBg.svg') no-repeat left top;
+ background-size: 100% 100%;
+ content: " ";
+ pointer-events: none;
+ }
+ .header-bar nav {
+ .nav-toggle {
+ right: 0;
+ }
+ .language-nav {
+ right: 24px;
+ }
+ }
+ }
+}
+
+.document-functions {
+ @media screen and (min-width: @tabletLandscapeViewportWidth) {
+ > ul {
+ left: 40px;
+ }
+ }
+}
+
+// EOF
\ No newline at end of file
diff --git a/Resources/Private/Partials/EmptyPageView.html b/Resources/Private/Partials/EmptyPageView.html
new file mode 100644
index 00000000..41412ba3
--- /dev/null
+++ b/Resources/Private/Partials/EmptyPageView.html
@@ -0,0 +1,9 @@
+{namespace dc=Slub\DigitalCollections\ViewHelpers}
+
+
+
{content}
+
+ {sidebar}
+
+
+
diff --git a/Resources/Private/Partials/KitodoControlBar.html b/Resources/Private/Partials/KitodoControlBar.html
new file mode 100644
index 00000000..47643f12
--- /dev/null
+++ b/Resources/Private/Partials/KitodoControlBar.html
@@ -0,0 +1,32 @@
+
+
+
diff --git a/Resources/Private/Partials/KitodoPageView.html b/Resources/Private/Partials/KitodoPageView.html
new file mode 100644
index 00000000..7c717d8a
--- /dev/null
+++ b/Resources/Private/Partials/KitodoPageView.html
@@ -0,0 +1,366 @@
+{namespace dc=Slub\DigitalCollections\ViewHelpers}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/Private/Partials/Matomo.html b/Resources/Private/Partials/Matomo.html
new file mode 100644
index 00000000..8f5a846b
--- /dev/null
+++ b/Resources/Private/Partials/Matomo.html
@@ -0,0 +1,38 @@
+{namespace dc=Slub\DigitalCollections\ViewHelpers}
+
+
+
+
diff --git a/Resources/Private/Partials/Toolbox.html b/Resources/Private/Partials/Toolbox.html
new file mode 100644
index 00000000..82954481
--- /dev/null
+++ b/Resources/Private/Partials/Toolbox.html
@@ -0,0 +1,188 @@
+{namespace dc=Slub\DigitalCollections\ViewHelpers}
+
+
+
+
+
+
diff --git a/Resources/Private/Plugins/Kitodo/Collections.html b/Resources/Private/Plugins/Kitodo/Collections.html
new file mode 100644
index 00000000..aab13058
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/Collections.html
@@ -0,0 +1,14 @@
+
+
+
+
+ ###THUMBNAIL###
+
+
+
+
+
diff --git a/Resources/Private/Plugins/Kitodo/Gridview.html b/Resources/Private/Plugins/Kitodo/Gridview.html
new file mode 100644
index 00000000..46a2b2ca
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/Gridview.html
@@ -0,0 +1,11 @@
+
+
+
+
+ ###THUMBNAIL###
+
+
+
+
+###PAGEBROWSER###
+
diff --git a/Resources/Private/Plugins/Kitodo/Listview.html b/Resources/Private/Plugins/Kitodo/Listview.html
new file mode 100644
index 00000000..a7bec281
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/Listview.html
@@ -0,0 +1,37 @@
+
+###LISTTITLE###
+###LISTTHUMBNAIL###
+###LISTDESCRIPTION###
+###COUNT###
+###SORTING###
+###PAGEBROWSER###
+
+
+
+ ###THUMBNAIL###
+
+ ###METADATA###
+
+ ###PREVIEW###
+
+
+ Details einblenden
+ Details ausblenden
+
+
+
+ ###SUBTHUMBNAIL###
+
+ ###SUBMETADATA###
+
+ ###SUBPREVIEW###
+
+
+
+
+
+
+
+
+###PAGEBROWSER###
+
diff --git a/Resources/Private/Plugins/Kitodo/Metadata.html b/Resources/Private/Plugins/Kitodo/Metadata.html
new file mode 100644
index 00000000..95d9a211
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/Metadata.html
@@ -0,0 +1,7 @@
+
+
+
+ ###METADATA###
+
+
+
diff --git a/Resources/Private/Plugins/Kitodo/NavigationPagecontrol.html b/Resources/Private/Plugins/Kitodo/NavigationPagecontrol.html
new file mode 100644
index 00000000..31847fa3
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/NavigationPagecontrol.html
@@ -0,0 +1,12 @@
+
+
+ ###FIRST###
+ ###BACK###
+ ###PREVIOUS###
+
+
+ ###NEXT###
+ ###FORWARD###
+ ###LAST###
+
+
diff --git a/Resources/Private/Plugins/Kitodo/NavigationViewfunction-deactivated.html b/Resources/Private/Plugins/Kitodo/NavigationViewfunction-deactivated.html
new file mode 100644
index 00000000..cf7f1b3b
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/NavigationViewfunction-deactivated.html
@@ -0,0 +1,13 @@
+
+###PAGESELECT###
+
+ ###ROTATE_LEFT###
+ ###ROTATE_RIGHT###
+ ###ROTATE_RESET###
+
+
+ ###ZOOM_IN###
+ ###ZOOM_OUT###
+ ###ZOOM_FULLSCREEN###
+
+
diff --git a/Resources/Private/Plugins/Kitodo/NavigationViewfunction.html b/Resources/Private/Plugins/Kitodo/NavigationViewfunction.html
new file mode 100644
index 00000000..611a301a
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/NavigationViewfunction.html
@@ -0,0 +1,13 @@
+
+###PAGESELECT###
+
+ ###ROTATE_LEFT###
+ ###ROTATE_RIGHT###
+ ###ROTATE_RESET###
+
+
+ ###ZOOM_IN###
+ ###ZOOM_OUT###
+ ###ZOOM_FULLSCREEN###
+
+
diff --git a/Resources/Private/Plugins/Kitodo/NewspaperCalendar.html b/Resources/Private/Plugins/Kitodo/NewspaperCalendar.html
new file mode 100644
index 00000000..e5402031
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/NewspaperCalendar.html
@@ -0,0 +1,57 @@
+
+
+
+ ###CALALLYEARS###
+
+
+ ###CALYEAR###
+
+
+
+
+ ###CALYEAR###
+
+
+ ###MONTHNAME###
+
+ ###DAYMON_NAME###
+ ###DAYTUE_NAME###
+ ###DAYWED_NAME###
+ ###DAYTHU_NAME###
+ ###DAYFRI_NAME###
+ ###DAYSAT_NAME###
+ ###DAYSUN_NAME###
+
+
+
+ ###DAYMON###
+ ###DAYTUE###
+ ###DAYWED###
+ ###DAYTHU###
+ ###DAYFRI###
+ ###DAYSAT###
+ ###DAYSUN###
+
+
+
+
+
+
+
+
+
+
+
+ ###DATE_STRING###
+ ###ITEMS###
+
+
+
+
+
+
+
+
diff --git a/Resources/Private/Plugins/Kitodo/NewspaperYear.html b/Resources/Private/Plugins/Kitodo/NewspaperYear.html
new file mode 100644
index 00000000..070cd799
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/NewspaperYear.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+ ###YEARNAME###
+
+
+
+
+
+
diff --git a/Resources/Private/Plugins/Kitodo/Pageview.html b/Resources/Private/Plugins/Kitodo/Pageview.html
new file mode 100644
index 00000000..d562b89c
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/Pageview.html
@@ -0,0 +1,4 @@
+
+
+###VIEWER_JS###
+
diff --git a/Resources/Private/Plugins/Kitodo/Search.html b/Resources/Private/Plugins/Kitodo/Search.html
new file mode 100644
index 00000000..fd3b253c
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/Search.html
@@ -0,0 +1,19 @@
+
+
+
+###FACETS_MENU###
+
diff --git a/Resources/Private/Plugins/Kitodo/SearchFullText.html b/Resources/Private/Plugins/Kitodo/SearchFullText.html
new file mode 100644
index 00000000..0dc00086
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/SearchFullText.html
@@ -0,0 +1,9 @@
+
+
+
diff --git a/Resources/Private/Plugins/Kitodo/SearchInDocumentTool.html b/Resources/Private/Plugins/Kitodo/SearchInDocumentTool.html
new file mode 100644
index 00000000..0b8136a9
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/SearchInDocumentTool.html
@@ -0,0 +1,32 @@
+
+
+
+###LABEL_LOADING###...
+###LABEL_DELETE_SEARCH###...
+
+
+ ###LABEL_NEXT###
+ ###LABEL_PREVIOUS###
+ ###LABEL_PAGE###
+
+
diff --git a/Resources/Private/Plugins/Kitodo/TableOfContents.html b/Resources/Private/Plugins/Kitodo/TableOfContents.html
new file mode 100644
index 00000000..653e2d3d
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/TableOfContents.html
@@ -0,0 +1,11 @@
+
+
+
+
+
Inhaltsverzeichnis
+
+ ###TOCMENU###
+
+
+
+
diff --git a/Resources/Private/Plugins/Kitodo/Titledata.html b/Resources/Private/Plugins/Kitodo/Titledata.html
new file mode 100644
index 00000000..3809732f
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/Titledata.html
@@ -0,0 +1,9 @@
+
+
+
diff --git a/Resources/Private/Plugins/Kitodo/ToolFullText.html b/Resources/Private/Plugins/Kitodo/ToolFullText.html
new file mode 100644
index 00000000..3a405c3a
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/ToolFullText.html
@@ -0,0 +1,3 @@
+
+###FULLTEXT_SELECT###
+
diff --git a/Resources/Private/Plugins/Kitodo/Toolbox.html b/Resources/Private/Plugins/Kitodo/Toolbox.html
new file mode 100644
index 00000000..049c9be9
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/Toolbox.html
@@ -0,0 +1,5 @@
+
+
+ ###TOOL###
+
+
diff --git a/Resources/Private/Plugins/Kitodo/ToolsImagemanipulation.html b/Resources/Private/Plugins/Kitodo/ToolsImagemanipulation.html
new file mode 100644
index 00000000..1b94af0f
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/ToolsImagemanipulation.html
@@ -0,0 +1,3 @@
+
+ ###IMAGEMANIPULATION_SELECT###
+
\ No newline at end of file
diff --git a/Resources/Private/Plugins/Kitodo/ToolsPdf.html b/Resources/Private/Plugins/Kitodo/ToolsPdf.html
new file mode 100644
index 00000000..d6585232
--- /dev/null
+++ b/Resources/Private/Plugins/Kitodo/ToolsPdf.html
@@ -0,0 +1,12 @@
+
+
+###PAGE###
+
diff --git a/Resources/Private/Templates/Emptyworkview.html b/Resources/Private/Templates/Emptyworkview.html
new file mode 100644
index 00000000..d91910ce
--- /dev/null
+++ b/Resources/Private/Templates/Emptyworkview.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Resources/Private/Templates/Kitodo.html b/Resources/Private/Templates/Kitodo.html
new file mode 100644
index 00000000..43e368fd
--- /dev/null
+++ b/Resources/Private/Templates/Kitodo.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Resources/Public/Css/Digitalcollections.css b/Resources/Public/Css/Digitalcollections.css
new file mode 100644
index 00000000..5c1786df
--- /dev/null
+++ b/Resources/Public/Css/Digitalcollections.css
@@ -0,0 +1 @@
+html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{background:transparent;border:0;margin:0;padding:0;vertical-align:baseline}body{line-height:1}h1,h2,h3,h4,h5,h6{clear:both;font-weight:normal}ol,ul{list-style:none}blockquote{quotes:none}blockquote:before,blockquote:after{content:'';content:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}a img{border:none}*{box-sizing:border-box}html,body{position:relative;height:100%}body{text-align:center;font-family:'VistaSlabReg','Rockwell','Georgia',"Times New Roman",'Times',serif;background:#4ab3c7;line-height:1}a{color:#c00;text-decoration:none}.main-wrapper{position:absolute;top:0;right:0;bottom:12px;left:0;background:white;box-shadow:0 3px 8px rgba(0,0,0,0.2);overflow:hidden;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.hidden .main-wrapper{opacity:0}.static .main-wrapper{-webkit-transition:none;-o-transition:none;transition:none}.fullscreen .main-wrapper{bottom:0}@media screen and (min-width:1024px){.main-wrapper{top:5px;right:5px;bottom:5px;left:5px}.fullscreen .main-wrapper{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:1200px){.main-wrapper{top:20px;right:20px;bottom:25px;left:20px}}.document-view{position:absolute;top:55px;right:0;bottom:0;left:0;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.fullscreen .document-view{top:0;right:0;bottom:0;left:0}.static .document-view{-webkit-transition:none;-o-transition:none;transition:none}.document-view #tx-dlf-map,.document-view .tx-dlf-map{position:absolute;top:0;right:0;bottom:0;left:0}.document-view .tx-dlf-logobar{position:absolute;pointer-events:none;right:0;bottom:80px;left:0;height:30px;opacity:.15;display:flex;align-items:center;justify-content:center}.document-view .tx-dlf-logobar li{position:relative;flex:0 0 auto;padding:0 15px;height:40px}.document-view .tx-dlf-logobar li img{max-height:30px;-webkit-filter:grayscale(100%);filter:grayscale(100%)}.document-view .document-functions .provider{position:absolute;top:0;left:0;right:0;text-align:left;background:rgba(255,255,255,0.92);display:flex;align-items:center;padding:10px;border-bottom:1px solid #d9d9d9;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.document-view .document-functions .provider>a{display:none}.document-view .document-functions .provider .mobile-meta{position:relative;font-size:12px;line-height:1.3;flex:0 1 auto}.document-view .document-functions .provider .mobile-meta dt{display:none}.document-view .document-functions .provider .mobile-meta dd.tx-dlf-title a{position:relative;font-weight:bold;color:#333;font-size:16px}.document-view .document-functions .provider .mobile-controls{position:absolute;bottom:-50px;right:15px;display:flex}.document-view .document-functions .provider .mobile-controls form{position:relative;width:40px;height:40px;flex:0 0 40px;margin-right:5px}.document-view .document-functions .provider .mobile-controls form label{display:none}.document-view .document-functions .provider .mobile-controls form select{position:relative;width:40px;height:40px;padding-left:40px;background:white url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -600px -80px;background-size:auto 120px;outline:none;border-radius:20px;-webkit-appearance:none;border:0 none}.document-view .document-functions .provider .mobile-controls form select[disabled]{display:none}.document-view .document-functions .provider .mobile-controls .fullscreen{position:relative;flex:0 0 40px;width:40px;height:40px;border-radius:20px;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;z-index:98;background:white}.document-view .document-functions .provider .mobile-controls .fullscreen:before,.document-view .document-functions .provider .mobile-controls .fullscreen:after{position:absolute;width:12px;height:12px;background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -576px -54px;background-size:auto 120px;display:block;content:" ";-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;pointer-events:none}.static .document-view .document-functions .provider .mobile-controls .fullscreen:before,.static .document-view .document-functions .provider .mobile-controls .fullscreen:after{-webkit-transition:none;-o-transition:none;transition:none}.document-view .document-functions .provider .mobile-controls .fullscreen:before{top:9px;right:9px}.document-view .document-functions .provider .mobile-controls .fullscreen:after{bottom:9px;left:9px;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.document-view .document-functions .provider .mobile-controls .fullscreen.active:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.document-view .document-functions .provider .mobile-controls .fullscreen.active:after{-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}.fullscreen .document-view .document-functions .provider{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}@media screen and (min-width:480px){.document-view .tx-dlf-logobar{top:5px;right:5px;bottom:auto;left:auto;width:40%;height:40px;z-index:200;justify-content:flex-end}.document-view .tx-dlf-logobar li{flex:0 1 auto;height:auto}.document-view .tx-dlf-logobar li img{max-width:100%}.document-view .document-functions .provider{padding-right:40%}}@media screen and (min-width:1024px){.document-view{top:0;left:33%;padding:0}.document-view #tx-dlf-map{top:0}.document-view .tx-dlf-logobar{top:auto;right:15px;bottom:15px;z-index:auto}.document-view .document-functions .provider{top:10px;left:10px;right:auto;background:transparent;padding:0}.document-view .document-functions .provider .mobile-meta,.document-view .document-functions .provider .mobile-controls{display:none}}@media screen and (min-width:1200px){.document-view{left:25%}}@media screen and (min-width:1600px){.document-view{left:22%}}@media screen and (min-width:2000px){.document-view{left:20%}}.tx-dlf-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;padding:30px;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;line-height:1.4}.tx-dlf-empty a{position:relative;color:#167;padding-bottom:60px}.tx-dlf-empty a .error-arrow{position:absolute;bottom:0;left:50%;width:40px;height:40px;margin-left:-20px;text-align:center;font-size:40px;line-height:40px;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);opacity:.3}@media screen and (min-width:480px){.tx-dlf-empty{padding:30px 20%}.tx-dlf-empty a{padding:0}.tx-dlf-empty a .error-arrow{display:none}}@media screen and (min-width:768px){.tx-dlf-empty a{padding-top:300px}.tx-dlf-empty a:before{position:absolute;top:0;left:50%;width:260px;height:260px;border-radius:130px;margin-left:-130px;border:1px solid #d9d9d9;content:" "}.tx-dlf-empty a:after{position:absolute;top:30px;left:50%;width:1px;height:200px;background:#d9d9d9;content:" ";-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}}.control-bar{-moz-font-feature-settings:"lnum";-webkit-font-feature-settings:"lnum";font-feature-settings:"lnum"}.fullscreen .control-bar{width:0;overflow:hidden}.static .control-bar{-webkit-transition:none;-o-transition:none;transition:none}.control-bar .header-bar{position:fixed;top:0;right:0;left:0;min-height:50px;z-index:100;overflow:hidden;background:#c00;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif}.control-bar .header-bar .brand{position:absolute;top:15px;left:10px;height:22px;text-transform:uppercase;white-space:nowrap}.control-bar .header-bar .brand .logo-replacement{display:none}.control-bar .header-bar .brand a{position:relative;width:100%;height:100%;color:white;font-size:14px;line-height:28px;text-align:left;background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/Slublogo.svg') no-repeat left center;background-size:auto 100%;display:block;padding-left:80px}.control-bar .header-bar .brand a:before{content:"> "}.control-bar .header-bar nav .nav-toggle{position:absolute;top:13px;right:15px;width:25px;height:30px;padding:0;border:0 none;background:transparent;outline:none}.control-bar .header-bar nav .nav-toggle .nav-label{display:none}.control-bar .header-bar nav .nav-toggle .nav-button-bar{position:relative;width:100%;height:2px;border-radius:2px;margin-bottom:4px;background:white;display:block;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.control-bar .header-bar nav .nav-toggle.active .nav-button-bar:nth-of-type(2){-webkit-transform:translateY(6px) rotate(45deg);-moz-transform:translateY(6px) rotate(45deg);-ms-transform:translateY(6px) rotate(45deg);transform:translateY(6px) rotate(45deg)}.control-bar .header-bar nav .nav-toggle.active .nav-button-bar:nth-of-type(3){-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);transform:scale(0);opacity:0}.control-bar .header-bar nav .nav-toggle.active .nav-button-bar:nth-of-type(4){-webkit-transform:translateY(-6px) rotate(-45deg);-moz-transform:translateY(-6px) rotate(-45deg);-ms-transform:translateY(-6px) rotate(-45deg);transform:translateY(-6px) rotate(-45deg)}.control-bar .header-bar nav .language-nav{position:absolute;right:45px;top:15px;font-size:12px}.control-bar .header-bar nav .language-nav li{position:relative;display:inline-block;margin-right:4px}.control-bar .header-bar nav .language-nav li a,.control-bar .header-bar nav .language-nav li span{position:relative;padding:6px;display:block;color:white}.control-bar .header-bar nav .language-nav li.text-muted{opacity:.4}.control-bar .header-bar nav .language-nav:before{position:absolute;top:0;left:50%;margin-left:-6px;content:"/";opacity:.2;font-size:24px;color:white;font-weight:100;text-align:center;width:10px}.control-bar .header-bar nav .secondary-nav{position:relative;top:55px;width:100%;text-align:left;padding-bottom:0;max-height:0;opacity:0;background:#167;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;border-top:2px solid white;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif}.control-bar .header-bar nav .secondary-nav li a{padding:15px;display:block;border-bottom:1px solid rgba(255,255,255,0.2);color:white}.control-bar .header-bar nav .secondary-nav li:first-child a{border-top:1px solid rgba(255,255,255,0.2)}.control-bar .header-bar nav .secondary-nav.open{padding-bottom:65px;max-height:320px;min-height:60px;opacity:1}.fullscreen .control-bar .header-bar{min-height:0}.control-bar .step-back-button{position:absolute;top:120px;left:15px;width:40px;height:40px;border-radius:20px;z-index:50;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;background:white url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -600px -40px;background-size:auto 120px}.control-bar .metadata-wrapper,.control-bar .toc-wrapper{position:absolute;top:55px;bottom:0;width:90%;background:rgba(17,102,119,0.97);z-index:102;text-align:left;padding:15px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.control-bar .metadata-wrapper .offcanvas-toggle,.control-bar .toc-wrapper .offcanvas-toggle{position:absolute;bottom:5px;width:30px;height:60px;background:rgba(17,102,119,0.97) url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat 0 0;background-size:auto 120px;border:1px solid rgba(255,255,255,0.5)}.control-bar .metadata-wrapper.open,.control-bar .toc-wrapper.open{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);z-index:1100}.control-bar .metadata-wrapper.open .offcanvas-toggle,.control-bar .toc-wrapper.open .offcanvas-toggle{border-color:white}.control-bar .metadata-wrapper h3,.control-bar .toc-wrapper h3{display:none}.control-bar .metadata-wrapper{right:0;-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.control-bar .metadata-wrapper .offcanvas-toggle{left:-30px;border-radius:30px 0 0 30px;background-position:-442px 9px;border-right:0 none}.control-bar .metadata-wrapper .metadata-toggle{display:none}.control-bar .toc-wrapper{left:0;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.control-bar .toc-wrapper .offcanvas-toggle{right:-30px;border-radius:0 30px 30px 0;background-position:-447px -30px;border-left:0 none}@media screen and (min-width:1024px){.control-bar{position:absolute;top:0;bottom:0;left:0;width:33%;z-index:1100;color:#333;border-right:2px solid white;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.control-bar:before{position:absolute;top:0;left:0;right:0;height:70px;background:#c00;content:" ";pointer-events:none}.control-bar:after{position:absolute;top:90px;right:0;bottom:15px;width:1px;content:" ";background:#d9d9d9}.control-bar .header-bar{position:absolute;top:10px;background:transparent;overflow:visible}.control-bar .header-bar .brand a{font-size:12px}.control-bar .header-bar:after{display:none;content:none}.control-bar .header-bar nav .nav-toggle{top:12px;right:12px}.control-bar .header-bar nav .language-nav{right:35px;top:14px}.control-bar .header-bar nav .secondary-nav{position:absolute;top:-5px;right:0;width:200px;background:rgba(17,102,119,0.97);max-height:none;font-size:14px;-webkit-transform:scaleX(0);-moz-transform:scaleX(0);-ms-transform:scaleX(0);transform:scaleX(0);box-shadow:0 2px 8px rgba(0,0,0,0.3);padding:15px;border-top:0}.control-bar .header-bar nav .secondary-nav:before{position:absolute;top:20px;left:-10px;width:0;height:0;border:10px solid transparent;border-left-width:0;border-right-color:rgba(17,102,119,0.97);content:" "}.control-bar .header-bar nav .secondary-nav li a{padding:0 10px;border:0 none;line-height:30px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;color:white}.control-bar .header-bar nav .secondary-nav li a:hover{background:rgba(255,255,255,0.2)}.control-bar .header-bar nav .secondary-nav li:first-child a{border:0 none}.control-bar .header-bar nav .secondary-nav.open{padding:15px;opacity:1;right:-220px;-webkit-transform:scaleX(1);-moz-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1)}.control-bar .step-back-button{top:80px;left:20px;width:auto;background:transparent;font-size:12px;color:#167;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;line-height:1.1;text-transform:uppercase;cursor:pointer}.control-bar .step-back-button:before{content:"<";font-size:16px;margin-right:5px}.control-bar .ctrldata-container{position:absolute;top:105px;right:15px;bottom:20px;left:15px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.control-bar .metadata-wrapper,.control-bar .toc-wrapper{position:relative;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);text-align:left;background:transparent;padding:20px 0;width:100%}.control-bar .metadata-wrapper .offcanvas-toggle,.control-bar .toc-wrapper .offcanvas-toggle{display:none}.control-bar .metadata-wrapper{top:auto;bottom:auto;padding-bottom:40px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.control-bar .metadata-wrapper .tx-dlf-metadata{overflow:hidden}.control-bar .metadata-wrapper .metadata-toggle{position:absolute;bottom:0;right:20px;padding:4px 20px 4px 0;font-size:12px;color:#c00;display:block;cursor:pointer}.control-bar .metadata-wrapper .metadata-toggle:before{position:absolute;top:-5px;right:-5px;width:30px;height:30px;background:white url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -564px -84px;background-size:auto 120px;content:" ";-webkit-transform:scale(.6);-moz-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}.control-bar .toc-wrapper{top:auto;bottom:auto}}@media screen and (min-width:1200px){.control-bar{width:25%}.control-bar .header-bar .brand{top:5px;left:20px;height:40px}.control-bar .header-bar .brand a{font-size:11px;line-height:11px;padding:30px 0 0 31px;background-size:auto 30px;background-position:0 0}.control-bar .metadata-wrapper,.control-bar .toc-wrapper{padding:20px 5px}.control-bar .metadata-wrapper{padding-bottom:40px}}@media screen and (min-width:1600px){.control-bar{width:22%}}@media screen and (min-width:2000px){.control-bar{width:20%}}.tx-dlf-toc{position:relative;height:100%}.tx-dlf-toc ul.toc{position:relative;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;height:100%;line-height:1.2;font-size:14px;border-top:1px solid #d9d9d9}.tx-dlf-toc ul.toc ul li{position:relative}.tx-dlf-toc ul.toc ul li.submenu a{padding-right:10px}.tx-dlf-toc ul.toc ul li.submenu:before{position:absolute;top:15px;right:0;width:0;height:0;content:" ";border:3px solid transparent;border-bottom-width:0;border-top-color:white}.tx-dlf-toc ul.toc ul li.current{background:white}.tx-dlf-toc ul.toc ul li.current a{color:#167}.tx-dlf-toc ul.toc ul li.current a .meta-type-icon{background-position-y:-30px !important}.tx-dlf-toc ul.toc ul li.placeholder{position:relative;padding:15px 0 15px 30px;color:white;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif}.tx-dlf-toc ul.toc ul li.placeholder:before{position:absolute;top:0;bottom:0;left:12px;width:1px;background:white;opacity:.4;content:" "}.tx-dlf-toc ul.toc ul li.placeholder:after{position:absolute;top:16px;left:3px;height:15px;font-size:24px;line-height:0;content:"...";background:#126a7b}.tx-dlf-toc ul.toc ul li a,.tx-dlf-toc ul.toc ul li span.a,.tx-dlf-toc ul.toc ul li>span.title{position:relative;padding:8px 0 8px 30px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:white}.tx-dlf-toc ul.toc ul li a .pagination,.tx-dlf-toc ul.toc ul li span.a .pagination,.tx-dlf-toc ul.toc ul li>span.title .pagination{margin-left:3px;opacity:.4}.tx-dlf-toc ul.toc ul li a .meta-type-icon,.tx-dlf-toc ul.toc ul li span.a .meta-type-icon,.tx-dlf-toc ul.toc ul li>span.title .meta-type-icon{position:absolute;top:1px;left:-2px;width:30px;height:30px;text-indent:100%;overflow:hidden;background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/viewerTocIcons.svg') no-repeat -90px 0;background-size:auto 60px;display:block;-webkit-transform:scale(.6);-moz-transform:scale(.6);-ms-transform:scale(.6);transform:scale(.6)}.tx-dlf-toc ul.toc ul li a .meta-type-icon.meta-type-Abbildung,.tx-dlf-toc ul.toc ul li span.a .meta-type-icon.meta-type-Abbildung,.tx-dlf-toc ul.toc ul li>span.title .meta-type-icon.meta-type-Abbildung{background-position:0 0}.tx-dlf-toc ul.toc ul li a .meta-type-icon.meta-type-Werbung,.tx-dlf-toc ul.toc ul li span.a .meta-type-icon.meta-type-Werbung,.tx-dlf-toc ul.toc ul li>span.title .meta-type-icon.meta-type-Werbung{background-position:-30px 0}.tx-dlf-toc ul.toc ul li a .meta-type-icon.meta-type-Artikel,.tx-dlf-toc ul.toc ul li span.a .meta-type-icon.meta-type-Artikel,.tx-dlf-toc ul.toc ul li>span.title .meta-type-icon.meta-type-Artikel{background-position:-60px 0}.tx-dlf-toc ul.toc ul li span.a,.tx-dlf-toc ul.toc ul li>span.title{opacity:.5;font-weight:normal}.tx-dlf-toc .tx-dlf-wincontent>ul.toc>li>a{color:white;font-size:16px;padding:5px 0;display:block}.tx-dlf-toc .tx-dlf-wincontent>ul.toc>li>a .meta-type-icon{margin-right:5px;opacity:.6}@media screen and (min-width:1024px){.tx-dlf-toc:after{position:absolute;top:0;right:0;left:0;height:1px;background:#d9d9d9;content:" "}.tx-dlf-toc ul.toc{font-size:12px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.tx-dlf-toc ul.toc ul li:nth-child(even){background:#e6f5f7}.tx-dlf-toc ul.toc ul li.submenu a{padding-right:15px}.tx-dlf-toc ul.toc ul li.submenu:before{top:12px;right:5px;border-top-color:rgba(74,179,199,0.4)}.tx-dlf-toc ul.toc ul li.current{background:#4ab3c7}.tx-dlf-toc ul.toc ul li.current a{color:white}.tx-dlf-toc ul.toc ul li.current a .meta-type-icon{background-position-y:0 !important;opacity:.8}.tx-dlf-toc ul.toc ul li.placeholder{padding:20px 0 20px 30px;color:#808080;cursor:pointer}.tx-dlf-toc ul.toc ul li.placeholder:before{left:10px;background:#4ab3c7}.tx-dlf-toc ul.toc ul li.placeholder:after{top:20px;left:1px;background:white}.tx-dlf-toc ul.toc ul li a,.tx-dlf-toc ul.toc ul li span.a,.tx-dlf-toc ul.toc ul li>span.title{padding:6px 0 6px 20px;margin:2px 0;color:#333}.tx-dlf-toc ul.toc ul li a .meta-type-icon,.tx-dlf-toc ul.toc ul li span.a .meta-type-icon,.tx-dlf-toc ul.toc ul li>span.title .meta-type-icon{top:-3px;left:-6px;opacity:.5;-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);background-position:-90px -30px}.tx-dlf-toc ul.toc ul li a .meta-type-icon.meta-type-Abbildung,.tx-dlf-toc ul.toc ul li span.a .meta-type-icon.meta-type-Abbildung,.tx-dlf-toc ul.toc ul li>span.title .meta-type-icon.meta-type-Abbildung{background-position:0 -30px}.tx-dlf-toc ul.toc ul li a .meta-type-icon.meta-type-Werbung,.tx-dlf-toc ul.toc ul li span.a .meta-type-icon.meta-type-Werbung,.tx-dlf-toc ul.toc ul li>span.title .meta-type-icon.meta-type-Werbung{background-position:-30px -30px}.tx-dlf-toc ul.toc ul li a .meta-type-icon.meta-type-Artikel,.tx-dlf-toc ul.toc ul li span.a .meta-type-icon.meta-type-Artikel,.tx-dlf-toc ul.toc ul li>span.title .meta-type-icon.meta-type-Artikel{background-position:-60px -30px}.no-touchevents .tx-dlf-toc ul.toc ul li a{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.no-touchevents .tx-dlf-toc ul.toc ul li a:hover{background:rgba(74,179,199,0.3)}.tx-dlf-toc .tx-dlf-wincontent>ul.toc>li>a{color:#333}}.tx-dlf-metadata{position:relative;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;height:100%;line-height:1.4}.tx-dlf-metadata h1{font-size:20px;font-weight:normal;font-family:'VistaSlabBold','Rockwell-Bold','Georgia','Times',serif;border-bottom:1px solid #d9d9d9;padding-bottom:10px;margin-bottom:5px;line-height:1.1;color:white}.tx-dlf-metadata dl{color:white;margin:20px 0}.tx-dlf-metadata dl dt,.tx-dlf-metadata dl dd{display:block}.tx-dlf-metadata dl dt{font-size:12px;font-family:'VistaSlabBold','Rockwell-Bold','Georgia','Times',serif;margin-top:20px}.tx-dlf-metadata dl dt:first-child{margin-top:0}.tx-dlf-metadata dl dd a{color:white}@media screen and (min-width:1024px){.tx-dlf-metadata{line-height:1.4}.tx-dlf-metadata h1{color:black;margin-bottom:-5px}.tx-dlf-metadata dl{color:black;border-bottom:1px solid #d9d9d9;padding:10px 0;margin:0}.tx-dlf-metadata dl dt,.tx-dlf-metadata dl dd{font-size:14px;display:inline;line-height:20px}.tx-dlf-metadata dl dd{margin-right:4px}.tx-dlf-metadata dl dd+dd{display:inline-block}.tx-dlf-metadata dl dd.tx-dlf-metadata-collection{background:#e6e6e6;border-radius:20px;padding:2px 5px;margin-right:6px}.tx-dlf-metadata dl dd.tx-dlf-metadata-author a{background:#acdce5;border-radius:20px;padding:2px 5px;margin-right:2px}.tx-dlf-metadata dl dt:before{position:relative;width:100%;height:1px;display:table;clear:both;content:" "}.tx-dlf-metadata dl dt:after{content:": "}.tx-dlf-metadata dl:nth-of-type(n+2){display:none}.tx-dlf-metadata dl dd a{color:black}.tx-dlf-metadata dl dd a[href*="digital.slub"]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;width:80%;line-height:16px;vertical-align:text-bottom}}.document-functions>ul,.view-functions>ul{position:absolute;text-align:center;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;z-index:10}.document-functions>ul>li,.view-functions>ul>li{position:relative;display:inline-block}.document-functions>ul>li>a,.view-functions>ul>li>a,.document-functions>ul>li>span,.view-functions>ul>li>span{position:relative;display:inline-block;width:40px;height:40px;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;border-radius:20px;margin:0 5px;background:white url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat 0 0;background-size:auto 120px}.document-functions>ul>li>span,.view-functions>ul>li>span{opacity:.5}@media screen and (min-width:1024px){.document-functions>ul>li>a,.view-functions>ul>li>a,.document-functions>ul>li>span,.view-functions>ul>li>span{margin:0 2px}.no-touchevents .document-functions>ul>li a,.no-touchevents .view-functions>ul>li a{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;cursor:pointer}.no-touchevents .document-functions>ul>li a:hover,.no-touchevents .view-functions>ul>li a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}}@media screen and (min-width:1200px){.document-functions>ul>li>a,.view-functions>ul>li>a,.document-functions>ul>li>span,.view-functions>ul>li>span{margin:0 4px}}.document-functions>ul{bottom:15px;left:15px;right:15px}.document-functions>ul>li.submenu:before{position:absolute;top:-17.5px;left:50%;width:0;height:0;margin-left:-10px;border:solid transparent;border-width:0 10px;border-top-color:rgba(17,102,119,0.97);content:" ";z-index:200;opacity:0;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.document-functions>ul>li.submenu>ul{position:fixed;bottom:80px;left:40px;right:40px;padding:20px;background:rgba(17,102,119,0.97);font-family:Helvetica,Arial,sans-serif;font-size:14px;line-height:1.4;text-align:left;transform-origin:center bottom;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;-webkit-transform:scaleY(0) translateY(100px);-moz-transform:scaleY(0) translateY(100px);-ms-transform:scaleY(0) translateY(100px);transform:scaleY(0) translateY(100px);opacity:0;box-shadow:0 2px 8px rgba(0,0,0,0.3)}.document-functions>ul>li.submenu>ul li a{position:relative;color:white;display:block;padding-left:40px;margin:15px 0}.document-functions>ul>li.submenu>ul li a:before{position:absolute;top:50%;left:0;margin-top:-20px;width:40px;height:40px;content:" ";background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat 0 0;background-size:auto 120px}.document-functions>ul>li.submenu>ul li a.download-fulltext:before{background-position:-280px -40px}.document-functions>ul>li.submenu>ul li a.local-presentation:before{background-position:-440px -80px}.document-functions>ul>li.submenu>ul li a.local-catalog:before{background-position:-400px -80px}.document-functions>ul>li.submenu>ul li a.local-contact:before{background-position:-400px -40px}.document-functions>ul>li.submenu>ul li a.download-document:before,.document-functions>ul>li.submenu>ul li a[title$="Seite"]:before,.document-functions>ul>li.submenu>ul li a[title$="Page"]:before{background-position:-360px -40px}.document-functions>ul>li.submenu>ul li a.download-page:before,.document-functions>ul>li.submenu>ul li a[title$="ument"]:before{background-position:-320px -40px}.document-functions>ul>li.submenu>ul li a.persistence-document:before{background-position:-360px -80px}.document-functions>ul>li.submenu>ul li a.persistence-page:before{background-position:-320px -80px}.document-functions>ul>li.submenu>ul li a.terms-of-use:before{background-position:-640px -80px}.document-functions>ul>li.submenu.open:before{top:-13.5px;border-top-width:10px;opacity:1}.document-functions>ul>li.submenu.open ul{-webkit-transform:scaleY(1) translateY(0);-moz-transform:scaleY(1) translateY(0);-ms-transform:scaleY(1) translateY(0);transform:scaleY(1) translateY(0);opacity:1}.document-functions>ul>li.downloads>a,.document-functions>ul>li.downloads>span{background-position:-40px 0}.document-functions>ul>li.fulltext>a,.document-functions>ul>li.fulltext>span{background-position:-120px 0}.document-functions>ul>li.doublepage{display:none}.document-functions>ul>li.doublepage>a,.document-functions>ul>li.doublepage>span{background-position:-80px 0}.document-functions>ul>li.doublepage a.tx-dlf-navigation-doubleOff:before{position:absolute;top:2px;right:0;width:8px;height:8px;border-radius:8px;border:2px solid white;background:#c00;display:block;content:" "}.document-functions>ul>li.doublepage a.tx-dlf-navigation-doublePlusOne{position:absolute;bottom:2px;right:-1px;width:0;height:0;border:solid transparent;border-width:9px 0 9px 13px;border-left-color:white;border-radius:0;background:transparent}.document-functions>ul>li.doublepage a.tx-dlf-navigation-doublePlusOne span{position:absolute;bottom:-5px;right:3px;width:0;height:0;display:block;overflow:hidden;border:solid transparent;border-width:5px 0 5px 8px;border-left-color:#c00}.document-functions>ul>li.fulltext a.select.active:before{position:absolute;top:2px;right:0;width:8px;height:8px;border-radius:8px;border:2px solid white;background:#c00;display:block;content:" "}.document-functions>ul>li.grid>a,.document-functions>ul>li.grid>span{background-position:-160px 0}.document-functions>ul>li.grid a.active:before{position:absolute;top:2px;right:0;width:8px;height:8px;border-radius:8px;border:2px solid white;background:#c00;display:block;content:" "}.document-functions>ul>li.disabled{opacity:.5;pointer-events:none}@media screen and (min-width:768px){.document-functions>ul li.submenu>ul{position:absolute;width:auto;left:20px;right:auto;bottom:53px;transform-origin:center top;-webkit-transform:scaleY(0) translateY(100px);-moz-transform:scaleY(0) translateY(100px);-ms-transform:scaleY(0) translateY(100px);transform:scaleY(0) translateY(100px)}.document-functions>ul li.submenu>ul li a{white-space:nowrap}.document-functions>ul li.submenu.open>ul{-webkit-transform:scaleY(1) translateY(0);-moz-transform:scaleY(1) translateY(0);-ms-transform:scaleY(1) translateY(0);transform:scaleY(1) translateY(0)}}@media screen and (min-width:1024px){.document-functions>ul{top:20px;left:20px;right:auto;bottom:auto}.document-functions>ul li.doublepage{display:inline-block}.document-functions>ul li.submenu:before{top:auto;bottom:-60px;border-width:0 10px;border-bottom-color:rgba(17,102,119,0.97)}.document-functions>ul li.submenu>ul{top:50px;left:-20px;right:auto;bottom:auto;width:auto;font-size:12px;padding:15px;z-index:3000;transform-origin:center top;-webkit-transform:scaleY(0) translateY(-100px);-moz-transform:scaleY(0) translateY(-100px);-ms-transform:scaleY(0) translateY(-100px);transform:scaleY(0) translateY(-100px)}.document-functions>ul li.submenu>ul li a{margin:0;padding-right:5px;min-height:40px;line-height:40px}.no-touchevents .document-functions>ul li.submenu>ul li a:hover{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1);background:rgba(255,255,255,0.2)}.document-functions>ul li.submenu.open:before{top:auto;bottom:-10px;border-width:0 10px 10px 10px}}.view-functions ul{position:relative}.view-functions ul li{display:none}@media screen and (min-width:1024px){.view-functions ul{position:absolute;top:20px;right:50px;display:block;height:40px}.view-functions ul li{display:inline-block}.view-functions ul li.rotate{display:none}.view-functions ul li.pages{position:relative;top:auto;right:auto;display:inline-block}.view-functions ul li.pages form{position:absolute;top:0;right:0}.view-functions ul li.pages form select{border:1px solid #167;color:#167;background:white url('data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyMCAxMiI+PHN0eWxlPi5zdDB7ZmlsbDpub25lO3N0cm9rZTojNGU2NDY2O3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMH08L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMy40IDMuMkw3IDkuNi42IDMuMiIgaWQ9IlhNTElEXzFfIi8+PC9zdmc+') no-repeat right center;background-size:16px auto;font-weight:700;line-height:1.2;-webkit-appearance:none;-moz-appearance:none;padding:10px 20px 10px 14px;background-size:20px 12px;margin:0 6px;font-size:16px;outline:none;border-radius:20px;cursor:pointer}.no-touchevents .view-functions ul li.pages form select{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.no-touchevents .view-functions ul li.pages form select:hover{border:1px solid #167;background-color:#dff1f4;color:#333}.view-functions ul li.tx-dlf-toolsImagemanipulation>span{opacity:1;overflow:hidden;width:auto;height:auto;display:inline;margin:0}.view-functions ul li.tx-dlf-toolsImagemanipulation>span>span>a{position:relative;display:inline-block;width:40px;height:40px;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;border-radius:20px;margin:0 5px;background:white url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -200px 0;background-size:auto 120px}.view-functions ul li.tx-dlf-toolsImagemanipulation>span>span>a.active:before{position:absolute;top:2px;right:0;width:8px;height:8px;border-radius:8px;border:2px solid white;background:#c00;display:block;content:" "}.view-functions ul li.rotate .rotate-left{background-position:-240px 0}.view-functions ul li.rotate .rotate-right{background-position:-240px -40px}.view-functions ul li.rotate .upend{background-position:-280px 0}.view-functions ul li.zoom .in{background-position:-360px 0}.view-functions ul li.zoom .out{background-position:-400px 0}.view-functions ul li.zoom .fullscreen{position:relative;flex:0 0 40px;width:40px;height:40px;border-radius:20px;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;z-index:1000;background:white}.view-functions ul li.zoom .fullscreen:before,.view-functions ul li.zoom .fullscreen:after{position:absolute;width:12px;height:12px;background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -575px -54px;background-size:auto 120px;display:block;content:" ";-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;pointer-events:none}.static .view-functions ul li.zoom .fullscreen:before,.static .view-functions ul li.zoom .fullscreen:after{-webkit-transition:none;-o-transition:none;transition:none}.view-functions ul li.zoom .fullscreen:before{top:9px;right:9px}.view-functions ul li.zoom .fullscreen:after{bottom:9px;left:9px;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.view-functions ul li.zoom .fullscreen.active:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.view-functions ul li.zoom .fullscreen.active:after{-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}.fullscreen .view-functions ul li.zoom .fullscreen{top:5px !important}}@media screen and (min-width:1200px){.view-functions ul li.rotate{display:inline-block}.view-functions ul li.pages form select{margin:0 4px}}.image-manipulation{position:absolute;top:70px;right:55px;z-index:1010}.image-manipulation .slider-container{background:rgba(17,102,119,0.9);padding:30px 20px 10px 56px;box-shadow:0 2px 6px rgba(0,0,0,0.2)}.image-manipulation .slider-container:before{position:absolute;top:-10px;right:10px;width:0;height:0;border:10px solid transparent;border-bottom-color:rgba(17,102,119,0.9);border-top:0;content:" "}.image-manipulation .slider-container .slider{position:relative;width:200px;height:30px;border:0 none;border-radius:0;background:transparent;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;margin-right:24px}.image-manipulation .slider-container .slider:before{position:absolute;top:-19px;left:-36px;width:40px;height:40px;content:" ";background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat 0 0;background-size:auto 120px}.image-manipulation .slider-container .slider:after{position:absolute;top:0;left:0;width:100%;height:2px;border-radius:2px;background:white;content:""}.image-manipulation .slider-container .slider .tooltip{position:absolute;opacity:1;top:-4px;left:210px !important;color:white;font-size:10px;text-align:left}.image-manipulation .slider-container .slider-contrast .tooltip,.image-manipulation .slider-container .slider-saturation .tooltip{left:100%}.image-manipulation .slider-container .slider-brightness .tooltip,.image-manipulation .slider-container .slider-hue .tooltip{left:50%}.image-manipulation .slider-container .slider-contrast:before{background-position:-480px 0}.image-manipulation .slider-container .slider-saturation:before{background-position:-480px -40px}.image-manipulation .slider-container .slider-brightness:before{background-position:-480px -80px}.image-manipulation .slider-container .slider-hue:before{background-position:-520px 0}.image-manipulation .slider-container .checkbox,.image-manipulation .slider-container button.reset-btn{position:relative;border:0 none;color:white;font-size:11px;margin-top:-15px;padding-left:36px;line-height:40px;display:inline-block;background:transparent}.image-manipulation .slider-container .checkbox:before,.image-manipulation .slider-container button.reset-btn:before{position:absolute;top:0;left:0;width:40px;height:40px;background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat 0 0;background-size:auto 120px;content:" "}.image-manipulation .slider-container button.reset-btn{margin-left:10px;outline:none}.image-manipulation .slider-container button.reset-btn:before{background-position:-520px -80px}.image-manipulation .slider-container .checkbox{margin-left:-36px}.image-manipulation .slider-container .checkbox:before{background-position:-520px -40px}.image-manipulation .slider-container .checkbox label input{margin-right:4px}.slider-imagemanipulation.ui-slider-horizontal .ui-slider-handle{position:absolute;z-index:2;top:-7px;width:14px;height:14px;background:white;border:0 none;border-radius:7px;box-shadow:1px 1px 0 #c00;cursor:col-resize;margin-left:-6px}.slider-imagemanipulation.ui-slider-horizontal .ui-slider-handle:after{content:none}.slider-imagemanipulation.ui-slider-horizontal .ui-slider-handle .ui-slider-handle:focus,.slider-imagemanipulation.ui-slider-horizontal .ui-slider-handle .ui-slider-handle:active{border:0;outline:none}.slider-imagemanipulation.ui-slider-horizontal .ui-slider-range{background:rgba(0,177,158,0.5)}.page-control{position:absolute;bottom:15px;height:1px;width:290px;left:50%;margin-left:-145px;line-height:0}.page-control>div{position:absolute;bottom:0;z-index:1020}.page-control>div span{display:none}.page-control>div span a,.page-control>div span span{position:relative;display:inline-block;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0}.page-control>div span a:before,.page-control>div span span:before{position:absolute;bottom:-1px;width:40px;height:40px;border-radius:20px;background:white url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat 0 0;background-size:auto 120px;content:" "}.page-control>div span span{opacity:.3}.page-control>div span.next{display:block}.page-control>div span.next a:before,.page-control>div span.next span:before{right:0;background-position:-280px -80px}.page-control>div span.prev{display:block}.page-control>div span.prev a:before,.page-control>div span.prev span:before{left:0;background-position:-240px -80px}.page-control .backs{left:0}.page-control .fwds{right:0}@media screen and (min-width:1024px){.page-control{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;pointer-events:none}.page-control>div{height:80px;min-width:80px;pointer-events:all;bottom:50%;margin-bottom:-20px}.page-control>div span{display:block}.page-control>div span a,.page-control>div span span{position:absolute;font-size:14px;color:#c00;white-space:nowrap;display:block;height:40px;line-height:40px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.page-control>div span a:before,.page-control>div span span:before{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.no-touchevents .page-control>div span a:hover{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.page-control>div span span{cursor:not-allowed}.page-control>div.no-transition a,.page-control>div.no-transition span,.page-control>div.no-transition a:before,.page-control>div.no-transition span:before{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.page-control>div.backs{left:10px}.page-control>div.backs span a,.page-control>div.backs span span{left:0;text-align:left;padding-left:80px}.page-control>div.backs span a:before,.page-control>div.backs span span:before{left:20px}.page-control>div.backs span.prev a,.page-control>div.backs span.prev span{top:0;height:80px;line-height:80px;color:rgba(204,0,0,0)}.page-control>div.backs span.prev a:before,.page-control>div.backs span.prev span:before{left:0;width:80px;height:80px;border-radius:40px;background-position:0 -40px}.page-control>div.backs span.rwnd a,.page-control>div.backs span.rwnd span{top:0;color:rgba(204,0,0,0);z-index:301}.page-control>div.backs span.rwnd a:before,.page-control>div.backs span.rwnd span:before{left:41px;width:32px;height:32px;background-position:-86px -43px}.page-control>div.backs span.rwnd span{opacity:0}.page-control>div.backs span.first a,.page-control>div.backs span.first span{bottom:0;opacity:0;z-index:302}.page-control>div.backs span.first a:before,.page-control>div.backs span.first span:before{background-position:-80px -80px}.page-control>div.backs.over span.prev a,.page-control>div.backs.over span.prev span{color:#c00}.page-control>div.backs.over span.rwnd a,.page-control>div.backs.over span.rwnd span{top:-45px;color:#c00}.page-control>div.backs.over span.rwnd a:before,.page-control>div.backs.over span.rwnd span:before{bottom:-1px;left:20px;width:40px;height:40px;background-position:-80px -40px}.page-control>div.backs.over span.rwnd span{opacity:.3}.page-control>div.backs.over span.first a,.page-control>div.backs.over span.first span{bottom:-45px}.page-control>div.backs.over span.first a{opacity:1}.page-control>div.backs.over span.first span{opacity:.3}.page-control>div.fwds{right:10px}.page-control>div.fwds span a,.page-control>div.fwds span span{right:0;text-align:right;padding-right:80px}.page-control>div.fwds span a:before,.page-control>div.fwds span span:before{right:20px}.page-control>div.fwds span.next a,.page-control>div.fwds span.next span{top:0;height:80px;line-height:80px;color:rgba(204,0,0,0)}.page-control>div.fwds span.next a:before,.page-control>div.fwds span.next span:before{right:0;width:80px;height:80px;border-radius:40px;background-position:-160px -40px}.page-control>div.fwds span.fwd a,.page-control>div.fwds span.fwd span{top:0;color:rgba(204,0,0,0)}.page-control>div.fwds span.fwd a:before,.page-control>div.fwds span.fwd span:before{right:41px;width:32px;height:32px;background-position:-122px -42px}.page-control>div.fwds span.last a,.page-control>div.fwds span.last span{bottom:0;opacity:0}.page-control>div.fwds span.last a:before,.page-control>div.fwds span.last span:before{background-position:-120px -80px}.page-control>div.fwds.over span.next a,.page-control>div.fwds.over span.next span{color:#c00}.page-control>div.fwds.over span.fwd a,.page-control>div.fwds.over span.fwd span{top:-45px;color:#c00}.page-control>div.fwds.over span.fwd a:before,.page-control>div.fwds.over span.fwd span:before{bottom:-1px;right:20px;width:40px;height:40px;background-position:-120px -40px}.page-control>div.fwds.over span.last a,.page-control>div.fwds.over span.last span{bottom:-45px}.page-control>div.fwds.over span.last a{opacity:1}.page-control>div.fwds.over span.last span{opacity:.3}}.calendar .page-control{display:none}.tx-dlf-calendar-years,.tx-dlf-calendar{padding:0 10px 60px 10px;max-height:100%;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;text-align:left;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-feature-settings:'lnum'}@media screen and (min-width:1024px){.tx-dlf-calendar-years,.tx-dlf-calendar{position:relative;height:100%;padding:30px 30px 60px 30px}}body.calendar .document-functions,body.calendar .view-functions{display:none}body.calendar .step-back-button{top:60px;left:10px;border:1px solid #d9d9d9}@media screen and (min-width:1024px){body.calendar .step-back-button{border:0 none;top:80px;left:15px}}.tx-dlf-calendar-years .year-anchor{border-bottom:1px solid #d9d9d9;line-height:1.4;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;font-size:14px;padding:5px 0 10px 50px}.tx-dlf-calendar-years .year-anchor a{color:#167}.tx-dlf-calendar-years .meta-hint-year{display:none}.tx-dlf-calendar-years ul li{margin:20px}.tx-dlf-calendar-years ul li a{display:block;padding:25px 20px;text-align:center;color:#167;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;background:#e6f5f7}@media screen and (min-width:1024px){.tx-dlf-calendar-years{vertical-align:middle}.tx-dlf-calendar-years .year-anchor{padding:0 0 10px 30px}.tx-dlf-calendar-years .meta-hint-year{display:block;opacity:.5;padding:5px 0 0 30px;font-size:14px}.tx-dlf-calendar-years ul{position:relative;margin-top:30px;min-height:calc(100% - 60px);display:flex;flex-wrap:wrap;justify-content:center;align-content:center}.tx-dlf-calendar-years ul li{display:inline-block}.no-touchevents .tx-dlf-calendar-years ul li a{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.no-touchevents .tx-dlf-calendar-years ul li a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}}@media screen and (min-width:1200px){.tx-dlf-calendar-years ul li{margin:30px}.tx-dlf-calendar-years ul li a{font-size:20px;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif}}.tx-dlf-calendar .calendar-list-selection,.tx-dlf-calendar .list-view{display:none}.tx-dlf-calendar .year-anchor{border-bottom:1px solid #d9d9d9;line-height:1.4;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;font-size:14px;padding:5px 0 10px 50px}.tx-dlf-calendar .year-anchor a{color:#167}.tx-dlf-calendar .year{font-size:20px;margin:20px 0 -20px 0;font-weight:bold;line-height:1.4;text-align:center}.tx-dlf-calendar .calendar-view{position:relative;margin:30px 0 0 0}.tx-dlf-calendar .calendar-view .year{flex:0 0 calc(100% - 60px);font-family:'VistaSlabBold','Rockwell-Bold','Georgia','Times',serif;font-size:20px;margin:20px 30px;border-bottom:1px solid #d9d9d9;color:#167;text-shadow:-4px 0 3px white,4px 0 3px white;height:16px}.tx-dlf-calendar .calendar-view table{width:100%;margin:50px 0;text-align:center;border-bottom:1px solid #d9d9d9}.tx-dlf-calendar .calendar-view table caption{font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;border-bottom:1px solid #d9d9d9;font-size:12px;text-transform:uppercase;padding-bottom:5px;color:#333}.tx-dlf-calendar .calendar-view table tr td,.tx-dlf-calendar .calendar-view table tr th{width:14.285%;padding:6px}.tx-dlf-calendar .calendar-view table tr th{font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;font-size:14px;color:#737373}.tx-dlf-calendar .calendar-view table tr td{color:#167}.tx-dlf-calendar .calendar-view table tr td h4,.tx-dlf-calendar .calendar-view table tr td .day-label{position:relative;color:#167;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;font-weight:bold;display:block;border:1px solid transparent}.tx-dlf-calendar .calendar-view table tr td h4:after,.tx-dlf-calendar .calendar-view table tr td .day-label:after{position:absolute;top:19px;left:50%;margin-left:-5px;width:0;height:0;border:5px solid transparent;border-top-width:0;border-bottom-color:rgba(17,102,119,0.93);content:" ";opacity:0;-webkit-transform:translateY(15px);-moz-transform:translateY(15px);-ms-transform:translateY(15px);transform:translateY(15px);-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.tx-dlf-calendar .calendar-view table tr td h4{font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;border-color:rgba(17,102,119,0.2);background:#e6f5f7;border-radius:100%}.no-touchevents .tx-dlf-calendar .calendar-view table tr td{cursor:pointer}.tx-dlf-calendar .calendar-view table tr td ul{position:absolute;left:0;right:0;padding:10px;margin-top:10px;background:rgba(17,102,119,0.93);opacity:0;-webkit-transform:scaleY(0);-moz-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;transform-origin:center top}.tx-dlf-calendar .calendar-view table tr td ul li{margin:10px 0}.tx-dlf-calendar .calendar-view table tr td ul li a{display:block;padding:10px;color:#fff}.tx-dlf-calendar .calendar-view table tr td.open h4,.tx-dlf-calendar .calendar-view table tr td.open .day-label{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.tx-dlf-calendar .calendar-view table tr td.open h4:after,.tx-dlf-calendar .calendar-view table tr td.open .day-label:after{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.tx-dlf-calendar .calendar-view table tr td.open ul{opacity:1;z-index:10000;-webkit-transform:scaleY(1);-moz-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1)}.tx-dlf-calendar .calendar-view table tr:nth-child(even) td{background:#e6f5f7}.tx-dlf-calendar .calendar-view table tr:nth-child(even) td h4{border-color:rgba(17,102,119,0.4);background:white}@media screen and (min-width:1024px){.tx-dlf-calendar .calendar-list-selection{display:block}.tx-dlf-calendar .calendar-list-selection{position:absolute;top:85px;right:85px}.tx-dlf-calendar .calendar-list-selection a{position:relative;border:1px solid #167;color:#167;background:white;font-size:14px;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;line-height:18px;padding:10px;height:40px;border-radius:30px;display:inline-block;margin-left:5px}.no-touchevents .tx-dlf-calendar .calendar-list-selection a{cursor:pointer}.tx-dlf-calendar .calendar-list-selection a.active{background:#167;color:white}.tx-dlf-calendar .calendar-list-selection a.active:before{position:absolute;bottom:-5px;left:50%;margin-left:-5px;width:0;height:0;border:5px solid transparent;border-bottom-width:0;border-top-color:#167;content:" "}.tx-dlf-calendar .year-anchor{padding:0 0 10px 30px}.tx-dlf-calendar .year{font-weight:normal;font-size:30px}.tx-dlf-calendar .calendar-view,.tx-dlf-calendar .list-view{position:absolute;top:160px;right:30px;left:30px;opacity:0;-webkit-transform:translateY(-100px) scaleY(0);-moz-transform:translateY(-100px) scaleY(0);-ms-transform:translateY(-100px) scaleY(0);transform:translateY(-100px) scaleY(0);-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;display:block;pointer-events:none;padding-bottom:60px;height:0}.tx-dlf-calendar .calendar-view.active,.tx-dlf-calendar .list-view.active{-webkit-transform:translateY(0) scaleY(1);-moz-transform:translateY(0) scaleY(1);-ms-transform:translateY(0) scaleY(1);transform:translateY(0) scaleY(1);opacity:1;pointer-events:all}.tx-dlf-calendar .calendar-view{margin:0 -30px;display:flex;flex-wrap:wrap}.tx-dlf-calendar .calendar-view .month{position:relative;padding:30px;flex:1 0 auto}.tx-dlf-calendar .calendar-view .month table{width:100%;margin:0}.tx-dlf-calendar .calendar-view .month table tr td{position:relative}.tx-dlf-calendar .calendar-view .month table tr td h4,.tx-dlf-calendar .calendar-view .month table tr td .day-label{padding:5px}.tx-dlf-calendar .calendar-view .month table tr td ul{left:50%;right:auto;padding:0 10px;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tx-dlf-calendar .calendar-view .month table tr td.open h4,.tx-dlf-calendar .calendar-view .month table tr td.open .day-label{-webkit-transform:scale(1.4);-moz-transform:scale(1.4);-ms-transform:scale(1.4);transform:scale(1.4)}.tx-dlf-calendar .calendar-view .month table tr td.open h4:after,.tx-dlf-calendar .calendar-view .month table tr td.open .day-label:after{top:26px;opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.tx-dlf-calendar .calendar-view .month table tr td.open ul{z-index:200}.tx-dlf-calendar .list-view ul li{padding:10px;margin:10px 0;font-size:14px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.tx-dlf-calendar .list-view ul li:nth-child(even){background:#e6f5f7}.tx-dlf-calendar .list-view ul li .listview-date{line-height:25px}.tx-dlf-calendar .list-view ul li .listview-date:after{content:": "}.tx-dlf-calendar .list-view ul li a{background:#167;color:#fff;display:inline-block;border-radius:6px;padding:5px 10px;margin:0 5px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.tx-dlf-calendar .list-view ul li a:last-child{margin-right:0}.no-touchevents .tx-dlf-calendar .list-view ul li a:hover{background:rgba(204,0,0,0.5)}}@media screen and (min-width:1200px){.tx-dlf-calendar .calendar-list-selection{top:40px}.tx-dlf-calendar .calendar-view{justify-content:center}.tx-dlf-calendar .calendar-view .month{flex:0 0 auto}}body.gridview .view-functions{display:none}body.gridview .step-back-button{top:60px;left:10px;border:1px solid #d9d9d9}@media screen and (min-width:1024px){body.gridview .step-back-button{border:0 none;top:80px;left:15px}}.tx-dlf-pagegrid-list{position:absolute;top:60px;right:0;bottom:0;left:0;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.tx-dlf-pagegrid-list li{width:100px;height:160px;display:inline-block;margin:10px}.no-touchevents .tx-dlf-pagegrid-list li{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.no-touchevents .tx-dlf-pagegrid-list li:hover{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.tx-dlf-pagegrid-list li img{position:relative;height:100%;width:100%;object-fit:contain;max-height:150px}.tx-dlf-pagegrid-list li .tx-dlf-pagegrid-pagination{margin-top:5px;font-weight:700;font-size:12px;color:#167}.tx-dlf-pagegrid-list li.current{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.tx-dlf-pagegrid-list li.current img{border:6px solid #167}@media screen and (min-width:768px){.tx-dlf-pagegrid-list{top:0;padding-top:70px}.tx-dlf-pagegrid-list li{width:120px;height:180px;margin:20px}}@media screen and (min-width:1024px){.tx-dlf-pagegrid-list li{width:150px;height:200px}.tx-dlf-pagegrid-list li .tx-dlf-pagegrid-pagination{font-size:14px}}.tx-dlf-pagegrid-pagebrowser{position:absolute;bottom:15px;height:1px;width:290px;left:50%;margin-left:-145px;line-height:0;background:green;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0}.tx-dlf-pagegrid-pagebrowser a{position:absolute;bottom:0;display:none;width:40px;height:40px}.tx-dlf-pagegrid-pagebrowser a:before{position:absolute;top:0;left:0;bottom:-1px;width:40px;height:40px;border-radius:20px;background:white url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat 0 0;content:" "}.tx-dlf-pagegrid-pagebrowser a:first-child{display:block;left:0}.tx-dlf-pagegrid-pagebrowser a:first-child:before{background-position:-240px -80px}.tx-dlf-pagegrid-pagebrowser a:last-child{display:block;right:0}.tx-dlf-pagegrid-pagebrowser a:last-child:before{background-position:-280px -80px}@media screen and (min-width:1024px){.tx-dlf-pagegrid-pagebrowser{height:70px;padding:15px;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;font-size:14px;line-height:30px;color:white;white-space:nowrap;width:auto;margin:0;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);-moz-font-feature-settings:"lnum";-webkit-font-feature-settings:"lnum";font-feature-settings:"lnum";background:rgba(17,102,119,0.9);box-shadow:0 2px 6px rgba(0,0,0,0.2)}.tx-dlf-pagegrid-pagebrowser a,.tx-dlf-pagegrid-pagebrowser a:first-child,.tx-dlf-pagegrid-pagebrowser a:last-child{color:#167;position:relative;display:inline-block;bottom:auto;margin:0 3px;left:auto;right:auto;background:white;border-radius:20px;width:30px;height:30px}.tx-dlf-pagegrid-pagebrowser a:before,.tx-dlf-pagegrid-pagebrowser a:first-child:before,.tx-dlf-pagegrid-pagebrowser a:last-child:before{display:none}}@media screen and (min-width:1200px){.tx-dlf-pagegrid-pagebrowser{font-size:18px;line-height:40px}.tx-dlf-pagegrid-pagebrowser a,.tx-dlf-pagegrid-pagebrowser a:first-child,.tx-dlf-pagegrid-pagebrowser a:last-child{width:40px;height:40px}}.fulltext-container{position:absolute;top:55px;right:0;bottom:0;background:rgba(255,255,255,0.95);text-align:left;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.fulltext-container #tx-dlf-fulltextselection{position:relative;top:0;right:0;width:100%;height:100%;padding:60px 20px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;line-height:1.6em;font-size:16px;color:#333;display:none}.fulltext-container #tx-dlf-fulltextselection:empty{padding:0}.fulltext-container #tx-dlf-fulltextselection .textline:after{content:" "}.fulltext-visible .fulltext-container #tx-dlf-fulltextselection{display:block}.fullscreen .fulltext-container{top:0}@media screen and (min-width:768px){.fulltext-container #tx-dlf-fulltextselection{padding:60px 15%}}@media screen and (min-width:1024px){.fulltext-container{top:0;max-width:71.7%}.fulltext-container:before{height:100px}.fulltext-container:after{height:80px}.fulltext-container #tx-dlf-fulltextselection{padding:80px 100px 60px 30px;line-height:1.8;border-left:1px solid #4ab3c7}.fulltext-container #tx-dlf-fulltextselection .highlight{padding:3px 0;background:#bfe4eb}}@media screen and (min-width:1200px){.fulltext-container{max-width:50%}}.tx-dlf-toolsFulltextsearch{position:absolute;top:0;right:106px}.tx-dlf-toolsFulltextsearch .fulltext-search-toggle{position:absolute;top:10px;right:0;width:40px;height:40px;background:white url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -560px 0;background-size:auto 120px;border-radius:20px;cursor:pointer}.tx-dlf-toolsFulltextsearch .fulltext-search-toggle:after{position:absolute;top:0;right:0;height:40px;width:40px;text-align:center;content:"+";font-size:42px;line-height:32px;color:#167;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;opacity:0}.search-indocument-active .tx-dlf-toolsFulltextsearch .fulltext-search-toggle{background:#e6f5f7}.search-indocument-active .tx-dlf-toolsFulltextsearch .fulltext-search-toggle:after{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);opacity:1}.tx-dlf-toolsFulltextsearch .fulltext-search-toggle.disabled{opacity:.5;pointer-events:none}.no-touchevents .tx-dlf-toolsFulltextsearch .fulltext-search-toggle{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.no-touchevents .tx-dlf-toolsFulltextsearch .fulltext-search-toggle:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.tx-dlf-toolsFulltextsearch form{position:absolute;top:60px;right:-106px;height:40px;width:100vw;padding:0 15px;opacity:0;pointer-events:none;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.tx-dlf-toolsFulltextsearch form label{display:none}.tx-dlf-toolsFulltextsearch form input[type="text"]{position:relative;width:100%;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;background:white;border-radius:20px;border:0;font-size:14px;line-height:1.1;padding:4px 10px;height:40px;color:#333;box-shadow:0 2px 10px rgba(0,0,0,0.2)}.tx-dlf-toolsFulltextsearch form input[type="text"]:focus{color:#167}.tx-dlf-toolsFulltextsearch form button[type="submit"],.tx-dlf-toolsFulltextsearch form input[type="submit"]{position:absolute;top:0;right:15px;width:40px;height:40px;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;background:#e6f5f7 url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -560px 0;background-size:auto 120px;border-radius:20px}.search-indocument-active .tx-dlf-toolsFulltextsearch form{pointer-events:all;opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-loading,.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-clearing{display:none}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results{position:fixed;top:230px;right:15px;max-height:calc(100vh - 310px);left:15px;background:white;text-align:center;border-radius:20px;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:none;opacity:0;box-shadow:0 2px 10px rgba(0,0,0,0.2);-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li{padding:15px 10px;border-bottom:1px solid #d9d9d9;line-height:1.2}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li .structure{font-size:14px;position:relative;display:block;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;text-transform:uppercase;color:#a6a6a6}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li .highlight,.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li em{font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;color:#c00;font-style:normal}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li .textsnippet a{color:#333}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li .textsnippet:before,.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li .textsnippet:after{content:"…"}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results .button-previous,.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results .button-next{position:relative;margin:30px 10px;background:#4ab3c7;appearance:none;border:0;padding:10px 20px;line-height:1;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;text-transform:uppercase;color:white}.search-indocument-active .tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results{pointer-events:all;opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.search-indocument-active .tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results:empty{pointer-events:none;opacity:0;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}@media screen and (min-width:480px){.tx-dlf-toolsFulltextsearch form{top:10px;right:40px;width:400px}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results{top:165px;z-index:1030;max-height:calc(100vh - 170px)}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li .structure{display:inline}}@media screen and (min-width:768px){.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results{top:180px;max-height:calc(100vh - 280px)}}@media screen and (min-width:1024px){.tx-dlf-toolsFulltextsearch{top:10px;right:8px}.tx-dlf-toolsFulltextsearch form{top:80px;right:0;width:450px;height:70px;margin:0;border-radius:0;background:rgba(17,102,119,0.9);padding:15px;box-shadow:0 2px 6px rgba(0,0,0,0.2)}.tx-dlf-toolsFulltextsearch form input[type="text"]{border-radius:0}.tx-dlf-toolsFulltextsearch form button[type="submit"],.tx-dlf-toolsFulltextsearch form input[type="submit"]{top:15px;border-radius:20px 0 0 20px;background-color:#bfe4eb}.tx-dlf-toolsFulltextsearch form:before{position:absolute;top:-10px;right:10px;width:0;height:0;border:10px solid transparent;border-bottom-color:rgba(17,102,119,0.9);border-top:0;content:" "}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results{position:absolute;top:150px;right:0;left:auto;bottom:auto;width:450px;height:400px;border-radius:0;background:rgba(17,102,119,0.9);padding:0 15px 15px 15px;box-shadow:0 2px 6px rgba(0,0,0,0.2)}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li{text-align:left;padding:10px 0;color:white}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li .structure{color:white;opacity:.6}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li a{color:white}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li a .highlight,.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results li a em{color:white}}@media screen and (min-width:1200px){.tx-dlf-toolsFulltextsearch form{width:600px}.tx-dlf-toolsFulltextsearch #tx-dlf-search-in-document-results{width:600px;font-size:14px;height:auto;max-height:70vh}}body.calendar .tx-dlf-toolsFulltextsearch{top:-20px;right:15px}body.calendar .tx-dlf-toolsFulltextsearch form{right:-15px}@media screen and (min-width:480px){body.calendar .tx-dlf-toolsFulltextsearch form{right:40px}}@media screen and (min-width:1024px){body.calendar .tx-dlf-toolsFulltextsearch{top:30px;right:35px}body.calendar .tx-dlf-toolsFulltextsearch .fulltext-search-toggle{border:1px solid #167}body.calendar .tx-dlf-toolsFulltextsearch form{right:0}}.control-bar .header-bar .brand a{line-height:24px}@media screen and (min-width:1024px){.control-bar:before{position:absolute;top:0;left:0;right:-60px;height:85px;background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/headerbarBg.svg') no-repeat left top;background-size:100% 100%;content:" ";pointer-events:none}.control-bar .header-bar nav .nav-toggle{right:0}.control-bar .header-bar nav .language-nav{right:24px}}@media screen and (min-width:1024px){.document-functions>ul{left:40px}}/*# sourceMappingURL=Resources/Public/Css/Digitalcollections.css.map */
\ No newline at end of file
diff --git a/Resources/Public/Css/DigitalcollectionsLists.css b/Resources/Public/Css/DigitalcollectionsLists.css
new file mode 100644
index 00000000..2bc88b90
--- /dev/null
+++ b/Resources/Public/Css/DigitalcollectionsLists.css
@@ -0,0 +1 @@
+html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{background:transparent;border:0;margin:0;padding:0;vertical-align:baseline}body{line-height:1}h1,h2,h3,h4,h5,h6{clear:both;font-weight:normal}ol,ul{list-style:none}blockquote{quotes:none}blockquote:before,blockquote:after{content:'';content:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}a img{border:none}.control-bar .header-bar .brand a{line-height:24px}@media screen and (min-width:1024px){.control-bar:before{position:absolute;top:0;left:0;right:-60px;height:85px;background:url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/headerbarBg.svg') no-repeat left top;background-size:100% 100%;content:" ";pointer-events:none}.control-bar .header-bar nav .nav-toggle{right:0}.control-bar .header-bar nav .language-nav{right:24px}}@media screen and (min-width:1024px){.document-functions>ul{left:40px}}.listview h2,.listview #rightcol .rightnav{display:none}#leftcol .tx-dlf-listview h2{font-size:24px;display:block;margin:0}#leftcol .tx-dlf-listview p.tx-dlf-search-numHits{font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;margin-top:0;font-size:14px}#leftcol .tx-dlf-listview p.tx-dlf-sortinfo~form{display:none}#leftcol .tx-dlf-listview p.tx-dlf-sortinfo{text-align:center;margin:0;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;clear:both}#leftcol .tx-dlf-listview p.tx-dlf-pagebrowser{margin:20px 0;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;-moz-font-feature-settings:"lnum";-webkit-font-feature-settings:"lnum";font-feature-settings:"lnum";color:#333;text-align:center}#leftcol .tx-dlf-listview p.tx-dlf-pagebrowser a{display:inline-block;min-width:30px;height:30px;border:1px solid #d9d9d9;text-decoration:none;border-radius:15px;margin:0 5px;background:white;padding:0 5px}@media screen and (min-width:480px){#leftcol .tx-dlf-listview h2{font-size:28px}}@media screen and (min-width:1024px){#leftcol .tx-dlf-listview p.tx-dlf-sortinfo~form{position:relative;display:block}#leftcol .tx-dlf-listview p.tx-dlf-sortinfo~form>div{position:absolute;top:-45px;right:0;width:65%;display:flex;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-size:14px}#leftcol .tx-dlf-listview p.tx-dlf-sortinfo~form>div label{white-space:nowrap;text-align:right;line-height:35px;margin:0 5px 0 0}#leftcol .tx-dlf-listview p.tx-dlf-sortinfo~form>div select{position:relative;appearance:none;-webkit-appearance:none;border:1px solid #d9d9d9;height:35px;background:white url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCAyMDAiPjxwYXRoIGQ9Ik0xMC4zIDMzLjVsMi4yLTIuMSA3LjctNy44LTIuMS0yLjEtNy44IDcuNy03LjctNy43LTIuMiAyLjEgNy44IDcuOCAyLjEgMi4xeiIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMwNzgwNzgiLz48cGF0aCBkPSJNMTAuMyAxMzMuNWwyLjItMi4xIDcuNy03LjgtMi4xLTIuMS03LjggNy43LTcuNy03LjctMi4yIDIuMSA3LjggNy44IDIuMSAyLjF6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI2MwMCIvPjwvc3ZnPg==") no-repeat right 3px;background-size:auto 100px;padding:5px 20px 5px 5px;border-radius:0;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;font-size:14px;line-height:1;box-shadow:2px 2px 4px rgba(0,0,0,0.1);color:#666;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}#leftcol .tx-dlf-listview p.tx-dlf-sortinfo~form>div select:hover{background-position:right -47px;border-color:#167;color:#c00}#leftcol .tx-dlf-listview p.tx-dlf-sortinfo{text-align:left;height:40px;border-bottom:1px solid #d9d9d9}}@media screen and (min-width:1200px){#leftcol .tx-dlf-listview h2{font-size:36px}}#leftcol .tx-dlf-listview .tx-dlf-abstracts{list-style:none;margin:0;padding:0}#leftcol .tx-dlf-listview .tx-dlf-abstracts li{position:relative;padding:30px 0;text-align:center;border-bottom:1px solid #d9d9d9}#leftcol .tx-dlf-listview .tx-dlf-abstracts li:before{display:none}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail{margin-bottom:10px}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail img{max-height:150px}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl{font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-size:14px;-moz-font-feature-settings:"lnum";-webkit-font-feature-settings:"lnum";font-feature-settings:"lnum"}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dt,#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dd{display:inline}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dt{font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dt:after{content:": "}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dt.tx-dlf-title{display:none}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dd.tx-dlf-title{font-size:22px;display:block}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dd.tx-dlf-title a{text-decoration:none;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dd.tx-dlf-title:after{display:none}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dd:after{content:"//";margin:0 5px}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dd:last-child:after{display:none}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-morevolumes{position:relative;width:40px;height:40px;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;display:inline-block;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;transform-origin:center center;cursor:pointer}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-morevolumes:before{position:absolute;top:-5px;left:5px;content:">>";font-size:40px;line-height:40px;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;color:#167;display:block;letter-spacing:-0.1em}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-hidevolumes{display:none}#leftcol .tx-dlf-listview .tx-dlf-abstracts li.tx-dlf-volumes-open .tx-dlf-morevolumes{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume{position:relative;background:#e9f3f5;padding:15px 0;display:none}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume li{border-bottom:1px solid white;padding:15px}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume li .tx-dlf-listview-thumbnail img{width:60px;margin-left:15px}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume li dl dd.tx-dlf-title{font-size:18px}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume li dl dd.tx-dlf-title a{color:#0e5361}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume li:first-child{border-top:1px solid white}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume:before{position:absolute;top:-15px;left:50%;margin-left:-15px;height:0;width:0;border:15px solid transparent;border-top-width:0;border-bottom-color:#e9f3f5;content:" "}@media screen and (min-width:480px){#leftcol .tx-dlf-listview .tx-dlf-abstracts{border-top:1px solid #d9d9d9}#leftcol .tx-dlf-listview .tx-dlf-abstracts li{text-align:left;display:flex;align-items:center;line-height:1.7;flex-wrap:wrap}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail{position:relative;margin:0 25px 0 0;line-height:0;flex:0 1 auto}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail img{width:90px;height:auto}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail:empty{width:90px;min-height:90px;border:1px solid #d9d9d9}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail:empty:before,#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail:empty:after{margin:-25px -3px 0 0;position:absolute;top:50%;right:50%;width:1px;height:50px;background:#d9d9d9;content:" "}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail:empty:before{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-listview-thumbnail:empty:after{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl{flex:1 1 60%}#leftcol .tx-dlf-listview .tx-dlf-abstracts li dl dd.tx-dlf-title{line-height:1.2;margin-bottom:5px}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume{flex:0 0 100%}#leftcol .tx-dlf-listview .tx-dlf-abstracts li .tx-dlf-volume:before{left:auto;right:5px}}.tx-dlf-listview>img{width:100%;height:auto;border:1px solid #d9d9d9;margin-top:20px;max-height:350px}.tx-dlf-listview>p>img{display:none}@media screen and (min-width:768px){.tx-dlf-listview>img{float:left;width:auto;margin:30px 15px 15px 0}}#rightcol .tx-dlf-enable-offcanvas{position:fixed;top:0;right:0;bottom:0;width:90%;background:rgba(17,102,119,0.97);z-index:102;text-align:left;padding:15px;margin:0;border:none;color:white;-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}#rightcol .tx-dlf-enable-offcanvas .offcanvas-toggle{position:absolute;left:-30px;border-radius:30px 0 0 30px;bottom:100px;width:30px;height:60px;background:rgba(17,102,119,0.97)}#rightcol .tx-dlf-enable-offcanvas .offcanvas-toggle:before{position:absolute;top:20px;left:7px;width:14px;height:14px;border-radius:14px;border:2px solid white;content:" "}#rightcol .tx-dlf-enable-offcanvas .offcanvas-toggle:after{position:absolute;right:4px;bottom:20px;width:2px;height:8px;background:white;content:" ";-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}#rightcol .tx-dlf-enable-offcanvas.open{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);z-index:1100}#rightcol .tx-dlf-enable-offcanvas.open .offcanvas-toggle{border-color:white}#rightcol .tx-dlf-enable-offcanvas h3{color:white}@media screen and (min-width:768px){#rightcol .tx-dlf-enable-offcanvas{width:60%}}@media screen and (min-width:1024px){#rightcol .tx-dlf-enable-offcanvas{position:relative;top:auto;right:auto;bottom:auto;width:auto;background:white;color:#333;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}#rightcol .tx-dlf-enable-offcanvas .offcanvas-toggle{display:none}#rightcol .tx-dlf-enable-offcanvas h3{color:#c00}}#rightcol .tx-dlf-search{position:absolute;top:60px;right:15px;bottom:15px;left:15px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}#rightcol .tx-dlf-search form{position:relative;margin-bottom:20px;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-size:14px}#rightcol .tx-dlf-search form input[type="text"]{position:relative;width:100%;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-size:14px;background:white;border:0;line-height:1.1;padding:4px 10px;height:40px;color:#333;box-shadow:0 2px 4px rgba(0,0,0,0.4);margin-bottom:10px}#rightcol .tx-dlf-search form input[type="text"]:focus{color:#167}#rightcol .tx-dlf-search form input[type="submit"]{position:absolute;top:0;right:0;width:40px;height:40px;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;background:#e6f5f7 url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -560px 0;background-size:auto 120px;border-radius:20px 0 0 20px}#rightcol .tx-dlf-search form input[type="radio"]{position:relative;appearance:none;-webkit-appearance:none;border:2px solid rgba(255,255,255,0.4);width:20px;height:20px;border-radius:10px;vertical-align:middle}#rightcol .tx-dlf-search form input[type="radio"]:after{position:absolute;top:4px;left:4px;width:8px;height:8px;border-radius:4px;background:white;content:" ";opacity:0}#rightcol .tx-dlf-search form input[type="radio"]:hover{border-color:white}#rightcol .tx-dlf-search form input[type="radio"]:checked{background:#178ca4}#rightcol .tx-dlf-search form input[type="radio"]:checked:after{opacity:1}#rightcol .tx-dlf-search form label{margin-right:10px}#rightcol .tx-dlf-search form label[for="tx-dlf-search-query"]{display:none}#rightcol .tx-dlf-search form #tx-dlf-search-suggest{position:absolute}#rightcol .tx-dlf-search form #tx-dlf-search-suggest ul{z-index:300;margin:10px 0 0 0;padding:0;background:white;box-shadow:0 2px 8px rgba(0,0,0,0.4)}#rightcol .tx-dlf-search form #tx-dlf-search-suggest ul li{color:#167;padding:10px 15px;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;border-bottom:1px solid #d9d9d9}.no-touchevents #rightcol .tx-dlf-search form #tx-dlf-search-suggest ul li{-webkit-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;cursor:pointer}.no-touchevents #rightcol .tx-dlf-search form #tx-dlf-search-suggest ul li:hover{background:white;color:#167}#rightcol .tx-dlf-search form #tx-dlf-search-suggest ul:after{position:absolute;top:-10px;left:20px;width:0;height:0;border:10px solid transparent;border-top-width:0;border-bottom-color:white;content:" ";z-index:301}@media screen and (min-width:1024px){#rightcol .tx-dlf-search{position:relative;top:auto;right:auto;bottom:auto;left:auto;overflow:visible}#rightcol .tx-dlf-search form input[type="text"]{box-shadow:2px 2px 4px rgba(0,0,0,0.1);border:1px solid #afafaf}#rightcol .tx-dlf-search form input[type="submit"]{top:1px;right:1px;height:38px}#rightcol .tx-dlf-search form input[type="radio"]{border-color:#167;height:16px;width:16px;border-radius:8px}#rightcol .tx-dlf-search form input[type="radio"]:after{top:2px;left:2px}#rightcol .tx-dlf-search form input[type="radio"]:hover{border-color:#c00}#rightcol .tx-dlf-search form label:hover{color:#c00}#rightcol .tx-dlf-search form #tx-dlf-search-suggest ul{background:rgba(17,102,119,0.9)}#rightcol .tx-dlf-search form #tx-dlf-search-suggest ul li{color:white}#rightcol .tx-dlf-search form #tx-dlf-search-suggest ul:after{border-bottom-color:rgba(17,102,119,0.9)}}#rightcol .tx-dlf-search-facets{position:relative;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;color:white}#rightcol .tx-dlf-search-facets ul{padding:0;margin:0}#rightcol .tx-dlf-search-facets ul li{font-size:18px;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;text-transform:uppercase;padding:0;display:none;margin:30px 0}#rightcol .tx-dlf-search-facets ul li.tx-dlf-search-ifsub{display:block}#rightcol .tx-dlf-search-facets ul li ul{border-top:1px solid rgba(255,255,255,0.3)}#rightcol .tx-dlf-search-facets ul li ul li{font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;text-transform:none;opacity:1;display:block;margin:0}#rightcol .tx-dlf-search-facets ul li ul li a{position:relative;color:white;font-size:14px;padding:5px 0;display:inline-block}#rightcol .tx-dlf-search-facets ul li ul li.tx-dlf-search-cur{font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif}#rightcol .tx-dlf-search-facets ul li .facets-toggle{font-size:14px;border-top:1px solid rgba(255,255,255,0.6);padding-top:5px;opacity:.5}.no-touchevents #rightcol .tx-dlf-search-facets ul li .facets-toggle{cursor:pointer}@media screen and (min-width:1024px){#rightcol .tx-dlf-search-facets ul li{color:#666;font-size:16px}#rightcol .tx-dlf-search-facets ul li ul{margin:5px 0;border-top:1px solid #d9d9d9}#rightcol .tx-dlf-search-facets ul li ul li a{color:#167}#rightcol .tx-dlf-search-facets ul li ul li.tx-dlf-search-cur a{position:relative;padding-left:18px}#rightcol .tx-dlf-search-facets ul li ul li.tx-dlf-search-cur a:after{position:absolute;top:50%;left:0;margin-top:-16px;content:"+";font-size:30px;line-height:30px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#rightcol .tx-dlf-search-facets ul li .facets-toggle{border-top:1px solid #d9d9d9}}body.collections #leftcol #c15323 h3{margin-top:0;font-size:14px;bottom:-11px;padding:0 5px;left:15px;text-transform:uppercase;color:#757575;background:white;display:inline-block}body.collections #leftcol #c15323 .tx-dlf-search{border:solid #d9d9d9;border-width:1px 0;padding:20px 0 15px 0}body.collections #leftcol #c15323 .tx-dlf-search form{position:relative;margin:0;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-size:14px}body.collections #leftcol #c15323 .tx-dlf-search form label{width:auto;margin:0;display:inline-block;float:none;vertical-align:middle}body.collections #leftcol #c15323 .tx-dlf-search form input[type="text"]{position:relative;width:100%;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-size:14px;background:white;border:1px solid #167;line-height:1.1;padding:4px 10px;height:40px;color:#333;box-shadow:0 2px 6px rgba(0,0,0,0.3);margin-bottom:10px;float:none}body.collections #leftcol #c15323 .tx-dlf-search form input[type="text"]:focus{color:#167}body.collections #leftcol #c15323 .tx-dlf-search form input[type="submit"]{position:absolute;top:1px;right:1px;width:38px;height:38px;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;background:#e6f5f7 url('/typo3conf/ext/slub_digitalcollections/Resources/Public/Images/Slub/viewerControlIcons.svg') no-repeat -560px 0;background-size:auto 120px;border-radius:20px 0 0 20px}body.collections #leftcol #c15323 .tx-dlf-search form input[type="radio"]{position:relative;appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:10px;vertical-align:middle;margin:0 3px 0 0;float:none;background:#178ca4}body.collections #leftcol #c15323 .tx-dlf-search form input[type="radio"]:after{position:absolute;top:5px;left:5px;width:6px;height:6px;border-radius:4px;background:white;content:" ";opacity:0}body.collections #leftcol #c15323 .tx-dlf-search form input[type="radio"]:hover{border-color:white}body.collections #leftcol #c15323 .tx-dlf-search form input[type="radio"]:checked{background:#167}body.collections #leftcol #c15323 .tx-dlf-search form input[type="radio"]:checked:after{opacity:1}body.collections #leftcol #c15323 .tx-dlf-search form label{margin-right:10px}body.collections #leftcol #c15323 .tx-dlf-search form label[for="tx-dlf-search-query"]{display:none}body.collections #leftcol #c15323 .tx-dlf-search form #tx-dlf-search-suggest{position:absolute}body.collections #leftcol #c15323 .tx-dlf-search form #tx-dlf-search-suggest:after{position:absolute;top:0;left:20px;width:0;height:0;border:10px solid transparent;border-top-width:0;border-bottom-color:white;content:" ";z-index:301}body.collections #leftcol #c15323 .tx-dlf-search form #tx-dlf-search-suggest ul{z-index:300;margin:10px 0 0 0;padding:0;background:white;box-shadow:0 2px 8px rgba(0,0,0,0.4)}body.collections #leftcol #c15323 .tx-dlf-search form #tx-dlf-search-suggest ul li{color:#167;padding:10px 15px;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;border-bottom:1px solid #d9d9d9}.no-touchevents body.collections #leftcol #c15323 .tx-dlf-search form #tx-dlf-search-suggest ul li{-webkit-transition:all .15s ease-in;-o-transition:all .15s ease-in;transition:all .15s ease-in;cursor:pointer}.no-touchevents body.collections #leftcol #c15323 .tx-dlf-search form #tx-dlf-search-suggest ul li:hover{background:white;color:#167}body.collections #leftcol #c15323 .tx-dlf-search form .tx-dlf-search-extended,body.collections #leftcol #c15323 .tx-dlf-search form .extended-search-toggle{display:none}body.collections #leftcol .tx-dlf-collection{position:relative;padding-top:30px;margin-top:20px}body.collections #leftcol .tx-dlf-collection-list{margin:0 -5px;padding:0}body.collections #leftcol .tx-dlf-collection-list:before,body.collections #leftcol .tx-dlf-collection-list:after{content:" ";display:table}body.collections #leftcol .tx-dlf-collection-list:after{clear:both}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col{width:100%}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col.col-2,body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col.col-3{display:none}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item{position:relative;padding:15px 0}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-thumbnail{overflow:hidden;border:1px solid #d9d9d9}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-thumbnail img{border:2px solid white;min-width:100%}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information{position:absolute;right:3px;bottom:18px;left:3px;background:white;overflow:hidden;padding:10px;line-height:1.3}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information .tx-dlf-collection-counts{font-size:14px;margin:0}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information h4{margin:0 0 4px 0;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;font-size:16px;text-transform:uppercase}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information h4 a{font-color:#167;text-decoration:none}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information>a[href*="rss"]{display:none}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item{cursor:pointer}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-thumbnail img,.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information,.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information h4 a{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information h4{padding-right:30px}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information>a{position:absolute;top:50%;right:10px;width:30px;height:30px;margin-top:-15px;display:block;font:0/0 'Open Sans',Helvetica,Arial,sans-serif;color:transparent;text-shadow:none;background-color:transparent;border:0;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCI+PHBhdGggZD0iTTE1IDM4LjFoM2MwLTExIDguOS0xOS41IDIwLjMtMTkuNXYtM2MtMTMtLjEtMjMuMyA5LjgtMjMuMyAyMi41eiIvPjxwYXRoIGQ9Ik0yLjMgMzguMWgzQzUuMyAxOS41IDE5LjggNSAzOC4zIDVWMmMtMjAuMiAwLTM2IDE1LjgtMzYgMzYuMXoiLz48Y2lyY2xlIGN4PSIzMy44IiBjeT0iMzMuNiIgcj0iNC41Ii8+PC9zdmc+") no-repeat center center;background-size:30px auto;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;-webkit-transform:translateX(60px);-moz-transform:translateX(60px);-ms-transform:translateX(60px);transform:translateX(60px);opacity:0}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information>a img{display:none}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item:hover .tx-dlf-collection-thumbnail img{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);opacity:.8}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item:hover .tx-dlf-collection-meta-information{padding-bottom:20px}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item:hover .tx-dlf-collection-meta-information h4 a{color:#c00}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item:hover .tx-dlf-collection-meta-information>a{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);opacity:.3}.no-touchevents body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item:hover .tx-dlf-collection-meta-information>a:hover{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}body.collections #leftcol .tx-dlf-collection-list.alphabetical{position:relative;min-height:2000px;margin-top:30px}body.collections #leftcol .tx-dlf-collection-list.alphabetical li{position:relative;width:100%;border-top:1px dotted #ccc;padding:20px 0;display:flex;align-items:center}body.collections #leftcol .tx-dlf-collection-list.alphabetical li.tx-dlf-collection-col{display:none}body.collections #leftcol .tx-dlf-collection-list.alphabetical li.order-label{border:0 none;height:0;padding:0;z-index:122}body.collections #leftcol .tx-dlf-collection-list.alphabetical li.order-label .order-label-value{position:absolute;top:-25px;right:50%;height:50px;min-width:50px;border-radius:25px;background:rgba(216,233,237,0.7);border:1px solid white;color:#167;padding:5px 15px;text-align:center;font-size:30px;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;white-space:nowrap;line-height:1.1;-webkit-transform:translateX(50%);-moz-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);-moz-font-feature-settings:"lnum";-webkit-font-feature-settings:"lnum";font-feature-settings:"lnum"}body.collections #leftcol .tx-dlf-collection-list.alphabetical li.order-label:hover:before{display:none}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-thumbnail{width:70px;height:100px;background:white;z-index:120}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-thumbnail img{height:100%;min-width:70px;object-fit:cover;border:1px solid #d9d9d9}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-meta-information{position:relative;bottom:auto;left:auto;right:auto;background:transparent;padding:0 0 0 20px;overflow:visible}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-meta-information h4{font-size:18px;font-weight:normal;margin:0}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-meta-information h4 a{color:#333;text-decoration:none}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-meta-information h4 a:hover{text-decoration:none}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-meta-information>a{display:none}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-meta-information p{height:auto;opacity:1;font-size:16px;padding:5px 0 0 0;margin:0;color:#333}body.collections #leftcol .tx-dlf-collection-list.alphabetical li .tx-dlf-collection-meta-information>a{right:-25px;top:0;bottom:auto}body.collections #leftcol .tx-dlf-collection-list.alphabetical li:before{position:absolute;top:5px;right:-5px;bottom:5px;left:-5px;background:#d8e9ed;content:" ";opacity:0;pointer-events:none;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}body.collections #leftcol .tx-dlf-collection-list.alphabetical li:hover .tx-dlf-collection-thumbnail img,body.collections #leftcol .tx-dlf-collection-list.alphabetical li:hover:before{opacity:1}body.collections #leftcol .tx-dlf-collection-list.alphabetical li:hover .tx-dlf-collection-meta-information p{border-top-color:transparent}body.collections #leftcol .tx-dlf-collection-list.alphabetical li:hover .tx-dlf-collection-meta-information>a{bottom:auto}body.collections #leftcol .tx-dlf-collection-list.alphabetical-ready li{opacity:1}body.collections #leftcol .tx-dlf-list-toggle-container{position:absolute;top:0;left:0;display:flex;align-items:center;cursor:pointer;z-index:130;font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif}body.collections #leftcol .tx-dlf-list-toggle-container .tx-dlf-list-toggle{position:relative;width:35px;height:20px;background:white;border-radius:20px;border:1px solid #167;margin:0 10px}body.collections #leftcol .tx-dlf-list-toggle-container .tx-dlf-list-toggle .toggle-state{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:7px;background:#167;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}body.collections #leftcol .tx-dlf-list-toggle-container.alphabetical .tx-dlf-list-toggle .toggle-state{left:17px}body.collections #leftcol .tx-dlf-list-toggle-container .label{font-size:14px;opacity:.4;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}body.collections #leftcol .tx-dlf-list-toggle-container .label.active{opacity:1;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif}body.collections #leftcol .tx-dlf-collection-list-additionals{display:none}@media screen and (min-width:480px){body.collections #leftcol .tx-dlf-collection{padding-top:0}body.collections #leftcol .tx-dlf-list-toggle-container{right:0;top:-45px;left:auto}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col{width:50%;float:left}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col.col-2{display:block}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col.col-3{display:none}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item{padding:5px}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information{right:8px;bottom:8px;left:8px}body.collections #leftcol .tx-dlf-collection-list.alphabetical{margin-top:0}}@media screen and (min-width:1024px){body.collections #leftcol{padding:0;width:100%;float:none}body.collections #leftcol .tx-dlf-statistics{font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif}body.collections #leftcol .tx-dlf-statistics strong{font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-size:26px;white-space:nowrap;color:#c00}body.collections #leftcol #c15323 .tx-dlf-search{padding:30px 10% 30px 0}body.collections #leftcol #c15323 .tx-dlf-search form input[type="text"]{border-color:rgba(17,102,119,0.5)}body.collections #leftcol #c15323 .tx-dlf-search form input[type="submit"]{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}body.collections #leftcol #c15323 .tx-dlf-search form .tx-dlf-search-extended{position:relative;display:block;margin:0;height:0;opacity:0;pointer-events:none;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}body.collections #leftcol #c15323 .tx-dlf-search form .tx-dlf-search-extended select{position:absolute;top:0;display:block;appearance:none;-webkit-appearance:none;height:40px;background:transparent url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMiA0MCI+PHBhdGggZmlsbD0iIzE2NyIgZD0iTTguNiAxOGwtNC4xIDYuMDRMLjQgMTh6Ii8+PC9zdmc+") no-repeat right center;background-size:auto 40px;border-right:1px solid;border-color:transparent #167 transparent transparent;border-radius:0;font-family:'VistaSansBold','Calibri-Bold','Helvetica',Sans-serif;z-index:100;padding:10px;color:#167;font-size:14px}body.collections #leftcol #c15323 .tx-dlf-search form .tx-dlf-search-extended select.tx-dlf-search-operator{left:0;width:70px}body.collections #leftcol #c15323 .tx-dlf-search form .tx-dlf-search-extended select.tx-dlf-search-field{left:70px}body.collections #leftcol #c15323 .tx-dlf-search form .extended-search-toggle{position:absolute;right:0;bottom:0;display:block;cursor:pointer;text-decoration:underline}body.collections #leftcol #c15323 .tx-dlf-search form .extended-search-toggle span{display:none}body.collections #leftcol #c15323 .tx-dlf-search form.extendend-search-active{padding-bottom:40px}body.collections #leftcol #c15323 .tx-dlf-search form.extendend-search-active input[type="submit"]{top:267px;right:-10%;height:50px;width:50px;border-radius:25px;background-position:-555px 5px}body.collections #leftcol #c15323 .tx-dlf-search form.extendend-search-active .tx-dlf-search-extended{margin:15px 0 -5px 0;height:40px;opacity:1;pointer-events:all}body.collections #leftcol #c15323 .tx-dlf-search form.extendend-search-active .extended-search-toggle span{display:inline}body.collections #leftcol .tx-dlf-collection-list{margin:20px -15px}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col{width:33.333333%;float:left}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col.col-3{display:block}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item{padding:15px}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information{right:16px;left:16px;bottom:16px;padding:15px 15px 15px 15px}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information h4{margin:0}body.collections #leftcol .tx-dlf-collection-list .tx-dlf-collection-col .tx-dlf-collection-item .tx-dlf-collection-meta-information .tx-dlf-collection-counts{font-family:'VistaSansBook','Calibri','Helvetica',Sans-serif;font-size:12px}}@media screen and (min-width:1200px){body.collections #leftcol .tx-dlf-statistics{padding-right:20%}body.collections #leftcol #c15323 .tx-dlf-search{padding:30px 20% 30px 0}}/*# sourceMappingURL=Resources/Public/Css/DigitalcollectionsLists.css.map */
\ No newline at end of file
diff --git a/Resources/Public/Images/BackendLayouts/workview.png b/Resources/Public/Images/BackendLayouts/workview.png
new file mode 100644
index 00000000..6a65c2fa
Binary files /dev/null and b/Resources/Public/Images/BackendLayouts/workview.png differ
diff --git a/Resources/Public/Images/Basiclogo.svg b/Resources/Public/Images/Basiclogo.svg
new file mode 100644
index 00000000..0767ecdf
--- /dev/null
+++ b/Resources/Public/Images/Basiclogo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Resources/Public/Images/Slub/Slublogo.svg b/Resources/Public/Images/Slub/Slublogo.svg
new file mode 100644
index 00000000..a069bff7
--- /dev/null
+++ b/Resources/Public/Images/Slub/Slublogo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Resources/Public/Images/Slub/headerbarBg.svg b/Resources/Public/Images/Slub/headerbarBg.svg
new file mode 100644
index 00000000..ec170138
--- /dev/null
+++ b/Resources/Public/Images/Slub/headerbarBg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Resources/Public/Images/Slub/viewerControlIcons.svg b/Resources/Public/Images/Slub/viewerControlIcons.svg
new file mode 100644
index 00000000..78456b91
--- /dev/null
+++ b/Resources/Public/Images/Slub/viewerControlIcons.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Resources/Public/Images/viewerControlIcons.svg b/Resources/Public/Images/viewerControlIcons.svg
new file mode 100644
index 00000000..c37b45d7
--- /dev/null
+++ b/Resources/Public/Images/viewerControlIcons.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Resources/Public/Images/viewerTocIcons.svg b/Resources/Public/Images/viewerTocIcons.svg
new file mode 100644
index 00000000..94dccf9c
--- /dev/null
+++ b/Resources/Public/Images/viewerTocIcons.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Resources/Public/Javascript/DigitalcollectionsListScripts.js b/Resources/Public/Javascript/DigitalcollectionsListScripts.js
new file mode 100644
index 00000000..b5ebb0ee
--- /dev/null
+++ b/Resources/Public/Javascript/DigitalcollectionsListScripts.js
@@ -0,0 +1 @@
+function mobileCheck(){var e,t=!1;return e=navigator.userAgent||navigator.vendor||window.opera,(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(t=!0),t}!function(a,f,h){function p(e,t){return typeof e===t}function m(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,i){return t+i.toUpperCase()}).replace(/^-/,"")}function g(){return"function"!=typeof f.createElement?f.createElement(arguments[0]):x?f.createElementNS.call(f,"http://www.w3.org/2000/svg",arguments[0]):f.createElement.apply(f,arguments)}function o(e,t,i,n){var o,s,a,l,r,c="modernizr",d=g("div"),u=((r=f.body)||((r=g(x?"svg":"body")).fake=!0),r);if(parseInt(i,10))for(;i--;)(a=g("div")).id=n?n[i]:c+(i+1),d.appendChild(a);return(o=g("style")).type="text/css",o.id="s"+c,(u.fake?u:d).appendChild(o),u.appendChild(d),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(f.createTextNode(e)),d.id=c,u.fake&&(u.style.background="",u.style.overflow="hidden",l=w.style.overflow,w.style.overflow="hidden",w.appendChild(u)),s=t(d,e),u.fake?(u.parentNode.removeChild(u),w.style.overflow=l,w.offsetHeight):d.parentNode.removeChild(d),!!s}function l(e,t){return function(){return e.apply(t,arguments)}}function s(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function v(e,t){var i=e.length;if("CSS"in a&&"supports"in a.CSS){for(;i--;)if(a.CSS.supports(s(e[i]),t))return!0;return!1}if("CSSSupportsRule"in a){for(var n=[];i--;)n.push("("+s(e[i])+":"+t+")");return o("@supports ("+(n=n.join(" or "))+") { #modernizr { position: absolute; } }",function(e){return"absolute"==function(e,t,i){var n;if("getComputedStyle"in a){n=getComputedStyle.call(a,e,t);var o=a.console;null!==n?i&&(n=n.getPropertyValue(i)):o&&o[o.error?"error":"log"].call(o,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}else n=!t&&e.currentStyle&&e.currentStyle[i];return n}(e,null,"position")})}return h}function r(e,t,i,n){function o(){a&&(delete E.style,delete E.modElem)}if(n=!p(n,"undefined")&&n,!p(i,"undefined")){var s=v(e,i);if(!p(s,"undefined"))return s}for(var a,l,r,c,d,u=["modernizr","tspan","samp"];!E.style&&u.length;)a=!0,E.modElem=g(u.shift()),E.style=E.modElem.style;for(r=e.length,l=0;l '),$transition="all .3s ease-out",setTimeout(function(){$("#rightcol .tx-dlf-search").parent().css({"-webkit-transition":$transition,"-o-transition":$transition,transition:$transition})},250),$(".offcanvas-toggle").on(n,function(e){$(this).parent().toggleClass("open")});$(".tx-dlf-collection-list").prepend(' ').append($(".tx-dlf-collection-list-additionals").html()).randomize("li.tx-dlf-collection-item").colcade({columns:".tx-dlf-collection-col",items:".tx-dlf-collection-item"}),$(".tx-dlf-search-facets > ul > li").each(function(){var e=$(this).find("ul").children("li").length,t=$('html[lang="de-DE"]')[0]?"Zeige "+(e-5)+" weitere Facetten":"Show "+(e-5)+" more facets",i=$('html[lang="de-DE"]')[0]?"Letzten "+(e-5)+" Facetten ausblenden":"Hide "+(e-5)+" last facets";5'+t+""),$(this).find(".facets-toggle").on(n,function(){$(this).text($(this).parent().hasClass("facets-expanded")?t:i).parent().toggleClass("facets-expanded"),$(this).parent().find("ul li:gt(4)").slideToggle()}))}),$(".tx-dlf-collection-item .tx-dlf-collection-thumbnail img").on(n,function(){return window.location=$(this).parent().parent().find("h4 a").attr("href"),!1});var e=$('html[lang="de-DE"]')[0]?"Galerie":"Gallery",t=$('html[lang="de-DE"]')[0]?"Alphabetisch":"Alphabetical",i=$(".tx-dlf-collection-list li.tx-dlf-collection-item").get(),o=i;$(".tx-dlf-collection").prepend('"),$(".tx-dlf-list-toggle-container").on(n,function(){$(this).hasClass("alphabetical")?($(".tx-dlf-collection-list li.order-label").remove(),$.each(o,function(e,t){$(".tx-dlf-collection-list").append(t)}),$(".tx-dlf-collection-list").removeClass("alphabetical alphabetical-ready").colcade({columns:".tx-dlf-collection-col",items:".tx-dlf-collection-item"}),document.cookie="tx-dlf-galleryview-state=gallery; path=/"):($(".tx-dlf-collection-list").colcade("destroy").addClass("alphabetical"),sortAlphabetical(this,i),document.cookie="tx-dlf-galleryview-state=alphabetical; path=/"),$(this).toggleClass("alphabetical").find(".label").toggleClass("active")});var s=$('html[lang="de-DE"]')[0]?"Erweiterte Suche ausblenden ":"Hide Extended Search";$("#c15323 .tx-dlf-search form").append(''+s+"
"),$(".extended-search-toggle").on(n,function(){$(this).parent().toggleClass("extendend-search-active")})}),$.fn.randomize=function(e){return(e?this.find(e):this).parent().each(function(){$(this).children(e).sort(function(){return Math.random()-.5}).detach().appendTo(this)}),this},sortAlphabetical=function(e,t){t.sort(function(e,t){var i=$(e).find("h4").text(),n=$(t).find("h4").text();return i'+$(this).find("h4").text().charAt(0)+"
"),isNaN(currentFirstChar)||n||($(this).before('0–9
'),n=!0),i=$(this).find("h4").text().charAt(0),currentFirstChar=void 0}),window.setTimeout(function(){$(".tx-dlf-collection-list").addClass("alphabetical-ready")},100)};
\ No newline at end of file
diff --git a/Resources/Public/Javascript/DigitalcollectionsScripts.js b/Resources/Public/Javascript/DigitalcollectionsScripts.js
new file mode 100644
index 00000000..d1f76800
--- /dev/null
+++ b/Resources/Public/Javascript/DigitalcollectionsScripts.js
@@ -0,0 +1 @@
+function enterFullscreen(){setTimeout(function(){window.dispatchEvent(new Event("resize"))},220),$("body").addClass("fullscreen"),$("a.fullscreen").addClass("active"),Cookies.set("tx-dlf-pageview-zoomFullscreen","true")}function exitFullscreen(){setTimeout(function(){window.dispatchEvent(new Event("resize"))},220),$("body").removeClass("fullscreen"),$("a.fullscreen").removeClass("active"),Cookies.remove("tx-dlf-pageview-zoomFullscreen")}function mobileCheck(){var e,t=!1;return e=navigator.userAgent||navigator.vendor||window.opera,(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(t=!0),t}!function(l,f,p){function m(e,t){return typeof e===t}function g(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function v(){return"function"!=typeof f.createElement?f.createElement(arguments[0]):$?f.createElementNS.call(f,"http://www.w3.org/2000/svg",arguments[0]):f.createElement.apply(f,arguments)}function a(e,t,n,o){var a,i,l,s,r,c="modernizr",d=v("div"),u=((r=f.body)||((r=v($?"svg":"body")).fake=!0),r);if(parseInt(n,10))for(;n--;)(l=v("div")).id=o?o[n]:c+(n+1),d.appendChild(l);return(a=v("style")).type="text/css",a.id="s"+c,(u.fake?u:d).appendChild(a),u.appendChild(d),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(f.createTextNode(e)),d.id=c,u.fake&&(u.style.background="",u.style.overflow="hidden",s=C.style.overflow,C.style.overflow="hidden",C.appendChild(u)),i=t(d,e),u.fake?(u.parentNode.removeChild(u),C.style.overflow=s,C.offsetHeight):d.parentNode.removeChild(d),!!i}function s(e,t){return function(){return e.apply(t,arguments)}}function i(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function h(e,t){var n=e.length;if("CSS"in l&&"supports"in l.CSS){for(;n--;)if(l.CSS.supports(i(e[n]),t))return!0;return!1}if("CSSSupportsRule"in l){for(var o=[];n--;)o.push("("+i(e[n])+":"+t+")");return a("@supports ("+(o=o.join(" or "))+") { #modernizr { position: absolute; } }",function(e){return"absolute"==function(e,t,n){var o;if("getComputedStyle"in l){o=getComputedStyle.call(l,e,t);var a=l.console;null!==o?n&&(o=o.getPropertyValue(n)):a&&a[a.error?"error":"log"].call(a,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}else o=!t&&e.currentStyle&&e.currentStyle[n];return o}(e,null,"position")})}return p}function r(e,t,n,o){function a(){l&&(delete M.style,delete M.modElem)}if(o=!m(o,"undefined")&&o,!m(n,"undefined")){var i=h(e,n);if(!m(i,"undefined"))return i}for(var l,s,r,c,d,u=["modernizr","tspan","samp"];!M.style&&u.length;)l=!0,M.modElem=v(u.shift()),M.style=M.modElem.style;for(r=e.length,s=0;s a").on(e,function(e){$("li.submenu.open a").not(this).parent().removeClass("open"),$(this).parent().toggleClass("open")}),$("nav .nav-toggle").on(e,function(e){$(this).toggleClass("active"),$("nav .secondary-nav").toggleClass("open")}),$(".calendar-view div.issues h4").on(e,function(e){var t=$(this).parents("div.issues").find("div ul li a");1==t.length?window.open(t[0].href,"_self"):($(".calendar-view table td.open").not($(this).parents("td")).removeClass("open"),$(this).parents("td").toggleClass("open"))}),$(".tx-dlf-calendar, .tx-dlf-calendar-years").parents("body").addClass("calendar"),$(".tx-dlf-pagegrid-list").parents("body").addClass("gridview"),$(".tx-dlf-calendar .calendar-list-selection a.select-calendar-view").hasClass("active")&&$(".tx-dlf-calendar .calendar-list-selection a.select-calendar-view").removeClass("active"),$(".tx-dlf-calendar .calendar-list-selection a.select-calendar-view, .tx-dlf-calendar .calendar-view").addClass("active"),$(".tx-dlf-calendar .calendar-list-selection a").on(e,function(e){if(!$(this).hasClass("active")){var t="."+$(this).attr("class").replace("select-","");$(".tx-dlf-calendar .active").removeClass("active"),$(this).addClass("active"),$(t).addClass("active")}}),$(".pages select option[selected]")[0]&&$("dl.mobile-meta").append('No. '+$(".pages select option[selected]").text()+" "),$(".provider").append('
'),$(".view-functions .pages form, .view-functions .zoom a.fullscreen").clone().appendTo(".provider .mobile-controls"),shortenMobileMetaElement=$(".provider dl.mobile-meta dd.tx-dlf-title a"),shortenMobileMetaTitle=shortenMobileMetaElement.text(),140a").replaceWith(function(){return $(''+$(this).html()+" ")}),1<$(".tx-dlf-metadata dl.tx-dlf-metadata-titledata").length&&(metadataToggleLabelMore=$('html[lang^="de"]')[0]?"mehr Metadaten":"more Metadata",metadataToggleLabelLess=$('html[lang^="de"]')[0]?"weniger Metadaten":"less Metadata",$(".control-bar .metadata-wrapper").append(''+metadataToggleLabelMore+"
"),$(".metadata-toggle").on(e,function(){$(".control-bar").hasClass("all-metadata")?(Cookies.remove("tx-dlf-allmetadata"),$(this).text(metadataToggleLabelMore)):(Cookies.set("tx-dlf-allmetadata","true"),$(this).text(metadataToggleLabelLess)),$(".control-bar").toggleClass("all-metadata").find("dl:nth-child(n+3)").slideToggle()})),$("a.fullscreen").on(e,function(){$("body.fullscreen")[0]?exitFullscreen():enterFullscreen()}),Cookies.get("tx-dlf-pageview-zoomFullscreen")&&($("body").addClass("fullscreen static"),$(".zoom .fullscreen").addClass("active")),$("ul.toc ul li.current")[0]&&(tocPlaceholderLabel=$('html[lang^="de"]')[0]?"Einige Einträge sind ausgeblendet":"Some entires are hidden",tocPlaceholderTitle=$('html[lang^="de"]')[0]?"Hier klicken um alle Einträge zu ziegen":"Click to show all entries",$("ul.toc ul li.current").first().prevAll(":eq(4)").prevUntil(":nth-child(2)").hide(),$("ul.toc ul li:nth-child(2)").after(''+tocPlaceholderLabel+" "),$("ul.toc ul li.placeholder").on(e,function(){$(this).remove(),$("ul.toc ul li").slideDown()})),$(".tx-dlf-toolsFulltextsearch form")[0]?$(".fulltext-search-toggle").on(e,function(){$("body").toggleClass("search-indocument-active"),$("#tx-dlf-search-in-document-query").trigger("focus")}):$(".fulltext-search-toggle").addClass("disabled"),$(".fwds, .backs").on("mouseenter",function(){$(this).addClass("over")}).on("mouseleave",function(){$(this).removeClass("over")}).on("click",function(){localStorage.txDlfFromPage=$(this).attr("class").split(" ")[0]}),localStorage.txDlfFromPage&&$("."+localStorage.txDlfFromPage).addClass("no-transition over"),$(".tx-dlf-pageview").children()[0]||(emptyMessage=$('html[lang^="de"]')[0]?"Kein Band ausgewählt. Klicken Sie hier um zum ersten Band dieses Werks zu gelangen.":"No volume selected. Click to jump to the first available volume.",$(".tx-dlf-pageview").append('")),$("dl.tx-dlf-metadata-titledata").find("dt:contains(mmlung), dt:contains(llection)").nextUntil("dt","dd").addClass("tx-dlf-metadata-collection"),$("body").removeClass("hidden"),setTimeout(function(){localStorage.clear(),$(".fwds, .backs").removeClass("no-transition"),$("body").removeClass("static")},1e3)}),$(document).keyup(function(e){if(27==e.keyCode){if($("body.fullscreen")[0])return exitFullscreen();$(".document-functions .search.open")[0]&&$(".document-functions .search").removeClass("open")}if(70==e.keyCode&&!$("#tx-dlf-search-in-document-query").is(":focus"))return enterFullscreen()});
\ No newline at end of file
diff --git a/Resources/Public/Javascript/jquery-2.2.4.min.js b/Resources/Public/Javascript/jquery-2.2.4.min.js
new file mode 100644
index 00000000..07074fc7
--- /dev/null
+++ b/Resources/Public/Javascript/jquery-2.2.4.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c;
+}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1998
+
+
+ September 1998
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+
+ 02
+ 03
+ 04
+
+
+
+
+
+
+
+
+
+ 07
+ 08
+ 09
+ 10
+ 11
+
+
+
+
+
+
+
+
+
+ 14
+ 15
+ 16
+ 17
+ 18
+
+
+
+ 20
+
+
+
+ 21
+ 22
+ 23
+ 24
+
+
+
+
+
+
+ 27
+
+
+
+ 28
+ 29
+ 30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Oktober 1998
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+ 01
+ 02
+ 03
+ 04
+
+
+
+ 05
+
+
+
+ 07
+
+
+
+ 09
+ 10
+
+
+
+
+
+
+
+
+
+ 13
+ 14
+
+
+
+ 16
+ 17
+
+
+
+
+
+
+
+
+
+ 20
+ 21
+ 22
+ 23
+
+
+
+ 25
+
+
+
+
+
+
+ 27
+ 28
+ 29
+ 30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ November 1998
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+
+
+
+ 01
+
+
+
+ 02
+ 03
+ 04
+ 05
+ 06
+
+
+
+ 08
+
+
+
+ 09
+ 10
+ 11
+ 12
+ 13
+
+
+
+ 15
+
+
+
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+
+
+
+
+
+
+ 23
+ 24
+ 25
+ 26
+ 27
+
+
+
+ 29
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dezember 1998
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+ 01
+ 02
+ 03
+ 04
+
+
+
+ 06
+
+
+
+ 07
+ 08
+ 09
+ 10
+ 11
+
+
+
+ 13
+
+
+
+ 14
+ 15
+ 16
+ 17
+
+
+
+ 19
+ 20
+
+
+
+ 21
+ 22
+ 23
+
+
+
+
+
+
+ 26
+ 27
+
+
+
+ 28
+ 29
+ 30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1999
+
+
+ Januar 1999
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+
+ 01
+ 02
+
+
+
+
+
+
+ 04
+ 05
+
+
+
+ 07
+ 08
+ 09
+
+
+
+
+
+
+ 11
+ 12
+ 13
+ 14
+ 15
+
+
+
+ 17
+
+
+
+ 18
+ 19
+ 20
+ 21
+ 22
+
+
+
+ 24
+
+
+
+ 25
+ 26
+ 27
+ 28
+ 29
+
+
+
+ 31
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Februar 1999
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 01
+ 02
+ 03
+ 04
+ 05
+
+
+
+ 07
+
+
+
+ 08
+ 09
+ 10
+ 11
+ 12
+
+
+
+ 14
+
+
+
+ 15
+ 16
+ 17
+ 18
+ 19
+
+
+
+ 21
+
+
+
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ März 1999
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 01
+ 02
+ 03
+ 04
+ 05
+ 06
+
+
+
+
+
+
+ 08
+ 09
+ 10
+ 11
+
+
+
+ 13
+ 14
+
+
+
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+
+
+
+
+
+
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+
+
+
+ 29
+ 30
+ 31
+
+
+
+
+
+
+
+
+
+
+
+
+
+ April 1999
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+ 01
+ 02
+
+
+
+ 04
+
+
+
+ 05
+ 06
+ 07
+ 08
+ 09
+
+
+
+ 11
+
+
+
+ 12
+ 13
+ 14
+ 15
+ 16
+
+
+
+ 18
+
+
+
+ 19
+ 20
+ 21
+ 22
+ 23
+
+
+
+ 25
+
+
+
+ 26
+ 27
+ 28
+ 29
+ 30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mai 1999
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+
+
+ 01
+ 02
+
+
+
+ 03
+ 04
+
+
+
+
+
+
+ 07
+ 08
+
+
+
+
+
+
+ 10
+ 11
+ 12
+ 13
+ 14
+
+
+
+
+
+
+
+
+
+ 17
+ 18
+ 19
+ 20
+ 21
+
+
+
+ 23
+
+
+
+ 24
+ 25
+ 26
+ 27
+ 28
+
+
+
+ 30
+
+
+
+ 31
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Juni 1999
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+ 01
+ 02
+ 03
+ 04
+
+
+
+ 06
+
+
+
+ 07
+ 08
+ 09
+ 10
+ 11
+
+
+
+ 13
+
+
+
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+
+
+
+
+
+
+ 21
+ 22
+
+
+
+
+
+
+ 25
+ 26
+
+
+
+
+
+
+ 28
+ 29
+ 30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Juli 1999
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+ 01
+ 02
+
+
+
+
+
+
+
+
+
+ 05
+ 06
+ 07
+ 08
+ 09
+ 10
+ 11
+
+
+
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+
+
+
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+
+
+
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ August 1999
+
+
+ Mo
+ Di
+ Mi
+ Do
+ Fr
+ Sa
+ So
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 02
+ 03
+ 04
+ 05
+ 06
+ 07
+ 08
+
+
+
+ 09
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+
+
+
+ 16
+ 17
+ 18
+ 19
+ 20
+
+
+
+ 22
+
+
+
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+
+
+
+ 30
+ 31
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dienstag, 01.09.1998
+ 10-Sonstiges [geschätztes Erscheinungsdatum]
+
+
+
+ Samstag, 05.09.1998
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 06.09.1998
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 12.09.1998
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 13.09.1998
+ 01-Kammerkonzert
+
+
+
+ Samstag, 19.09.1998
+ 01-Orchesterkonzert
+
+
+
+ Freitag, 25.09.1998
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 26.09.1998
+ 01-Orchesterkonzert
+
+
+
+ Dienstag, 06.10.1998
+ 01-Auswärts
+
+
+
+ Donnerstag, 08.10.1998
+ 01-Auswärts
+
+
+
+ Sonntag, 11.10.1998
+ 01-Auswärts
+
+
+
+ Montag, 12.10.1998
+ 01-Auswärts
+
+
+
+ Donnerstag, 15.10.1998
+ 01-Auswärts
+
+
+
+ Sonntag, 18.10.1998
+ 01-Auswärts
+
+
+
+ Montag, 19.10.1998
+ 01-Auswärts
+
+
+
+ Samstag, 24.10.1998
+ 01-Orchesterkonzert
+
+
+
+ Montag, 26.10.1998
+ 01-Sonstiges
+
+
+
+ Samstag, 31.10.1998
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 07.11.1998
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 14.11.1998
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 22.11.1998
+ 01-Orchesterkonzert
+ 02-Kammerkonzert
+
+
+
+ Samstag, 28.11.1998
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 05.12.1998
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 12.12.1998
+ 01-Orchesterkonzert
+
+
+
+ Freitag, 18.12.1998
+ 01-Orchesterkonzert
+
+
+
+ Donnerstag, 24.12.1998
+ 01-Orchesterkonzert
+
+
+
+ Freitag, 25.12.1998
+ 03-Orchesterkonzert
+
+
+
+ Donnerstag, 31.12.1998
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 03.01.1999
+ 01-Kammerkonzert
+
+
+
+ Mittwoch, 06.01.1999
+ 01-Sonstiges
+
+
+
+ Sonntag, 10.01.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 16.01.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 23.01.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 30.01.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 06.02.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 13.02.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 20.02.1999
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 07.03.1999
+ 01-Kammerkonzert
+
+
+
+ Freitag, 12.03.1999
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 21.03.1999
+ 01-Auswärts
+
+
+
+ Samstag, 03.04.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 10.04.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 17.04.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 24.04.1999
+ 01-Orchesterkonzert
+
+
+
+ Mittwoch, 05.05.1999
+ 01-Auswärts
+
+
+
+ Donnerstag, 06.05.1999
+ 01-Auswärts
+
+
+
+ Sonntag, 09.05.1999
+ 01-Auswärts
+
+
+
+ Samstag, 15.05.1999
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 16.05.1999
+ 01-Kammerkonzert
+
+
+
+ Samstag, 22.05.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 29.05.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 05.06.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 12.06.1999
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 20.06.1999
+ 01-Kammerkonzert
+ 02-Orchesterkonzert
+
+
+
+ Mittwoch, 23.06.1999
+ 01-Auswärts
+
+
+
+ Donnerstag, 24.06.1999
+ 01-Auswärts
+
+
+
+ Sonntag, 27.06.1999
+ 01-Orchesterkonzert
+
+
+
+ Samstag, 03.07.1999
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 04.07.1999
+ 01-Orchesterkonzert
+
+
+
+ Sonntag, 01.08.1999
+ 01-Auswärts
+
+
+
+ Samstag, 21.08.1999
+ 01-Orchesterkonzert
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ 1823
+ Autor
+
+
+
+
+
+
+
+
+
+
+
+ First Page Back 10 Pages Previous Page
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Static/collection.html b/Static/collection.html
new file mode 100644
index 00000000..07955cb0
--- /dev/null
+++ b/Static/collection.html
@@ -0,0 +1,1305 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SLUB Dresden: Listenansicht
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Wählen Sie die Art der Suche
+
+ Einfache Suche
+ Erweiterte Suche
+ Website-Suche
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Alles
+ Person/Institution
+ Titel
+ Schlagwort
+ Barcode
+ ISBN/ISSN/ISMN
+ RVK-Notation
+ Signatur
+ Verlag/Ort
+ Serie/Reihe
+
+
+
+
+
Zuletzt gesuchte Begriffe:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Sie sind hier
+
+ SLUB Dresden
+ Sammlungen
+ Digitale Sammlungen
+ Listenansicht
+
+
+
+
+
Listenansicht
+
+
+
+
Dresdner Hefte
+
+
+ Die
+ Dresdner Hefte veröffentlichen seit fast 30 Jahren Beiträge zur Kulturgeschichte Dresdens und der Region. Die Themen sind vielschichtig und reichen von Alltags- und politischer Geschichte, Kunst- und Geistesgeschichte über Architektur und Städtebau bis hin zu Ausgaben über wichtige Persönlichkeiten. Herausgegeben werden die Hefte vierteljährlich vom
+ Dresdner Geschichtsverein . Sie zählen heute zu den erfolgreichsten regionalgeschichtlichen Publikationen Deutschlands. In Kooperation des Vereins mit der SLUB Dresden wurden die ersten 50 Hefte, erschienen von 1983 bis 1997, digitalisiert und sind für alle Interessierten rund um die Uhr verfügbar.
+
+
Für die Objekte in der Kollektion Dresdner Hefte gilt
+ Freier Zugang - Rechte vorbehalten .
+
+
Einträge 1 bis 25 von 59.
+
+
< - 1 -
+ 2 -
+ 3 -
+ >
+
+
+
+
+
+ Titel
+ Dresdner Kultur im letzten Drittel des 18. Jahrhunderts
+ Erscheinungsort
+ Dresden
+ Strukturtyp
+ Mehrbändiges Werk
+
+
+
+
+ Details einblenden
+ Details ausblenden
+
+
+
+
+
+
+
+ Titel
+ [Dresdner Kultur im letzten Drittel des 18. Jahrhunderts]
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1988
+ Signatur
+ Y. 8. 7481-6.1988,6
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Band
+ Reihe
+ Dresdner Hefte ; 1988,6
+ Beiträge zur Kulturgeschichte ; 16
+
+
+
+
+
+
+
+
+
+
+ Titel
+ [Dresdner Kultur im letzten Drittel des 18. Jahrhunderts]
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1988
+ Signatur
+ Y. 8. 7481-6.1988,1
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Band
+ Reihe
+ Dresdner Hefte ; 1988,7
+ Beiträge zur Kulturgeschichte ; 17
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Expressionismus in Dresden im ersten Viertel unseres Jahrhunderts
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1988
+ Signatur
+ Y. 8. 7481-6.1988,1
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1988,1
+ Beiträge zur Kulturgeschichte ; 14
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Carl Gustav Carus
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1989
+ Signatur
+ Y. 8. 7481-7.1989,1
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1989,1
+ Beiträge zur Kulturgeschichte ; 18
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Sachsen und die Wettiner
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1988
+ Signatur
+ Y. 8. 4533-6.1988 angeb.2
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1988,3
+ Beiträge zur Kulturgeschichte ; 15
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ 1789 - Zeichen der Zeit
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1989
+ Signatur
+ Y. 8. 7481-7.1989,2
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1989,2
+ Beiträge zur Kulturgeschichte ; 19
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Achtzehntes Jahrhundert
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1984
+ Signatur
+ Y. 8. 7481-1984,3
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1984,3
+ Beiträge zur Kulturgeschichte ; 3
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Auf der Suche nach Zukunft: Das Beispiel Pieschen
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1990
+ Signatur
+ 2009 8 041315
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1990,3
+ Beiträge zur Kulturgeschichte ; 23
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ href="#">Beiträge zur sächsischen Schulgeschichte
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1987
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1987,4
+ Beiträge zur Kulturgeschichte ; 12
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Böhmen und Sachsen
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1996
+ Signatur
+ Y. 8. 7481-14.1996 angeb.3
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1996,4 = 48
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Dresden in der Napoleonzeit
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1994
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1994,1 = 37
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Dresden in der Weltwirtschaftskrise
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1994
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1994,3 = 39
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Dresden 1933 - 1945
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1993
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1993,3 = 35
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Der Dresdner Maiaufstand von 1849
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1995
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1995,3 = 43
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Dresden - das Jahr 1945
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1995
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1995,1 = 41
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Der Dresdner Neumarkt
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1995
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1995,4 = 44
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Die Dresdner Frauenkirche
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1992
+ Signatur
+ 2002 8 072137
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1992,4 = 32
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Das Dresdner Schloß - Geschichte und Wiederaufbau
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1994
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1994,2 = 38
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Ehrenfried Walther von Tschirnhaus
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1983
+ Signatur
+ 1885 00124 001
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1983,4
+ Beiträge zur Kulturgeschichte ; [2]
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Die Residenz des sächsischen Königreiches in der bürgerlichen Umwälzung von 1830 bis 1871
+ Autor
+ Groß, Reiner
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1990
+ Signatur
+ 1891 00353 001
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1990,4
+ Beiträge zur Kulturgeschichte ; 24
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Heinrich Schütz
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1985
+ Signatur
+ Y.8.4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1985,4
+ Beiträge zur Kulturgeschichte ; 7
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Johann Georg II. und sein Hof
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1993
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1993,1 = 33
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Johann Gottlob von Quandt und die kulturelle Emanzipation des Dresdner Bürgertums zwischen 1815 und 1849
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1987
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1987,5
+ Beiträge zur Kulturgeschichte ; 13
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Grosses Ostragehege/Friedrichstadt
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1996
+ Signatur
+ Y. 8. 7481-14.1996 angeb.2
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1996,3 = 47
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Die knisternde Idylle - Dresden in den sechziger Jahren
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1992
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1992,3
+ Beiträge zur Kulturgeschichte ; 31
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Das kulturhistorische Dresden von 1830 bis zum Eintritt des Kapitalismus in seine imperialistische Phase
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1985
+ Signatur
+ Y. 8. 7481-1985,2
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1985,2
+ Beiträge zur Kulturgeschichte ; 5
+
+
+
+
+
+
+
+
< - 1 -
+ 2 -
+ 3 -
+ >
+
+
+
+
+
+
+
+
+
+
+
+ Autor
+
+
+ Groß, Reiner (90)
+
+
+ Jäckel, Günter (19)
+
+
+ May, Walter (15)
+
+
+ Menzhausen, Joachim (12)
+
+
+ Lühr, Hans-Peter (11)
+
+
+ Magirius, Heinrich (10)
+
+
+ Ruhland, Volker (9)
+
+
+ Herrmann, Matthias (8)
+
+
+ Steude, Wolfram (8)
+
+
+ Wollgast, Siegfried (8)
+
+
+ Heres, Gerald (7)
+
+
+ Laudel, Heidrun (7)
+
+
+ Neidhardt, Hans Joachim (7)
+
+
+ Blaschke, Karlheinz (6)
+
+
+ John, Hans (6)
+
+
+
+ Ort
+ Strukturtyp
+
+
+
+
+
+
+
+
Ansprechpartnerin
+
Geschäftsstelle Digitale BibliothekSimone Georgi Tel.: +49 351 4677-170 E-Mail.:
+ digital@slub-dresden.de
+
+
+
Hinweis
+
Bitte beachten Sie die
+ Nutzungsbestimmungen für die Digitalen Sammlungen der SLUB einschließlich der Bilddatenbank.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Static/data/dfglogo.svg b/Static/data/dfglogo.svg
new file mode 100644
index 00000000..0d4fd522
--- /dev/null
+++ b/Static/data/dfglogo.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Static/data/slublogo.jpg b/Static/data/slublogo.jpg
new file mode 100755
index 00000000..dfb3fc60
Binary files /dev/null and b/Static/data/slublogo.jpg differ
diff --git a/Static/data/unierfurtlogo.png b/Static/data/unierfurtlogo.png
new file mode 100644
index 00000000..711ddd19
Binary files /dev/null and b/Static/data/unierfurtlogo.png differ
diff --git a/Static/intro.html b/Static/intro.html
new file mode 100644
index 00000000..17843fd0
--- /dev/null
+++ b/Static/intro.html
@@ -0,0 +1,572 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SLUB Dresden: Kollektionen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Wählen Sie die Art der Suche
+
+ Einfache Suche
+ Erweiterte Suche
+ Website-Suche
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Alles
+ Person/Institution
+ Titel
+ Schlagwort
+ Barcode
+ ISBN/ISSN/ISMN
+ RVK-Notation
+ Signatur
+ Verlag/Ort
+ Serie/Reihe
+
+
+
+
+
Zuletzt gesuchte Begriffe:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
SLUB Dresden Sammlungen Digitale Sammlungen Kollektionen
+
+
+
+
Kollektionen
+
+
Gegenwärtig finden Sie in unseren digitalen Kollektionen 99637 Titel oder 278443 Bände sowie über 1,8 Millionen grafische Medien (Fotografien, Karten, Zeichnungen).
Detailsuche in den Kollektionen Digitale Sammlungen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
RSS-Feeds Bleiben Sie auf dem Laufenden. Mit dem tagesaktuellen RSS-Feed unserer Neuzugänge in den digitalen Kollektionen.
Ansprechpartnerin Geschäftsstelle Digitale BibliothekSimone Georgi Tel.: +49 351 4677-170 E-Mail.: digital@slub-dresden.de
Hinweis Bitte beachten Sie die Nutzungsbestimmungen für die Digitalen Sammlungen der SLUB einschließlich der Bilddatenbank.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Static/pagegrid.html b/Static/pagegrid.html
new file mode 100644
index 00000000..44514ce5
--- /dev/null
+++ b/Static/pagegrid.html
@@ -0,0 +1,300 @@
+
+
+
+
+
+ SLUB Dresden: Pflanzenblätter in Naturdruck
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ First Page Back 10 Pages Previous Page
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Static/results.html b/Static/results.html
new file mode 100644
index 00000000..1428b3a7
--- /dev/null
+++ b/Static/results.html
@@ -0,0 +1,1440 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SLUB Dresden: Listenansicht
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Wählen Sie die Art der Suche
+
+ Einfache Suche
+ Erweiterte Suche
+ Website-Suche
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Alles
+ Person/Institution
+ Titel
+ Schlagwort
+ Barcode
+ ISBN/ISSN/ISMN
+ RVK-Notation
+ Signatur
+ Verlag/Ort
+ Serie/Reihe
+
+
+
+
+
Zuletzt gesuchte Begriffe:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Sie sind hier
+
+ SLUB Dresden
+ Sammlungen
+ Digitale Sammlungen
+ Listenansicht
+
+
+
+
+
Listenansicht
+
+
+
+
Suche nach "dresdner hefte"
+
+
Die Suche ergab 102 Treffer in 77 Dokumenten.
+
Einträge 1 bis 25 von 77.
+
+
< - 1 -
+ 2 -
+ 3 -
+ 4 -
+ >
+
+
+
+
+
+
+
+ Titel
+ Der Dresdner Neumarkt
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1995
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1995,4 = 44
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Der Dresdner Maiaufstand von 1849
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1995
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1995,3 = 43
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Dresden in der Napoleonzeit
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1994
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1994,1 = 37
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Das Dresdner Schloß - Geschichte und Wiederaufbau
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1994
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1994,2 = 38
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ [Dresdner Kultur im letzten Drittel des 18. Jahrhunderts]
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1988
+ Signatur
+ Y. 8. 7481-6.1988,6
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Band
+ Reihe
+ Dresdner Hefte ; 1988,6
+ Beiträge zur Kulturgeschichte ; 16
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Zwischen Integration und Vernichtung
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1996
+ Signatur
+ Y. 8. 7481-14.1996
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1996,1
+ Beiträge zur Kulturgeschichte ; 45
+
+
+
+
+ Details einblenden
+ Details ausblenden
+
+
+
+
+
+
+
+ Titel
+ Für ein gemeinsames Erinnern - Gespräch der Dresdner Hefte mit Heiz-Joachim Aris, Geschäftsführer der jüdischen Gemeinde Dresden
+ Strukturtyp
+ Kapitel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Wiederaufbau und Dogma
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1995
+ Signatur
+ 2009 8 048226
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1991,4 = 28
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Zur Festkultur des Dresdner Hofes
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1990
+ Signatur
+ 0890 80327 001
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1990,1
+ Beiträge zur Kulturgeschichte ; 21
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ [Dresdner Kultur im letzten Drittel des 18. Jahrhunderts]
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1988
+ Signatur
+ Y. 8. 7481-6.1988,1
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Band
+ Reihe
+ Dresdner Hefte ; 1988,7
+ Beiträge zur Kulturgeschichte ; 17
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Dresden in der Weltwirtschaftskrise
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1994
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1994,3 = 39
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Expressionismus in Dresden im ersten Viertel unseres Jahrhunderts
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1988
+ Signatur
+ Y. 8. 7481-6.1988,1
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1988,1
+ Beiträge zur Kulturgeschichte ; 14
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Heinrich Schütz
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1985
+ Signatur
+ Y.8.4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1985,4
+ Beiträge zur Kulturgeschichte ; 7
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Ehrenfried Walther von Tschirnhaus
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1983
+ Signatur
+ 1885 00124 001
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1983,4
+ Beiträge zur Kulturgeschichte ; [2]
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Johann Gottlob von Quandt und die kulturelle Emanzipation des Dresdner Bürgertums zwischen 1815 und 1849
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1987
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1987,5
+ Beiträge zur Kulturgeschichte ; 13
+
+
+
+
+
+
+
+
+
+ Titel
+ Dresdner Kultur im letzten Drittel des 18. Jahrhunderts
+ Erscheinungsort
+ Dresden
+ Strukturtyp
+ Mehrbändiges Werk
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Die Moritzburger Kulturlandschaft
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1995
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1995,2 = 42
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Grosses Ostragehege/Friedrichstadt
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1996
+ Signatur
+ Y. 8. 7481-14.1996 angeb.2
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1996,3 = 47
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Neunzehntes Jahrhundert
+ Erscheinungsdatum
+ 1985
+ Signatur
+ Y.8.4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Band
+ Reihe
+ Dresdner Hefte ; 1985,3
+ Beiträge zur Kulturgeschichte ; 6
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Neunzehntes Jahrhundert
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1983
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Band
+ Reihe
+ Dresdner Hefte ; 1983,3
+ Beiträge zur Kulturgeschichte ; [1]
+
+
+
+
+
+
+
+
+
+ Titel
+ Neunzehntes Jahrhundert
+ Erscheinungsort
+ Dresden
+ Strukturtyp
+ Mehrbändiges Werk
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Dem Mute aller Sachsen anvertraut
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1991
+ Signatur
+ 2007 8 007577
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1991,2
+ Beiträge zur Kulturgeschichte ; 26
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Polen und Sachsen
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1997
+ Signatur
+ Y. 8. 7481-15.1997,2
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1997,2 = 50
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Reformdruck und Reformgesinnung
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1993
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1993,4 = 36
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Zur Kunstentwicklung in Dresden im zweiten Drittel des 18. Jahrhunderts
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1987
+ Signatur
+ Y. 8. 4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1987,1
+ Beiträge zur Kulturgeschichte ; 11
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ Wirken und Wirkung - zur Kunstentwicklung im Dresden der 50er Jahre
+ Erscheinungsort
+ Dresden
+ Erscheinungsdatum
+ 1986
+ Signatur
+ Y.8.4533
+ Lizenz-/Rechtehinweis
+ Urheberrechtsschutz 1.0
+ Nutzungshinweis
+ Freier Zugang - Rechte vorbehalten 1.0
+ Strukturtyp
+ Monographie
+ Reihe
+ Dresdner Hefte ; 1986,5
+ Beiträge zur Kulturgeschichte ; 10
+
+
+
+
+
+
+
+
< - 1 -
+ 2 -
+ 3 -
+ 4 -
+ >
+
+
+
+
+
+
+
+
+
+
+
+ Autor
+
+
+ Erscheinungsort
+
+
+ Erscheinungsdatum
+
+
+ Ort
+
+
+ Sammlungen
+
+
+ Digitalisat
+
+
+ Strukturtyp
+
+
+
+
+
+
+
+
Ansprechpartnerin
+
Geschäftsstelle Digitale BibliothekSimone Georgi Tel.: +49 351 4677-170 E-Mail.:
+ digital@slub-dresden.de
+
+
+
Hinweis
+
Bitte beachten Sie die
+ Nutzungsbestimmungen für die Digitalen Sammlungen der SLUB einschließlich der Bilddatenbank.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Static/workview-empty.html b/Static/workview-empty.html
new file mode 100644
index 00000000..c5c80ed3
--- /dev/null
+++ b/Static/workview-empty.html
@@ -0,0 +1,377 @@
+
+
+
+
+
+ SLUB Dresden: [Gebrauchsgraphik]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
...
+
Suche löschen...
+
+
+ weiter
+ zurück
+ Seite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ First Page Back 10 Pages
+ Previous Page
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Static/workview-fulltext.html b/Static/workview-fulltext.html
new file mode 100644
index 00000000..89fc1ef1
--- /dev/null
+++ b/Static/workview-fulltext.html
@@ -0,0 +1,264 @@
+
+
+
+
+
+ SLUB Dresden: [Gebrauchsgraphik]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
aber mit sorgsamer Liebe erzogen worden, bis zu ihrem Tode haben sie den Eltern das treueste und dankbarste Andenken bewahrt. Der geniale Vater starb 1839 im Alter von 57 Jahren, die Mutter 1866 im 82. Lebensjahre. Bruno war schon nach l'/ 2 jährigem Besuche des Altenburger Gymnasiums in die Hofapotheke des Herrn Stöhr eingetreten und verblieb dort 4 Jahr lang, zuletzt als Gehilfe. „Diese arbeitsreiche Zeit führte mich bald aus dem idealen Leben in das praktische Gebiet, da in dieser lebhaften Apo - theke stets 4 Gehilfen oder Provisoren thätig waren und mir als dem einzigen Lehrling mit dem Stösser zusammen alle niedrigen Arbeiten zufielen. Unter Leitung von guten Ge - hilfen begann ich das Studium der Chemie, und bald konnten mir alle Arbeiten im Laboratorium übertragen werden, die ich gewissenhaft lege artis ausführte. Die nöthigste Erfrischung suchte ich meist schon früh vor Beginn des Tages, auf oft bis über die Landesgrenze von Altenburg ausgedehnten bo - tanischen Excursionen, von denen ich schon früh (1 Uhr die gesammelten Pflanzen zum Bestimmen herein brachte; icli fand hier gute Gelegenheit, mir nähere Kenntnisse der Pflanzen - welt zu verschaffen, die in unserem schönen väterlichen Garten immer mit so grösser Liebe gepflegt worden war. Jeder Markttag (Mittwoch und Sonnabend) brachte unendlich viel Arbeit, da sich die wohlhabenden Bauern der Umgegend mit ihren vielen Bedürfnissen an Kräutertheen, Salben, Pflastern u. a. Dingen reichlich versahen und kaum einen freien Augen - blick übrig Hessen (namentlich im Cholerajahr 1831). Da ich das Glück hatte, immer wenigstens einige tüchtige und freundliche Gehilfen zur Seite zu haben, schritt ich in meinem Fach schnell vorwärts. Freilich gab es damals für einen Apothekerlehrling nur sehr wenig Erholungszeit und wirkte die Abgeschlossenheit von frischer Luft auf meinen Körper nicht günstig; Ilolzthee und Eichelkaffee spielten damals bei meinen Nahrungsmitteln eine wichtige Rolle. Doch bot mil - der Verkehr mit meinen Schulfreunden, die nun die Universität Jena bezogen hatten, Erholung und Erquickung; mit vielen derselben bin ich unser Leben hindurch in enger Freundschaft verbunden geblieben. Tiefe Wehmut überschlich mich jedes - mal, wenn ich einen meiner Freunde mit dem Itänzchen auf dem Rücken in die Ferien gehen sah. Doch möchte ich diese arbeitsreichen Jahre, denen ich so viele Anregungen zu ver - danken habe, nicht aus meinem Gedächtniss gestrichen wissen. 1*
+
+
+
+
+
+
+
+
+
+
+
+ First Page Back 10 Pages Previous Page
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Static/workview.html b/Static/workview.html
new file mode 100644
index 00000000..46b471a3
--- /dev/null
+++ b/Static/workview.html
@@ -0,0 +1,300 @@
+
+
+
+
+
+ SLUB Dresden: [Gebrauchsgraphik]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
...
+
Suche löschen...
+
+
+ weiter
+ zurück
+ Seite
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ First Page Back 10 Pages Previous Page
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Static/year.html b/Static/year.html
new file mode 100644
index 00000000..d8b1ac98
--- /dev/null
+++ b/Static/year.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+ SLUB Dresden: Allergnädigst privilegirtes Leipziger Tageblatt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Titel
+ 1823
+ Autor
+
+
+
+
+
+
+
+
+
+
+
+ First Page Back 10 Pages Previous Page
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/composer.json b/composer.json
new file mode 100644
index 00000000..ea7c858a
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,38 @@
+{
+ "name": "slub/slub-digitalcollections",
+ "type": "typo3-cms-extension",
+ "description": "Templates, Styles and Configuration for the Kitodo.Presentation based Digital Collections by SLUB Dresden",
+ "homepage": "https://github.com/slub/slub_digitalcollections",
+ "keywords": [
+ "TYPO3",
+ "extension",
+ "slub_digitalcollections"
+ ],
+ "authors": [
+ {
+ "name": "Alexander Bigga",
+ "email": "alexander.bigga@slub-dresden.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Norman Steger",
+ "email": "norman.steger@slub-dresden.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Thomas Jung",
+ "email": "slub@jung.digital",
+ "role": "Developer"
+ }
+ ],
+ "license": "GPL-3.0-or-later",
+ "require": {
+ "typo3/cms-core": "~7.6|^8.7|^9.5",
+ "kitodo/presentation": "~2.2|3.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "Slub\\DigitalCollections\\": "Classes/"
+ }
+ }
+}
diff --git a/ext_emconf.php b/ext_emconf.php
new file mode 100755
index 00000000..1ee2019b
--- /dev/null
+++ b/ext_emconf.php
@@ -0,0 +1,26 @@
+ 'SLUB Digital Collections',
+ 'description' => '',
+ 'category' => 'plugin',
+ 'author' => 'Alexander Bigga',
+ 'author_email' => 'alexander.bigga@slub-dresden.de',
+ 'author_company' => 'SLUB Dresden',
+ 'shy' => '',
+ 'priority' => '',
+ 'module' => '',
+ 'state' => 'stable',
+ 'internal' => '',
+ 'uploadfolder' => '0',
+ 'createDirs' => '',
+ 'modify_tables' => '',
+ 'clearCacheOnLoad' => 0,
+ 'lockType' => '',
+ 'version' => '1.0.0',
+ 'constraints' => array(
+ 'depends' => array(
+ 'typo3' => '7.6.30-9.5.99',
+ ),
+ ),
+);
diff --git a/ext_icon.png b/ext_icon.png
new file mode 100644
index 00000000..2708e913
Binary files /dev/null and b/ext_icon.png differ
diff --git a/ext_localconf.php b/ext_localconf.php
new file mode 100644
index 00000000..0a457ebf
--- /dev/null
+++ b/ext_localconf.php
@@ -0,0 +1,8 @@
+=0.5.1"
+ }
+ },
+ "figures": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "findup-sync": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
+ "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
+ "dev": true,
+ "requires": {
+ "glob": "~5.0.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true,
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dev": true,
+ "requires": {
+ "globule": "^1.0.0"
+ }
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "getobject": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
+ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "globule": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+ "dev": true,
+ "requires": {
+ "glob": "~7.1.1",
+ "lodash": "~4.17.10",
+ "minimatch": "~3.0.2"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.15",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "dev": true
+ },
+ "grunt": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz",
+ "integrity": "sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==",
+ "dev": true,
+ "requires": {
+ "coffeescript": "~1.10.0",
+ "dateformat": "~1.0.12",
+ "eventemitter2": "~0.4.13",
+ "exit": "~0.1.1",
+ "findup-sync": "~0.3.0",
+ "glob": "~7.0.0",
+ "grunt-cli": "~1.2.0",
+ "grunt-known-options": "~1.1.0",
+ "grunt-legacy-log": "~2.0.0",
+ "grunt-legacy-util": "~1.1.1",
+ "iconv-lite": "~0.4.13",
+ "js-yaml": "~3.13.0",
+ "minimatch": "~3.0.2",
+ "mkdirp": "~0.5.1",
+ "nopt": "~3.0.6",
+ "path-is-absolute": "~1.0.0",
+ "rimraf": "~2.6.2"
+ },
+ "dependencies": {
+ "grunt-cli": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
+ "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
+ "dev": true,
+ "requires": {
+ "findup-sync": "~0.3.0",
+ "grunt-known-options": "~1.1.0",
+ "nopt": "~3.0.6",
+ "resolve": "~1.1.0"
+ }
+ },
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-jshint": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz",
+ "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.1",
+ "hooker": "^0.2.3",
+ "jshint": "~2.9.4"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-less": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-2.0.0.tgz",
+ "integrity": "sha512-nsaODoEMjVn61OuqPaFeFQpb4Qd/EbfxQDeYnh2oONXm8L5Gnuchtv59kl0V3hjiFdOkZlPILDc3ZrkoZI0PNw==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.0",
+ "chalk": "^1.0.0",
+ "less": "^3.0.4",
+ "lodash": "^4.17.10"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
+ "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.11"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-uglify": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz",
+ "integrity": "sha512-UXsTpeP0pytpTYlmll3RDndsRXfdwmrf1tI/AtD/PrArQAzGmKMvj83aVt3D8egWlE6KqPjsJBLCCvfC52LI/A==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.0.0",
+ "maxmin": "^2.1.0",
+ "uglify-js": "~3.4.0",
+ "uri-path": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "grunt-contrib-watch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz",
+ "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==",
+ "dev": true,
+ "requires": {
+ "async": "^2.6.0",
+ "gaze": "^1.1.0",
+ "lodash": "^4.17.10",
+ "tiny-lr": "^1.1.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
+ "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.11"
+ }
+ }
+ }
+ },
+ "grunt-known-options": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
+ "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
+ "dev": true
+ },
+ "grunt-legacy-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz",
+ "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==",
+ "dev": true,
+ "requires": {
+ "colors": "~1.1.2",
+ "grunt-legacy-log-utils": "~2.0.0",
+ "hooker": "~0.2.3",
+ "lodash": "~4.17.5"
+ }
+ },
+ "grunt-legacy-log-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz",
+ "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==",
+ "dev": true,
+ "requires": {
+ "chalk": "~2.4.1",
+ "lodash": "~4.17.10"
+ }
+ },
+ "grunt-legacy-util": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz",
+ "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==",
+ "dev": true,
+ "requires": {
+ "async": "~1.5.2",
+ "exit": "~0.1.1",
+ "getobject": "~0.1.0",
+ "hooker": "~0.2.3",
+ "lodash": "~4.17.10",
+ "underscore.string": "~3.3.4",
+ "which": "~1.3.0"
+ }
+ },
+ "gzip-size": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
+ "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
+ "dev": true,
+ "requires": {
+ "duplexer": "^0.1.1"
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true,
+ "optional": true
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "hooker": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.8.4",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
+ "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1",
+ "domhandler": "2.3",
+ "domutils": "1.5",
+ "entities": "1.0",
+ "readable-stream": "1.1"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
+ "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "image-size": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
+ "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
+ "dev": true,
+ "optional": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true,
+ "optional": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true,
+ "optional": true
+ },
+ "jit-grunt": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/jit-grunt/-/jit-grunt-0.10.0.tgz",
+ "integrity": "sha1-AIw6f+Hpa9DYTiYOofoXg0V/ecI=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "jshint": {
+ "version": "2.9.7",
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.7.tgz",
+ "integrity": "sha512-Q8XN38hGsVQhdlM+4gd1Xl7OB1VieSuCJf+fEJjpo59JH99bVJhXRXAh26qQ15wfdd1VPMuDWNeSWoNl53T4YA==",
+ "dev": true,
+ "requires": {
+ "cli": "~1.0.0",
+ "console-browserify": "1.1.x",
+ "exit": "0.1.x",
+ "htmlparser2": "3.8.x",
+ "lodash": "~4.17.10",
+ "minimatch": "~3.0.2",
+ "shelljs": "0.3.x",
+ "strip-json-comments": "1.0.x"
+ }
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true,
+ "optional": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "optional": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true,
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "less": {
+ "version": "3.10.3",
+ "resolved": "https://registry.npmjs.org/less/-/less-3.10.3.tgz",
+ "integrity": "sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow==",
+ "dev": true,
+ "requires": {
+ "clone": "^2.1.2",
+ "errno": "^0.1.1",
+ "graceful-fs": "^4.1.2",
+ "image-size": "~0.5.0",
+ "mime": "^1.4.1",
+ "mkdirp": "^0.5.0",
+ "promise": "^7.1.1",
+ "request": "^2.83.0",
+ "source-map": "~0.6.0"
+ }
+ },
+ "livereload-js": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
+ "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==",
+ "dev": true
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "maxmin": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz",
+ "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.0.0",
+ "figures": "^1.0.1",
+ "gzip-size": "^3.0.0",
+ "pretty-bytes": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true,
+ "optional": true
+ },
+ "mime-db": {
+ "version": "1.40.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
+ "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
+ "dev": true,
+ "optional": true
+ },
+ "mime-types": {
+ "version": "2.1.24",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
+ "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "mime-db": "1.40.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true,
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true,
+ "optional": true
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pretty-bytes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
+ "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asap": "~2.0.3"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true,
+ "optional": true
+ },
+ "psl": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
+ "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==",
+ "dev": true,
+ "optional": true
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true,
+ "optional": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
+ "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
+ "dev": true,
+ "requires": {
+ "bytes": "1",
+ "string_decoder": "0.10"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "resolve": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+ "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
+ "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
+ "dev": true,
+ "optional": true
+ },
+ "safe-json-parse": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
+ "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=",
+ "dev": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "string-template": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+ "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=",
+ "dev": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "tiny-lr": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
+ "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
+ "dev": true,
+ "requires": {
+ "body": "^5.1.0",
+ "debug": "^3.1.0",
+ "faye-websocket": "~0.10.0",
+ "livereload-js": "^2.3.0",
+ "object-assign": "^4.1.0",
+ "qs": "^6.4.0"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true,
+ "optional": true
+ },
+ "uglify-js": {
+ "version": "3.4.9",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz",
+ "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
+ "dev": true,
+ "requires": {
+ "commander": "~2.17.1",
+ "source-map": "~0.6.1"
+ }
+ },
+ "underscore.string": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
+ "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "^1.0.3",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "uri-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
+ "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
+ "dev": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
+ "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
+ "dev": true,
+ "optional": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+ "dev": true,
+ "requires": {
+ "http-parser-js": ">=0.4.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 00000000..80d7a174
--- /dev/null
+++ b/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "slub-digitalcollections",
+ "version": "0.0.1",
+ "description": "This TYPO3 extension provides the configuration and setup for the Digital Collections by SLUB Dresden",
+ "main": "gruntfile.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@git.slub-dresden.de:slub-webseite/slub_digitalcollections.git"
+ },
+ "author": "Alexander Bigga",
+ "license": "WTFPL",
+ "homepage": "https://digital.slub-dresden.de",
+ "devDependencies": {
+ "grunt": "^1.0.4",
+ "grunt-contrib-jshint": "^1.1.0",
+ "grunt-contrib-less": "^2.0.0",
+ "grunt-contrib-uglify": "^3.4.0",
+ "grunt-contrib-watch": "^1.1.0",
+ "jit-grunt": "^0.10.0",
+ "less": "^3.10.3"
+ },
+ "dependencies": {}
+}