const {each, map, includes, intersection} = require('../lo'); const {jq} = require('../globals'); const event = require('../core/event'); const format = require('../core/format'); const location = require('../core/location'); const resource = require('../core/resource'); const store = require('../core/store'); const allsettings = require('../core/settings'); const base = require('./base'); const modes = ['details', 'grid', 'icons']; const sizes = [20, 40, 60, 80, 100, 150, 200, 250, 300, 350, 400]; const settings = Object.assign({ binaryPrefix: false, hideFolders: false, hideParentFolder: false, maxIconSize: 40, modes, setParentFolderLabels: false, sizes }, allsettings.view); const sortedSizes = settings.sizes.sort((a, b) => a - b); const checkedModes = intersection(settings.modes, modes); const storekey = 'view'; const elKey = '_h5ai_item'; const tplView = `
`; const tplItem = `
  • `; const $view = jq(tplView); const $items = $view.find('#items'); const $hint = $view.find('#view-hint'); const cropSize = (size, min, max) => Math.min(max, Math.max(min, size)); const createStyles = size => { const dsize = cropSize(size, 20, 80); const gsize = cropSize(size, 40, 160); const isize = cropSize(size, 80, 1000); const ilsize = Math.round(isize * 4 / 3); const rules = [ `#view.view-details.view-size-${size} .item .label {line-height: ${dsize + 14}px !important;}`, `#view.view-details.view-size-${size} .item .date {line-height: ${dsize + 14}px !important;}`, `#view.view-details.view-size-${size} .item .size {line-height: ${dsize + 14}px !important;}`, `#view.view-details.view-size-${size} .square {width: ${dsize}px !important; height: ${dsize}px !important;}`, `#view.view-details.view-size-${size} .square img {width: ${dsize}px !important; height: ${dsize}px !important;}`, `#view.view-details.view-size-${size} .label {margin-left: ${dsize + 32}px !important;}`, `#view.view-grid.view-size-${size} .item .label {line-height: ${gsize}px !important;}`, `#view.view-grid.view-size-${size} .square {width: ${gsize}px !important; height: ${gsize}px !important;}`, `#view.view-grid.view-size-${size} .square img {width: ${gsize}px !important; height: ${gsize}px !important;}`, `#view.view-icons.view-size-${size} .item {width: ${ilsize}px !important;}`, `#view.view-icons.view-size-${size} .landscape {width: ${ilsize}px !important; height: ${isize}px !important;}`, `#view.view-icons.view-size-${size} .landscape img {width: ${isize}px !important; height: ${isize}px !important;}`, `#view.view-icons.view-size-${size} .landscape .thumb {width: ${ilsize}px !important;}` ]; return rules.join('\n'); }; const addCssStyles = () => { const styles = map(sortedSizes, size => createStyles(size)); styles.push(`#view .icon img {max-width: ${settings.maxIconSize}px; max-height: ${settings.maxIconSize}px;}`); jq('