From 1dc675900bbb0dda730e647284908f85ef44b62a Mon Sep 17 00:00:00 2001 From: Alexander Bigga Date: Tue, 31 Mar 2020 22:44:37 +0200 Subject: [PATCH] initial commit - version 1.0.0 --- .gitignore | 5 + Classes/Helpers/CoreVersionCondition.php | 105 + Classes/Helpers/GetDoc.php | 202 ++ Classes/ViewHelpers/CalcViewHelper.php | 86 + Classes/ViewHelpers/CollectionsViewHelper.php | 86 + .../ViewHelpers/DownloadLinksViewHelper.php | 88 + .../ViewHelpers/ExtractFulltextViewHelper.php | 80 + Classes/ViewHelpers/PageInfoViewHelper.php | 80 + Classes/ViewHelpers/PiVarsViewHelper.php | 78 + Classes/ViewHelpers/XpathViewHelper.php | 102 + Configuration/TCA/Overrides/pages.php | 20 + Configuration/TCA/Overrides/sys_template.php | 11 + Configuration/TSconfig/BackendLayouts.ts | 46 + Configuration/TSconfig/pageConfig.ts | 5 + .../TypoScript/Plugin/Kitodo/common.ts | 217 ++ .../TypoScript/Plugin/Kitodo/setup7.ts | 294 +++ .../Plugin/Kitodo/setup9.typoscript | 288 +++ Configuration/TypoScript/constants.ts | 140 ++ Configuration/TypoScript/setup.ts | 151 ++ README.md | 3 + Resources/Private/Javascript/Cookies.js | 163 ++ .../DigitalcollectionsListScripts.js | 150 ++ .../Javascript/DigitalcollectionsScripts.js | 226 ++ Resources/Private/Javascript/colcade.js | 366 +++ .../Private/Javascript/modernizrCustom.js | 3 + Resources/Private/Language/de.locallang.xlf | 114 + Resources/Private/Language/locallang.xlf | 88 + Resources/Private/Layouts/KitodoPage.html | 6 + Resources/Private/Less/Controls.less | 930 ++++++++ .../Private/Less/Digitalcollections.less | 30 + .../Private/Less/DigitalcollectionsLists.less | 26 + Resources/Private/Less/Helper/Mixins.less | 49 + Resources/Private/Less/Helper/Normalize.less | 22 + Resources/Private/Less/Helper/Variables.less | 24 + Resources/Private/Less/Modules/Fulltext.less | 77 + .../Private/Less/Modules/Indocsearch.less | 312 +++ .../Private/Less/Modules/Listfacets.less | 92 + Resources/Private/Less/Modules/Listintro.less | 601 +++++ .../Private/Less/Modules/Listresults.less | 327 +++ .../Private/Less/Modules/Listsearch.less | 255 ++ .../Private/Less/Modules/Newspapers.less | 423 ++++ Resources/Private/Less/Modules/Pagegrid.less | 179 ++ Resources/Private/Less/Sidebar.less | 771 ++++++ Resources/Private/Less/Structure.less | 360 +++ Resources/Private/Less/Themes/Basictheme.less | 29 + Resources/Private/Less/Themes/Slubtheme.less | 65 + Resources/Private/Partials/EmptyPageView.html | 9 + .../Private/Partials/KitodoControlBar.html | 32 + .../Private/Partials/KitodoPageView.html | 366 +++ Resources/Private/Partials/Matomo.html | 38 + Resources/Private/Partials/Toolbox.html | 188 ++ .../Private/Plugins/Kitodo/Collections.html | 14 + .../Private/Plugins/Kitodo/Gridview.html | 11 + .../Private/Plugins/Kitodo/Listview.html | 37 + .../Private/Plugins/Kitodo/Metadata.html | 7 + .../Plugins/Kitodo/NavigationPagecontrol.html | 12 + .../NavigationViewfunction-deactivated.html | 13 + .../Kitodo/NavigationViewfunction.html | 13 + .../Plugins/Kitodo/NewspaperCalendar.html | 57 + .../Private/Plugins/Kitodo/NewspaperYear.html | 21 + .../Private/Plugins/Kitodo/Pageview.html | 4 + Resources/Private/Plugins/Kitodo/Search.html | 19 + .../Plugins/Kitodo/SearchFullText.html | 9 + .../Plugins/Kitodo/SearchInDocumentTool.html | 32 + .../Plugins/Kitodo/TableOfContents.html | 11 + .../Private/Plugins/Kitodo/Titledata.html | 9 + .../Private/Plugins/Kitodo/ToolFullText.html | 3 + Resources/Private/Plugins/Kitodo/Toolbox.html | 5 + .../Kitodo/ToolsImagemanipulation.html | 3 + .../Private/Plugins/Kitodo/ToolsPdf.html | 12 + .../Private/Templates/Emptyworkview.html | 8 + Resources/Private/Templates/Kitodo.html | 8 + Resources/Public/Css/Digitalcollections.css | 1 + .../Public/Css/DigitalcollectionsLists.css | 1 + .../Public/Images/BackendLayouts/workview.png | Bin 0 -> 168960 bytes Resources/Public/Images/Basiclogo.svg | 1 + Resources/Public/Images/Slub/Slublogo.svg | 1 + Resources/Public/Images/Slub/headerbarBg.svg | 1 + .../Public/Images/Slub/viewerControlIcons.svg | 1 + .../Public/Images/viewerControlIcons.svg | 1 + Resources/Public/Images/viewerTocIcons.svg | 1 + .../DigitalcollectionsListScripts.js | 1 + .../Javascript/DigitalcollectionsScripts.js | 1 + .../Public/Javascript/jquery-2.2.4.min.js | 4 + Static/calendar.html | 2057 +++++++++++++++++ Static/collection.html | 1305 +++++++++++ Static/data/dfglogo.svg | 23 + Static/data/slublogo.jpg | Bin 0 -> 143467 bytes Static/data/unierfurtlogo.png | Bin 0 -> 32583 bytes Static/intro.html | 572 +++++ Static/pagegrid.html | 300 +++ Static/results.html | 1440 ++++++++++++ Static/workview-empty.html | 377 +++ Static/workview-fulltext.html | 264 +++ Static/workview.html | 300 +++ Static/year.html | 210 ++ composer.json | 38 + ext_emconf.php | 26 + ext_icon.png | Bin 0 -> 4997 bytes ext_localconf.php | 8 + gruntfile.js | 49 + package-lock.json | 1922 +++++++++++++++ package.json | 26 + 103 files changed, 17647 insertions(+) create mode 100644 .gitignore create mode 100644 Classes/Helpers/CoreVersionCondition.php create mode 100644 Classes/Helpers/GetDoc.php create mode 100644 Classes/ViewHelpers/CalcViewHelper.php create mode 100644 Classes/ViewHelpers/CollectionsViewHelper.php create mode 100644 Classes/ViewHelpers/DownloadLinksViewHelper.php create mode 100644 Classes/ViewHelpers/ExtractFulltextViewHelper.php create mode 100644 Classes/ViewHelpers/PageInfoViewHelper.php create mode 100644 Classes/ViewHelpers/PiVarsViewHelper.php create mode 100644 Classes/ViewHelpers/XpathViewHelper.php create mode 100644 Configuration/TCA/Overrides/pages.php create mode 100644 Configuration/TCA/Overrides/sys_template.php create mode 100644 Configuration/TSconfig/BackendLayouts.ts create mode 100644 Configuration/TSconfig/pageConfig.ts create mode 100644 Configuration/TypoScript/Plugin/Kitodo/common.ts create mode 100644 Configuration/TypoScript/Plugin/Kitodo/setup7.ts create mode 100644 Configuration/TypoScript/Plugin/Kitodo/setup9.typoscript create mode 100644 Configuration/TypoScript/constants.ts create mode 100644 Configuration/TypoScript/setup.ts create mode 100644 README.md create mode 100644 Resources/Private/Javascript/Cookies.js create mode 100644 Resources/Private/Javascript/DigitalcollectionsListScripts.js create mode 100644 Resources/Private/Javascript/DigitalcollectionsScripts.js create mode 100644 Resources/Private/Javascript/colcade.js create mode 100644 Resources/Private/Javascript/modernizrCustom.js create mode 100644 Resources/Private/Language/de.locallang.xlf create mode 100644 Resources/Private/Language/locallang.xlf create mode 100644 Resources/Private/Layouts/KitodoPage.html create mode 100644 Resources/Private/Less/Controls.less create mode 100644 Resources/Private/Less/Digitalcollections.less create mode 100644 Resources/Private/Less/DigitalcollectionsLists.less create mode 100644 Resources/Private/Less/Helper/Mixins.less create mode 100644 Resources/Private/Less/Helper/Normalize.less create mode 100644 Resources/Private/Less/Helper/Variables.less create mode 100644 Resources/Private/Less/Modules/Fulltext.less create mode 100644 Resources/Private/Less/Modules/Indocsearch.less create mode 100644 Resources/Private/Less/Modules/Listfacets.less create mode 100644 Resources/Private/Less/Modules/Listintro.less create mode 100644 Resources/Private/Less/Modules/Listresults.less create mode 100644 Resources/Private/Less/Modules/Listsearch.less create mode 100644 Resources/Private/Less/Modules/Newspapers.less create mode 100644 Resources/Private/Less/Modules/Pagegrid.less create mode 100644 Resources/Private/Less/Sidebar.less create mode 100644 Resources/Private/Less/Structure.less create mode 100644 Resources/Private/Less/Themes/Basictheme.less create mode 100644 Resources/Private/Less/Themes/Slubtheme.less create mode 100644 Resources/Private/Partials/EmptyPageView.html create mode 100644 Resources/Private/Partials/KitodoControlBar.html create mode 100644 Resources/Private/Partials/KitodoPageView.html create mode 100644 Resources/Private/Partials/Matomo.html create mode 100644 Resources/Private/Partials/Toolbox.html create mode 100644 Resources/Private/Plugins/Kitodo/Collections.html create mode 100644 Resources/Private/Plugins/Kitodo/Gridview.html create mode 100644 Resources/Private/Plugins/Kitodo/Listview.html create mode 100644 Resources/Private/Plugins/Kitodo/Metadata.html create mode 100644 Resources/Private/Plugins/Kitodo/NavigationPagecontrol.html create mode 100644 Resources/Private/Plugins/Kitodo/NavigationViewfunction-deactivated.html create mode 100644 Resources/Private/Plugins/Kitodo/NavigationViewfunction.html create mode 100644 Resources/Private/Plugins/Kitodo/NewspaperCalendar.html create mode 100644 Resources/Private/Plugins/Kitodo/NewspaperYear.html create mode 100644 Resources/Private/Plugins/Kitodo/Pageview.html create mode 100644 Resources/Private/Plugins/Kitodo/Search.html create mode 100644 Resources/Private/Plugins/Kitodo/SearchFullText.html create mode 100644 Resources/Private/Plugins/Kitodo/SearchInDocumentTool.html create mode 100644 Resources/Private/Plugins/Kitodo/TableOfContents.html create mode 100644 Resources/Private/Plugins/Kitodo/Titledata.html create mode 100644 Resources/Private/Plugins/Kitodo/ToolFullText.html create mode 100644 Resources/Private/Plugins/Kitodo/Toolbox.html create mode 100644 Resources/Private/Plugins/Kitodo/ToolsImagemanipulation.html create mode 100644 Resources/Private/Plugins/Kitodo/ToolsPdf.html create mode 100644 Resources/Private/Templates/Emptyworkview.html create mode 100644 Resources/Private/Templates/Kitodo.html create mode 100644 Resources/Public/Css/Digitalcollections.css create mode 100644 Resources/Public/Css/DigitalcollectionsLists.css create mode 100644 Resources/Public/Images/BackendLayouts/workview.png create mode 100644 Resources/Public/Images/Basiclogo.svg create mode 100644 Resources/Public/Images/Slub/Slublogo.svg create mode 100644 Resources/Public/Images/Slub/headerbarBg.svg create mode 100644 Resources/Public/Images/Slub/viewerControlIcons.svg create mode 100644 Resources/Public/Images/viewerControlIcons.svg create mode 100644 Resources/Public/Images/viewerTocIcons.svg create mode 100644 Resources/Public/Javascript/DigitalcollectionsListScripts.js create mode 100644 Resources/Public/Javascript/DigitalcollectionsScripts.js create mode 100644 Resources/Public/Javascript/jquery-2.2.4.min.js create mode 100644 Static/calendar.html create mode 100644 Static/collection.html create mode 100644 Static/data/dfglogo.svg create mode 100755 Static/data/slublogo.jpg create mode 100644 Static/data/unierfurtlogo.png create mode 100644 Static/intro.html create mode 100644 Static/pagegrid.html create mode 100644 Static/results.html create mode 100644 Static/workview-empty.html create mode 100644 Static/workview-fulltext.html create mode 100644 Static/workview.html create mode 100644 Static/year.html create mode 100644 composer.json create mode 100755 ext_emconf.php create mode 100644 ext_icon.png create mode 100644 ext_localconf.php create mode 100644 gruntfile.js create mode 100644 package-lock.json create mode 100644 package.json 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} | {field:pagination} + + # do not show metadata type + # dataWrap = | {field:pagination} + } + 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} | {field:pagination} + + # do not show metadata type + # dataWrap = | {field:pagination} + } + 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(''); + $('.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 + + +
    + LFEditor +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    \ 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 @@ + + + +
    + LFEditor +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    \ 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 @@ + +
    +
    +
    {settings.rootPage.title}
    + +
    +
    + +
    + +
    +
    +
    +
    +
    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} + +
    + + + + + + + + +
    +
    +
    + +
    +
    +
    +
    + + + + + +
    +
    +
    + +
    +
    +
    +
    + + + + +
    + + +
      +
    • Logo SLUB
    • +
    • Logo Uni Erfurt
    • +
    • Logo DFG
    • +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    Titel
    +
    + {docTitle} +
    +
    Autor
    +
    +
    +
    +
    + +
      + + + + + + +
    • + + + + + + + + + +
    • + + + "> +
    • + + + + + + + + + + + + + + + +
    • +
      + + +
    • + "> + + + + + + + + + + + + + + +
    • + + + "> + + + + +
    +
    + + +
    + + +
      + +
    +
    + +
      + +
    • +
    +
    +
    + +
    +
    + + + + + + +
    + +
    +
    +
    + +
    +
    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} + + +
    +
    +
    +
    +

    +
    +
      + + + + + + + + + +
    • + " + class="download-page image" + target="_blank" + title=""> + +
    • +
      +
      + + + "> + + + + + +
    • + " + class="download-page ocr" + target="_blank" + title=""> + +
    • +
      +
      +
      + + + "> + +
    • + + + +
    • +
      + +
    • + +
    • +
      +
      + + +
    • + {dc:pageInfo(uid:'{settings.termsOfUsePid}', field:'title')} + +
    • + + + + + +
    • +
      + + +
      +
    • + + + "> + + + +
    +
    +
    +
    +
    + + +
    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###
      +
      +

      ###TITLE###

      +

      (###COUNT_TITLES###/###COUNT_VOLUMES###)

      + ###FEED### +
      +
    • + +
    + 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 @@ + +
      + +
    1. +
      ###THUMBNAIL###
      +
      ###PAGINATION###
      +
    2. + +
    +
    ###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###

    +
      + +
    1. +
      ###THUMBNAIL###
      +
      + ###METADATA### +
      +
      ###PREVIEW###
      +
      + +
      Details einblenden
      +
      Details ausblenden
      +
        + +
      1. +
        ###SUBTHUMBNAIL###
        +
        + ###SUBMETADATA### +
        +
        ###SUBPREVIEW###
        +
        +
      2. + +
      + +
    2. + +
    +

    ###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 @@ + + + + + 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 @@ + +
    +
    +
    + ###CALALLYEARS### +
    +
    + ###LABEL_CHOOSE_YEAR### +
    +
    +
    +
      + +
    • + ###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 @@ + +
    + + + ###LOGICAL_PAGE### + +
    + ###FULLTEXTSWITCH### + ###FIELD_DOC### + ###FIELD_COLL### + ###ADDITIONAL_INPUTS### + + +
    ###EXT_SEARCH_OPERATOR### ###EXT_SEARCH_FIELDSELECTOR### ###EXT_SEARCH_FIELDQUERY###
    + +
    +
    +
    ###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 @@ + +
    + +
    + + + ###FIELD_DOC### +
    + 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_DELETE_SEARCH###...
    +
    + + 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 0000000000000000000000000000000000000000..6a65c2faed1dfcf220c1db635059a12c397d9ec9 GIT binary patch literal 168960 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

    #+FwvPua@G>a9SteXD=Iqj>9% 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 \ 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('
    '+e+'
    '+t+"
    "),$(".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('"),$(".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=/\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("