blacklight-spotlight 5.0.0.pre.alpha1 → 5.0.0.pre.alpha2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spotlight/spotlight.esm.js +1 -0
- data/app/assets/javascripts/spotlight/spotlight.esm.js.map +1 -1
- data/app/assets/javascripts/spotlight/spotlight.js +4 -4
- data/app/assets/javascripts/spotlight/spotlight.js.map +1 -1
- data/app/components/spotlight/blocks/heading_block_component.erb +2 -0
- data/app/components/spotlight/blocks/heading_block_component.rb +36 -0
- data/app/javascript/spotlight/user/zpr_links.js +2 -0
- data/app/models/sir_trevor_rails/block.rb +1 -3
- data/app/services/spotlight/exhibit_import_export_service.rb +2 -2
- data/lib/spotlight/version.rb +1 -1
- metadata +4 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"spotlight.js","sources":["../../../../vendor/assets/javascripts/tiny-slider.js","../../../javascript/spotlight/user/browse_group_categories.js","../../../javascript/spotlight/user/carousel.js","../../../javascript/spotlight/user/clear_form_button.js","../../../javascript/spotlight/user/zpr_links.js","../../../javascript/spotlight/user/index.js","../../../javascript/spotlight/admin/add_another.js","../../../javascript/spotlight/admin/add_new_button.js","../../../javascript/spotlight/admin/blacklight_configuration.js","../../../javascript/spotlight/admin/copy_email_addresses.js","../../../javascript/spotlight/admin/iiif.js","../../../javascript/spotlight/admin/add_image_selector.js","../../../javascript/spotlight/core.js","../../../javascript/spotlight/admin/crop.js","../../../javascript/spotlight/admin/croppable_modal.js","../../../javascript/spotlight/admin/croppable.js","../../../javascript/spotlight/admin/edit_in_place.js","../../../../vendor/assets/javascripts/parameterize.js","../../../javascript/spotlight/admin/exhibits.js","../../../javascript/spotlight/admin/form_observer.js","../../../javascript/spotlight/admin/locks.js","../../../javascript/spotlight/admin/multi_image_selector.js","../../../javascript/spotlight/admin/pages.js","../../../javascript/spotlight/admin/progress_monitor.js","../../../javascript/spotlight/admin/readonly_checkbox.js","../../../javascript/spotlight/admin/search_typeahead.js","../../../javascript/spotlight/admin/select_related_input.js","../../../javascript/spotlight/admin/spotlight_nestable.js","../../../javascript/spotlight/admin/tabs.js","../../../javascript/spotlight/admin/translation_progress.js","../../../javascript/spotlight/admin/visibility_toggle.js","../../../javascript/spotlight/admin/users.js","../../../javascript/spotlight/admin/block_mixins/autocompleteable.js","../../../javascript/spotlight/admin/block_mixins/formable.js","../../../javascript/spotlight/admin/block_mixins/plustextable.js","../../../javascript/spotlight/admin/blocks/block.js","../../../javascript/spotlight/admin/blocks/resources_block.js","../../../javascript/spotlight/admin/blocks/browse_block.js","../../../javascript/spotlight/admin/blocks/browse_group_categories_block.js","../../../javascript/spotlight/admin/blocks/iframe_block.js","../../../javascript/spotlight/admin/blocks/link_to_search_block.js","../../../javascript/spotlight/admin/blocks/oembed_block.js","../../../javascript/spotlight/admin/blocks/pages_block.js","../../../javascript/spotlight/admin/blocks/rule_block.js","../../../javascript/spotlight/admin/blocks/search_result_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_base_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_carousel_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_embed_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_features_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_grid_block.js","../../../javascript/spotlight/admin/blocks/uploaded_items_block.js","../../../javascript/spotlight/admin/sir-trevor/block_controls.js","../../../javascript/spotlight/admin/sir-trevor/block_limits.js","../../../javascript/spotlight/admin/sir-trevor/locales.js","../../../javascript/spotlight/admin/index.js","../../../javascript/spotlight/controllers/tag_selector_controller.js","../../../javascript/spotlight/controllers/index.js","../../../javascript/spotlight/index.js"],"sourcesContent":["// Includes an unreleased RTL support pull request: https://github.com/ganlanyuan/tiny-slider/pull/658\n// Includes \"export default tns\" at the end of the file for spotlight/user/browse_group_categories.js\nvar tns = (function (){\nvar win = window;\n\nvar raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n\nvar win$1 = window;\n\nvar caf = win$1.cancelAnimationFrame\n || win$1.mozCancelAnimationFrame\n || function(id){ clearTimeout(id); };\n\nfunction extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}\n\nfunction checkStorageValue (value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}\n\nfunction setLocalStorage(storage, key, value, access) {\n if (access) {\n try { storage.setItem(key, value); } catch (e) {}\n }\n return value;\n}\n\nfunction getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n \n return 'tns' + window.tnsId;\n}\n\nfunction getBody () {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}\n\nvar docElement = document.documentElement;\n\nfunction setFakeBody (body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}\n\nfunction resetFakeBody (body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n}\n\n// get css-calc \n\nfunction calc() {\n var doc = document, \n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'), \n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) { \n result = val.replace(str, ''); \n break;\n }\n }\n } catch (e) {}\n \n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n}\n\n// get subpixel support value\n\nfunction percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '<div></div>';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n}\n\nfunction mediaquerySupport () {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n}\n\n// create and append style sheet\nfunction createStyleSheet (media, nonce) {\n // Create the <style> tag\n var style = document.createElement(\"style\");\n // style.setAttribute(\"type\", \"text/css\");\n\n // Add a media (and/or media query) here if you'd like!\n // style.setAttribute(\"media\", \"screen\")\n // style.setAttribute(\"media\", \"only screen and (max-width : 1024px)\")\n if (media) { style.setAttribute(\"media\", media); }\n\n // Add nonce attribute for Content Security Policy\n if (nonce) { style.setAttribute(\"nonce\", nonce); }\n\n // WebKit hack :(\n // style.appendChild(document.createTextNode(\"\"));\n\n // Add the <style> element to the page\n document.querySelector('head').appendChild(style);\n\n return style.sheet ? style.sheet : style.styleSheet;\n}\n\n// cross browsers addRule method\nfunction addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ?\n sheet.insertRule(selector + '{' + rules + '}', index) :\n sheet.addRule(selector, rules, index);\n // });\n}\n\n// cross browsers addRule method\nfunction removeCSSRule(sheet, index) {\n // return raf(function() {\n 'deleteRule' in sheet ?\n sheet.deleteRule(index) :\n sheet.removeRule(index);\n // });\n}\n\nfunction getCssRulesLength(sheet) {\n var rule = ('insertRule' in sheet) ? sheet.cssRules : sheet.rules;\n return rule.length;\n}\n\nfunction toDegree (y, x) {\n return Math.atan2(y, x) * (180 / Math.PI);\n}\n\nfunction getTouchDirection(angle, range) {\n var direction = false,\n gap = Math.abs(90 - Math.abs(angle));\n \n if (gap >= 90 - range) {\n direction = 'horizontal';\n } else if (gap <= range) {\n direction = 'vertical';\n }\n\n return direction;\n}\n\n// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\nfunction forEach (arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n}\n\nvar classListSupport = 'classList' in document.createElement('_');\n\nvar hasClass = classListSupport ?\n function (el, str) { return el.classList.contains(str); } :\n function (el, str) { return el.className.indexOf(str) >= 0; };\n\nvar addClass = classListSupport ?\n function (el, str) {\n if (!hasClass(el, str)) { el.classList.add(str); }\n } :\n function (el, str) {\n if (!hasClass(el, str)) { el.className += ' ' + str; }\n };\n\nvar removeClass = classListSupport ?\n function (el, str) {\n if (hasClass(el, str)) { el.classList.remove(str); }\n } :\n function (el, str) {\n if (hasClass(el, str)) { el.className = el.className.replace(str, ''); }\n };\n\nfunction hasAttr(el, attr) {\n return el.hasAttribute(attr);\n}\n\nfunction getAttr(el, attr) {\n return el.getAttribute(attr);\n}\n\nfunction isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\"; \n}\n\nfunction setAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n if (Object.prototype.toString.call(attrs) !== '[object Object]') { return; }\n\n for (var i = els.length; i--;) {\n for(var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n}\n\nfunction removeAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n attrs = (attrs instanceof Array) ? attrs : [attrs];\n\n var attrLength = attrs.length;\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n}\n\nfunction arrayFromNodeList (nl) {\n var arr = [];\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n return arr;\n}\n\nfunction hideElement(el, forceHide) {\n if (el.style.display !== 'none') { el.style.display = 'none'; }\n}\n\nfunction showElement(el, forceHide) {\n if (el.style.display === 'none') { el.style.display = ''; }\n}\n\nfunction isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n}\n\nfunction whichProperty(props){\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n \n prefixes.forEach(function(prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n for(var i = 0; i < props.length; i++){\n var prop = props[i];\n if( el.style[prop] !== undefined ){ return prop; }\n }\n\n return false; // explicit for ie9-\n}\n\nfunction has3DTransforms(tf){\n if (!tf) { return false; }\n if (!window.getComputedStyle) { return false; }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n el = doc.createElement('p'),\n has3d,\n cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : '';\n\n cssTF += 'transform';\n\n // Add it to the body to get the computed style\n body.insertBefore(el, null);\n\n el.style[tf] = 'translate3d(1px,1px,1px)';\n has3d = window.getComputedStyle(el).getPropertyValue(cssTF);\n\n body.fake ? resetFakeBody(body, docOverflow) : el.remove();\n\n return (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\n}\n\n// get transitionend, animationend based on transitionDuration\n// @propin: string\n// @propOut: string, first-letter uppercase\n// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\nfunction getEndProperty(propIn, propOut) {\n var endProp = false;\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n return endProp;\n}\n\n// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\nvar passiveOption = supportsPassive ? { passive: true } : false;\n\nfunction addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n}\n\nfunction removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n}\n\nfunction Events() {\n return {\n topics: {},\n on: function (eventName, fn) {\n this.topics[eventName] = this.topics[eventName] || [];\n this.topics[eventName].push(fn);\n },\n off: function(eventName, fn) {\n if (this.topics[eventName]) {\n for (var i = 0; i < this.topics[eventName].length; i++) {\n if (this.topics[eventName][i] === fn) {\n this.topics[eventName].splice(i, 1);\n break;\n }\n }\n }\n },\n emit: function (eventName, data) {\n data.type = eventName;\n if (this.topics[eventName]) {\n this.topics[eventName].forEach(function(fn) {\n fn(data, eventName);\n });\n }\n }\n };\n}\n\nfunction jsTransform(element, attr, prefix, postfix, to, duration, callback) {\n var tick = Math.min(duration, 10),\n unit = (to.indexOf('%') >= 0) ? '%' : 'px',\n to = to.replace(unit, ''),\n from = Number(element.style[attr].replace(prefix, '').replace(postfix, '').replace(unit, '')),\n positionTick = (to - from) / duration * tick,\n running;\n\n setTimeout(moveElement, tick);\n function moveElement() {\n duration -= tick;\n from += positionTick;\n element.style[attr] = prefix + from + unit + postfix;\n if (duration > 0) { \n setTimeout(moveElement, tick); \n } else {\n callback();\n }\n }\n}\n\n// Object.keys\nif (!Object.keys) {\n Object.keys = function(object) {\n var keys = [];\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n return keys;\n };\n}\n\n// ChildNode.remove\nif(!(\"remove\" in Element.prototype)){\n Element.prototype.remove = function(){\n if(this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\n\nvar tns = function(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true,\n textDirection: 'ltr',\n nonce: false\n }, options || {});\n\n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date;\n\n try {\n tnsStorage = win.localStorage;\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n if (!localStorageAccess) { tnsStorage = {}; }\n } catch(e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function(item) { tnsStorage.removeItem(item); });\n }\n // update browserInfo\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess);\n\n // get element nodes from selectors\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'],\n optionsElements = {};\n\n tnsList.forEach(function(item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) { console.warn('Can\\'t find', options[item]); }\n return;\n }\n }\n });\n\n // make sure at least 1 slide\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) { console.warn('No slides found in', options.container); }\n return;\n }\n\n // update options\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n for (var key in responsive) {\n var val = responsive[key];\n // update responsive\n // from: 300: 2\n // to:\n // 300: {\n // items: 2\n // }\n val = typeof val === 'number' ? {items: val} : val;\n responsiveTem[key] = val;\n }\n responsive = responsiveTem;\n responsiveTem = null;\n }\n\n // update options\n function updateOptions (obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') { obj[key] = 'page'; }\n if (key === 'edgePadding') { obj[key] = false; }\n if (key === 'autoHeight') { obj[key] = false; }\n }\n\n // update responsive options\n if (key === 'responsive') { updateOptions(obj[key]); }\n }\n }\n if (!carousel) { updateOptions(options); }\n\n\n // === define and set variables ===\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n if (responsive) { setBreakpointZone(); }\n if (carousel) { container.className += ' tns-vpfix'; }\n\n // fixedWidth: viewport > rightBoundary > indexMax\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n textDirection = getOption('textDirection'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(null, getOption('nonce')),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions, // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = (!carousel || !loop) ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = (function () {\n if (fixedWidth) {\n return function() { return center && !loop ? slideCount - 1 : Math.ceil(- rightBoundary / (fixedWidth + gutter)); };\n } else if (autoWidth) {\n return function() {\n for (var i = 0; i < slideCountNew; i++) {\n if (slidePositions[i] >= - rightBoundary) { return i; }\n }\n };\n } else {\n return function() {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n })(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {'visibilitychange': onVisibilityChange},\n docmentKeydownEvent = {'keydown': onDocumentKeydown},\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n }, dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n slideClonedClass = 'tns-slide-cloned',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false;\n\n // controls\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n }\n\n // nav\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n }\n\n // autoplay\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['<span class=\\'tns-visually-hidden\\'>', ' animation</span>'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ?\n function(a, b) { return a.x - b.x; } :\n function(a, b) { return a.y - b.y; };\n }\n\n // disable slider when slidecount <= items\n if (!autoWidth) { resetVariblesWhenDisable(disable || freeze); }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n\n }\n\n if (carousel) { container.className = container.className.replace('tns-vpfix', ''); }\n initStructure();\n initSheet();\n initSliderTransform();\n\n // === COMMON FUNCTIONS === //\n function resetVariblesWhenDisable (condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide () {\n var tem = carousel ? index - cloneCount : index;\n while (tem < 0) { tem += slideCount; }\n return tem%slideCount + 1;\n }\n\n function getStartIndex (ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex (i) {\n if (i == null) { i = index; }\n\n if (carousel) { i -= cloneCount; }\n while (i < 0) { i += slideCount; }\n\n return Math.floor(i%slideCount);\n }\n\n function getCurrentNavIndex () {\n var absIndex = getAbsIndex(),\n result;\n\n result = navAsThumbnails ? absIndex :\n fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) :\n Math.floor(absIndex / items);\n\n // set active nav to the last one when reaches the right edge\n if (!loop && carousel && index === indexMax) { result = pages - 1; }\n\n return result;\n }\n\n function getItemsMax () {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || (fixedWidth && !viewportMax)) {\n return slideCount - 1;\n // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) { arr.push(options[str]); }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n if (tem && (fixedWidth || tem < slideCount)) { arr.push(tem); }\n }\n }\n\n if (!arr.length) { arr.push(0); }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop () {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount)/2) : (itemsMax * 4 - slideCount);\n result = Math.max(itemsMax, result);\n\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth () {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition (pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth (el) {\n if (el == null) { return; }\n var div = doc.createElement('div'), rect, width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth () {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption (item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) { return true; }\n }\n }\n return false;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n function getOption (item, ww) {\n if (ww == null) { ww = windowWidth; }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) { result = responsive[bp][item]; }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') { result = getOption('items'); }\n if (!carousel && (item === 'slideBy' || item === 'items')) { result = Math.floor(result); }\n\n return result;\n }\n }\n\n function getSlideMarginLeft (i) {\n return CALC ?\n CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' :\n i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles (edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n if (gutterTem) { gap -= gutterTem; }\n str = horizontal ?\n 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' :\n 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';';\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { str += getTransitionDurationStyle(speedTem); }\n return str;\n }\n\n function getContainerWidth (fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ?\n CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' :\n slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle (fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = (fixedWidthTem + gutterTem) + 'px';\n } else {\n if (!carousel) { itemsTem = Math.floor(itemsTem); }\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ?\n CALC + '(100% / ' + dividend + ')' :\n 100 / dividend + '%';\n }\n\n width = 'width:' + width;\n\n // inner slider: overwrite outer slider styles\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle (gutterTem) {\n var str = '';\n\n // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix (name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n if (prefix) { prefix = '-' + prefix + '-'; }\n\n return prefix;\n }\n\n function getTransitionDurationStyle (speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle (speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure () {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw';\n\n // set container properties\n if (container.id === '') { container.id = slideId; }\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n if (autoWidth) { newContainerClasses += ' tns-autowidth'; }\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses;\n\n // add constrain layer for carousel\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container);\n\n // add id, class, aria attributes\n // before clone slides\n forEach(slideItems, function(item, i) {\n addClass(item, 'tns-item');\n if (!item.id) { item.id = slideId + '-item' + i; }\n if (!carousel && animateNormal) { addClass(item, animateNormal); }\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n });\n\n // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(),\n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j%slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n addClass(cloneFirst, slideClonedClass);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n addClass(cloneLast, slideClonedClass);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n\n }\n\n function initSliderTransform () {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img');\n\n // add img load event listener\n forEach(imgs, function(img) {\n var src = img.src;\n\n if (!lazyload) {\n // not data img\n if (src && src.indexOf('data:image') < 0) {\n img.src = '';\n addEvents(img, imgEvents);\n addClass(img, 'loading');\n\n img.src = src;\n // data img\n } else {\n imgLoaded(img);\n }\n }\n });\n\n // set imgsComplete\n raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), function() { imgsComplete = true; }); });\n\n // reset imgs for auto height: check visible imgs only\n if (hasOption('autoHeight')) { imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck); });\n\n } else {\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck () {\n if (autoWidth && slideCount > 1) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n\n (function stylesApplicationCheck() {\n var left = slideItems[num].getBoundingClientRect().left;\n var right = slideItems[num - 1].getBoundingClientRect().right;\n\n (Math.abs(left - right) <= 1) ?\n initSliderTransformCore() :\n setTimeout(function(){ stylesApplicationCheck(); }, 16);\n })();\n\n } else {\n initSliderTransformCore();\n }\n }\n\n\n function initSliderTransformCore () {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n if (freezable) { freeze = getFreeze(); }\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n }\n\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n\n function initSheet () {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) {\n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // #### LAYOUT\n\n // ## INLINE-BLOCK VS FLOAT\n\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n }\n\n\n // ## BASIC STYLES\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n }\n\n // inner wrapper styles\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet));\n\n // container styles\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n }\n\n // slide styles\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n if (options.gutter) { str += getSlideGutterStyle(options.gutter); }\n // set gallery items transition-duration\n if (!carousel) {\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n if (ANIMATIONDURATION) { str += getAnimationDurationStyle(speed); }\n }\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n\n // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n } else {\n // middle wrapper styles\n update_carousel_transition_duration();\n\n // inner wrapper styles\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight);\n\n // container styles\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n if (gutter) { str += getSlideGutterStyle(gutter); }\n\n // append to the last line\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n }\n\n // ## MEDIAQUERIES\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp);\n\n // middle wrapper string\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n }\n\n // inner wrapper string\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n }\n\n // container string\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || (fixedWidth && 'gutter' in opts))) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n }\n\n // slide string\n if ('fixedWidth' in opts || (fixedWidth && 'gutter' in opts) || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n }\n // set gallery items transition-duration\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) { slideStr += getTransitionDurationStyle(speedBP); }\n if (ANIMATIONDURATION) { slideStr += getAnimationDurationStyle(speedBP); }\n }\n if (slideStr) { slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}'; }\n\n // add up\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools () {\n // == slides ==\n updateSlideStatus();\n\n // == live region ==\n outerWrapper.insertAdjacentHTML('afterbegin', '<div class=\"tns-liveregion tns-visually-hidden\" aria-live=\"polite\" aria-atomic=\"true\">slide <span class=\"current\">' + getLiveRegionStr() + '</span> of ' + slideCount + '</div>');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current');\n\n // == autoplayInit ==\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n if (autoplayButton) {\n setAttrs(autoplayButton, {'data-action': txt});\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '<button type=\"button\" data-action=\"' + txt + '\">' + autoplayHtmlStrings[0] + txt + autoplayHtmlStrings[1] + autoplayText[0] + '</button>');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n }\n\n // add event\n if (autoplayButton) {\n addEvents(autoplayButton, {'click': toggleAutoplay});\n }\n\n if (autoplay) {\n startAutoplay();\n if (autoplayHoverPause) { addEvents(container, hoverEvents); }\n if (autoplayResetOnVisibility) { addEvents(container, visibilityEvent); }\n }\n }\n\n // == navInit ==\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount;\n // customized nav\n // will not hide the navs in case they're thumbnails\n if (navContainer) {\n setAttrs(navContainer, {'aria-label': 'Carousel Pagination'});\n navItems = navContainer.children;\n forEach(navItems, function(item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId,\n });\n });\n\n // generated nav\n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '<button type=\"button\" data-nav=\"' + i +'\" tabindex=\"-1\" aria-controls=\"' + slideId + '\" ' + hiddenStr + ' aria-label=\"' + navStr + (i + 1) +'\"></button>';\n }\n navHtml = '<div class=\"tns-nav\" aria-label=\"Carousel Pagination\">' + navHtml + '</div>';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility();\n\n // add transition\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass);\n\n // add events\n addEvents(navContainer, navEvents);\n }\n\n\n\n // == controlsInit ==\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '<div class=\"tns-controls\" aria-label=\"Carousel Navigation\" tabindex=\"0\"><button type=\"button\" data-controls=\"prev\" tabindex=\"-1\" aria-controls=\"' + slideId +'\">' + controlsText[0] + '</button><button type=\"button\" data-controls=\"next\" tabindex=\"-1\" aria-controls=\"' + slideId +'\">' + controlsText[1] + '</button></div>');\n\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1',\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs(prevButton, {'data-controls' : 'prev'});\n setAttrs(nextButton, {'data-controls' : 'next'});\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n\n updateControlsStatus();\n\n // add events\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n }\n\n // hide tools if needed\n disableUI();\n }\n\n function initEvents () {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) { addEvents(container, touchEvents, options.preventScrollOnTouch); }\n if (mouseDrag) { addEvents(container, dragEvents); }\n if (arrowKeys) { addEvents(doc, docmentKeydownEvent); }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {'resize': onResize});\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) { doAutoHeight(); }\n }\n\n doLazyLoad();\n if (disable) { disableSlider(); } else if (freeze) { freezeSlider(); }\n\n events.on('indexChanged', additionalUpdates);\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n if (typeof onInit === 'function') { onInit(info()); }\n isOn = true;\n }\n\n function destroy () {\n // sheet\n sheet.disabled = true;\n if (sheet.ownerNode) { sheet.ownerNode.remove(); }\n\n // remove win event listeners\n removeEvents(win, {'resize': onResize});\n\n // arrowKeys, controls, nav\n if (arrowKeys) { removeEvents(doc, docmentKeydownEvent); }\n if (controlsContainer) { removeEvents(controlsContainer, controlsEvents); }\n if (navContainer) { removeEvents(navContainer, navEvents); }\n\n // autoplay\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n if (autoplayButton) { removeEvents(autoplayButton, {'click': toggleAutoplay}); }\n if (autoplay) { clearInterval(autoplayTimer); }\n\n // container\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n if (touch) { removeEvents(container, touchEvents); }\n if (mouseDrag) { removeEvents(container, dragEvents); }\n\n // cache Object values in options && reset HTML\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n\n tnsList.forEach(function(item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (typeof el === 'object' && el) {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n });\n\n\n // reset variables\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null;\n // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') { this[a] = null; }\n }\n isOn = false;\n }\n\n// === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n function onResize (e) {\n raf(function(){ resizeTasks(getEvent(e)); });\n }\n\n function resizeTasks (e) {\n if (!isOn) { return; }\n if (nested === 'outer') { events.emit('outerResized', info(e)); }\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone;\n // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n if (bpChanged) { events.emit('newBreakpointStart', info(e)); }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n }\n // update options\n resetVariblesWhenDisable(disable);\n\n viewport = getViewportWidth(); // <= edgePadding, gutter\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n needContainerTransform = true;\n }\n }\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) { indexMax = getIndexMax(); } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n updateIndex();\n }\n }\n\n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n if (!autoplay) { autoplayHoverPause = autoplayResetOnVisibility = false; }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ?\n addEvents(doc, docmentKeydownEvent) :\n removeEvents(doc, docmentKeydownEvent);\n }\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n if (nav !== navTem) {\n if (nav) {\n showElement(navContainer);\n updateNavVisibility();\n } else {\n hideElement(navContainer);\n }\n }\n if (touch !== touchTem) {\n touch ?\n addEvents(container, touchEvents, options.preventScrollOnTouch) :\n removeEvents(container, touchEvents);\n }\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ?\n addEvents(container, dragEvents) :\n removeEvents(container, dragEvents);\n }\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) { showElement(autoplayButton); }\n if (!animating && !autoplayUserPaused) { startAutoplay(); }\n } else {\n if (autoplayButton) { hideElement(autoplayButton); }\n if (animating) { stopAutoplay(); }\n }\n }\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ?\n addEvents(container, hoverEvents) :\n removeEvents(container, hoverEvents);\n }\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ?\n addEvents(doc, visibilityEvent) :\n removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) { needContainerTransform = true; }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) { innerWrapper.style.height = ''; }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) { needContainerTransform = true; }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n if (indChanged) {\n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) { additionalUpdates(); }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) { updateGallerySlidePositions(); }\n\n if (!disable && !freeze) {\n // non-mediaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = getSlideWidthStyle(fixedWidth, gutter, items) +\n getSlideGutterStyle(gutter);\n\n // remove the last line and\n // add new styles\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n }\n\n // auto height\n if (autoHeight) { doAutoHeight(); }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) { events.emit('newBreakpointEnd', info(e)); }\n }\n\n\n\n\n\n // === INITIALIZATION FUNCTIONS === //\n function getFreeze () {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone () {\n breakpointZone = 0;\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n if (windowWidth >= bp) { breakpointZone = bp; }\n }\n }\n\n // (slideBy, indexMin, indexMax) => index\n var updateIndex = (function () {\n return loop ?\n carousel ?\n // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n\n leftEdge += slideBy;\n rightEdge -= slideBy;\n\n // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter)%(fixedWidth + gutter)) { rightEdge -= 1; }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } :\n // loop + gallery\n function() {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) { index -= slideCount; }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) { index += slideCount; }\n }\n } :\n // non-loop\n function() {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n })();\n\n function disableUI () {\n if (!autoplay && autoplayButton) { hideElement(autoplayButton); }\n if (!nav && navContainer) { hideElement(navContainer); }\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n\n function enableUI () {\n if (autoplay && autoplayButton) { showElement(autoplayButton); }\n if (nav && navContainer) { showElement(navContainer); }\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n }\n }\n\n function freezeSlider () {\n if (frozen) { return; }\n\n // remove edge padding from inner wrapper\n if (edgePadding) { innerWrapper.style.margin = '0px'; }\n\n // add class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { addClass(slideItems[i], str); }\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n disableUI();\n\n frozen = true;\n }\n\n function unfreezeSlider () {\n if (!frozen) { return; }\n\n // restore edge padding for inner wrapper\n // for mordern browsers\n if (edgePadding && CSSMQ) { innerWrapper.style.margin = ''; }\n\n // remove class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { removeClass(slideItems[i], str); }\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n enableUI();\n\n frozen = false;\n }\n\n function disableSlider () {\n if (disabled) { return; }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { hideElement(slideItems[j]); }\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // vertical slider\n if (!horizontal || !carousel) { removeAttrs(innerWrapper, ['style']); }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // update tools\n disableUI();\n\n disabled = true;\n }\n\n function enableSlider () {\n if (!disabled) { return; }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { showElement(slideItems[j]); }\n showElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n }\n\n // update tools\n enableUI();\n\n disabled = false;\n }\n\n function updateLiveRegion () {\n var str = getLiveRegionStr();\n if (liveregionCurrent.innerHTML !== str) { liveregionCurrent.innerHTML = str; }\n }\n\n function getLiveRegionStr () {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end;\n }\n\n function getVisibleSlideRange (val) {\n if (val == null) { val = getContainerTransformValue(); }\n var start = index, end, rangestart, rangeend;\n\n // get range start, range end for autoWidth and fixedWidth\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = - (parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n }\n\n // get start, end\n // - check auto width\n if (autoWidth) {\n slidePositions.forEach(function(point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) { start = i; }\n if (rangeend - point >= 0.5) { end = i; }\n }\n });\n\n // - check percentage width, fixed width\n } else {\n\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n if (center || edgePadding) {\n start = Math.floor(rangestart/cell);\n end = Math.ceil(rangeend/cell - 1);\n } else {\n end = start + Math.ceil(viewport/cell) - 1;\n }\n\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad () {\n if (lazyload && !disable) {\n var arg = getVisibleSlideRange();\n arg.push(lazyloadSelector);\n\n getImageArray.apply(null, arg).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n eve[TRANSITIONEND] = function (e) { e.stopPropagation(); };\n addEvents(img, eve);\n\n addEvents(img, imgEvents);\n\n // update src\n img.src = getAttr(img, 'data-src');\n\n // update srcset\n var srcset = getAttr(img, 'data-srcset');\n if (srcset) { img.srcset = srcset; }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded (e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed (e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded (img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed (img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted (img) {\n addClass(img, imgCompleteClass);\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray (start, end, imgSelector) {\n var imgs = [];\n if (!imgSelector) { imgSelector = 'img'; }\n\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll(imgSelector), function (img) { imgs.push(img); });\n start++;\n }\n\n return imgs;\n }\n\n // check if all visible images are loaded\n // and update container height if it's done\n function doAutoHeight () {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function(){ imgsLoadedCheck(imgs, updateInnerWrapperHeight); });\n }\n\n function imgsLoadedCheck (imgs, cb) {\n // execute callback function if all images are complete\n if (imgsComplete) { return cb(); }\n\n // check image classes\n imgs.forEach(function (img, index) {\n if (!lazyload && img.complete) { imgCompleted(img); } // Check image.complete\n if (hasClass(img, imgCompleteClass)) { imgs.splice(index, 1); }\n });\n\n // execute callback function if selected images are all complete\n if (!imgs.length) { return cb(); }\n\n // otherwise execute this functiona again\n raf(function(){ imgsLoadedCheck(imgs, cb); });\n }\n\n function additionalUpdates () {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n\n function update_carousel_transition_duration () {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight (slideStart, slideRange) {\n var heights = [];\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n }\n\n // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n function updateInnerWrapperHeight () {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) { wp.style.height = maxHeight + 'px'; }\n }\n\n // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n function setSlidePositions () {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n\n forEach(slideItems, function(item, i) {\n // skip the first slide\n if (i) { slidePositions.push(item.getBoundingClientRect()[attr] - base); }\n // add the end edge\n if (i === slideCountNew - 1) { slidePositions.push(item.getBoundingClientRect()[attr2] - base); }\n });\n }\n\n // update slide\n function updateSlideStatus () {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n\n forEach(slideItems, function(item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n }\n // hide slides\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n }\n\n // gallery: update slide position\n function updateGallerySlidePositions () {\n var l = index + Math.min(slideCount, items);\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n }\n\n // remove outlet animation\n removeClass(item, animateOut);\n }\n\n // removing '.tns-moving'\n setTimeout(function() {\n forEach(slideItems, function(el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n }\n\n // set tabindex on Nav\n function updateNavStatus () {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n\n setAttrs(navCurrent, {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName (el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton (el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled (el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement (isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n }\n\n // set 'disabled' to true on controls when reach the edges\n function updateControlsStatus () {\n if (!controls || rewind || loop) { return; }\n\n var prevDisabled = (prevIsButton) ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = (nextIsButton) ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = (index <= indexMin) ? true : false,\n disableNext = (!rewind && index >= indexMax) ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n }\n\n // set duration\n function resetDuration (el, str) {\n if (TRANSITIONDURATION) { el.style[TRANSITIONDURATION] = str; }\n }\n\n function getSliderWidth () {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap (num) {\n if (num == null) { num = index; }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? ((viewport - gap) - (slidePositions[num + 1] - slidePositions[num] - gutter))/2 :\n fixedWidth ? (viewport - fixedWidth) / 2 :\n (items - 1) / 2;\n }\n\n function getRightBoundary () {\n var gap = edgePadding ? gutter : 0,\n result = (viewport + gap) - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? - (fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() :\n getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n if (result > 0) { result = 0; }\n\n return result;\n }\n\n function getContainerTransformValue (num) {\n if (num == null) { num = index; }\n\n var val;\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = - (fixedWidth + gutter) * num;\n if (center) { val += getCenterGap(); }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n if (center) { num -= getCenterGap(); }\n val = - num * 100 / denominator;\n }\n } else {\n val = - slidePositions[num];\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) { val = Math.max(val, rightBoundary); }\n\n val += (horizontal && !autoWidth && !fixedWidth) ? '%' : 'px';\n\n return val;\n }\n\n function doContainerTransformSilent (val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform (val) {\n if (val == null) { val = getContainerTransformValue(); }\n if (textDirection === 'rtl' && val.charAt(0) === '-') {\n val = val.substr(1);\n }\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide (number, classOut, classIn, isOut) {\n var l = number + items;\n if (!loop) { l = Math.min(l, slideCountNew); }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i];\n\n // set item positions\n if (!isOut) { item.style.left = (i - index) * 100 / items + '%'; }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n removeClass(item, classOut);\n addClass(item, classIn);\n\n if (isOut) { slideItemsOut.push(item); }\n }\n }\n\n // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n var transformCore = (function () {\n return carousel ?\n function () {\n resetDuration(container, '');\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or\n // zero duration for all browsers\n doContainerTransform();\n // run fallback function manually\n // when duration is 0 / container is hidden\n if (!speed || !isVisible(container)) { onTransitionEnd(); }\n\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) { updateContentWrapperHeight(); }\n } :\n function () {\n slideItemsOut = [];\n\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn);\n\n // run fallback function manually\n // when transition or animation not supported / duration is 0\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) { onTransitionEnd(); }\n };\n })();\n\n function render (e, sliderMoved) {\n if (updateIndexBeforeTransform) { updateIndex(); }\n\n // render when slider was moved (touch or drag) even though index may not change\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n if (autoHeight) { doAutoHeight(); }\n\n // pause autoplay when click or keydown from user\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) { stopAutoplay(); }\n\n running = true;\n transformCore();\n }\n }\n\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n function strTrans (str) {\n return str.toLowerCase().replace(/-/g, '');\n }\n\n // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n function onTransitionEnd (event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i];\n // set item positions\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) {\n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event'\n * have to check event first, otherwise event.target will cause an error\n * => or 'gallery' mode:\n * + event target is slide item\n * => or 'carousel' mode:\n * + event target is container,\n * + event.property is the same with transform attribute\n */\n if (!event ||\n !carousel && event.target.parentNode === container ||\n event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n\n if (!updateIndexBeforeTransform) {\n var indexTem = index;\n updateIndex();\n if (index !== indexTem) {\n events.emit('indexChanged', info());\n\n doContainerTransformSilent();\n }\n }\n\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n running = false;\n indexCached = index;\n }\n }\n\n }\n\n // # ACTIONS\n function goTo (targetIndex, e) {\n if (freeze) { return; }\n\n // prev slideBy\n if (targetIndex === 'prev') {\n onControlsClick(e, -1);\n\n // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1);\n\n // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n var absIndex = getAbsIndex(),\n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = - absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') { targetIndex = parseInt(targetIndex); }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) { targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); }\n\n indexGap = targetIndex - absIndex;\n }\n }\n\n // gallery: make sure new page won't overlap with current page\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += (index + indexGap - slideCount) >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap;\n\n // make sure index is in range\n if (carousel && loop) {\n if (index < indexMin) { index += slideCount; }\n if (index > indexMax) { index -= slideCount; }\n }\n\n // if index is changed, start rendering\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n\n }\n }\n\n // on controls click\n function onControlsClick (e, dir) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { target = target.parentNode; }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n if (autoWidth) { index = Math.floor(index); }\n // pass e when click control buttons or keydown\n render((passEventObject || (e && e.type === 'keydown')) ? e : null);\n }\n }\n\n // on nav click\n function onNavClick (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n e = getEvent(e);\n var target = getTarget(e), navIndex;\n\n // find the clicked nav item\n while (target !== navContainer && !hasAttr(target, 'data-nav')) { target = target.parentNode; }\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) { stopAutoplay(); }\n navClicked = -1; // reset navClicked\n }\n }\n }\n\n // autoplay functions\n function setAutoplayTimer () {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n\n animating = true;\n }\n\n function stopAutoplayTimer () {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton (action, txt) {\n setAttrs(autoplayButton, {'data-action': action});\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay () {\n setAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('stop', autoplayText[1]); }\n }\n\n function stopAutoplay () {\n stopAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('start', autoplayText[0]); }\n }\n\n // programaitcally play/pause the slider\n function play () {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n function pause () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange () {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause () {\n if (animating) {\n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart () {\n if (autoplayHoverPaused) {\n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n }\n\n // keydown events on document\n function onDocumentKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n }\n\n // on key control\n function onControlsKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) { onControlsClick(e, -1); }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n }\n\n // set focus\n function setFocus (el) {\n el.focus();\n }\n\n // on key nav\n function onNavKeydown (e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n if (!hasAttr(curElement, 'data-nav')) { return; }\n\n // var code = e.keyCode,\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) { setFocus(navItems[navIndex - 1]); }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) { setFocus(navItems[navIndex + 1]); }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent (e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n function getTarget (e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent (e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior (e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected () {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n if (autoplay && animating) { stopAutoplayTimer(); }\n\n panStart = true;\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove (e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) { rafIndex = raf(function(){ panUpdate(e); }); }\n } else {\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) { preventScroll = true; }\n }\n\n if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) {\n e.preventDefault();\n }\n }\n }\n\n function panUpdate (e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n caf(rafIndex);\n if (panStart) { rafIndex = raf(function(){ panUpdate(e); }); }\n\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) { preventScroll = true; }\n\n try {\n if (e.type) { events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e)); }\n } catch(err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew): dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd (e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n if (carousel) { resetDuration(container, ''); }\n panStart = false;\n\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {'click': function preventClick (e) {\n preventDefaultBehavior(e);\n removeEvents(target, {'click': preventClick});\n }});\n }\n\n if (carousel) {\n rafIndex = raf(function() {\n if (horizontal && !autoWidth) {\n var indexMoved = - dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n if (textDirection === 'rtl') { \n index += indexMoved * -1;\n } else {\n index += indexMoved;\n }\n } else {\n var moved = - (translateInit + dist);\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n if (moved > slidePositions[i] && dist < 0) { index += 1; }\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n }\n\n // reset\n if (options.preventScrollOnTouch === 'auto') { preventScroll = false; }\n if (swipeAngle) { moveDirectionExpected = '?'; }\n if (autoplay && !animating) { setAutoplayTimer(); }\n }\n\n // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n function updateContentWrapperHeight () {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages () {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n function updateNavVisibility () {\n if (!nav || navAsThumbnails) { return; }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n }\n\n // cache pages\n pagesCached = pages;\n }\n }\n\n function info (e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {},\n };\n }\n\n return {\n version: '2.9.3',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function() {\n return tns(extend(options, optionsElements));\n }\n };\n};\n\nreturn tns;\n})();\n\nexport default tns;","import tns from 'tiny-slider'\n\nexport default class {\n connect() {\n var $container, slider;\n\n function init() {\n var data = $container.data();\n var sidebar = $container.data().sidebar;\n var items = data.browseGroupCategoriesCount;\n var dir = $('html').attr('dir');\n var controls = $container.parent().find('.browse-group-categories-controls')[0];\n\n slider = tns({\n container: $container[0],\n controlsContainer: controls,\n loop: false,\n nav: false,\n items: 1,\n slideBy: 'page',\n textDirection: dir,\n responsive: {\n 576: {\n items: itemCount(items, sidebar)\n }\n }\n });\n }\n\n // Destroy the slider instance, as tns will change the dom elements, causing some issues with turbolinks\n function setupDestroy() {\n document.addEventListener('turbolinks:before-cache', function() {\n if (slider && slider.destroy) {\n slider.destroy();\n }\n });\n }\n\n function itemCount(items, sidebar) {\n if (items < 3) {\n return items;\n }\n return sidebar ? 3 : 4;\n }\n\n return $('[data-browse-group-categories-carousel]').each(function() {\n $container = $(this);\n init();\n setupDestroy();\n });\n }\n}\n","export default class {\n connect() {\n if ($.fn.carousel) {\n $('.carousel').carousel();\n }\n }\n}\n","export default class {\n connect() {\n var $clearBtn = $('.btn-reset');\n var $input = $clearBtn.prev('#browse_q');\n var btnCheck = function(){\n if ($input.val() !== '') {\n $clearBtn.css('display', 'block');\n } else {\n $clearBtn.css('display', 'none');\n }\n };\n\n btnCheck();\n $input.on('keyup', function() {\n btnCheck();\n });\n\n $clearBtn.on('click', function(event) {\n event.preventDefault();\n $input.val('');\n });\n }\n}\n","export default class {\n connect() {\n $('.zpr-link').on('click', function() {\n var modalDialog = $('#blacklight-modal .modal-dialog');\n var modalContent = modalDialog.find('.modal-content')\n modalDialog.removeClass('modal-lg')\n modalDialog.addClass('modal-xl')\n modalContent.html('<div id=\"osd-modal-container\"></div>');\n var controls = `<div class=\"controls d-flex justify-content-center justify-content-md-end\">\n <div class=\"custom-close-controls pr-3 pe-3 pt-3\">\n <button type=\"button\" class=\"btn btn-dark\" data-dismiss=\"modal\" data-bs-dismiss=\"modal\" aria-hidden=\"true\">${Spotlight.ZprLinks.close}</button>\n </div>\n <div class=\"zoom-controls mb-3 mr-md-3 me-md-3\">\n <button id=\"osd-zoom-in\" type=\"button\" class=\"btn btn-dark\">${Spotlight.ZprLinks.zoomIn}</button>\n <button id=\"osd-zoom-out\" type=\"button\" class=\"btn btn-dark\">${Spotlight.ZprLinks.zoomOut}</button>\n </div>\n <div id=\"empty-div-required-by-osd\"></div>\n </div>`\n\n $('#osd-modal-container').append('<div id=\"osd-div\"></div>');\n $('#osd-modal-container').append(controls);\n\n $('#blacklight-modal').modal('show');\n \n $('#blacklight-modal').one('hidden.bs.modal', function (event) {\n modalDialog.removeClass('modal-xl')\n modalDialog.addClass('modal-lg')\n });\n\n OpenSeadragon({\n id: 'osd-div',\n zoomInButton: \"osd-zoom-in\",\n zoomOutButton: \"osd-zoom-out\",\n // This is a hack where OpenSeadragon (if using mapped buttons) requires you\n // to map all of the buttons.\n homeButton: \"empty-div-required-by-osd\",\n fullPageButton: \"empty-div-required-by-osd\",\n nextButton: \"empty-div-required-by-osd\",\n previousButton: \"empty-div-required-by-osd\",\n tileSources: [$(this).data('iiif-tilesource')]\n })\n });\n }\n}\n","import BrowseGroupCateogries from 'spotlight/user/browse_group_categories'\nimport Carousel from 'spotlight/user/carousel'\nimport ClearFormButton from 'spotlight/user/clear_form_button'\nimport ZprLinks from 'spotlight/user/zpr_links'\n\nexport default class {\n connect() {\n new BrowseGroupCateogries().connect()\n new Carousel().connect()\n new ClearFormButton().connect()\n new ZprLinks().connect()\n }\n}\n","export default class {\n connect() {\n $(\"[data-action='add-another']\").on(\"click\", function(event) {\n event.preventDefault();\n\n var templateId = $(this).data('template-id');\n\n var template = document.querySelector('#' + templateId);\n var clone = document.importNode(template.content, true);\n\n var count = $(this).closest('.form-group').find('[name=\"' + $(clone).find('[name]').attr('name') + '\"]').length + 1;\n $(clone).find('[id]').each(function(index, el) {\n $(el).attr('id', $(el).attr('id') + '_' + String(count));\n });\n\n $(clone).find('[for]').each(function(index, el) {\n $(el).attr('for', $(el).attr('for') + '_' + String(count));\n });\n\n\n $(clone).insertBefore(this);\n });\n }\n}\n","export default class {\n connect() {\n $(\"[data-expanded-add-button]\").each((_i, el) => this.addExpandBehaviorToButton($(el)))\n }\n\n addExpandBehaviorToButton(button){\n var settings = {\n speed: (button.data('speed') || 450),\n animate_width: (button.data('animate_width') || 425)\n }\n var target = $(button.data('field-target'));\n var save = $(\"input[data-behavior='save']\", target);\n var cancel = $(\"input[data-behavior='cancel']\", target);\n var input = $(\"input[type='text']\", target);\n var original_width = button.outerWidth();\n var expanded = false;\n\n // Animate button open when the mouse enters or\n // the button is given focus (i.e. clicked/tabbed)\n button.on(\"mouseenter focus\", function(){\n expandButton();\n });\n\n // Don't allow blank titles\n save.on('click', function(){\n if ( inputEmpty() ) {\n return false;\n }\n });\n\n // Empty input and collapse\n // button on cancel click\n cancel.on('click', function(e){\n e.preventDefault();\n input.val('');\n collapseButton();\n });\n\n // Collapse the button on when\n // an empty input loses focus\n input.on(\"blur\", function(){\n if ( inputEmpty() ) {\n collapseButton();\n }\n });\n function expandButton(){\n // If this has not yet been expanded, recalculate original_width to \n // handle things that may have been originally hidden.\n if (!expanded) {\n original_width = button.outerWidth();\n }\n if(button.outerWidth() <= (original_width + 5)) {\n expanded = true;\n button.animate(\n {width: settings.animate_width + 'px'}, settings.speed, function(){\n target.show(0, function(){\n input.focus();\n // Set the button to auto width to make\n // sure it has room for any inputs\n button.width(\"auto\");\n // Explicitly set the width of the button\n // so the close animation works properly\n button.width(button.width());\n });\n }\n )\n }\n }\n function collapseButton(){\n target.hide();\n button.animate({width: original_width + 'px'}, settings.speed);\n }\n function inputEmpty(){\n return $.trim(input.val()) == \"\";\n }\n }\n}\n","export default class {\n connect() {\n // Add Select/Deselect all input behavior\n this.addCheckboxToggleBehavior();\n this.addEnableToggleBehavior();\n }\n \n // Add Select/Deselect all behavior for metadata field names for a given view e.g. Item details. \n addCheckboxToggleBehavior() {\n $(\"[data-behavior='metadata-select']\").each(function(){\n var selectCheckbox = $(this);\n var parentCell = selectCheckbox.parents(\"th\");\n var table = parentCell.closest(\"table\");\n var columnRows = $(\"tr td:nth-child(\" + (parentCell.index() + 1) + \")\", table);\n var checkboxes = $(\"input[type='checkbox']\", columnRows);\n updateSelectAllInput(selectCheckbox, columnRows);\n // Add the check/uncheck behavior to the select/deselect all checkbox\n selectCheckbox.on('click', function(e){\n var allChecked = allCheckboxesChecked(columnRows);\n columnRows.each(function(){\n $(\"input[type='checkbox']\", $(this)).prop('checked', !allChecked);\n });\n });\n // When a single checkbox is selected/unselected, the \"All\" checkbox should be updated accordingly.\n checkboxes.each(function(){\n $(this).on('change', function(){\n updateSelectAllInput(selectCheckbox, columnRows);\n });\n }); \n });\n\n // Check number of checkboxes against the number of checked\n // checkboxes to determine if all of them are checked or not\n function allCheckboxesChecked(elements) {\n return ($(\"input[type='checkbox']\", elements).length == $(\"input[type='checkbox']:checked\", elements).length)\n }\n\n // Check or uncheck the \"All\" checkbox for each view column, e.g. Item details, List, etc.\n function updateSelectAllInput(checkbox, elements) {\n if ( allCheckboxesChecked(elements) ) {\n checkbox.prop('checked', true);\n } else {\n checkbox.prop('checked', false);\n }\n }\n }\n \n addEnableToggleBehavior() {\n $(\"[data-behavior='enable-feature']\").each(function(){\n var checkbox = $(this);\n var target = $($(this).data('target'));\n\n checkbox.on('change', function() {\n if ($(this).is(':checked')) {\n target.find('input:checkbox').not(\"[data-behavior='enable-feature']\").prop('checked', true).attr('disabled', false);\n } else {\n target.find('input:checkbox').not(\"[data-behavior='enable-feature']\").prop('checked', false).attr('disabled', true);\n }\n });\n });\n }\n}","import Clipboard from 'clipboard';\n\nexport default class {\n connect() {\n new Clipboard('.copy-email-addresses');\n }\n}\n","export default class Iiif {\n constructor(manifestUrl, manifest) {\n this.manifestUrl = manifestUrl;\n this.manifest = manifest;\n }\n\n sequences() {\n var it = {};\n var context = this;\n it[Symbol.iterator] = function*() {\n for (let sequence of context.manifest.sequences) {\n yield sequence;\n };\n }\n return it;\n }\n\n canvases() {\n var it = {};\n var context = this;\n it[Symbol.iterator] = function*() {\n for (let sequence of context.sequences()) {\n for (let canvas of sequence.canvases) {\n yield canvas;\n }\n }\n }\n return it;\n }\n\n images() {\n var it = {};\n var context = this;\n it[Symbol.iterator] = function*() {\n for (let canvas of context.canvases()) {\n for (let image of canvas.images) {\n var iiifService = image.resource.service['@id'];\n yield {\n 'thumb': iiifService + '/full/!100,100/0/default.jpg',\n 'tilesource': iiifService + '/info.json',\n 'manifest': context.manifestUrl,\n 'canvasId': canvas['@id'],\n 'imageId': image['@id']\n };\n }\n }\n }\n return it;\n }\n\n imagesArray() {\n return Array.from(this.images())\n }\n}\n","import Iiif from 'spotlight/admin/iiif'\n\nexport function addImageSelector(input, panel, manifestUrl, initialize) {\n if (!manifestUrl) {\n showNonIiifAlert(input);\n return;\n }\n var cropper = input.data('iiifCropper');\n $.ajax(manifestUrl).done(\n function(manifest) {\n var iiifManifest = new Iiif(manifestUrl, manifest);\n\n var thumbs = iiifManifest.imagesArray();\n\n hideNonIiifAlert(input);\n\n if (initialize) {\n cropper.setIiifFields(thumbs[0]);\n panel.multiImageSelector(); // Clears out existing selector\n }\n\n if(thumbs.length > 1) {\n panel.show();\n panel.multiImageSelector(thumbs, function(selectorImage) {\n cropper.setIiifFields(selectorImage);\n }, cropper.iiifImageField.val());\n }\n }\n );\n}\n\nfunction showNonIiifAlert(input){\n input.parent().prev('[data-behavior=\"non-iiif-alert\"]').show();\n}\n\nfunction hideNonIiifAlert(input){\n input.parent().prev('[data-behavior=\"non-iiif-alert\"]').hide();\n}","import SirTrevor from \"sir-trevor\"\n\nconst Spotlight = function() {\n var buffer = [];\n return {\n onLoad: function(func) {\n buffer.push(func);\n },\n\n activate: function() {\n this.sirTrevorIcon = window.sirTrevorIcon;\n for(var i = 0; i < buffer.length; i++) {\n buffer[i].call();\n }\n },\n csrfToken: function () {\n return document.querySelector('meta[name=csrf-token]')?.content\n },\n ZprLinks: {\n close: \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\"><path d=\\\"M0 0h24v24H0V0z\\\" fill=\\\"none\\\"/><path d=\\\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\\\"/></svg>\",\n zoomIn: \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\"><path d=\\\"M0 0h24v24H0V0z\\\" fill=\\\"none\\\"/><path d=\\\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm.5-7H9v2H7v1h2v2h1v-2h2V9h-2z\\\"/></svg>\\n\",\n zoomOut: \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\"><path d=\\\"M0 0h24v24H0V0z\\\" fill=\\\"none\\\"/><path d=\\\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7V9z\\\"/></svg>\\n\"\n }\n };\n}();\n\n// This allows us to configure Spotlight in app/views/layouts/base.html.erb\nwindow.Spotlight = Spotlight\nwindow.SirTrevor = SirTrevor\nexport default Spotlight\n","import { addImageSelector } from 'spotlight/admin/add_image_selector'\nimport Core from 'spotlight/core'\n\nexport default class Crop {\n constructor(cropArea, preserveAspectRatio = true) {\n this.cropArea = cropArea;\n this.cropArea.data('iiifCropper', this);\n // This element will also have the IIIF input elements contained\n // There may be multiple elements with data-cropper attributes, but\n // there should only one element with this data-cropper attribute value.\n this.cropSelector = '[data-cropper=\"' + cropArea.data('cropperKey') + '\"]';\n this.cropTool = $(this.cropSelector);\n // Exhibit and masthead cropping requires the ratio between image width and height\n // to be consistent, whereas item widget cropping allows any combination of \n // image width and height.\n this.preserveAspectRatio = preserveAspectRatio;\n // Get the IIIF input elements used to store/reference IIIF information\n this.inputPrefix = this.cropTool.data('input-prefix');\n this.iiifUrlField = this.iiifInputElement(this.inputPrefix, 'iiif_tilesource', this.cropTool);\n this.iiifRegionField = this.iiifInputElement(this.inputPrefix, 'iiif_region', this.cropTool);\n this.iiifManifestField = this.iiifInputElement(this.inputPrefix, 'iiif_manifest_url', this.cropTool);\n this.iiifCanvasField = this.iiifInputElement(this.inputPrefix, 'iiif_canvas_id', this.cropTool);\n this.iiifImageField = this.iiifInputElement(this.inputPrefix, 'iiif_image_id', this.cropTool);\n // Get the closest form element\n this.form = cropArea.closest('form');\n this.tileSource = null;\n }\n\n // Return the iiif input element based on the fieldname.\n // Multiple input fields with the same name on the page may be related \n // to a cropper. We thus need to pass in a parent element. \n iiifInputElement(inputPrefix, fieldName, inputParentElement) {\n return $('input[name=\"' + inputPrefix + '[' + fieldName + ']\"]', inputParentElement);\n }\n\n // Render the cropper environment and add hooks into the autocomplete and upload forms\n render() {\n this.setupAutoCompletes();\n this.setupAjaxFileUpload();\n this.setupExistingIiifCropper();\n }\n\n // Setup the cropper on page load if the field\n // that holds the IIIF url is populated\n setupExistingIiifCropper() {\n if(this.iiifUrlField.val() === '') {\n return;\n }\n\n this.addImageSelectorToExistingCropTool();\n this.setTileSource(this.iiifUrlField.val());\n }\n\n // Display the IIIF Cropper map with the current IIIF Layer (and cropbox, once the layer is available)\n setupIiifCropper() {\n this.loaded = false;\n\n this.renderCropperMap();\n\n if (this.imageLayer) {\n // Force a broken layer's container to be an element before removing.\n // Code in leaflet-iiif land calls delete on the image layer's container when removing,\n // which errors if there is an issue fetching the info.json and stops further necessary steps to execute.\n if(!this.imageLayer._container) {\n this.imageLayer._container = $('<div></div>');\n }\n this.cropperMap.removeLayer(this.imageLayer);\n }\n\n this.imageLayer = L.tileLayer.iiif(this.tileSource).addTo(this.cropperMap);\n\n var self = this;\n this.imageLayer.on('load', function() {\n if (!self.loaded) {\n var region = self.getCropRegion();\n self.positionIiifCropBox(region);\n self.loaded = true;\n }\n });\n\n this.cropArea.data('initiallyVisible', this.cropArea.is(':visible'));\n }\n\n // Get (or initialize) the current crop region from the form data\n getCropRegion() {\n var regionFieldValue = this.iiifRegionField.val();\n if(!regionFieldValue || regionFieldValue === '') {\n var region = this.defaultCropRegion();\n this.iiifRegionField.val(region);\n return region;\n } else {\n return regionFieldValue.split(',');\n }\n }\n\n // Calculate a default crop region in the center of the image using the correct aspect ratio\n defaultCropRegion() {\n var imageWidth = this.imageLayer.x;\n var imageHeight = this.imageLayer.y;\n\n var boxWidth = Math.floor(imageWidth / 2);\n var boxHeight = Math.floor(boxWidth / this.aspectRatio());\n\n return [\n Math.floor((imageWidth - boxWidth) / 2),\n Math.floor((imageHeight - boxHeight) / 2),\n boxWidth,\n boxHeight\n ];\n }\n\n // Calculate the required aspect ratio for the crop area\n aspectRatio() {\n var cropWidth = parseInt(this.cropArea.data('crop-width'));\n var cropHeight = parseInt(this.cropArea.data('crop-height'));\n return cropWidth / cropHeight;\n }\n\n // Position the IIIF Crop Box at the given IIIF region\n positionIiifCropBox(region) {\n var bounds = this.unprojectIIIFRegionToBounds(region);\n\n if (!this.cropBox) {\n this.renderCropBox(bounds);\n }\n\n this.cropBox.setBounds(bounds);\n this.cropperMap.invalidateSize();\n this.cropperMap.fitBounds(bounds);\n\n this.cropBox.editor.editLayer.clearLayers();\n this.cropBox.editor.refresh();\n this.cropBox.editor.initVertexMarkers();\n }\n\n // Set all of the various input fields to\n // the appropriate IIIF URL or identifier\n setIiifFields(iiifObject) {\n this.setTileSource(iiifObject.tilesource);\n this.iiifManifestField.val(iiifObject.manifest);\n this.iiifCanvasField.val(iiifObject.canvasId);\n this.iiifImageField.val(iiifObject.imageId);\n }\n\n // Set the Crop tileSource and setup the cropper\n setTileSource(source) {\n if (source == this.tileSource) {\n return;\n }\n\n if (source === null || source === undefined) {\n console.error('No tilesource provided when setting up IIIF Cropper');\n return;\n }\n\n if (this.cropBox) {\n this.iiifRegionField.val(\"\");\n }\n\n this.tileSource = source;\n this.iiifUrlField.val(source);\n this.setupIiifCropper();\n }\n\n // Render the Leaflet Map into the crop area\n renderCropperMap() {\n if (this.cropperMap) {\n return;\n }\n\n var cropperOptions = {\n editable: true,\n center: [0, 0],\n crs: L.CRS.Simple,\n zoom: 0\n }\n\n if(this.preserveAspectRatio) {\n cropperOptions['editOptions'] = {\n rectangleEditorClass: this.aspectRatioPreservingRectangleEditor(this.aspectRatio())\n };\n }\n\n this.cropperMap = L.map(this.cropArea.attr('id'), cropperOptions);\n this.invalidateMapSizeOnTabToggle();\n }\n\n // Render the crop box (a Leaflet editable rectangle) onto the canvas\n renderCropBox(initialBounds) {\n this.cropBox = L.rectangle(initialBounds);\n this.cropBox.addTo(this.cropperMap);\n this.cropBox.enableEdit();\n this.cropBox.on('dblclick', L.DomEvent.stop).on('dblclick', this.cropBox.toggleEdit);\n\n var self = this;\n this.cropperMap.on('editable:dragend editable:vertex:dragend', function(e) {\n var bounds = e.layer.getBounds();\n var region = self.projectBoundsToIIIFRegion(bounds);\n\n self.iiifRegionField.val(region.join(','));\n });\n }\n\n // Get the maximum zoom level for the IIIF Layer (always 1:1 image pixel to canvas?)\n maxZoom() {\n if(this.imageLayer) {\n return this.imageLayer.maxZoom;\n }\n }\n\n // Take a Leaflet LatLngBounds object and transform it into a IIIF [x, y, w, h] region\n projectBoundsToIIIFRegion(bounds) {\n var min = this.cropperMap.project(bounds.getNorthWest(), this.maxZoom());\n var max = this.cropperMap.project(bounds.getSouthEast(), this.maxZoom());\n return [\n Math.max(Math.floor(min.x), 0),\n Math.max(Math.floor(min.y), 0),\n Math.floor(max.x - min.x),\n Math.floor(max.y - min.y)\n ];\n }\n\n // Take a IIIF [x, y, w, h] region and transform it into a Leaflet LatLngBounds\n unprojectIIIFRegionToBounds(region) {\n var minPoint = L.point(parseInt(region[0]), parseInt(region[1]));\n var maxPoint = L.point(parseInt(region[0]) + parseInt(region[2]), parseInt(region[1]) + parseInt(region[3]));\n\n var min = this.cropperMap.unproject(minPoint, this.maxZoom());\n var max = this.cropperMap.unproject(maxPoint, this.maxZoom());\n return L.latLngBounds(min, max);\n }\n\n // TODO: Add accessors to update hidden inputs with IIIF uri/ids?\n\n // Setup autocomplete inputs to have the iiif_cropper context\n setupAutoCompletes() {\n var input = $('[data-behavior=\"autocomplete\"]', this.cropTool);\n input.data('iiifCropper', this);\n }\n\n setupAjaxFileUpload() {\n this.fileInput = $('input[type=\"file\"]', this.cropTool);\n this.fileInput.change(() => this.uploadFile());\n }\n\n addImageSelectorToExistingCropTool() {\n if(this.iiifManifestField.val() === '') {\n return;\n }\n\n var input = $('[data-behavior=\"autocomplete\"]', this.cropTool);\n \n // Not every page which uses this module has autocomplete linked directly to the cropping tool\n if(input.length) {\n var panel = $(input.data('target-panel'));\n addImageSelector(input, panel, this.iiifManifestField.val(), !this.iiifImageField.val());\n }\n }\n\n invalidateMapSizeOnTabToggle() {\n var tabs = $('[role=\"tablist\"]', this.form);\n var self = this;\n tabs.on('shown.bs.tab', function() {\n if(self.cropArea.data('initiallyVisible') === false && self.cropArea.is(':visible')) {\n self.cropperMap.invalidateSize();\n // Because the map size is 0,0 when image is loading (not visible) we need to refit the bounds of the layer\n self.imageLayer._fitBounds();\n self.cropArea.data('initiallyVisible', null);\n }\n });\n }\n\n // Get all the form data with the exception of the _method field.\n getData() {\n var data = new FormData(this.form[0]);\n data.append('_method', null);\n return data;\n }\n\n uploadFile() {\n var url = this.fileInput.data('endpoint')\n // Every post creates a new image/masthead.\n // Because they create IIIF urls which are heavily cached.\n $.ajax({\n url: url, //Server script to process data\n type: 'POST',\n success: (data, stat, xhr) => this.successHandler(data, stat, xhr),\n // error: errorHandler,\n // Form data\n data: this.getData(),\n headers: {\n 'X-CSRF-Token': Core.csrfToken() || ''\n },\n //Options to tell jQuery not to process data or worry about content-type.\n cache: false,\n contentType: false,\n processData: false\n });\n }\n\n successHandler(data, stat, xhr) {\n this.setIiifFields({ tilesource: data.tilesource });\n this.setUploadId(data.id);\n }\n\n setUploadId(id) {\n // This input is currently used for exhibit masthead or thumbnail image upload.\n // The name should be sufficient in this case, as we don't use this part of the\n // code for solr document widgets where we enable cropping. \n // If we require more specificity, we can scope this to this.cropTool. \n $('input[name=\"' + this.inputPrefix + '[upload_id]\"]').val(id);\n }\n\n aspectRatioPreservingRectangleEditor(aspect) {\n return L.Editable.RectangleEditor.extend({\n extendBounds: function (e) {\n var index = e.vertex.getIndex(),\n next = e.vertex.getNext(),\n previous = e.vertex.getPrevious(),\n oppositeIndex = (index + 2) % 4,\n opposite = e.vertex.latlngs[oppositeIndex];\n\n if ((index % 2) == 1) {\n // calculate horiz. displacement\n e.latlng.update([opposite.lat + ((1 / aspect) * (opposite.lng - e.latlng.lng)), e.latlng.lng]);\n } else {\n // calculate vert. displacement\n e.latlng.update([e.latlng.lat, (opposite.lng - (aspect * (opposite.lat - e.latlng.lat)))]);\n }\n var bounds = new L.LatLngBounds(e.latlng, opposite);\n // Update latlngs by hand to preserve order.\n previous.latlng.update([e.latlng.lat, opposite.lng]);\n next.latlng.update([opposite.lat, e.latlng.lng]);\n this.updateBounds(bounds);\n this.refreshVertexMarkers();\n }\n });\n }\n}\n","import Crop from 'spotlight/admin/crop';\n\nexport default class CroppableModal {\n\n attachModalHandlers() {\n // Attach handler for when modal first loads, to show the cropper\n this.attachModalLoadBehavior();\n // Attach handler for save by checking if clicking in the modal is on a save button\n this.attachModalSaveHandler();\n }\n\n attachModalLoadBehavior() {\n // Listen for event thrown when modal is displayed with content\n document.addEventListener('loaded.blacklight.blacklight-modal', function(e) {\n var dataCropperDiv = $('#blacklight-modal [data-behavior=\"iiif-cropper\"]');\n \n if(dataCropperDiv) {\n new Crop(dataCropperDiv, false).render();\n }\n });\n }\n\n // Field names are of the format item[item_0][iiif_image_id]\n iiifInputField(itemIndex, fieldName, parentElement) {\n var itemPrefix = 'item[' + itemIndex + ']';\n var selector = 'input[name=\"' + itemPrefix + '[' + fieldName + ']\"]';\n return $(selector, parentElement);\n }\n\n attachModalSaveHandler() {\n var context = this;\n \n document.addEventListener('show.blacklight.blacklight-modal', function(e) {\n $('#save-cropping-selection').on('click', () => {\n context.saveCroppedRegion();\n });\n });\n }\n\n saveCroppedRegion() {\n //On hitting \"save changes\", we need to copy over the value\n //to the iiif thumbnail url input field as well as the image source itself\n var context = this;\n var dataCropperDiv = $('#blacklight-modal [data-behavior=\"iiif-cropper\"]');\n\n if(dataCropperDiv) {\n var dataCropperKey = dataCropperDiv.data(\"cropper-key\");\n var itemIndex = dataCropperDiv.data(\"index-id\");\n // Get the element on the main edit page whose select image link opened up the modal\n var itemElement = $('[data-cropper=\"' + dataCropperKey + '\"]');\n // Get the hidden input field on the main edit page corresponding to this item\n var thumbnailSaveField = context.iiifInputField(itemIndex, 'thumbnail_image_url', itemElement);\n var fullimageSaveField = context.iiifInputField(itemIndex, 'full_image_url', itemElement);\n var iiifTilesource = context.iiifInputField(itemIndex, 'iiif_tilesource', itemElement).val();\n var regionValue = context.iiifInputField(itemIndex, 'iiif_region', itemElement).val();\n // Extract the region string to incorporate into the thumbnail URL\n var urlPrefix = iiifTilesource.substring(0, iiifTilesource.lastIndexOf('/info.json'));\n var thumbnailUrl = urlPrefix + '/' + regionValue + '/!400,400/0/default.jpg';\n // Set the hidden input value to the thumbnail URL\n // Also set the full image - which is used by widgets like carousel or slideshow\n thumbnailSaveField.val(thumbnailUrl);\n fullimageSaveField.val(urlPrefix + '/' + regionValue + '/!800,800/0/default.jpg');\n // Also change img url for thumbnail image\n var itemImage = $('img.img-thumbnail', itemElement); \n itemImage.attr('src', thumbnailUrl);\n }\n }\n}\n","import Crop from 'spotlight/admin/crop';\nimport CroppableModal from 'spotlight/admin/croppable_modal';\n\nexport default class Croppable {\n connect() {\n // For exhibit masthead or thumbnail pages, where\n // the div exists on page load\n $('[data-behavior=\"iiif-cropper\"]').each(function() {\n var cropElement = $(this)\n new Crop(cropElement).render()\n })\n\n // In the case of individual document thumbnails, selection\n // of the image is through a modal. Here we attach the event\n new CroppableModal().attachModalHandlers();\n }\n}\n","/*\n Simple plugin add edit-in-place behavior\n*/\nexport default class {\n connect() {\n $('[data-in-place-edit-target]').each(function() {\n $(this).on('click.inplaceedit', function() {\n var $label = $(this).find($(this).data('in-place-edit-target'));\n var $input = $(this).find($(this).data('in-place-edit-field-target'));\n\n // hide the edit-in-place affordance icon while in edit mode\n $(this).addClass('hide-edit-icon');\n $label.hide();\n $input.val($label.text());\n $input.attr('type', 'text');\n $input.select();\n $input.focus();\n\n $input.on('keypress', function(e) {\n if(e.which == 13) {\n $input.trigger('blur.inplaceedit');\n return false;\n }\n });\n\n $input.on('blur.inplaceedit', function() {\n var value = $input.val();\n\n if ($.trim(value).length == 0) {\n $input.val($label.text());\n } else {\n $label.text(value);\n }\n\n $label.show();\n $input.attr('type', 'hidden');\n // when leaving edit mode, should no longer hide edit-in-place affordance icon\n $(\"[data-in-place-edit-target]\").removeClass('hide-edit-icon');\n\n return false;\n });\n\n return false;\n });\n })\n\n $(\"[data-behavior='restore-default']\").each(function(){\n var hidden = $(\"[data-default-value]\", $(this));\n var value = $($(\"[data-in-place-edit-target]\", $(this)).data('in-place-edit-target'), $(this));\n var button = $(\"[data-restore-default]\", $(this));\n\n hidden.on('keypress', function(e) {\n if(e.which == 13) {\n hidden.trigger('blur');\n return false;\n }\n });\n\n hidden.on('blur', function(){\n if( $(this).val() == $(this).data('default-value') ) {\n button.addClass('d-none');\n } else {\n button.removeClass('d-none');\n }\n });\n button.on('click', function(e){\n e.preventDefault();\n hidden.val(hidden.data('default-value'));\n value.text(hidden.data('default-value'));\n button.hide();\n });\n });\n }\n}\n","/*\nhttps://gist.github.com/pjambet/3710461\n*/\nvar LATIN_MAP = {\n 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', 'Ç':\n 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', 'Î': 'I',\n 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö':\n 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ű': 'U',\n 'Ý': 'Y', 'Þ': 'TH', 'ß': 'ss', 'à':'a', 'á':'a', 'â': 'a', 'ã': 'a', 'ä':\n 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e',\n 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó':\n 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u',\n 'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y'\n}\nvar LATIN_SYMBOLS_MAP = {\n '©':'(c)'\n}\nvar GREEK_MAP = {\n 'α':'a', 'β':'b', 'γ':'g', 'δ':'d', 'ε':'e', 'ζ':'z', 'η':'h', 'θ':'8',\n 'ι':'i', 'κ':'k', 'λ':'l', 'μ':'m', 'ν':'n', 'ξ':'3', 'ο':'o', 'π':'p',\n 'ρ':'r', 'σ':'s', 'τ':'t', 'υ':'y', 'φ':'f', 'χ':'x', 'ψ':'ps', 'ω':'w',\n 'ά':'a', 'έ':'e', 'ί':'i', 'ό':'o', 'ύ':'y', 'ή':'h', 'ώ':'w', 'ς':'s',\n 'ϊ':'i', 'ΰ':'y', 'ϋ':'y', 'ΐ':'i',\n 'Α':'A', 'Β':'B', 'Γ':'G', 'Δ':'D', 'Ε':'E', 'Ζ':'Z', 'Η':'H', 'Θ':'8',\n 'Ι':'I', 'Κ':'K', 'Λ':'L', 'Μ':'M', 'Ν':'N', 'Ξ':'3', 'Ο':'O', 'Π':'P',\n 'Ρ':'R', 'Σ':'S', 'Τ':'T', 'Υ':'Y', 'Φ':'F', 'Χ':'X', 'Ψ':'PS', 'Ω':'W',\n 'Ά':'A', 'Έ':'E', 'Ί':'I', 'Ό':'O', 'Ύ':'Y', 'Ή':'H', 'Ώ':'W', 'Ϊ':'I',\n 'Ϋ':'Y'\n}\nvar TURKISH_MAP = {\n 'ş':'s', 'Ş':'S', 'ı':'i', 'İ':'I', 'ç':'c', 'Ç':'C', 'ü':'u', 'Ü':'U',\n 'ö':'o', 'Ö':'O', 'ğ':'g', 'Ğ':'G'\n}\nvar RUSSIAN_MAP = {\n 'а':'a', 'б':'b', 'в':'v', 'г':'g', 'д':'d', 'е':'e', 'ё':'yo', 'ж':'zh',\n 'з':'z', 'и':'i', 'й':'j', 'к':'k', 'л':'l', 'м':'m', 'н':'n', 'о':'o',\n 'п':'p', 'р':'r', 'с':'s', 'т':'t', 'у':'u', 'ф':'f', 'х':'h', 'ц':'c',\n 'ч':'ch', 'ш':'sh', 'щ':'sh', 'ъ':'', 'ы':'y', 'ь':'', 'э':'e', 'ю':'yu',\n 'я':'ya',\n 'А':'A', 'Б':'B', 'В':'V', 'Г':'G', 'Д':'D', 'Е':'E', 'Ё':'Yo', 'Ж':'Zh',\n 'З':'Z', 'И':'I', 'Й':'J', 'К':'K', 'Л':'L', 'М':'M', 'Н':'N', 'О':'O',\n 'П':'P', 'Р':'R', 'С':'S', 'Т':'T', 'У':'U', 'Ф':'F', 'Х':'H', 'Ц':'C',\n 'Ч':'Ch', 'Ш':'Sh', 'Щ':'Sh', 'Ъ':'', 'Ы':'Y', 'Ь':'', 'Э':'E', 'Ю':'Yu',\n 'Я':'Ya'\n}\nvar UKRAINIAN_MAP = {\n 'Є':'Ye', 'І':'I', 'Ї':'Yi', 'Ґ':'G', 'є':'ye', 'і':'i', 'ї':'yi', 'ґ':'g'\n}\nvar CZECH_MAP = {\n 'č':'c', 'ď':'d', 'ě':'e', 'ň': 'n', 'ř':'r', 'š':'s', 'ť':'t', 'ů':'u',\n 'ž':'z', 'Č':'C', 'Ď':'D', 'Ě':'E', 'Ň': 'N', 'Ř':'R', 'Š':'S', 'Ť':'T',\n 'Ů':'U', 'Ž':'Z'\n}\n\nvar POLISH_MAP = {\n 'ą':'a', 'ć':'c', 'ę':'e', 'ł':'l', 'ń':'n', 'ó':'o', 'ś':'s', 'ź':'z',\n 'ż':'z', 'Ą':'A', 'Ć':'C', 'Ę':'e', 'Ł':'L', 'Ń':'N', 'Ó':'o', 'Ś':'S',\n 'Ź':'Z', 'Ż':'Z'\n}\n\nvar LATVIAN_MAP = {\n 'ā':'a', 'č':'c', 'ē':'e', 'ģ':'g', 'ī':'i', 'ķ':'k', 'ļ':'l', 'ņ':'n',\n 'š':'s', 'ū':'u', 'ž':'z', 'Ā':'A', 'Č':'C', 'Ē':'E', 'Ģ':'G', 'Ī':'i',\n 'Ķ':'k', 'Ļ':'L', 'Ņ':'N', 'Š':'S', 'Ū':'u', 'Ž':'Z'\n}\n\nvar ALL_DOWNCODE_MAPS=new Array()\nALL_DOWNCODE_MAPS[0]=LATIN_MAP\nALL_DOWNCODE_MAPS[1]=LATIN_SYMBOLS_MAP\nALL_DOWNCODE_MAPS[2]=GREEK_MAP\nALL_DOWNCODE_MAPS[3]=TURKISH_MAP\nALL_DOWNCODE_MAPS[4]=RUSSIAN_MAP\nALL_DOWNCODE_MAPS[5]=UKRAINIAN_MAP\nALL_DOWNCODE_MAPS[6]=CZECH_MAP\nALL_DOWNCODE_MAPS[7]=POLISH_MAP\nALL_DOWNCODE_MAPS[8]=LATVIAN_MAP\n\nvar Downcoder = new Object();\nDowncoder.Initialize = function()\n{\n if (Downcoder.map) // already made\n return ;\n Downcoder.map ={}\n Downcoder.chars = '' ;\n for(var i in ALL_DOWNCODE_MAPS)\n {\n var lookup = ALL_DOWNCODE_MAPS[i]\n for (var c in lookup)\n {\n Downcoder.map[c] = lookup[c] ;\n Downcoder.chars += c ;\n }\n }\n Downcoder.regex = new RegExp('[' + Downcoder.chars + ']|[^' + Downcoder.chars + ']+','g') ;\n }\n \nconst downcode = function( slug )\n{\n Downcoder.Initialize() ;\n var downcoded =\"\"\n var pieces = slug.match(Downcoder.regex);\n if(pieces)\n {\n for (var i = 0 ; i < pieces.length ; i++)\n {\n if (pieces[i].length == 1)\n {\n var mapped = Downcoder.map[pieces[i]] ;\n if (mapped != null)\n {\n downcoded+=mapped;\n continue ;\n }\n }\n downcoded+=pieces[i];\n }\n }\n else\n {\n downcoded = slug;\n }\n return downcoded;\n}\n\n\nfunction URLify(s, num_chars) {\n // changes, e.g., \"Petty theft\" to \"petty_theft\"\n // remove all these words from the string before urlifying\n s = downcode(s);\n //\n // if downcode doesn't hit, the char will be stripped here\n s = s.replace(/[^-\\w\\s]/g, ' '); // remove unneeded chars\n s = s.replace(/^\\s+|\\s+$/g, ''); // trim leading/trailing spaces\n s = s.replace(/[-\\s]+/g, '-'); // convert spaces to hyphens\n s = s.toLowerCase(); // convert to lowercase\n return s.substring(0, num_chars);// trim to first num_chars chars\n}\n\nexport { URLify };","import { URLify } from 'parameterize';\n\nexport default class {\n connect() {\n // auto-fill the exhibit slug on the new exhibit form\n $('#new_exhibit').each(function() {\n $('#exhibit_title').on('change keyup', function() {\n $('#exhibit_slug').attr('placeholder', URLify($(this).val(), $(this).val().length));\n });\n\n $('#exhibit_slug').on('focus', function() {\n if ($(this).val() === '') {\n $(this).val($(this).attr('placeholder'));\n }\n });\n });\n\n $(\"#another-email\").on(\"click\", function(e) {\n e.preventDefault();\n\n var container = $(this).closest('.form-group');\n var contacts = container.find('.contact');\n var inputContainer = contacts.first().clone();\n\n // wipe out any values from the inputs\n inputContainer.find('input').each(function() {\n $(this).val('');\n $(this).attr('id', $(this).attr('id').replace('0', contacts.length));\n $(this).attr('name', $(this).attr('name').replace('0', contacts.length));\n if ($(this).attr('aria-label')) {\n $(this).attr('aria-label', $(this).attr('aria-label').replace('1', contacts.length + 1));\n }\n });\n\n inputContainer.find('.contact-email-delete-wrapper').remove();\n inputContainer.find('.confirmation-status').remove();\n\n // bootstrap does not render input-groups with only one value in them correctly.\n inputContainer.find('.input-group input:only-child').closest('.input-group').removeClass('input-group');\n\n $(inputContainer).insertAfter(contacts.last());\n });\n\n if (document.getElementById('another-email')) {\n document.addEventListener('turbo:submit-end', this.contactToDeleteNotFoundHandler);\n }\n\n if ($.fn.tooltip) {\n $('.btn-with-tooltip').tooltip();\n }\n\n // Put focus in saved search title input when Save this search modal is shown\n $('#save-modal').on('shown.bs.modal', function () {\n $('#search_title').focus();\n });\n }\n\n contactToDeleteNotFoundHandler(e) {\n const contact = e.detail.formSubmission?.delegate?.element?.querySelector('.contact')\n if (contact && e.detail?.fetchResponse?.response?.status === 404) {\n const error = contact.querySelector('.contact-email-delete-error');\n error.style.display = 'block';\n error.querySelector('.error-msg').textContent = 'Not Found';\n }\n }\n}","\n(function($, _) {\n 'use strict';\n\n /*\n * SerializedForm is built as a singleton jQuery plugin. It needs to be able to\n * handle instantiation from multiple sources, and use the [data-form-observer]\n * as global state object.\n */\n $.SerializedForm = function () {\n var $serializedForm;\n var plugin = this;\n\n // Store form serialization in data attribute\n function serializeFormStatus () {\n $serializedForm.data('serialized-form', formSerialization($serializedForm));\n }\n\n // Do custom serialization of the sir-trevor form data. This needs to be a\n // passed in argument for comparison later on.\n function formSerialization (form) {\n var content_editable = [];\n var i = 0;\n $(\"[contenteditable='true']\", form).each(function(){\n content_editable.push('&contenteditable_' + i + '=' + $(this).text());\n });\n return form.serialize() + content_editable.join();\n }\n\n // Unbind observing form on submit (which we have to do because of turbolinks)\n function unbindObservedFormSubmit () {\n $serializedForm.on('submit', function () {\n $(this).data('being-submitted', true);\n });\n }\n\n // Get the stored serialized form status\n function serializedFormStatus () {\n return $serializedForm.data('serialized-form');\n }\n\n // Check all observed forms on page for status change\n plugin.observedFormsStatusHasChanged = function () {\n var unsaved_changes = false;\n $('[data-form-observer]').each(function (){\n if ( !$(this).data(\"being-submitted\") ) {\n if (serializedFormStatus() != formSerialization($(this))) {\n unsaved_changes = true;\n }\n }\n });\n return unsaved_changes;\n }\n\n function init () {\n $serializedForm = $('[data-form-observer]');\n serializeFormStatus();\n unbindObservedFormSubmit();\n }\n\n init();\n\n return plugin;\n };\n})(jQuery);\n\nexport default class {\n connect() {\n // Instantiate the singleton SerializedForm plugin\n var serializedForm = $.SerializedForm();\n $(window).on('beforeunload page:before-change turbolinks:before-visit turbo:before-visit', function(event) {\n // Don't handle the same event twice #turbolinks\n if (event.handled !== true) {\n if ( serializedForm.observedFormsStatusHasChanged() ) {\n event.handled = true;\n var message = \"You have unsaved changes. Are you sure you want to leave this page?\";\n // There are variations in how Webkit browsers may handle this:\n // https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload\n if ( event.type == \"beforeunload\" ) {\n return message;\n } else {\n return confirm(message)\n }\n }\n }\n });\n }\n}\n","export default class {\n delete_lock(el) {\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]')?.content;\n \n fetch(el.dataset.lock, {\n method: 'DELETE',\n headers: {\n 'X-CSRF-Token': csrfToken\n }\n });\n \n el.removeAttribute('data-lock');\n }\n\n connect() {\n document.querySelectorAll('[data-lock]').forEach(element => {\n element.addEventListener('click', (e) => {\n this.delete_lock(e.target);\n });\n });\n }\n}","// Module to add multi-image selector to widget panels\n\n(function(){\n $.fn.multiImageSelector = function(image_versions, clickCallback, activeImageId) {\n var changeLink = $(\"<a href='javascript:;'>Change</a>\"),\n thumbsListContainer = $(\"<div class='thumbs-list' style='display:none'></div>\"),\n thumbList = $(\"<ul></ul>\"),\n panel;\n\n var imageIds = $.map(image_versions, function(e) { return e['imageId']; });\n\n return init(this);\n\n function init(el) {\n panel = el;\n\n destroyExistingImageSelector();\n if(image_versions && image_versions.length > 1) {\n addChangeLink();\n addThumbsList();\n }\n }\n function addChangeLink() {\n $('[data-panel-image-pagination]', panel)\n .html(\"Image <span data-current-image='true'>\" + indexOf(activeImageId) + \"</span> of \" + image_versions.length)\n .show()\n .append(\" \")\n .append(changeLink);\n addChangeLinkBehavior();\n }\n\n function destroyExistingImageSelector() {\n var pagination = $('[data-panel-image-pagination]', panel);\n pagination.html('');\n pagination.next('.' + thumbsListContainer.attr('class')).remove();\n }\n\n function indexOf(thumb){\n const index = imageIds.indexOf(thumb)\n if (index > -1) {\n return index + 1;\n } else {\n return 1;\n }\n }\n function addChangeLinkBehavior() {\n changeLink.on('click', function(){\n thumbsListContainer.slideToggle();\n updateThumbListWidth();\n addScrollBehavior();\n scrollToActiveThumb();\n loadVisibleThumbs();\n swapChangeLinkText($(this));\n });\n }\n function updateThumbListWidth() {\n var width = 0;\n $('li', thumbList).each(function(){\n width += $(this).outerWidth();\n });\n thumbList.width(width + 5);\n }\n function loadVisibleThumbs(){\n var viewportWidth = thumbsListContainer.width();\n var width = 0;\n $('li', thumbList).each(function(){\n var thisThumb = $(this),\n image = $('img', thisThumb),\n totalWidth = width += thisThumb.width(),\n position = (thumbList.position().left + totalWidth) - thisThumb.width();\n\n if(position >= 0 && position < viewportWidth) {\n image.prop('src', image.data('src'));\n }\n });\n }\n function addScrollBehavior(){\n thumbsListContainer.scrollStop(function(){\n loadVisibleThumbs();\n });\n }\n function scrollToActiveThumb(){\n var halfContainerWidth = (thumbsListContainer.width() / 2),\n activeThumbLeftPosition = ($('.active', thumbList).position() || $('li', thumbList).first().position()).left,\n halfActiveThumbWidth = ($('.active', thumbList).width() / 2);\n thumbsListContainer.scrollLeft(\n (activeThumbLeftPosition - halfContainerWidth) + halfActiveThumbWidth\n );\n }\n function addThumbsList() {\n addThumbsToList();\n updateActiveThumb();\n $('.card-header', panel).append(\n thumbsListContainer.append(\n thumbList\n )\n );\n }\n function updateActiveThumb(){\n $('li', thumbList).each(function(){\n var item = $(this);\n if($('img', item).data('image-id') == activeImageId){\n item.addClass('active');\n }\n });\n }\n function swapChangeLinkText(link){\n link.text(\n link.text() == 'Change' ? 'Close' : 'Change'\n )\n }\n\n function addThumbsToList(){\n $.each(image_versions, function(i){\n var listItem = $('<li data-index=\"' + i + '\"><a href=\"javascript:;\"><img src=\"' + image_versions[i]['thumb'] +'\" data-image-id=\"' + image_versions[i]['imageId'] +'\" /></a></li>');\n listItem.on('click', function(){\n // get the current image id\n var imageid = $('img', $(this)).data('image-id');\n var src = $('img', $(this)).attr('src');\n\n if (typeof clickCallback === 'function' ) {\n clickCallback(image_versions[i]);\n }\n\n // mark the current selection as active\n $('li.active', thumbList).removeClass('active');\n $(this).addClass('active');\n\n // update the multi-image selector image\n $(\".pic img.img-thumbnail\", panel).attr(\"src\", src);\n\n $('[data-panel-image-pagination] [data-current-image]', panel).text(\n $('li', thumbList).index($(this)) + 1\n );\n scrollToActiveThumb();\n });\n $(\"img\", listItem).on('load', function() {\n updateThumbListWidth();\n });\n thumbList.append(listItem);\n });\n }\n };\n\n})(jQuery);\n\n// source: http://stackoverflow.com/questions/14035083/jquery-bind-event-on-scroll-stops\njQuery.fn.scrollStop = function(callback) {\n $(this).scroll(function() {\n var self = this,\n $this = $(self);\n\n if ($this.data('scrollTimeout')) {\n clearTimeout($this.data('scrollTimeout'));\n }\n\n $this.data('scrollTimeout', setTimeout(callback, 250, self));\n });\n};\n","// Place all the behaviors and hooks related to the matching controller here.\n// All this logic will automatically be available in application.js.\nimport Core from 'spotlight/core'\n\nexport default class {\n connect(){\n SirTrevor.setDefaults({\n iconUrl: Spotlight.sirTrevorIcon,\n uploadUrl: $('[data-attachment-endpoint]').data('attachment-endpoint'),\n ajaxOptions: {\n headers: {\n 'X-CSRF-Token': Core.csrfToken() || ''\n },\n credentials: 'same-origin'\n }\n });\n\n SirTrevor.Blocks.Heading.prototype.toolbarEnabled = true;\n SirTrevor.Blocks.Quote.prototype.toolbarEnabled = true;\n SirTrevor.Blocks.Text.prototype.toolbarEnabled = true;\n\n var instance = $('.js-st-instance').first();\n\n if (instance.length) {\n var editor = new SirTrevor.Editor({\n el: instance[0],\n blockTypes: instance.data('blockTypes'),\n altTextSettings: instance.data('altTextSettings'),\n defaultType:[\"Text\"],\n onEditorRender: function() {\n $.SerializedForm();\n },\n blockTypeLimits: {\n \"SearchResults\": 1\n }\n });\n\n editor.blockControls = Core.BlockControls.create(editor);\n\n new Core.BlockLimits(editor).enforceLimits(editor);\n }\n }\n}\n","export default class {\n connect() {\n var monitorElements = $('[data-behavior=\"progress-panel\"]');\n var defaultRefreshRate = 3000;\n var panelContainer;\n var pollers = [];\n\n $(monitorElements).each(function() {\n panelContainer = $(this);\n panelContainer.hide();\n var monitorUrl = panelContainer.data('monitorUrl');\n var refreshRate = panelContainer.data('refreshRate') || defaultRefreshRate;\n pollers.push(\n setInterval(function() {\n checkMonitorUrl(monitorUrl);\n }, refreshRate)\n );\n });\n\n // Clear the intervals on turbolink:click event (e.g. when the user navigates away from the page)\n $(document).on('turbolinks:click', function() {\n if (pollers.length > 0) {\n $.each(pollers, function() {\n clearInterval(this);\n });\n pollers = [];\n }\n });\n\n function checkMonitorUrl(url) {\n $.ajax(url).done(success).fail(fail);\n }\n\n function success(data) {\n if (data.recently_in_progress) {\n updateMonitorPanel(data);\n monitorPanel().show();\n } else {\n monitorPanel().hide();\n }\n }\n\n function fail() { monitorPanel().hide(); }\n\n function updateMonitorPanel(data) {\n panelStartDate().text(data.started_at);\n panelCurrentDate().text(data.updated_at);\n panelCompletedDate().text(data.updated_at);\n panelCurrent().text(data.completed);\n setPanelCompleted(data.finished);\n updatePanelTotals(data);\n updatePanelErrorMessage(data);\n updateProgressBar(data);\n\n panelContainer.show();\n }\n\n function updateProgressBar(data) {\n var percentage = calculatePercentage(data);\n progressBar()\n .attr('aria-valuemax', data.total)\n .attr('aria-valuenow', percentage)\n .css('width', percentage + '%')\n .text(percentage + '%');\n\n if (data.finished) {\n progressBar().removeClass('active').removeClass('progress-bar-striped');\n }\n }\n\n function updatePanelErrorMessage(data) {\n // We currently do not store this state,\n // but with this code we can in the future.\n if ( data.errored ) {\n panelErrorMessage().show();\n } else {\n panelErrorMessage().hide();\n }\n }\n\n function updatePanelTotals(data) {\n panelTotals().each(function() {\n $(this).text(data.total);\n });\n }\n\n function calculatePercentage(data) {\n if (data.total == 0) return 0;\n return Math.floor((data.completed / data.total) * 100);\n }\n\n function monitorPanel() {\n return panelContainer.find('.index-status');\n }\n\n function panelStartDate() {\n return monitorPanel()\n .find('[data-behavior=\"monitor-start\"]')\n .find('[data-behavior=\"date\"]');\n }\n\n function panelCurrentDate() {\n return monitorPanel()\n .find('[data-behavior=\"monitor-current\"]')\n .find('[data-behavior=\"date\"]');\n }\n\n function panelCompletedDate() {\n return monitorPanel()\n .find('[data-behavior=\"monitor-completed\"]')\n .find('[data-behavior=\"date\"]');\n }\n\n function panelTotals() {\n return monitorPanel().find('[data-behavior=\"total\"]');\n }\n\n function panelCurrent() {\n return monitorPanel()\n .find('[data-behavior=\"monitor-current\"]')\n .find('[data-behavior=\"completed\"]');\n }\n\n function progressBar() {\n return monitorPanel().find('.progress-bar');\n }\n\n function panelErrorMessage() {\n return monitorPanel().find('[data-behavior=\"monitor-error\"]');\n }\n\n function setPanelCompleted(finished) {\n var panel = monitorPanel().find('[data-behavior=\"monitor-completed\"]');\n\n if (finished) {\n panel.show();\n } else {\n panel.hide();\n }\n }\n\n return this;\n }\n}\n","export default class {\n connect() {\n // Don't allow unchecking of checkboxes with the data-readonly attribute \n $(\"input[type='checkbox'][data-readonly]\").on(\"click\", function(event) {\n event.preventDefault();\n })\n }\n}\n","import { addImageSelector } from 'spotlight/admin/add_image_selector'\n\nconst docStore = new Map();\n\nfunction highlight(value, query) {\n if (query.trim() === '') return value;\n const queryValue = query.trim();\n return queryValue ? value.replace(new RegExp(queryValue, 'gi'), '<strong>$&</strong>') : value;\n}\n\nfunction templateFunc(obj, query) {\n const thumbnail = obj.thumbnail ? `<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"${obj.thumbnail}\" /></div>` : '';\n const privateClass = obj.private ? ' blacklight-private' : '';\n const title = highlight(obj.title, query);\n const description = obj.description ? `<small> ${highlight(obj.description, query)}</small>` : '';\n return `<div class=\"autocomplete-item${privateClass}\">${thumbnail}\n <span class=\"autocomplete-title\">${title}</span><br/>${description}\n </div>`;\n}\n\nfunction autoCompleteElementTemplate(obj, query) {\n return `<li role=\"option\" data-autocomplete-value=\"${obj.id}\">${templateFunc(obj, query)}</li>`;\n}\n\nfunction getAutoCompleteElementDataMap(autoCompleteElement) {\n if (!docStore.has(autoCompleteElement.id)) {\n docStore.set(autoCompleteElement.id, new Map());\n }\n return docStore.get(autoCompleteElement.id);\n}\n\nasync function fetchResult(url) {\n const result = await fetchAutocompleteJSON(url);\n const docs = result.docs || [];\n const query = this.querySelector('input').value || '';\n const autoCompleteElementDataMap = getAutoCompleteElementDataMap(this);\n return docs.map(doc => {\n autoCompleteElementDataMap.set(doc.id, doc);\n return autoCompleteElementTemplate(doc, query);\n }).join('');\n}\n\nexport function addAutocompletetoFeaturedImage(){\n const autocompletePath = $('form[data-autocomplete-exhibit-catalog-path]').data('autocomplete-exhibit-catalog-path');\n const featuredImageTypeaheads = $('[data-featured-image-typeahead]');\n if (featuredImageTypeaheads.length === 0) return;\n\n $.each(featuredImageTypeaheads, function(index, autoCompleteInput) {\n const autoCompleteElement = autoCompleteInput.closest('auto-complete');\n\n autoCompleteElement.setAttribute('src', autocompletePath);\n autoCompleteElement.fetchResult = fetchResult;\n autoCompleteElement.addEventListener('auto-complete-change', e => {\n const data = getAutoCompleteElementDataMap(autoCompleteElement).get(e.relatedTarget.value);\n if (!data) return;\n\n const inputElement = $(e.relatedTarget);\n const panel = document.querySelector(e.relatedTarget.dataset.targetPanel);\n e.relatedTarget.value = data.title;\n addImageSelector(inputElement, $(panel), data.iiif_manifest, true);\n $(inputElement.data('id-field')).val(data['global_id']);\n inputElement.attr('type', 'text');\n });\n });\n}\n\nexport async function fetchAutocompleteJSON(url) {\n const res = await(fetch(url.toString()));\n if (!res.ok) {\n throw new Error(await res.text());\n }\n return await res.json();\n}\n","/*\n Simple plugin to select form elements\n when other elements are clicked.\n*/\n(function($) {\n $.fn.selectRelatedInput = function() {\n var clickElements = this;\n\n $(clickElements).each(function() {\n var target = $($(this).data('input-select-target'));\n\n var event;\n\n if ($(this).is(\"select\")) {\n event = 'change';\n } else {\n event = 'click';\n }\n\n $(this).on(event, function() {\n if (target.is(\":checkbox\") || target.is(\":radio\")) {\n target.prop('checked', true);\n } else {\n target.focus();\n }\n });\n });\n\n return this;\n };\n})(jQuery);\n\nexport default class {\n connect() {\n $('[data-input-select-target]').selectRelatedInput();\n }\n}\n","import Sortable from 'sortablejs';\n\nconst Module = (function() {\n const nestableContainerSelector = '[data-behavior=\"nestable\"]';\n const sortableOptions = {\n animation: 150,\n draggable: '.dd-item',\n handle: '.dd-handle',\n fallbackOnBody: true,\n swapThreshold: 0.65,\n emptyInsertThreshold: 15,\n onStart: onStartHandler,\n onEnd: onEndHandler,\n onMove: onMoveHandler,\n }\n const draggableClass = 'dd-item';\n const nestedSortableClass = 'dd-list';\n const nestedSortableSelector = '.dd-list';\n const nestedSortableNodeName = 'ol';\n const findNode = (id, container) => container.querySelector(`[data-id=\"${id}\"]`);\n const setWeight = (node, weight) => weightField(node).value = weight;\n const setParent = (node, parentId) => parentPageField(node).value = parentId;\n const weightField = node => findProperty(node, \"weight\");\n const parentPageField = node => findProperty(node, \"parent_page\");\n const findProperty = (node, property) => node.querySelector(`input[data-property=\"${property}\"]`);\n let nestedId = 0;\n\n return {\n init: function(nestedContainers) {\n if (nestedContainers === undefined) {\n nestedContainers = document.querySelectorAll(nestableContainerSelector);\n }\n\n // nestedContainers could be a jQuery selector result, normalize to an array.\n const containersToInit = Array.from(nestedContainers);\n containersToInit.forEach((container) => {\n // Sir Trevor listens for drag and drop events and will error on Sortable events.\n // Don't let them bubble past the Sortable wrapper.\n container.addEventListener('drop', stopPropagationHandler);\n \n const nestedSortables = [\n ...(container.matches(nestedSortableSelector) ? [container] : []),\n ...Array.from(container.querySelectorAll(nestedSortableSelector))\n ];\n const group = `nested-${nestedId++}`;\n \n nestedSortables.forEach(sortable => {\n new Sortable(sortable, { ...sortableOptions, group: group });\n });\n });\n }\n };\n\n function stopPropagationHandler(evt) {\n evt.stopPropagation();\n }\n\n function onStartHandler(evt) {\n makeEmptyChildSortablesForEligibleParents(getNestableContainer(evt.item), getMaxNestingLevelSetting(evt.item));\n }\n\n function onEndHandler(evt) {\n const nestableContainer = getNestableContainer(evt.item);\n removeEmptySortables(nestableContainer);\n updateWeightsAndRelationships(nestableContainer);\n }\n\n function onMoveHandler(evt) {\n // The usage of data-max-depth is one off of the standard notion of depth (# edges to root)\n // E.g., data-max-depth=2 allows for one level of nesting.\n // evt.dragged is a draggable in a Sortable (e.g., a dd-item)\n // evt.to is the Sortable to insert into (e.g., a dd-list)\n const maxAllowedDepth = getMaxNestingLevelSetting(evt.to) - 1;\n const newDepth = getSortableDepth(evt.to) + getHeight(evt.dragged);\n\n // Be careful here. Returning true is different than returning nothing in SortableJS.\n if (newDepth > maxAllowedDepth) {\n return false;\n }\n }\n\n // Get the depth of the sortable element from the root container\n function getSortableDepth(sortableElement) {\n const originatingGroup = Sortable.get(sortableElement).options.group.name;\n let depth = 0;\n let parentSortableElement = sortableElement;\n\n while ((parentSortableElement = parentSortableElement.parentElement.closest(nestedSortableSelector))) {\n const parentSortable = Sortable.get(parentSortableElement);\n if (parentSortable?.options.group.name === originatingGroup) {\n depth++;\n }\n }\n\n return depth;\n }\n\n // Find the max child depth in the tree, starting from the draggableElement\n function findMaxDepth(draggableElement) {\n const childSortableElement = draggableElement.querySelector(nestedSortableSelector);\n if (!childSortableElement) {\n return 1;\n }\n\n const children = childSortableElement.querySelectorAll(`.${draggableClass}`);\n const childDepths = Array.from(children).map(findMaxDepth);\n return 1 + Math.max(0, ...childDepths);\n }\n\n function getHeight(draggableElement) {\n return findMaxDepth(draggableElement) - 1;\n }\n\n function getNestableContainer(element) {\n return element.closest(nestableContainerSelector);\n }\n\n function getMaxNestingLevelSetting(element) {\n return getNestableContainer(element).getAttribute('data-max-depth') || 1;\n }\n\n // Create empty child sortables for all potential parents as appropriate for the given nesting level\n function makeEmptyChildSortablesForEligibleParents(container, nestingLevel) {\n if (nestingLevel <= 1) {\n return;\n }\n\n const sortableElement = container.querySelector(nestedSortableSelector);\n const sortable = Sortable.get(sortableElement);\n if (!sortable) {\n return;\n }\n\n const group = sortable.options.group.name;\n const draggableElements = Array.from(sortableElement.children)\n .filter(child => child.classList.contains(draggableClass));\n\n draggableElements.forEach(draggableElement => {\n if (!draggableElement.querySelector(nestedSortableSelector)) {\n const emptySortableElement = document.createElement(nestedSortableNodeName);\n emptySortableElement.className = nestedSortableClass;\n draggableElement.appendChild(emptySortableElement);\n new Sortable(emptySortableElement, { ...sortableOptions, group: group });\n }\n makeEmptyChildSortablesForEligibleParents(draggableElement, nestingLevel - 1);\n });\n }\n\n // Remove any empty sortables within the container. They could be empty lists, which are invalid for accessibility.\n function removeEmptySortables(container) {\n const sortableElements = container.querySelectorAll(nestedSortableSelector);\n sortableElements.forEach(sortableElement => {\n if (sortableElement.innerHTML.trim() === '') {\n const sortable = Sortable.get(sortableElement);\n if (sortable) {\n sortable.destroy();\n sortableElement.remove();\n }\n }\n });\n }\n\n // Traverse all sortables within a container and update the weight and parent_page inputs\n function updateWeightsAndRelationships(container) {\n const sortableElement = container.matches(nestedSortableSelector) ? container : container.querySelector(nestedSortableSelector);\n const nestingLevelSetting = getMaxNestingLevelSetting(sortableElement);\n const sortable = Sortable.get(sortableElement);\n const stack = [{nodes: sortable.toArray(), parentId: ''}];\n let weight = 0;\n\n while (stack.length > 0) {\n const {nodes, parentId} = stack.pop();\n\n nodes.forEach((nodeId) => {\n const node = findNode(nodeId, container);\n setWeight(node, weight++);\n\n if (nestingLevelSetting > 1) {\n setParent(node, parentId);\n const children = node.querySelector(nestedSortableSelector);\n if (children) {\n const sortableElement = Sortable.get(children);\n stack.push({nodes: sortableElement.toArray(), parentId: nodeId});\n }\n }\n });\n }\n }\n})();\n\nexport default Module\n","export default class {\n connect() {\n if ($('[role=tabpanel]').length > 0 && window.location.hash) {\n var tabpanel = $(window.location.hash).closest('[role=tabpanel]');\n $('a[role=tab][href=\"#'+tabpanel.attr('id')+'\"]').tab('show');\n }\n }\n}\n","// translationProgress is a plugin that updates the \"3/14\" progress\n// counters in the tabs of the translation adminstration dashboard.\n// This works by counting the number of progress items and translations\n// present (indicated by data attributes) in each tab's content\nexport default class {\n connect() {\n $('[data-behavior=\"translation-progress\"]').each(function(){\n var currentTab = $(this);\n var tabName = $(this).attr('aria-controls');\n var translationFields = $('#' + tabName).find('[data-translation-progress-item=\"true\"]');\n var completedTranslations = $('#' + tabName).find('[data-translation-present=\"true\"]');\n\n currentTab.find('span').text(completedTranslations.length + '/' + translationFields.length);\n })\n }\n}","// Blacklight's BookmarkToggle is doing the real work, this only adds/removes the \"blacklight-private\" class.\nconst VisibilityToggle = (e) => {\n if (e.target.matches('[data-checkboxsubmit-target=\"checkbox\"]')) {\n const form = e.target.closest('form')\n if (form) {\n // Add/remove the \"private\" label to the document row when visibility is toggled\n const docRow = form.closest('tr')\n if (docRow) docRow.classList.toggle('blacklight-private')\n }\n }\n}\ndocument.addEventListener('click', VisibilityToggle)\nexport default VisibilityToggle\n","export default class {\n connect() {\n var container;\n function edit_user(event) {\n event.preventDefault();\n $(this).closest('tr').hide();\n const id = $(this).attr('data-target') || $(this).attr('data-bs-target');\n const edit_view = $(\"[data-edit-for='\"+id+\"']\", container).show();\n $.each(edit_view.find('input[type=\"text\"], select'), function() {\n // Cache original values incase editing is canceled\n $(this).data('orig', $(this).val());\n });\n }\n\n function cancel_edit(event) {\n event.preventDefault();\n const id = $(this).closest('tr').attr('data-edit-for');\n const edit_view = $(\"[data-edit-for='\"+id+\"']\", container).hide();\n clear_errors(edit_view);\n rollback_changes(edit_view);\n $(\"[data-show-for='\"+id+\"']\", container).show();\n }\n\n function clear_errors(element) {\n element.find('.has-error')\n .removeClass('has-error')\n .find('.form-text')\n .remove(); // Remove the error messages\n }\n\n function rollback_changes(element) {\n $.each(element.find('input[type=\"text\"], select'), function() {\n $(this).val($(this).data('orig')).trigger('change');\n });\n }\n\n function destroy_user(event) {\n const id = $(this).attr('data-target') || $(this).attr('data-bs-target');\n $(\"[data-destroy-for='\"+id+\"']\", container).val('1');\n }\n\n function new_user(event) {\n event.preventDefault();\n const edit_view = $(\"[data-edit-for='new']\", container).show();\n $.each(edit_view.find('input[type=\"text\"], select'), function() {\n // Cache original values incase editing is canceled\n $(this).data('orig', $(this).val());\n });\n }\n\n function open_errors() {\n const edit_row = container.find('.has-error').closest('[data-edit-for]');\n edit_row.show();\n // The following row has the controls, so show it too.\n edit_row.next().show();\n }\n\n $('.edit_exhibit, .admin-users').each(function() {\n\n container = $(this);\n $('[data-edit-for]', container).hide();\n open_errors();\n $(\"[data-behavior='edit-user']\", container).on('click', edit_user);\n $(\"[data-behavior='cancel-edit']\", container).on('click', cancel_edit);\n $(\"[data-behavior='destroy-user']\", container).on('click', destroy_user);\n $(\"[data-behavior='new-user']\", container).on('click', new_user);\n })\n }\n}\n","import { fetchAutocompleteJSON } from 'spotlight/admin/search_typeahead';\n\n(function ($){\n SirTrevor.BlockMixins.Autocompleteable = {\n mixinName: \"Autocompleteable\",\n preload: true,\n\n initializeAutocompleteable: function() {\n this.on(\"onRender\", this.addAutocompletetoSirTrevorForm);\n\n if (this['autocomplete_url'] === undefined) {\n this.autocomplete_url = function() { return $('form[data-autocomplete-url]').data('autocomplete-url'); };\n }\n\n if (this['autocomplete_fetch'] === undefined) {\n this.autocomplete_fetch = this.fetchAutocompleteResults;\n }\n\n if (this['transform_autocomplete_results'] === undefined) {\n this.transform_autocomplete_results = (val) => val\n }\n\n if (this['highlight'] === undefined) {\n this.highlight = function(value) {\n if (!value) return '';\n const queryValue = this.getQueryValue().trim();\n return queryValue ? value.replace(new RegExp(queryValue, 'gi'), '<strong>$&</strong>') : value;\n }\n }\n\n if (this['autocomplete_control'] === undefined) {\n this.autocomplete_control = function() {\n const autocompleteID = this.autocompleteID();\n return `\n <auto-complete src=\"${this.autocomplete_url()}\" for=\"${autocompleteID}-popup\" fetch-on-empty>\n <input type=\"text\" name=\"${autocompleteID}\" placeholder=\"${i18n.t(\"blocks:autocompleteable:placeholder\")}\" data-default-typeahead>\n <ul id=\"${autocompleteID}-popup\"></ul>\n <div id=\"${autocompleteID}-popup-feedback\" class=\"sr-only visually-hidden\"></div>\n </auto-complete>\n ` };\n }\n\n if (this['autocomplete_element_template'] === undefined) {\n this.autocomplete_element_template = function(item) {\n return `<li role=\"option\" data-autocomplete-value=\"${item.id}\">${this.autocomplete_template(item)}</li>`\n }\n }\n },\n\n queryTokenizer: function(query) {\n return query.trim().toLowerCase().split(/\\s+/).filter(Boolean);\n },\n\n filterResults: function(data, query) {\n const queryStrings = this.queryTokenizer(query);\n return data.filter(item => {\n const lowerTitle = item.title.toLowerCase();\n return queryStrings.some(queryString => lowerTitle.includes(queryString));\n });\n },\n\n fetchAutocompleteResults: async function(url) {\n const result = await fetchAutocompleteJSON(url);\n const transformed = this.transform_autocomplete_results(result);\n this.fetchedData = {};\n transformed.map(item => this.fetchedData[item.id] = item);\n return transformed.map(item => this.autocomplete_element_template(item)).join('');\n },\n\n fetchOnceAndFilterLocalResults: async function(url) {\n if (this.fetchedData === undefined) {\n await this.fetchAutocompleteResults(url);\n }\n const query = url.searchParams.get('q');\n const data = Object.values(this.fetchedData);\n const filteredData = query ? this.filterResults(data, query) : data;\n return filteredData.map(item => this.autocomplete_element_template(item)).join('');\n },\n\n autocompleteID: function() {\n return this.blockID + '-autocomplete';\n },\n\n getQueryValue: function() {\n const completer = this.inner.querySelector(\"auto-complete > input\");\n return completer.value;\n },\n\n addAutocompletetoSirTrevorForm: function() {\n const completer = this.inner.querySelector(\"auto-complete\");\n completer.fetchResult = this.autocomplete_fetch.bind(this);\n completer.addEventListener('auto-complete-change', (e) => {\n const data = this.fetchedData[e.relatedTarget.value];\n if (e.relatedTarget.value && data) {\n e.value = e.relatedTarget.value = '';\n this.createItemPanel({ ...data, display: \"true\" });\n }\n });\n },\n },\n\n\n SirTrevor.Block.prototype.availableMixins.push(\"autocompleteable\");\n})(jQuery);\n","(function ($){\n SirTrevor.BlockMixins.Formable = {\n mixinName: \"Formable\",\n preload: true,\n\n initializeFormable: function() {\n\n if (this['afterLoadData'] === undefined) {\n this['afterLoadData'] = function(data) { };\n }\n },\n\n formId: function(id) {\n return this.blockID + \"_\" + id;\n },\n\n _serializeData: function() {\n\n var data = $(\":input,textarea,select\", this.inner).not(':input:radio').serializeJSON();\n\n $(':input:radio:checked', this.inner).each(function(index, input) {\n var key = $(input).data('key') || input.getAttribute('name');\n\n if (!key.match(\"\\\\[\")) {\n data[key] = $(input).val();\n }\n });\n\n /* Simple to start. Add conditions later */\n if (this.hasTextBlock()) {\n data.text = this.getTextBlockHTML();\n data.format = 'html';\n if (data.text && data.text.length > 0 && this.options.convertToMarkdown) {\n data.text = stToMarkdown(data.text, this.type);\n data.format = 'markdown';\n }\n }\n\n return data;\n },\n\n loadData: function(data){\n if (this.hasTextBlock()) {\n if (data.text && data.text.length > 0 && this.options.convertFromMarkdown && data.format !== \"html\") {\n this.setTextBlockHTML(SirTrevor.toHTML(data.text, this.type));\n } else {\n this.setTextBlockHTML(data.text);\n }\n }\n this.loadFormDataByKey(data);\n this.afterLoadData(data);\n },\n\n loadFormDataByKey: function(data) {\n $(':input', this.inner).not('button,:input[type=hidden]').each(function(index, input) {\n var key = $(input).data('key') || input.getAttribute('name');\n\n if (key) {\n\n if (key.match(\"\\\\[\\\\]$\")) {\n key = key.replace(\"[]\", \"\");\n }\n\n // by wrapping it in an array, this'll \"just work\" for radio and checkbox fields too\n var input_data = data[key];\n\n if (!(input_data instanceof Array)) {\n input_data = [input_data];\n }\n $(this).val(input_data);\n }\n });\n },\n },\n\n\n SirTrevor.Block.prototype.availableMixins.push(\"formable\");\n})(jQuery);\n","(function ($){\n SirTrevor.BlockMixins.Plustextable = {\n mixinName: \"Textable\",\n preload: true,\n\n initializeTextable: function() {\n if (this['formId'] === undefined) {\n this.withMixin(SirTrevor.BlockMixins.Formable);\n }\n \n if (this['show_heading'] === undefined) {\n this.show_heading = true;\n }\n },\n \n align_key:\"text-align\",\n text_key:\"item-text\",\n heading_key: \"title\",\n \n text_area: function() { \n return `\n <div class=\"row\">\n <div class=\"col-md-8\">\n <div class=\"form-group mb-3\">\n ${this.heading()}\n <div class=\"field\">\n <label for=\"${this.formId(this.text_key)}\" class=\"col-form-label\">${i18n.t(\"blocks:textable:text\")}</label>\n <div id=\"${this.formId(this.text_key)}\" class=\"st-text-block form-control\" contenteditable=\"true\"></div>\n </div>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"text-align\">\n <p>${i18n.t(\"blocks:textable:align:title\")}</p>\n <input data-key=\"${this.align_key}\" type=\"radio\" name=\"${this.formId(this.align_key)}\" id=\"${this.formId(this.align_key + \"-left\")}\" value=\"left\" checked=\"true\">\n <label for=\"${this.formId(this.align_key + \"-left\")}\">${i18n.t(\"blocks:textable:align:left\")}</label>\n <input data-key=\"${this.align_key}\" type=\"radio\" name=\"${this.formId(this.align_key)}\" id=\"${this.formId(this.align_key + \"-right\")}\" value=\"right\">\n <label for=\"${this.formId(this.align_key + \"-right\")}\">${i18n.t(\"blocks:textable:align:right\")}</label>\n </div>\n </div>\n </div>`\n },\n \n heading: function() {\n if(this.show_heading) {\n return `<div class=\"field\">\n <label for=\"${this.formId(this.heading_key)}\" class=\"col-form-label\">${i18n.t(\"blocks:textable:heading\")}</label>\n <input type=\"text\" class=\"form-control\" id=\"${this.formId(this.heading_key)}\" name=\"${this.heading_key}\" />\n </div>`\n } else {\n return \"\";\n }\n },\n };\n \n\n SirTrevor.Block.prototype.availableMixins.push(\"plustextable\");\n})(jQuery);\n","import Core from 'spotlight/core'\n\n(function ($){\n Core.Block = SirTrevor.Block.extend({\n scribeOptions: {\n allowBlockElements: true,\n tags: { p: true }\n },\n formable: true,\n editorHTML: function() {\n return '';\n },\n beforeBlockRender: function() {\n this.availableMixins.forEach(function(mixin) {\n if (this[mixin] && SirTrevor.BlockMixins[this.capitalize(mixin)].preload) {\n this.withMixin(SirTrevor.BlockMixins[this.capitalize(mixin)]);\n }\n }, this);\n },\n $instance: function() { return $('#' + this.instanceID); },\n capitalize: function(string) {\n return string.charAt(0).toUpperCase() + string.substring(1).toLowerCase();\n }\n })\n})(jQuery);\n","import Core from 'spotlight/core'\nimport SpotlightNestable from 'spotlight/admin/spotlight_nestable'\n\nCore.Block.Resources = (function(){\n\n return Core.Block.extend({\n type: \"resources\",\n formable: true,\n autocompleteable: true,\n show_heading: true,\n show_image_selection: true,\n title: function() { return i18n.t(\"blocks:\" + this.type + \":title\"); },\n description: function() { return i18n.t(\"blocks:\" + this.type + \":description\"); },\n alt_text_guidelines: function() {\n if (this.showAltText()) {\n return i18n.t(\"blocks:alt_text_guidelines:intro\");\n }\n return \"\";\n },\n alt_text_guidelines_link: function() {\n if (this.showAltText()) {\n var link_url = i18n.t(\"blocks:alt_text_guidelines:link_url\");\n var link_label = i18n.t(\"blocks:alt_text_guidelines:link_label\");\n return '<a target=\"_blank\" href=\"' + link_url + '\">' + link_label + '</a>';\n }\n return \"\";\n },\n icon_name: \"resources\",\n blockGroup: function() { return i18n.t(\"blocks:group:items\") },\n\n primary_field_key: \"primary-caption-field\",\n show_primary_field_key: \"show-primary-caption\",\n secondary_field_key: \"secondary-caption-field\",\n show_secondary_field_key: \"show-secondary-caption\",\n\n display_checkbox: \"display-checkbox\",\n decorative_checkbox: \"decorative-checkbox\",\n alt_text_textarea: \"alt-text-textarea\",\n\n globalIndex: 0,\n\n _itemPanelIiifFields: function(index, data) {\n return [];\n },\n\n _altTextFieldsHTML: function(index, data) {\n if (this.showAltText()) {\n return this.altTextHTML(index, data);\n }\n return \"\";\n },\n\n showAltText: function() {\n return this.editorOptions.altTextSettings[this._typeAsCamelCase()]\n },\n\n _typeAsCamelCase: function() {\n return this.type\n .split('_')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join('');\n },\n _itemSelectImageLink: function(block_item_id, doc_id, index) {\n // If image selection is not possible for this block, then do not show\n // image selection link\n if (!this.show_image_selection) return ``;\n var url = $('form[data-exhibit-path]').data('exhibit-path') + '/select_image?';\n var markup = `\n <a name=\"selectimage\" href=\"${url}block_item_id=${block_item_id}&index_id=${index}\" data-blacklight-modal=\"trigger\">Select image area</a>\n `;\n return markup;\n },\n _itemPanel: function(data) {\n var index = \"item_\" + this.globalIndex++;\n var checked;\n if (data.display == \"true\") {\n checked = \"checked='checked'\"\n } else {\n checked = \"\";\n }\n var resource_id = data.slug || data.id;\n var block_item_id = this.formId(index);\n var markup = `\n <li class=\"field dd-item dd3-item\" data-cropper=\"select_image_${block_item_id}\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${block_item_id}\" data-input-prefix=\"item[${index}]\">\n <input type=\"hidden\" name=\"item[${index}][id]\" value=\"${resource_id}\" />\n <input type=\"hidden\" name=\"item[${index}][title]\" value=\"${data.title}\" />\n ${this._itemPanelIiifFields(index, data)}\n <input data-property=\"weight\" type=\"hidden\" name=\"item[${index}][weight]\" value=\"${data.weight}\" />\n <div class=\"card d-flex dd3-content\">\n <div class=\"dd-handle dd3-handle\">${i18n.t(\"blocks:resources:panel:drag\")}</div>\n <div class=\"card-header item-grid\">\n <div class=\"d-flex\">\n <div class=\"d-inline-block\">\n <div class=\"d-flex\">\n <div class=\"checkbox\">\n <input name=\"item[${index}][display]\" type=\"hidden\" value=\"false\" />\n <input name=\"item[${index}][display]\" id=\"${this.formId(this.display_checkbox + '_' + data.id)}\" type=\"checkbox\" ${checked} class=\"item-grid-checkbox\" value=\"true\" />\n <label class=\"sr-only visually-hidden\" for=\"${this.formId(this.display_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:panel:display\")}</label>\n </div>\n <div class=\"pic\">\n <img class=\"img-thumbnail\" src=\"${(data.thumbnail_image_url || ((data.iiif_tilesource || \"\").replace(\"/info.json\", \"/full/!100,100/0/default.jpg\")))}\" />\n </div>\n </div>\n <div class=\"d-inline-block\">\n ${this._itemSelectImageLink(block_item_id,data.id, index)}\n </div>\n </div>\n <div class=\"main\">\n <div class=\"title card-title\">${data.title}</div>\n <div>${(data.slug || data.id)}</div>\n ${this._altTextFieldsHTML(index, data)}\n </div>\n <div class=\"remove float-right float-end\">\n <a data-item-grid-panel-remove=\"true\" href=\"#\">${i18n.t(\"blocks:resources:panel:remove\")}</a>\n </div>\n </div>\n <div data-panel-image-pagination=\"true\"></div>\n </div>\n </div>\n </li>\n `\n\n const panel = $(markup);\n var context = this;\n\n $('.remove a', panel).on('click', function(e) {\n e.preventDefault();\n $(this).closest('.field').remove();\n context.afterPanelDelete();\n\n });\n\n this.afterPanelRender(data, panel);\n\n return panel;\n },\n\n afterPanelRender: function(data, panel) {\n \n },\n\n afterPanelDelete: function() {\n\n },\n\n createItemPanel: function(data) {\n var panel = this._itemPanel(data);\n this.attachAltTextHandlers(panel);\n $(panel).appendTo($('.panels > ol', this.inner));\n $('[data-behavior=\"nestable\"]', this.inner).trigger('change');\n },\n\n item_options: function() { return \"\"; },\n\n content: function() {\n var templates = [this.items_selector()];\n if (this.plustextable) {\n templates.push(this.text_area());\n }\n return templates.join(\"<hr />\\n\");\n },\n\n items_selector: function() { return [\n '<div class=\"row\">',\n '<div class=\"col-md-8\">',\n '<div class=\"form-group mb-3\">',\n '<div class=\"panels dd nestable-item-grid\" data-behavior=\"nestable\" data-max-depth=\"1\"><ol class=\"dd-list\"></ol></div>',\n this.autocomplete_control(),\n '</div>',\n '</div>',\n '<div class=\"col-md-4\">',\n this.item_options(),\n '</div>',\n '</div>'].join(\"\\n\")\n },\n\n editorHTML: function() {\n return `<div class=\"form resources-admin clearfix\">\n <div class=\"widget-header\">\n ${this.description()}\n ${this.alt_text_guidelines()}\n ${this.alt_text_guidelines_link()}\n </div>\n ${this.content()}\n </div>`\n },\n\n _altTextData: function(data) {\n const isDecorative = data.decorative;\n const altText = isDecorative ? '' : (data.alt_text || '');\n const altTextBackup = data.alt_text_backup || '';\n const placeholderAttr = isDecorative ? '' : `placeholder=\"${i18n.t(\"blocks:resources:alt_text:placeholder\")}\"`;\n const disabledAttr = isDecorative ? 'disabled' : '';\n\n return { isDecorative, altText, altTextBackup, placeholderAttr, disabledAttr };\n },\n\n altTextHTML: function(index, data) {\n const { isDecorative, altText, altTextBackup, placeholderAttr, disabledAttr } = this._altTextData(data);\n return `<div class=\"mt-2 pt-2 d-flex\">\n <div class=\"me-2 mr-2\">\n <label class=\"col-form-label pb-0 pt-1\" for=\"${this.formId(this.alt_text_textarea + '_' + data.id)}\">${i18n.t(\"blocks:resources:alt_text:alternative_text\")}</label>\n <div class=\"form-check mb-1 justify-content-end\">\n <input class=\"form-check-input\" type=\"checkbox\"\n id=\"${this.formId(this.decorative_checkbox + '_' + data.id)}\" name=\"item[${index}][decorative]\" ${isDecorative ? 'checked' : ''}>\n <label class=\"form-check-label\" for=\"${this.formId(this.decorative_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:alt_text:decorative\")}</label>\n </div>\n </div>\n <div class=\"flex-grow-1 flex-fill d-flex\">\n <input type=\"hidden\" name=\"item[${index}][alt_text_backup]\" value=\"${altTextBackup}\" />\n <textarea class=\"form-control w-100\" rows=\"2\" ${placeholderAttr}\n id=\"${this.formId(this.alt_text_textarea + '_' + data.id)}\" name=\"item[${index}][alt_text]\" ${disabledAttr}>${altText}</textarea>\n </div>\n </div>`\n },\n\n attachAltTextHandlers: function(panel) {\n if (this.showAltText()) {\n const decorativeCheckbox = $('input[name$=\"[decorative]\"]', panel);\n const altTextInput = $('textarea[name$=\"[alt_text]\"]', panel);\n const altTextBackupInput = $('input[name$=\"[alt_text_backup]\"]', panel);\n\n decorativeCheckbox.on('change', function() {\n const isDecorative = this.checked;\n if (isDecorative) {\n altTextBackupInput.val(altTextInput.val());\n altTextInput.val('');\n } else {\n altTextInput.val(altTextBackupInput.val());\n }\n altTextInput\n .prop('disabled', isDecorative)\n .attr('placeholder', isDecorative ? '' : i18n.t(\"blocks:resources:alt_text:placeholder\"));\n });\n\n altTextInput.on('input', function() {\n $(this).data('lastValue', $(this).val());\n });\n }\n },\n\n onBlockRender: function() {\n SpotlightNestable.init($('[data-behavior=\"nestable\"]', this.inner));\n $('[data-input-select-target]', this.inner).selectRelatedInput();\n },\n\n afterLoadData: function(data) {\n var context = this;\n $.each(Object.keys(data.item || {}).map(function(k) { return data.item[k]}).sort(function(a,b) { return a.weight - b.weight; }), function(index, item) {\n context.createItemPanel(item);\n });\n \n }\n });\n\n})();\n","import Core from 'spotlight/core'\n\nSirTrevor.Blocks.Browse = (function(){\n\n return Core.Block.Resources.extend({\n type: \"browse\",\n\n icon_name: \"browse\",\n\n autocomplete_url: function() {\n return document.getElementById(this.instanceID).closest('form[data-autocomplete-exhibit-searches-path]').dataset.autocompleteExhibitSearchesPath;\n },\n\n autocomplete_fetch: function(url) {\n return this.fetchOnceAndFilterLocalResults(url);\n },\n\n autocomplete_template: function(obj) {\n const thumbnail = obj.thumbnail_image_url ? `<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"${obj.thumbnail_image_url}\" /></div>` : ''\n const description = obj.description ? `<small> ${obj.description}</small>` : '';\n return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${this.highlight(obj.full_title)}</span>${description}</div>`;\n },\n\n _itemPanel: function(data) {\n var index = \"item_\" + this.globalIndex++;\n var checked;\n if (data.display == \"true\") {\n checked = \"checked='checked'\"\n } else {\n checked = \"\";\n }\n var resource_id = data.slug || data.id;\n var markup = `\n <li class=\"field dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(index)}\">\n <input type=\"hidden\" name=\"item[${index}][id]\" value=\"${resource_id}\" />\n <input type=\"hidden\" name=\"item[${index}][full_title]\" value=\"${(data.full_title || data.title)}\" />\n <input data-property=\"weight\" type=\"hidden\" name=\"item[${index}][weight]\" value=\"${data.weight}\" />\n <div class=\"card d-flex dd3-content\">\n <div class=\"dd-handle dd3-handle\">${i18n.t(\"blocks:resources:panel:drag\")}</div>\n <div class=\"card-header item-grid\">\n <div class=\"d-flex\">\n <div class=\"checkbox\">\n <input name=\"item[${index}][display]\" type=\"hidden\" value=\"false\" />\n <input name=\"item[${index}][display]\" id=\"${this.formId(this.display_checkbox + '_' + data.id)}\" type=\"checkbox\" ${checked} class=\"item-grid-checkbox\" value=\"true\" />\n <label class=\"sr-only visually-hidden\" for=\"${this.formId(this.display_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:panel:display\")}</label>\n </div>\n <div class=\"pic\">\n <img class=\"img-thumbnail\" src=\"${(data.thumbnail_image_url || ((data.iiif_tilesource || \"\").replace(\"/info.json\", \"/full/!100,100/0/default.jpg\")))}\" />\n </div>\n <div class=\"main\">\n <div class=\"title card-title\">${(data.full_title || data.title)}</div>\n <div>${(data.slug || data.id)}</div>\n </div>\n <div class=\"remove float-right float-end\">\n <a data-item-grid-panel-remove=\"true\" href=\"#\">${i18n.t(\"blocks:resources:panel:remove\")}</a>\n </div>\n </div>\n </div>\n </div>\n </li>`\n\n var panel = $(markup);\n var context = this;\n\n $('.remove a', panel).on('click', function(e) {\n e.preventDefault();\n $(this).closest('.field').remove();\n context.afterPanelDelete();\n\n });\n\n this.afterPanelRender(data, panel);\n\n return panel;\n },\n\n item_options: function() { return `\n <label>\n <input type=\"hidden\" name=\"display-item-counts\" value=\"false\" />\n <input type=\"checkbox\" name=\"display-item-counts\" value=\"true\" checked />\n ${i18n.t(\"blocks:browse:item_counts\")}\n </label>`\n },\n });\n\n})();\n","/*\n Sir Trevor BrowseGroupCategories\n*/\nimport Core from 'spotlight/core'\n\nSirTrevor.Blocks.BrowseGroupCategories = (function(){\n\n return Core.Block.Resources.extend({\n type: \"browse_group_categories\",\n icon_name: \"browse\",\n\n autocomplete_control: function() {\n const autocompleteID = this.blockID + '-autocomplete';\n return `<auto-complete src=\"${this.autocomplete_url()}\" for=\"${autocompleteID}-popup\" fetch-on-empty>\n <input type=\"text\" name=\"${autocompleteID}\" placeholder=\"${i18n.t(\"blocks:browse_group_categories:autocomplete\")}\" data-default-typeahead>\n <ul id=\"${autocompleteID}-popup\"></ul>\n <div id=\"${autocompleteID}-popup-feedback\" class=\"sr-only visually-hidden\"></div>\n </auto-complete>`\n },\n autocomplete_template: function(obj) {\n return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">\n <span class=\"autocomplete-title\">${this.highlight(obj.title)}</span><br/></div>`\n },\n\n autocomplete_url: function() {\n return document.getElementById(this.instanceID).closest('form[data-autocomplete-exhibit-browse-groups-path]').dataset.autocompleteExhibitBrowseGroupsPath;\n },\n autocomplete_fetch: function(url) {\n return this.fetchOnceAndFilterLocalResults(url);\n },\n _itemPanel: function(data) {\n var index = \"item_\" + this.globalIndex++;\n var checked;\n if (data.display == \"true\") {\n checked = \"checked='checked'\"\n } else {\n checked = \"\";\n }\n var resource_id = data.slug || data.id;\n var markup = `\n <li class=\"field dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(index)}\">\n <input type=\"hidden\" name=\"item[${index}][id]\" value=\"${resource_id}\" />\n <input type=\"hidden\" name=\"item[${index}][title]\" value=\"${data.title}\" />\n <input data-property=\"weight\" type=\"hidden\" name=\"item[${index}][weight]\" value=\"${data.weight}\" />\n <div class=\"card d-flex dd3-content\">\n <div class=\"dd-handle dd3-handle\">${i18n.t(\"blocks:resources:panel:drag\")}</div>\n <div class=\"d-flex card-header item-grid justify-content-between\">\n <div class=\"d-flex flex-grow-1\">\n <div class=\"checkbox\">\n <input name=\"item[${index}][display]\" type=\"hidden\" value=\"false\" />\n <input name=\"item[${index}][display]\" id=\"${this.formId(this.display_checkbox + '_' + data.id)}\" type=\"checkbox\" ${checked} class=\"item-grid-checkbox\" value=\"true\" />\n <label class=\"sr-only visually-hidden\" for=\"${this.formId(this.display_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:panel:display\")}</label>\n </div>\n <div class=\"main\">\n <div class=\"title card-title\">${data.title}</div>\n </div>\n </div>\n <div class=\"d-flex\">\n <a data-item-grid-panel-remove=\"true\" href=\"#\">${i18n.t(\"blocks:resources:panel:remove\")}</a>\n </div>\n </div>\n </div>\n </li>`\n\n const panel = $(markup);\n var context = this;\n\n $('a[data-item-grid-panel-remove]', panel).on('click', function(e) {\n e.preventDefault();\n $(this).closest('.field').remove();\n context.afterPanelDelete();\n\n });\n\n this.afterPanelRender(data, panel);\n\n return panel;\n },\n\n item_options: function() { return `\n <label>\n <input type=\"hidden\" name=\"display-item-counts\" value=\"false\" />\n <input type=\"checkbox\" name=\"display-item-counts\" value=\"true\" checked />\n ${i18n.t(\"blocks:browse_group_categories:item_counts\")}\n </label>`\n },\n });\n})();\n","/*\n Sir Trevor ItemText Block.\n This block takes an ID,\n fetches the record from solr,\n displays the image, title, \n and any provided text\n and displays them.\n*/\n\nSirTrevor.Blocks.Iframe = (function(){\n\n return SirTrevor.Block.extend({\n type: \"Iframe\",\n formable: true,\n \n title: function() { return i18n.t('blocks:iframe:title'); },\n description: function() { return i18n.t('blocks:iframe:description'); },\n\n icon_name: \"iframe\",\n \n editorHTML: function() {\n return `<div class=\"clearfix\">\n <div class=\"widget-header\">\n ${this.description()}\n </div>\n <textarea name=\"code\" class=\"form-control\" rows=\"5\" placeholder=\"${i18n.t(\"blocks:iframe:placeholder\")}\"></textarea>\n </div>`;\n }\n });\n})();","SirTrevor.Blocks.LinkToSearch = (function(){\n\n return SirTrevor.Blocks.Browse.extend({\n\n type: \"link_to_search\",\n\n icon_name: 'search_results',\n\n searches_key: \"slug\",\n view_key: \"view\",\n plustextable: false,\n\n });\n})();\n","/*\n Sir Trevor ItemText Block.\n This block takes an ID,\n fetches the record from solr,\n displays the image, title, \n and any provided text\n and displays them.\n*/\nimport Core from 'spotlight/core'\n\nSirTrevor.Blocks.Oembed = (function(){\n\n return Core.Block.extend({\n plustextable: true,\n\n id_key:\"url\",\n\n type: \"oembed\",\n \n title: function() { return i18n.t('blocks:oembed:title'); },\n description: function() { return i18n.t('blocks:oembed:description'); },\n\n icon_name: \"oembed\",\n show_heading: false,\n\n editorHTML: function () {\n return `<div class=\"form oembed-text-admin clearfix\">\n <div class=\"widget-header\">\n ${this.description()}\n </div>\n <div class=\"row\">\n <div class=\"form-group mb-3 col-md-8\">\n <label for=\"${this.formId(this.id_key)}\">${i18n.t(\"blocks:oembed:url\")}</label>\n <input name=\"${this.id_key}\" class=\"form-control col-md-6\" type=\"text\" id=\"${this.formId(this.id_key)}\" />\n </div>\n </div>\n ${this.text_area()}\n </div>`\n }\n });\n})();","import Core from 'spotlight/core'\n\nSirTrevor.Blocks.FeaturedPages = (function(){\n\n return Core.Block.Resources.extend({\n type: \"featured_pages\",\n\n icon_name: \"pages\",\n\n autocomplete_url: function() { return document.getElementById(this.instanceID).closest('form[data-autocomplete-exhibit-pages-path]').dataset.autocompleteExhibitPagesPath; },\n autocomplete_fetch: function(url) {\n return this.fetchOnceAndFilterLocalResults(url);\n },\n autocomplete_template: function(obj) {\n const description = obj.description ? `<small> ${obj.description}</small>` : '';\n const thumbnail = obj.thumbnail_image_url ? `<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"${obj.thumbnail_image_url}\" /></div>` : ''\n return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${this.highlight(obj.title)}</span><br/>${description}</div>`\n },\n });\n\n})();\n","/*\n Sir Trevor ItemText Block.\n This block takes an ID,\n fetches the record from solr,\n displays the image, title, \n and any provided text\n and displays them.\n*/\n\nSirTrevor.Blocks.Rule = (function(){\n\n return SirTrevor.Block.extend({\n type: \"rule\",\n \n title: function() { return i18n.t('blocks:rule:title'); },\n\n icon_name: \"rule\",\n \n editorHTML: function() {\n return '<hr />'\n }\n });\n})();","//= require spotlight/admin/blocks/browse_block\n\nSirTrevor.Blocks.SearchResults = (function(){\n\n return SirTrevor.Blocks.Browse.extend({\n\n type: \"search_results\",\n\n icon_name: 'search_results',\n\n searches_key: \"slug\",\n view_key: \"view\",\n plustextable: false,\n\n content: function() {\n return this.items_selector()\n },\n\n item_options: function() {\n var block = this;\n var fields = $('[data-blacklight-configuration-search-views]').data('blacklight-configuration-search-views');\n\n return $.map(fields, function(field) {\n return `<div>\n <label for='${block.formId(block.view_key + field.key)}'>\n <input id='${block.formId(block.view_key + field.key)}' name='${block.view_key}[]' type='checkbox' value='${field.key}' />\n ${field.label}\n </label>\n </div>`\n }).join(\"\\n\");\n },\n\n afterPanelRender: function(data, panel) {\n $(this.inner).find('.item-input-field').attr(\"disabled\", \"disabled\");\n },\n\n afterPanelDelete: function() {\n $(this.inner).find('.item-input-field').removeAttr(\"disabled\");\n },\n\n });\n})();\n","import Iiif from 'spotlight/admin/iiif'\nimport Core from 'spotlight/core'\n\nSirTrevor.Blocks.SolrDocumentsBase = (function(){\n\n return Core.Block.Resources.extend({\n plustextable: true,\n autocomplete_url: function() { return this.$instance().closest('form[data-autocomplete-exhibit-catalog-path]').data('autocomplete-exhibit-catalog-path') },\n autocomplete_template: function(obj) {\n const thumbnail = obj.thumbnail ? `<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"${obj.thumbnail}\" /></div>` : ''\n return `<div class=\"autocomplete-item${obj.private ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${this.highlight(obj.title)}</span><br/><small> ${this.highlight(obj.description)}</small></div>`\n },\n transform_autocomplete_results: function(response) {\n return $.map(response['docs'], function(doc) {\n return doc;\n })\n },\n\n caption_option_values: function() {\n var fields = $('[data-blacklight-configuration-index-fields]').data('blacklight-configuration-index-fields');\n\n return $.map(fields, function(field) {\n return $('<option />').val(field.key).text(field.label)[0].outerHTML;\n }).join(\"\\n\");\n },\n\n item_options: function() { return this.caption_options(); },\n\n caption_options: function() { return `\n <div class=\"field-select primary-caption\" data-behavior=\"item-caption-admin\">\n <input name=\"${this.show_primary_field_key}\" type=\"hidden\" value=\"false\" />\n <input data-input-select-target=\"#${this.formId(this.primary_field_key)}\" name=\"${this.show_primary_field_key}\" id=\"${this.formId(this.show_primary_field_key)}\" type=\"checkbox\" value=\"true\" />\n <label for=\"${this.formId(this.show_primary_field_key)}\">${i18n.t(\"blocks:solr_documents:caption:primary\")}</label>\n <select data-input-select-target=\"#${this.formId(this.show_primary_field_key)}\" name=\"${this.primary_field_key}\" id=\"${this.formId(this.primary_field_key)}\">\n <option value=\"\">${i18n.t(\"blocks:solr_documents:caption:placeholder\")}</option>\n ${this.caption_option_values()}\n </select>\n </div>\n <div class=\"field-select secondary-caption\" data-behavior=\"item-caption-admin\">\n <input name=\"${this.show_secondary_field_key}\" type=\"hidden\" value=\"false\" />\n <input data-input-select-target=\"#${this.formId(this.secondary_field_key)}\" name=\"${this.show_secondary_field_key}\" id=\"${this.formId(this.show_secondary_field_key)}\" type=\"checkbox\" value=\"true\" />\n <label for=\"${this.formId(this.show_secondary_field_key)}\">${i18n.t(\"blocks:solr_documents:caption:secondary\")}</label>\n <select data-input-select-target=\"#${this.formId(this.show_secondary_field_key)}\" name=\"${this.secondary_field_key}\" id=\"${this.formId(this.secondary_field_key)}\">\n <option value=\"\">${i18n.t(\"blocks:solr_documents:caption:placeholder\")}</option>\n ${this.caption_option_values()}\n </select>\n </div>\n `},\n\n // Sets the first version of the IIIF information from autocomplete data.\n _itemPanelIiifFields: function(index, autocomplete_data) {\n var iiifFields = [\n '<input type=\"hidden\" name=\"item[' + index + '][thumbnail_image_url]\" value=\"' + (autocomplete_data.thumbnail_image_url || autocomplete_data.thumbnail || \"\") + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][full_image_url]\" value=\"' + (autocomplete_data.full_image_url || autocomplete_data.thumbnail_image_url || autocomplete_data.thumbnail || \"\") + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_tilesource]\" value=\"' + (autocomplete_data.iiif_tilesource) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_manifest_url]\" value=\"' + (autocomplete_data.iiif_manifest_url) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_canvas_id]\" value=\"' + (autocomplete_data.iiif_canvas_id) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_image_id]\" value=\"' + (autocomplete_data.iiif_image_id) + '\"/>',\n ];\n\n // The region input is required for widgets that enable image cropping but not otherwise\n if(this.show_image_selection) {\n iiifFields.push('<input type=\"hidden\" name=\"item[' + index + '][iiif_region]\" value=\"' + (autocomplete_data.iiif_region || \"\") + '\"/>');\n }\n\n return iiifFields.join(\"\\n\");\n },\n // Overwrites the hidden inputs from _itemPanelIiifFields with data from the\n // manifest. Called by afterPanelRender - the manifest_data here is built\n // from canvases in the manifest, transformed by spotlight/admin/iiif.js in\n // the #images method.\n setIiifFields: function(panel, manifest_data, initialize) {\n var legacyThumbnailField = $(panel).find('[name$=\"[thumbnail_image_url]\"]')\n var legacyFullField = $(panel).find('[name$=\"[full_image_url]\"]')\n\n if (initialize && legacyThumbnailField.val().length > 0) {\n return;\n }\n\n legacyThumbnailField.val(\"\");\n legacyFullField.val(\"\");\n $(panel).find('[name$=\"[iiif_image_id]\"]').val(manifest_data.imageId);\n $(panel).find('[name$=\"[iiif_tilesource]\"]').val(manifest_data.tilesource);\n $(panel).find('[name$=\"[iiif_manifest_url]\"]').val(manifest_data.manifest);\n $(panel).find('[name$=\"[iiif_canvas_id]\"]').val(manifest_data.canvasId);\n $(panel).find('img.img-thumbnail').attr('src', manifest_data.thumbnail_image_url || manifest_data.tilesource.replace(\"/info.json\", \"/full/100,100/0/default.jpg\"));\n },\n afterPanelRender: function(data, panel) {\n var context = this;\n var manifestUrl = data.iiif_manifest || data.iiif_manifest_url;\n\n if (!manifestUrl) {\n $(panel).find('[name$=\"[thumbnail_image_url]\"]').val(data.thumbnail_image_url || data.thumbnail);\n $(panel).find('[name$=\"[full_image_url]\"]').val(data.full_image_url);\n\n return;\n }\n\n $.ajax(manifestUrl).done(\n function(manifest) {\n var iiifManifest = new Iiif(manifestUrl, manifest);\n\n var thumbs = iiifManifest.imagesArray();\n\n if (!data.iiif_image_id) {\n context.setIiifFields(panel, thumbs[0], !!data.iiif_manifest_url);\n }\n\n\n if(thumbs.length > 1) {\n panel.multiImageSelector(thumbs, function(selectorImage) {\n context.setIiifFields(panel, selectorImage, false);\n }, data.iiif_image_id);\n }\n }\n );\n }\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocuments = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n type: \"solr_documents\",\n\n icon_name: \"items\",\n\n item_options: function() { return this.caption_options() + this.zpr_option(); },\n\n zpr_option: function() {\n return `\n <div>\n <input name=\"${this.zpr_key}\" type=\"hidden\" value=\"false\" />\n <input name=\"${this.zpr_key}\" id=\"${this.formId(this.zpr_key)}\" data-key=\"${this.zpr_key}\" type=\"checkbox\" value=\"true\" />\n <label for=\"${this.formId(this.zpr_key)}\">${i18n.t(\"blocks:solr_documents:zpr:title\")}</label>\n </div>\n `\n },\n\n zpr_key: 'zpr_link'\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocumentsCarousel = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n plustextable: false,\n type: \"solr_documents_carousel\",\n\n icon_name: \"item_carousel\",\n\n auto_play_images_key: \"auto-play-images\",\n auto_play_images_interval_key: \"auto-play-images-interval\",\n max_height_key: \"max-height\",\n\n carouselCycleTimesInSeconds: {\n values: [ 3, 5, 8, 12, 20 ],\n selected: 5\n },\n\n carouselMaxHeights: {\n values: { 'Small': 'small', 'Medium': 'medium', 'Large': 'large' },\n selected: 'Medium'\n },\n\n item_options: function() {\n return `${this.caption_options()}\n <div class=\"field-select auto-cycle-images\" data-behavior=\"auto-cycle-images\">\n <input name=\"${this.auto_play_images_key}\" type=\"hidden\" value=\"false\" />\n <input name=\"${this.auto_play_images_key}\" id=\"${this.formId(this.auto_play_images_key)}\" data-key=\"${this.auto_play_images_key}\" type=\"checkbox\" value=\"true\" checked/>\n <label for=\"${this.formId(this.auto_play_images_key)}\">${i18n.t(\"blocks:solr_documents_carousel:interval:title\")}</label>\n <select name=\"${this.auto_play_images_interval_key}\" id=\"${this.formId(this.auto_play_images_interval_key)}\" data=key=\"${this.auto_play_images_interval_key}\">\n <option value=\"\">${i18n.t(\"blocks:solr_documents_carousel:interval:placeholder\")}</option>\n ${this.addCarouselCycleOptions(this.carouselCycleTimesInSeconds)}\n </select>\n </div>\n <div class=\"field-select max-heights\" data-behavior=\"max-heights\">\n <label for=\"${this.formId(this.max_height_key)}\">${i18n.t(\"blocks:solr_documents_carousel:height:title\")}</label><br/>\n ${this.addCarouselMaxHeightOptions(this.carouselMaxHeights)}\n </div>`\n },\n\n addCarouselCycleOptions: function(options) {\n var html = '';\n\n $.each(options.values, function(index, interval) {\n var selected = (interval === options.selected) ? 'selected' : '',\n intervalInMilliSeconds = parseInt(interval, 10) * 1000;\n\n html += '<option value=\"' + intervalInMilliSeconds + '\" ' + selected + '>' + interval + ' seconds</option>';\n });\n\n return html;\n },\n\n addCarouselMaxHeightOptions: function(options) {\n var html = '',\n _this = this;\n\n $.each(options.values, function(size, px) {\n var checked = (size === options.selected) ? 'checked' : '',\n id = _this.formId(_this.max_height_key)\n\n html += '<input data-key=\"' + _this.max_height_key + '\" type=\"radio\" name=\"' + id + '\" value=\"' + px + '\" id=\"' + id + '\" ' + checked + '>';\n html += '<label class=\"carousel-size\" for=\"' + id + '\">' + size + '</label>';\n });\n\n return html;\n },\n\n afterPreviewLoad: function(options) {\n $(this.inner).find('.carousel').carousel();\n\n // the bootstrap carousel only initializes data-bs-slide widgets on page load, so we need\n // to initialize them ourselves..\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || $this.attr('data-bs-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to') || $this.attr('data-bs-slide-to')\n if (slideIndex) options.interval = false\n\n $.fn.carousel.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(this.inner).find('.carousel')\n .on('click.bs.carousel.data-api', '[data-slide], [data-bs-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to], [data-bs-slide-to]', clickHandler)\n }\n\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocumentsEmbed = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n type: \"solr_documents_embed\",\n icon_name: \"item_embed\",\n show_image_selection: false,\n\n item_options: function() { return \"\" },\n\n afterPreviewLoad: function(options) {\n $(this.inner).find('picture[data-openseadragon]').openseadragon();\n }\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocumentsFeatures = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n plustextable: false,\n type: \"solr_documents_features\",\n\n icon_name: \"item_features\",\n\n afterPreviewLoad: function(options) {\n $(this.inner).find('.carousel').carousel();\n\n // the bootstrap carousel only initializes data-bs-slide widgets on page load, so we need\n // to initialize them ourselves..\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || $this.attr('data-bs-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to') || $this.attr('data-bs-slide-to')\n if (slideIndex) options.interval = false\n\n $.fn.carousel.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(this.inner).find('.carousel')\n .on('click.bs.carousel.data-api', '[data-slide], [data-bs-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to], [data-bs-slide-to]', clickHandler)\n }\n\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocumentsGrid = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n type: \"solr_documents_grid\",\n\n icon_name: \"item_grid\",\n\n\n item_options: function() { return \"\" }\n });\n\n})();\n","import SpotlightNestable from 'spotlight/admin/spotlight_nestable'\nimport Core from 'spotlight/core'\n\nSirTrevor.Blocks.UploadedItems = (function(){\n return Core.Block.Resources.extend({\n plustextable: true,\n uploadable: true,\n autocompleteable: false,\n show_image_selection: false,\n \n id_key: 'file',\n\n type: 'uploaded_items',\n\n icon_name: 'items',\n\n blockGroup: 'undefined',\n\n // Clear out the default Uploadable upload options\n // since we will be using our own custom controls\n upload_options: { html: '' },\n\n fileInput: function() { return $(this.inner).find('input[type=\"file\"]'); },\n\n onBlockRender: function(){\n SpotlightNestable.init($(this.inner).find('[data-behavior=\"nestable\"]'));\n\n this.fileInput().on('change', (function(ev) {\n this.onDrop(ev.currentTarget);\n }).bind(this));\n },\n\n onDrop: function(transferData){\n var file = transferData.files[0],\n urlAPI = (typeof URL !== \"undefined\") ? URL : (typeof webkitURL !== \"undefined\") ? webkitURL : null;\n\n // Handle one upload at a time\n if (/image/.test(file.type)) {\n this.loading();\n\n this.uploader(\n file,\n function(data) {\n this.createItemPanel(data);\n this.fileInput().val('');\n this.ready();\n },\n function(error) {\n this.addMessage(i18n.t('blocks:image:upload_error'));\n this.ready();\n }\n );\n }\n },\n\n title: function() { return i18n.t('blocks:uploaded_items:title'); },\n description: function() { return i18n.t('blocks:uploaded_items:description'); },\n\n globalIndex: 0,\n\n _itemPanel: function(data) {\n var index = \"file_\" + this.globalIndex++;\n var checked = 'checked=\"checked\"';\n\n if (data.display == 'false') {\n checked = '';\n }\n\n var dataId = data.id || data.uid;\n var dataTitle = data.title || data.name;\n var dataUrl = data.url || data.file.url;\n\n var markup = `\n <li class=\"field dd-item dd3-item\" data-id=\"${index}\" id=\"${this.formId(index)}\">\n <input type=\"hidden\" name=\"item[${index}][id]\" value=\"${dataId}\" />\n <input type=\"hidden\" name=\"item[${index}][title]\" value=\"${dataTitle}\" />\n <input type=\"hidden\" name=\"item[${index}][url]\" data-item-grid-thumbnail=\"true\" value=\"${dataUrl}\"/>\n <input data-property=\"weight\" type=\"hidden\" name=\"item[${index}][weight]\" value=\"${data.weight}\" />\n <div class=\"card d-flex dd3-content\">\n <div class=\"dd-handle dd3-handle\">${i18n.t(\"blocks:resources:panel:drag\")}</div>\n <div class=\"card-header d-flex item-grid\">\n <div class=\"checkbox\">\n <input name=\"item[${index}][display]\" type=\"hidden\" value=\"false\" />\n <input name=\"item[${index}][display]\" id=\"${this.formId(this.display_checkbox + '_' + dataId)}\" type=\"checkbox\" ${checked} class=\"item-grid-checkbox\" value=\"true\" />\n <label class=\"sr-only visually-hidden\" for=\"${this.formId(this.display_checkbox + '_' + dataId)}\">${i18n.t(\"blocks:resources:panel:display\")}</label>\n </div>\n <div class=\"pic\">\n <img class=\"img-thumbnail\" src=\"${dataUrl}\" />\n </div>\n <div class=\"main form-horizontal\">\n <div class=\"title card-title\">${dataTitle}</div>\n <div class=\"field row mr-3 me-3\">\n <label for=\"${this.formId('caption_' + dataId)}\" class=\"col-form-label col-md-3\">${i18n.t(\"blocks:uploaded_items:caption\")}</label>\n <input type=\"text\" class=\"form-control col\" id=\"${this.formId('caption_' + dataId)}\" name=\"item[${index}][caption]\" data-field=\"caption\"/>\n </div>\n <div class=\"field row mr-3 me-3\">\n <label for=\"${this.formId('link_' + dataId)}\" class=\"col-form-label col-md-3\">${i18n.t(\"blocks:uploaded_items:link\")}</label>\n <input type=\"text\" class=\"form-control col\" id=\"${this.formId('link_' + dataId)}\" name=\"item[${index}][link]\" data-field=\"link\"/>\n </div>\n ${this._altTextFieldsHTML(index, data)}\n </div>\n <div class=\"remove float-right float-end\">\n <a data-item-grid-panel-remove=\"true\" href=\"#\">${i18n.t(\"blocks:resources:panel:remove\")}</a>\n </div>\n </div>\n </li>`\n\n const panel = $(markup);\n panel.find('[data-field=\"caption\"]').val(data.caption);\n panel.find('[data-field=\"link\"]').val(data.link);\n var context = this;\n\n $('.remove a', panel).on('click', function(e) {\n e.preventDefault();\n $(this).closest('.field').remove();\n context.afterPanelDelete();\n });\n\n this.afterPanelRender(data, panel);\n\n return panel;\n },\n\n editorHTML: function() {\n return `<div class=\"form oembed-text-admin clearfix\">\n <div class=\"widget-header\">\n ${this.description()}\n ${this.alt_text_guidelines()}\n ${this.alt_text_guidelines_link()}\n </div>\n <div class=\"row\">\n <div class=\"form-group mb-3 col-md-8\">\n <div class=\"panels dd nestable-item-grid\" data-behavior=\"nestable\" data-max-depth=\"1\">\n <ol class=\"dd-list\">\n </ol>\n </div>\n <input type=\"file\" id=\"uploaded_item_url\" name=\"file[file_0][file_data]\" />\n </div>\n <div class=\"col-md-4\">\n <input name=\"${this.zpr_key}\" type=\"hidden\" value=\"false\" />\n <input name=\"${this.zpr_key}\" id=\"${this.formId(this.zpr_key)}\" data-key=\"${this.zpr_key}\" type=\"checkbox\" value=\"true\" />\n <label for=\"${this.formId(this.zpr_key)}\">${i18n.t(\"blocks:solr_documents:zpr:title\")}</label>\n </div>\n </div>\n ${this.text_area()}\n </div>`\n },\n\n altTextHTML: function(index, data) {\n const { isDecorative, altText, altTextBackup, placeholderAttr, disabledAttr } = this._altTextData(data);\n return `\n <div class=\"field row mr-3 me-3\">\n <div class=\"col-lg-3 ps-md-2 pl-md-2\">\n <label class=\"col-form-label text-nowrap pb-0 pt-1 justify-content-md-start justify-content-lg-end d-flex\" for=\"${this.formId(this.alt_text_textarea + '_' + data.id)}\">${i18n.t(\"blocks:resources:alt_text:alternative_text\")}</label>\n <div class=\"form-check d-flex justify-content-md-start justify-content-lg-end\">\n <input class=\"form-check-input\" type=\"checkbox\"\n id=\"${this.formId(this.decorative_checkbox + '_' + data.id)}\" name=\"item[${index}][decorative]\" ${isDecorative ? 'checked' : ''}>\n <label class=\"form-check-label\" for=\"${this.formId(this.decorative_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:alt_text:decorative\")}</label>\n </div>\n </div>\n <input type=\"hidden\" name=\"item[${index}][alt_text_backup]\" value=\"${altTextBackup}\" />\n <textarea class=\"col-lg-9\" rows=\"2\" ${placeholderAttr}\n id=\"${this.formId(this.alt_text_textarea + '_' + data.id)}\" name=\"item[${index}][alt_text]\" ${disabledAttr}>${altText}</textarea>\n </div>`\n },\n\n zpr_key: 'zpr_link'\n });\n})();\n","import Core from 'spotlight/core'\n\n(function() {\n var BLOCK_REPLACER_CONTROL_TEMPLATE = function(block) {\n var el = document.createElement('button');\n el.className = \"st-block-controls__button\";\n el.setAttribute('data-type', block.type);\n el.type = \"button\";\n\n var img = document.createElement('svg');\n img.className = \"st-icon\";\n img.setAttribute('role', 'img');\n\n var use = document.createElement('use');\n use.setAttributeNS('https://www.w3.org/1999/xlink', 'href', SirTrevor.config.defaults.iconUrl + \"#\" + block.icon_name);\n img.appendChild(use);\n el.appendChild(img);\n el.appendChild(document.createTextNode(block.title()));\n\n return el.outerHTML;\n };\n\n function generateBlocksHTML(Blocks, availableTypes) {\n var groups = {};\n for(var i in availableTypes) {\n var type = availableTypes[i];\n if (Blocks.hasOwnProperty(type) && Blocks[type].prototype.toolbarEnabled) {\n var blockGroup;\n\n if ($.isFunction(Blocks[type].prototype.blockGroup)) {\n blockGroup = Blocks[type].prototype.blockGroup();\n } else {\n blockGroup = Blocks[type].prototype.blockGroup;\n }\n\n if (blockGroup == 'undefined' || blockGroup === undefined) {\n blockGroup = i18n.t(\"blocks:group:undefined\");\n }\n\n groups[blockGroup] = groups[blockGroup] || [];\n groups[blockGroup].push(BLOCK_REPLACER_CONTROL_TEMPLATE(Blocks[type].prototype));\n }\n }\n\n function generateBlock(groups, key) {\n var group = groups[key];\n var groupEl = $(\"<div class='st-controls-group'><div class='st-group-col-form-label'>\" + key + \"</div></div>\");\n var buttons = group.reduce(function(memo, btn) {\n return memo += btn;\n }, \"\");\n groupEl.append(buttons);\n return groupEl[0].outerHTML;\n }\n\n var standardWidgets = generateBlock(groups, i18n.t(\"blocks:group:undefined\"));\n\n var exhibitWidgets = Object.keys(groups).map(function(key) {\n if (key !== i18n.t(\"blocks:group:undefined\")) {\n return generateBlock(groups, key);\n }\n }).filter(function (element) {\n return element != null;\n });\n\n var blocks = [standardWidgets].concat(exhibitWidgets).join(\"<hr />\");\n return blocks;\n }\n\n function render(Blocks, availableTypes) {\n var el = document.createElement('div');\n el.className = \"st-block-controls__buttons\";\n el.innerHTML = generateBlocksHTML.apply(null, arguments);\n\n var elButtons = document.createElement('div');\n elButtons.className = \"spotlight-block-controls\";\n elButtons.appendChild(el);\n return elButtons;\n }\n\n Core.BlockControls = function() { };\n Core.BlockControls.create = function(editor) {\n // REFACTOR - should probably not know about blockManager\n var el = render(SirTrevor.Blocks, editor.blockManager.blockTypes);\n\n function hide() {\n var parent = el.parentNode;\n if (!parent) { return; }\n parent.removeChild(el);\n parent.classList.remove(\"st-block--controls-active\");\n return parent;\n }\n\n function destroy() {\n SirTrevor = null;\n el = null;\n }\n\n function insert(e) {\n e.stopPropagation();\n\n var parent = this.parentNode;\n if (!parent || hide() === parent) { return; }\n $('.st-block__inner', parent).after(el);\n parent.classList.add(\"st-block--controls-active\");\n }\n\n function replaceBlock() {\n SirTrevor.mediator.trigger(\n \"block:replace\", el.parentNode, this.getAttribute('data-type')\n );\n }\n\n $(editor.wrapper).delegate(\".st-block-replacer\", \"click\", insert);\n $(editor.wrapper).delegate(\".st-block-controls__button\", \"click\", insert);\n\n return {\n el: el,\n hide: hide,\n destroy: destroy\n };\n };\n})();\n","import Core from 'spotlight/core'\n\nCore.BlockLimits = function(editor) {\n this.editor = editor;\n};\n\nCore.BlockLimits.prototype.enforceLimits = function(editor) {\n this.addEditorCallbacks(editor);\n this.checkGlobalBlockTypeLimit()();\n};\n\nCore.BlockLimits.prototype.addEditorCallbacks = function(editor) {\n SirTrevor.EventBus.on('block:create:new', this.checkBlockTypeLimitOnAdd());\n SirTrevor.EventBus.on('block:remove', this.checkGlobalBlockTypeLimit());\n};\n\nCore.BlockLimits.prototype.checkBlockTypeLimitOnAdd = function() {\n var editor = this.editor;\n\n return function(block) {\n var control = $(\".st-block-controls__button[data-type='\" + block.type + \"']\", editor.blockControls.el);\n\n control.prop(\"disabled\", !editor.blockManager.canCreateBlock(block.class()));\n };\n};\n\nCore.BlockLimits.prototype.checkGlobalBlockTypeLimit = function() {\n // we don't know what type of block was created or removed.. So, try them all.\n var editor = this.editor;\n\n return function() {\n $.each(editor.blockManager.blockTypes, function(i, type) {\n var block_type = SirTrevor.Blocks[type].prototype;\n\n var control = $(editor.blockControls.el).find(\".st-block-controls__button[data-type='\" + block_type.type + \"']\");\n control.prop(\"disabled\", !editor.blockManager.canCreateBlock(type));\n });\n };\n};\n","SirTrevor.Locales.en.blocks = $.extend(SirTrevor.Locales.en.blocks, {\n autocompleteable: {\n placeholder: \"Enter a title...\"\n },\n\n browse: {\n title: \"Browse Categories\",\n description: \"This widget highlights browse categories. Each highlighted category links to the corresponding browse category results page.\",\n item_counts: \"Include item counts?\"\n },\n\n browse_group_categories: {\n autocomplete: \"Enter a browse group title...\",\n title: \"Browse Group Categories\",\n description: \"This widget displays all browse categories associated with a selected browse group as a horizontally-scrolling row. Each selected browse group is displayed as a separate row. Each displayed category in a group links to the corresponding browse category results page.\",\n item_counts: \"Include category item counts?\"\n },\n\n link_to_search: {\n title: \"Saved Searches\",\n description: \"This widget highlights saved searches. Each highlighted saved search links to the search results page generated by the saved search parameters. Any saved search listed on the Curation > Browse categories page, whether published or not, can be highlighted as a saved search.\",\n item_counts: \"Include item counts?\"\n },\n\n iframe: {\n title: \"IFrame\",\n description: \"This widget embeds iframe-based embed code into pages\",\n placeholder: \"Enter embed code here. It should begin with e.g. '<iframe'\"\n },\n\n oembed: {\n title: \"Embed + Text\",\n description: \"This widget embeds an oEmbed-supported web resource and a text block to the left or right of it. Examples of oEmbed-supported resources include those from YouTube, Twitter, Flickr, and SlideShare.\",\n url: \"URL\",\n },\n\n uploaded_items: {\n title: \"Uploaded Item Row\",\n description: \"This widget displays uploaded items in a horizontal row. Optionally, you can add a heading and/or text to be displayed adjacent to the items. The item caption and link URL fields are also optional.\",\n caption: 'Caption',\n link: 'Link URL'\n },\n\n featured_pages: {\n title: \"Pages\",\n description: \"This widget highlights pages from this exhibit. Each highlighted item links to the corresponding page.\"\n },\n\n resources: {\n panel: {\n drag: \"Drag\",\n display: \"Display?\",\n remove: \"Remove\"\n },\n alt_text: {\n decorative: \"Decorative\",\n alternative_text: \"Alternative text\",\n placeholder: \"Enter alt text for this item...\"\n }\n },\n\n rule: {\n title: \"Horizontal Rule\"\n },\n\n search_results: {\n title: \"Search Results\",\n description: \"This widget displays a set of search results on a page. Specify a search result set by selecting an existing browse category. You can also select the view types that are available to the user when viewing the result set.\"\n },\n\n solr_documents: {\n title: \"Item Row\",\n description: \"This widget displays exhibit items in a horizontal row. Optionally, you can add a heading and/or text to be displayed adjacent to the items.\",\n caption: {\n placeholder: \"Select...\",\n primary: \"Primary caption\",\n secondary: \"Secondary caption\"\n },\n zpr: {\n title: 'Offer \"View larger\" option'\n }\n },\n\n solr_documents_carousel: {\n title: \"Item Carousel\",\n description: \"This widget displays exhibit items in a carousel. You can configure the item captions, how the images are cycled, and the size of the carousel.\",\n interval: {\n title: \"Automatically cycle images\",\n placeholder: \"Select...\"\n },\n height: {\n title: \"Maximum carousel height\"\n }\n },\n\n solr_documents_embed: {\n title: \"Item Embed\",\n description: \"This widget embeds an exhibit item in a viewer on a page. Optionally, you can add a heading to be displayed above the viewer and/or text to be displayed adjacent to the viewer.\",\n },\n\n solr_documents_features: {\n title: \"Item Slideshow\",\n description: \"This widget displays exhibit items in a static slideshow. The user will move between items in the slideshow using the field you select as the primary caption.\"\n },\n\n solr_documents_grid: {\n title: \"Item Grid\",\n description: \"This widget displays exhibit items in a multi-row grid. Optionally, you can add a heading and/or text to be displayed adjacent to the items.\"\n },\n\n textable: {\n heading: \"Heading\",\n text: \"Text\",\n align: {\n title: \"Display text on:\",\n left: \"Left\",\n right: \"Right\"\n }\n },\n\n group: {\n undefined: \"Standard widgets\",\n items: \"Exhibit item widgets\"\n },\n\n alt_text_guidelines: {\n intro: 'For each item, please enter alternative text or appropriately check the decorative box. ',\n link_label: 'Guidelines for writing alt text.',\n link_url: 'https://www.w3.org/WAI/tutorials/images/' \n }\n});\n","import AddAnother from 'spotlight/admin/add_another'\nimport AddNewButton from 'spotlight/admin/add_new_button'\nimport BlacklightConfiguration from 'spotlight/admin/blacklight_configuration'\nimport CopyEmailAddress from 'spotlight/admin/copy_email_addresses'\nimport Croppable from 'spotlight/admin/croppable'\nimport EditInPlace from 'spotlight/admin/edit_in_place'\nimport Exhibits from 'spotlight/admin/exhibits'\nimport FormObserver from 'spotlight/admin/form_observer'\nimport Locks from 'spotlight/admin/locks'\nimport 'spotlight/admin/multi_image_selector'\nimport Pages from 'spotlight/admin/pages'\nimport ProgressMonitor from 'spotlight/admin/progress_monitor'\nimport ReadonlyCheckbox from 'spotlight/admin/readonly_checkbox'\nimport { addAutocompletetoFeaturedImage } from 'spotlight/admin/search_typeahead'\nimport SelectRelatedInput from 'spotlight/admin/select_related_input'\nimport SpotlightNestable from 'spotlight/admin/spotlight_nestable'\nimport Tabs from 'spotlight/admin/tabs'\nimport TranslationProgress from 'spotlight/admin/translation_progress'\nimport 'spotlight/admin/visibility_toggle'\nimport Users from 'spotlight/admin/users'\n\nimport 'spotlight/admin/block_mixins/autocompleteable'\nimport 'spotlight/admin/block_mixins/formable'\nimport 'spotlight/admin/block_mixins/plustextable'\n\nimport 'spotlight/admin/blocks/block'\nimport 'spotlight/admin/blocks/resources_block' // This is a base class of several other blocks, so must come first\nimport 'spotlight/admin/blocks/browse_block'\nimport 'spotlight/admin/blocks/browse_group_categories_block'\nimport 'spotlight/admin/blocks/iframe_block'\nimport 'spotlight/admin/blocks/link_to_search_block'\nimport 'spotlight/admin/blocks/oembed_block'\nimport 'spotlight/admin/blocks/pages_block'\nimport 'spotlight/admin/blocks/rule_block'\nimport 'spotlight/admin/blocks/search_result_block'\nimport 'spotlight/admin/blocks/solr_documents_base_block'\nimport 'spotlight/admin/blocks/solr_documents_block'\nimport 'spotlight/admin/blocks/solr_documents_carousel_block'\nimport 'spotlight/admin/blocks/solr_documents_embed_block'\nimport 'spotlight/admin/blocks/solr_documents_features_block'\nimport 'spotlight/admin/blocks/solr_documents_grid_block'\nimport 'spotlight/admin/blocks/uploaded_items_block'\n\nimport 'spotlight/admin/sir-trevor/block_controls'\nimport 'spotlight/admin/sir-trevor/block_limits'\nimport 'spotlight/admin/sir-trevor/locales'\n\n\nexport default class {\n connect() {\n new AddAnother().connect()\n new AddNewButton().connect()\n new CopyEmailAddress().connect()\n new Croppable().connect()\n new EditInPlace().connect()\n new Exhibits().connect()\n new FormObserver().connect()\n new Locks().connect()\n new BlacklightConfiguration().connect()\n new Pages().connect()\n new ProgressMonitor().connect()\n new ReadonlyCheckbox().connect()\n new SelectRelatedInput().connect()\n new Tabs().connect()\n new TranslationProgress().connect()\n new Users().connect()\n addAutocompletetoFeaturedImage()\n SpotlightNestable.init();\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n\n static targets = [\n 'addNewTagWrapper',\n 'dropdownContent',\n 'initialTags',\n 'newTag',\n 'searchResultTags',\n 'selectedTags',\n 'tagControlWrapper',\n 'tagSearch',\n 'tagsField',\n 'tagSearchDropdown',\n 'tagSearchInputWrapper'\n ]\n\n static values = {\n tags: Array,\n translations: Object\n }\n\n tagDropdown (event) {\n this.dropdownContentTarget.classList.toggle('d-none')\n }\n\n clickOutside (event) {\n const isShown = !this.dropdownContentTarget.classList.contains('d-none')\n const inSelected = event.target.classList.contains('pill-close')\n const inContainer = this.tagControlWrapperTarget.contains(event.target)\n if (!inContainer && !inSelected && isShown) {\n this.tagDropdown(event)\n }\n }\n\n handleKeydown (event) {\n if (event.key === 'Enter') {\n event.preventDefault()\n const hidden = this.dropdownContentTarget.classList.contains('d-none')\n if (hidden) return;\n\n const tagElementToAdd = this.dropdownContentTarget.querySelector('.active')?.firstElementChild\n if (tagElementToAdd) tagElementToAdd.click()\n }\n\n if (event.key === ',') {\n event.preventDefault()\n if (this.tagSearchTarget.value.length === 0) return\n\n if (!this.addNewTagWrapperTarget.classList.contains('d-none')) {\n this.addNewTagWrapperTarget.click()\n this.tagSearchTarget.focus()\n return\n }\n\n const exactMatch = this.dropdownContentTarget.querySelector('.active')?.firstElementChild\n if (exactMatch?.checked === false) {\n exactMatch.click()\n this.resetSearch()\n }\n this.tagSearchTarget.focus()\n }\n }\n\n addNewTag (event) {\n if (this.addNewTagWrapperTarget.classList.contains('d-none') || this.newTagTarget.dataset.tag.length === 0) {\n return\n }\n\n this.tagsValue = this.tagsValue.concat([this.newTagTarget.dataset.tag])\n this.resetSearch()\n }\n\n resetSearch() {\n this.tagSearchTarget.value = ''\n this.newTagTarget.innerHTML = ''\n this.newTagTarget.dataset.tag = ''\n this.newTagTarget.disabled = true\n this.addNewTagWrapperTarget.classList.add('d-none')\n this.searchResultTagsTargets.forEach(target => this.showElement(target.parentElement))\n }\n\n tagUpdate (event) {\n const target = event.target ? event.target : event\n if (target.checked) {\n this.tagsValue = this.tagsValue.concat([target.dataset.tag])\n } else {\n this.tagsValue = this.tagsValue.filter(tag => tag !== target.dataset.tag)\n }\n }\n\n updateSearchResultsPlaceholder(event) {\n const placeholderElement = this.dropdownContentTarget.querySelector('.no-results')\n if (!placeholderElement) return\n\n const hasVisibleTags = this.dropdownContentTarget.querySelector('label:not(.d-none):not(.no-results)')\n placeholderElement.classList.toggle('d-none', hasVisibleTags)\n }\n\n tagCreate(event) {\n event.preventDefault()\n const newTagCheckbox = document.createElement('label')\n newTagCheckbox.innerHTML = `<input type=\"checkbox\" checked data-action=\"click->${this.identifier}#tagUpdate\" data-tag-selector-target=\"searchResultTags\" data-tag=\"${this.newTagTarget.dataset.tag}\"> ${this.newTagTarget.dataset.tag}`\n const existingTags = Array.from(this.dropdownContentTarget.querySelectorAll('label:not(#add-new-tag-wrapper)'))\n const insertPosition = existingTags.findIndex(tag => tag.textContent.trim().localeCompare(this.newTagTarget.dataset.tag) > 0)\n if (insertPosition === -1) {\n this.addNewTagWrapperTarget.insertAdjacentElement('beforebegin', newTagCheckbox)\n } else {\n existingTags[insertPosition].insertAdjacentElement('beforebegin', newTagCheckbox)\n }\n\n this.tagsValue = this.tagsValue.concat([this.newTagTarget.dataset.tag])\n this.tagSearchTarget.value = ''\n this.tagSearchTarget.dispatchEvent(new Event('input'))\n }\n\n\n tagsValueChanged() {\n const isEmpty = this.tagsValue.length === 0\n\n this.selectedTagsTarget.classList.toggle('d-none', isEmpty)\n this.tagSearchInputWrapperTarget.classList.toggle('rounded', isEmpty)\n this.tagSearchInputWrapperTarget.classList.toggle('rounded-bottom', !isEmpty)\n\n if (!isEmpty) {\n this.selectedTagsTarget.innerHTML = `<ul class=\"list-unstyled border rounded-top mb-0 p-1 px-2\">${this.renderTagPills()}</ul>`\n }\n\n const newValue = this.tagsValue.join(', ')\n if (this.tagsFieldTarget.value !== newValue) {\n this.tagsFieldTarget.value = newValue\n }\n }\n\n normalizeTag (tag) {\n const normalizeRegex = /[^\\w\\s]/gi\n return tag.replace(normalizeRegex, '').toLowerCase().trim()\n }\n\n showElement (element) {\n element.classList.add('d-block')\n element.classList.remove('d-none')\n }\n\n hideElement (element) {\n element.classList.remove('d-block')\n element.classList.add('d-none')\n }\n\n search(event) {\n const searchTerm = this.normalizeTag(event.target.value)\n this.dropdownContentTarget.classList.remove('d-none')\n\n const exactMatch = this.searchResultTagsTargets.some(target => {\n const compareTerm = this.normalizeTag(target.dataset.tag)\n const isMatch = compareTerm.includes(searchTerm)\n target.parentElement.classList.remove('active')\n this[isMatch ? 'showElement' : 'hideElement'](target.parentElement)\n return compareTerm === searchTerm\n })\n\n this[searchTerm.length > 0 && !exactMatch ? 'showElement' : 'hideElement'](this.addNewTagWrapperTarget)\n this.addNewTagWrapperTarget.classList.remove('active')\n this.dropdownContentTarget.querySelector('label:not(.d-none)')?.classList.add('active')\n }\n\n updateTagToAdd (event) {\n const tagAlreadyAdded = this.tagsValue.some(tag =>\n this.normalizeTag(tag) === this.normalizeTag(event.target.value)\n )\n this.newTagTarget.dataset.tag = event.target.value.trim()\n this.newTagTarget.nextSibling.textContent = ` ${this.translationsValue.add_new_tag}: ${event.target.value}`\n this.newTagTarget.disabled = !this.newTagTarget.dataset.tag.length || tagAlreadyAdded\n }\n\n deselect (event) {\n event.preventDefault()\n\n const clickedTag = event.target.closest('button').dataset.tag\n const target = this.searchResultTagsTargets.find((tag) => tag.dataset.tag === clickedTag)\n target ? target.click() : this.tagsValue = this.tagsValue.filter(tag => tag !== clickedTag)\n }\n\n renderTagPills () {\n return this.tagsValue.map((tag) => {\n return `\n <li class=\"d-inline-flex gap-2 align-items-center my-2\">\n <span class=\"bg-light badge rounded-pill border selected-item d-inline-flex align-items-center text-dark\">\n <span class=\"selected-item-label d-inline-flex\">${tag}</span>\n <button\n type=\"button\"\n data-action=\"${this.identifier}#deselect\"\n data-tag=\"${tag}\"\n class=\"btn-close close ms-1 ml-1\"\n aria-label=\"${this.translationsValue.remove} ${tag}\"\n ><span aria-hidden=\"true\" class=\"visually-hidden\">×</span></button>\n </span>\n </li>\n `\n }).join('')\n }\n}\n","import TagSelectorController from 'spotlight/controllers/tag_selector_controller'\n\nexport default class {\n connect() {\n if (typeof Stimulus === \"undefined\") return\n Stimulus.register('tag-selector', TagSelectorController)\n }\n}\n","import UserIndex from 'spotlight/user'\nimport AdminIndex from 'spotlight/admin'\nimport Core from 'spotlight/core'\nimport SpotlightControllers from 'spotlight/controllers'\n\nCore.onLoad(() => {\n new SpotlightControllers().connect()\n new UserIndex().connect()\n new AdminIndex().connect()\n})\n\nexport default Core\n"],"names":["Spotlight","SirTrevor","Core","SpotlightNestable","Controller"],"mappings":"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AE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;EAC5E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC5E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE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"}
|
1
|
+
{"version":3,"file":"spotlight.js","sources":["../../../../vendor/assets/javascripts/tiny-slider.js","../../../javascript/spotlight/user/browse_group_categories.js","../../../javascript/spotlight/user/carousel.js","../../../javascript/spotlight/user/clear_form_button.js","../../../javascript/spotlight/user/zpr_links.js","../../../javascript/spotlight/user/index.js","../../../javascript/spotlight/admin/add_another.js","../../../javascript/spotlight/admin/add_new_button.js","../../../javascript/spotlight/admin/blacklight_configuration.js","../../../javascript/spotlight/admin/copy_email_addresses.js","../../../javascript/spotlight/admin/iiif.js","../../../javascript/spotlight/admin/add_image_selector.js","../../../javascript/spotlight/core.js","../../../javascript/spotlight/admin/crop.js","../../../javascript/spotlight/admin/croppable_modal.js","../../../javascript/spotlight/admin/croppable.js","../../../javascript/spotlight/admin/edit_in_place.js","../../../../vendor/assets/javascripts/parameterize.js","../../../javascript/spotlight/admin/exhibits.js","../../../javascript/spotlight/admin/form_observer.js","../../../javascript/spotlight/admin/locks.js","../../../javascript/spotlight/admin/multi_image_selector.js","../../../javascript/spotlight/admin/pages.js","../../../javascript/spotlight/admin/progress_monitor.js","../../../javascript/spotlight/admin/readonly_checkbox.js","../../../javascript/spotlight/admin/search_typeahead.js","../../../javascript/spotlight/admin/select_related_input.js","../../../javascript/spotlight/admin/spotlight_nestable.js","../../../javascript/spotlight/admin/tabs.js","../../../javascript/spotlight/admin/translation_progress.js","../../../javascript/spotlight/admin/visibility_toggle.js","../../../javascript/spotlight/admin/users.js","../../../javascript/spotlight/admin/block_mixins/autocompleteable.js","../../../javascript/spotlight/admin/block_mixins/formable.js","../../../javascript/spotlight/admin/block_mixins/plustextable.js","../../../javascript/spotlight/admin/blocks/block.js","../../../javascript/spotlight/admin/blocks/resources_block.js","../../../javascript/spotlight/admin/blocks/browse_block.js","../../../javascript/spotlight/admin/blocks/browse_group_categories_block.js","../../../javascript/spotlight/admin/blocks/iframe_block.js","../../../javascript/spotlight/admin/blocks/link_to_search_block.js","../../../javascript/spotlight/admin/blocks/oembed_block.js","../../../javascript/spotlight/admin/blocks/pages_block.js","../../../javascript/spotlight/admin/blocks/rule_block.js","../../../javascript/spotlight/admin/blocks/search_result_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_base_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_carousel_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_embed_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_features_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_grid_block.js","../../../javascript/spotlight/admin/blocks/uploaded_items_block.js","../../../javascript/spotlight/admin/sir-trevor/block_controls.js","../../../javascript/spotlight/admin/sir-trevor/block_limits.js","../../../javascript/spotlight/admin/sir-trevor/locales.js","../../../javascript/spotlight/admin/index.js","../../../javascript/spotlight/controllers/tag_selector_controller.js","../../../javascript/spotlight/controllers/index.js","../../../javascript/spotlight/index.js"],"sourcesContent":["// Includes an unreleased RTL support pull request: https://github.com/ganlanyuan/tiny-slider/pull/658\n// Includes \"export default tns\" at the end of the file for spotlight/user/browse_group_categories.js\nvar tns = (function (){\nvar win = window;\n\nvar raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n\nvar win$1 = window;\n\nvar caf = win$1.cancelAnimationFrame\n || win$1.mozCancelAnimationFrame\n || function(id){ clearTimeout(id); };\n\nfunction extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}\n\nfunction checkStorageValue (value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}\n\nfunction setLocalStorage(storage, key, value, access) {\n if (access) {\n try { storage.setItem(key, value); } catch (e) {}\n }\n return value;\n}\n\nfunction getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n \n return 'tns' + window.tnsId;\n}\n\nfunction getBody () {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}\n\nvar docElement = document.documentElement;\n\nfunction setFakeBody (body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}\n\nfunction resetFakeBody (body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n}\n\n// get css-calc \n\nfunction calc() {\n var doc = document, \n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'), \n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) { \n result = val.replace(str, ''); \n break;\n }\n }\n } catch (e) {}\n \n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n}\n\n// get subpixel support value\n\nfunction percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '<div></div>';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n}\n\nfunction mediaquerySupport () {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n}\n\n// create and append style sheet\nfunction createStyleSheet (media, nonce) {\n // Create the <style> tag\n var style = document.createElement(\"style\");\n // style.setAttribute(\"type\", \"text/css\");\n\n // Add a media (and/or media query) here if you'd like!\n // style.setAttribute(\"media\", \"screen\")\n // style.setAttribute(\"media\", \"only screen and (max-width : 1024px)\")\n if (media) { style.setAttribute(\"media\", media); }\n\n // Add nonce attribute for Content Security Policy\n if (nonce) { style.setAttribute(\"nonce\", nonce); }\n\n // WebKit hack :(\n // style.appendChild(document.createTextNode(\"\"));\n\n // Add the <style> element to the page\n document.querySelector('head').appendChild(style);\n\n return style.sheet ? style.sheet : style.styleSheet;\n}\n\n// cross browsers addRule method\nfunction addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ?\n sheet.insertRule(selector + '{' + rules + '}', index) :\n sheet.addRule(selector, rules, index);\n // });\n}\n\n// cross browsers addRule method\nfunction removeCSSRule(sheet, index) {\n // return raf(function() {\n 'deleteRule' in sheet ?\n sheet.deleteRule(index) :\n sheet.removeRule(index);\n // });\n}\n\nfunction getCssRulesLength(sheet) {\n var rule = ('insertRule' in sheet) ? sheet.cssRules : sheet.rules;\n return rule.length;\n}\n\nfunction toDegree (y, x) {\n return Math.atan2(y, x) * (180 / Math.PI);\n}\n\nfunction getTouchDirection(angle, range) {\n var direction = false,\n gap = Math.abs(90 - Math.abs(angle));\n \n if (gap >= 90 - range) {\n direction = 'horizontal';\n } else if (gap <= range) {\n direction = 'vertical';\n }\n\n return direction;\n}\n\n// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\nfunction forEach (arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n}\n\nvar classListSupport = 'classList' in document.createElement('_');\n\nvar hasClass = classListSupport ?\n function (el, str) { return el.classList.contains(str); } :\n function (el, str) { return el.className.indexOf(str) >= 0; };\n\nvar addClass = classListSupport ?\n function (el, str) {\n if (!hasClass(el, str)) { el.classList.add(str); }\n } :\n function (el, str) {\n if (!hasClass(el, str)) { el.className += ' ' + str; }\n };\n\nvar removeClass = classListSupport ?\n function (el, str) {\n if (hasClass(el, str)) { el.classList.remove(str); }\n } :\n function (el, str) {\n if (hasClass(el, str)) { el.className = el.className.replace(str, ''); }\n };\n\nfunction hasAttr(el, attr) {\n return el.hasAttribute(attr);\n}\n\nfunction getAttr(el, attr) {\n return el.getAttribute(attr);\n}\n\nfunction isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\"; \n}\n\nfunction setAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n if (Object.prototype.toString.call(attrs) !== '[object Object]') { return; }\n\n for (var i = els.length; i--;) {\n for(var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n}\n\nfunction removeAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n attrs = (attrs instanceof Array) ? attrs : [attrs];\n\n var attrLength = attrs.length;\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n}\n\nfunction arrayFromNodeList (nl) {\n var arr = [];\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n return arr;\n}\n\nfunction hideElement(el, forceHide) {\n if (el.style.display !== 'none') { el.style.display = 'none'; }\n}\n\nfunction showElement(el, forceHide) {\n if (el.style.display === 'none') { el.style.display = ''; }\n}\n\nfunction isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n}\n\nfunction whichProperty(props){\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n \n prefixes.forEach(function(prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n for(var i = 0; i < props.length; i++){\n var prop = props[i];\n if( el.style[prop] !== undefined ){ return prop; }\n }\n\n return false; // explicit for ie9-\n}\n\nfunction has3DTransforms(tf){\n if (!tf) { return false; }\n if (!window.getComputedStyle) { return false; }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n el = doc.createElement('p'),\n has3d,\n cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : '';\n\n cssTF += 'transform';\n\n // Add it to the body to get the computed style\n body.insertBefore(el, null);\n\n el.style[tf] = 'translate3d(1px,1px,1px)';\n has3d = window.getComputedStyle(el).getPropertyValue(cssTF);\n\n body.fake ? resetFakeBody(body, docOverflow) : el.remove();\n\n return (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\n}\n\n// get transitionend, animationend based on transitionDuration\n// @propin: string\n// @propOut: string, first-letter uppercase\n// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\nfunction getEndProperty(propIn, propOut) {\n var endProp = false;\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n return endProp;\n}\n\n// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\nvar passiveOption = supportsPassive ? { passive: true } : false;\n\nfunction addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n}\n\nfunction removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n}\n\nfunction Events() {\n return {\n topics: {},\n on: function (eventName, fn) {\n this.topics[eventName] = this.topics[eventName] || [];\n this.topics[eventName].push(fn);\n },\n off: function(eventName, fn) {\n if (this.topics[eventName]) {\n for (var i = 0; i < this.topics[eventName].length; i++) {\n if (this.topics[eventName][i] === fn) {\n this.topics[eventName].splice(i, 1);\n break;\n }\n }\n }\n },\n emit: function (eventName, data) {\n data.type = eventName;\n if (this.topics[eventName]) {\n this.topics[eventName].forEach(function(fn) {\n fn(data, eventName);\n });\n }\n }\n };\n}\n\nfunction jsTransform(element, attr, prefix, postfix, to, duration, callback) {\n var tick = Math.min(duration, 10),\n unit = (to.indexOf('%') >= 0) ? '%' : 'px',\n to = to.replace(unit, ''),\n from = Number(element.style[attr].replace(prefix, '').replace(postfix, '').replace(unit, '')),\n positionTick = (to - from) / duration * tick,\n running;\n\n setTimeout(moveElement, tick);\n function moveElement() {\n duration -= tick;\n from += positionTick;\n element.style[attr] = prefix + from + unit + postfix;\n if (duration > 0) { \n setTimeout(moveElement, tick); \n } else {\n callback();\n }\n }\n}\n\n// Object.keys\nif (!Object.keys) {\n Object.keys = function(object) {\n var keys = [];\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n return keys;\n };\n}\n\n// ChildNode.remove\nif(!(\"remove\" in Element.prototype)){\n Element.prototype.remove = function(){\n if(this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\n\nvar tns = function(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true,\n textDirection: 'ltr',\n nonce: false\n }, options || {});\n\n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date;\n\n try {\n tnsStorage = win.localStorage;\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n if (!localStorageAccess) { tnsStorage = {}; }\n } catch(e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function(item) { tnsStorage.removeItem(item); });\n }\n // update browserInfo\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess);\n\n // get element nodes from selectors\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'],\n optionsElements = {};\n\n tnsList.forEach(function(item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) { console.warn('Can\\'t find', options[item]); }\n return;\n }\n }\n });\n\n // make sure at least 1 slide\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) { console.warn('No slides found in', options.container); }\n return;\n }\n\n // update options\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n for (var key in responsive) {\n var val = responsive[key];\n // update responsive\n // from: 300: 2\n // to:\n // 300: {\n // items: 2\n // }\n val = typeof val === 'number' ? {items: val} : val;\n responsiveTem[key] = val;\n }\n responsive = responsiveTem;\n responsiveTem = null;\n }\n\n // update options\n function updateOptions (obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') { obj[key] = 'page'; }\n if (key === 'edgePadding') { obj[key] = false; }\n if (key === 'autoHeight') { obj[key] = false; }\n }\n\n // update responsive options\n if (key === 'responsive') { updateOptions(obj[key]); }\n }\n }\n if (!carousel) { updateOptions(options); }\n\n\n // === define and set variables ===\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n if (responsive) { setBreakpointZone(); }\n if (carousel) { container.className += ' tns-vpfix'; }\n\n // fixedWidth: viewport > rightBoundary > indexMax\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n textDirection = getOption('textDirection'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(null, getOption('nonce')),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions, // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = (!carousel || !loop) ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = (function () {\n if (fixedWidth) {\n return function() { return center && !loop ? slideCount - 1 : Math.ceil(- rightBoundary / (fixedWidth + gutter)); };\n } else if (autoWidth) {\n return function() {\n for (var i = 0; i < slideCountNew; i++) {\n if (slidePositions[i] >= - rightBoundary) { return i; }\n }\n };\n } else {\n return function() {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n })(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {'visibilitychange': onVisibilityChange},\n docmentKeydownEvent = {'keydown': onDocumentKeydown},\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n }, dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n slideClonedClass = 'tns-slide-cloned',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false;\n\n // controls\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n }\n\n // nav\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n }\n\n // autoplay\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['<span class=\\'tns-visually-hidden\\'>', ' animation</span>'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ?\n function(a, b) { return a.x - b.x; } :\n function(a, b) { return a.y - b.y; };\n }\n\n // disable slider when slidecount <= items\n if (!autoWidth) { resetVariblesWhenDisable(disable || freeze); }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n\n }\n\n if (carousel) { container.className = container.className.replace('tns-vpfix', ''); }\n initStructure();\n initSheet();\n initSliderTransform();\n\n // === COMMON FUNCTIONS === //\n function resetVariblesWhenDisable (condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide () {\n var tem = carousel ? index - cloneCount : index;\n while (tem < 0) { tem += slideCount; }\n return tem%slideCount + 1;\n }\n\n function getStartIndex (ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex (i) {\n if (i == null) { i = index; }\n\n if (carousel) { i -= cloneCount; }\n while (i < 0) { i += slideCount; }\n\n return Math.floor(i%slideCount);\n }\n\n function getCurrentNavIndex () {\n var absIndex = getAbsIndex(),\n result;\n\n result = navAsThumbnails ? absIndex :\n fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) :\n Math.floor(absIndex / items);\n\n // set active nav to the last one when reaches the right edge\n if (!loop && carousel && index === indexMax) { result = pages - 1; }\n\n return result;\n }\n\n function getItemsMax () {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || (fixedWidth && !viewportMax)) {\n return slideCount - 1;\n // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) { arr.push(options[str]); }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n if (tem && (fixedWidth || tem < slideCount)) { arr.push(tem); }\n }\n }\n\n if (!arr.length) { arr.push(0); }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop () {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount)/2) : (itemsMax * 4 - slideCount);\n result = Math.max(itemsMax, result);\n\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth () {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition (pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth (el) {\n if (el == null) { return; }\n var div = doc.createElement('div'), rect, width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth () {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption (item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) { return true; }\n }\n }\n return false;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n function getOption (item, ww) {\n if (ww == null) { ww = windowWidth; }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) { result = responsive[bp][item]; }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') { result = getOption('items'); }\n if (!carousel && (item === 'slideBy' || item === 'items')) { result = Math.floor(result); }\n\n return result;\n }\n }\n\n function getSlideMarginLeft (i) {\n return CALC ?\n CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' :\n i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles (edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n if (gutterTem) { gap -= gutterTem; }\n str = horizontal ?\n 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' :\n 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';';\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { str += getTransitionDurationStyle(speedTem); }\n return str;\n }\n\n function getContainerWidth (fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ?\n CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' :\n slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle (fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = (fixedWidthTem + gutterTem) + 'px';\n } else {\n if (!carousel) { itemsTem = Math.floor(itemsTem); }\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ?\n CALC + '(100% / ' + dividend + ')' :\n 100 / dividend + '%';\n }\n\n width = 'width:' + width;\n\n // inner slider: overwrite outer slider styles\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle (gutterTem) {\n var str = '';\n\n // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix (name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n if (prefix) { prefix = '-' + prefix + '-'; }\n\n return prefix;\n }\n\n function getTransitionDurationStyle (speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle (speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure () {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw';\n\n // set container properties\n if (container.id === '') { container.id = slideId; }\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n if (autoWidth) { newContainerClasses += ' tns-autowidth'; }\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses;\n\n // add constrain layer for carousel\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container);\n\n // add id, class, aria attributes\n // before clone slides\n forEach(slideItems, function(item, i) {\n addClass(item, 'tns-item');\n if (!item.id) { item.id = slideId + '-item' + i; }\n if (!carousel && animateNormal) { addClass(item, animateNormal); }\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n });\n\n // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(),\n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j%slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n addClass(cloneFirst, slideClonedClass);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n addClass(cloneLast, slideClonedClass);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n\n }\n\n function initSliderTransform () {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img');\n\n // add img load event listener\n forEach(imgs, function(img) {\n var src = img.src;\n\n if (!lazyload) {\n // not data img\n if (src && src.indexOf('data:image') < 0) {\n img.src = '';\n addEvents(img, imgEvents);\n addClass(img, 'loading');\n\n img.src = src;\n // data img\n } else {\n imgLoaded(img);\n }\n }\n });\n\n // set imgsComplete\n raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), function() { imgsComplete = true; }); });\n\n // reset imgs for auto height: check visible imgs only\n if (hasOption('autoHeight')) { imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck); });\n\n } else {\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck () {\n if (autoWidth && slideCount > 1) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n\n (function stylesApplicationCheck() {\n var left = slideItems[num].getBoundingClientRect().left;\n var right = slideItems[num - 1].getBoundingClientRect().right;\n\n (Math.abs(left - right) <= 1) ?\n initSliderTransformCore() :\n setTimeout(function(){ stylesApplicationCheck(); }, 16);\n })();\n\n } else {\n initSliderTransformCore();\n }\n }\n\n\n function initSliderTransformCore () {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n if (freezable) { freeze = getFreeze(); }\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n }\n\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n\n function initSheet () {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) {\n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // #### LAYOUT\n\n // ## INLINE-BLOCK VS FLOAT\n\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n }\n\n\n // ## BASIC STYLES\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n }\n\n // inner wrapper styles\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet));\n\n // container styles\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n }\n\n // slide styles\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n if (options.gutter) { str += getSlideGutterStyle(options.gutter); }\n // set gallery items transition-duration\n if (!carousel) {\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n if (ANIMATIONDURATION) { str += getAnimationDurationStyle(speed); }\n }\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n\n // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n } else {\n // middle wrapper styles\n update_carousel_transition_duration();\n\n // inner wrapper styles\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight);\n\n // container styles\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n if (gutter) { str += getSlideGutterStyle(gutter); }\n\n // append to the last line\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n }\n\n // ## MEDIAQUERIES\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp);\n\n // middle wrapper string\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n }\n\n // inner wrapper string\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n }\n\n // container string\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || (fixedWidth && 'gutter' in opts))) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n }\n\n // slide string\n if ('fixedWidth' in opts || (fixedWidth && 'gutter' in opts) || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n }\n // set gallery items transition-duration\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) { slideStr += getTransitionDurationStyle(speedBP); }\n if (ANIMATIONDURATION) { slideStr += getAnimationDurationStyle(speedBP); }\n }\n if (slideStr) { slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}'; }\n\n // add up\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools () {\n // == slides ==\n updateSlideStatus();\n\n // == live region ==\n outerWrapper.insertAdjacentHTML('afterbegin', '<div class=\"tns-liveregion tns-visually-hidden\" aria-live=\"polite\" aria-atomic=\"true\">slide <span class=\"current\">' + getLiveRegionStr() + '</span> of ' + slideCount + '</div>');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current');\n\n // == autoplayInit ==\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n if (autoplayButton) {\n setAttrs(autoplayButton, {'data-action': txt});\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '<button type=\"button\" data-action=\"' + txt + '\">' + autoplayHtmlStrings[0] + txt + autoplayHtmlStrings[1] + autoplayText[0] + '</button>');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n }\n\n // add event\n if (autoplayButton) {\n addEvents(autoplayButton, {'click': toggleAutoplay});\n }\n\n if (autoplay) {\n startAutoplay();\n if (autoplayHoverPause) { addEvents(container, hoverEvents); }\n if (autoplayResetOnVisibility) { addEvents(container, visibilityEvent); }\n }\n }\n\n // == navInit ==\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount;\n // customized nav\n // will not hide the navs in case they're thumbnails\n if (navContainer) {\n setAttrs(navContainer, {'aria-label': 'Carousel Pagination'});\n navItems = navContainer.children;\n forEach(navItems, function(item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId,\n });\n });\n\n // generated nav\n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '<button type=\"button\" data-nav=\"' + i +'\" tabindex=\"-1\" aria-controls=\"' + slideId + '\" ' + hiddenStr + ' aria-label=\"' + navStr + (i + 1) +'\"></button>';\n }\n navHtml = '<div class=\"tns-nav\" aria-label=\"Carousel Pagination\">' + navHtml + '</div>';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility();\n\n // add transition\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass);\n\n // add events\n addEvents(navContainer, navEvents);\n }\n\n\n\n // == controlsInit ==\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '<div class=\"tns-controls\" aria-label=\"Carousel Navigation\" tabindex=\"0\"><button type=\"button\" data-controls=\"prev\" tabindex=\"-1\" aria-controls=\"' + slideId +'\">' + controlsText[0] + '</button><button type=\"button\" data-controls=\"next\" tabindex=\"-1\" aria-controls=\"' + slideId +'\">' + controlsText[1] + '</button></div>');\n\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1',\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs(prevButton, {'data-controls' : 'prev'});\n setAttrs(nextButton, {'data-controls' : 'next'});\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n\n updateControlsStatus();\n\n // add events\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n }\n\n // hide tools if needed\n disableUI();\n }\n\n function initEvents () {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) { addEvents(container, touchEvents, options.preventScrollOnTouch); }\n if (mouseDrag) { addEvents(container, dragEvents); }\n if (arrowKeys) { addEvents(doc, docmentKeydownEvent); }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {'resize': onResize});\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) { doAutoHeight(); }\n }\n\n doLazyLoad();\n if (disable) { disableSlider(); } else if (freeze) { freezeSlider(); }\n\n events.on('indexChanged', additionalUpdates);\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n if (typeof onInit === 'function') { onInit(info()); }\n isOn = true;\n }\n\n function destroy () {\n // sheet\n sheet.disabled = true;\n if (sheet.ownerNode) { sheet.ownerNode.remove(); }\n\n // remove win event listeners\n removeEvents(win, {'resize': onResize});\n\n // arrowKeys, controls, nav\n if (arrowKeys) { removeEvents(doc, docmentKeydownEvent); }\n if (controlsContainer) { removeEvents(controlsContainer, controlsEvents); }\n if (navContainer) { removeEvents(navContainer, navEvents); }\n\n // autoplay\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n if (autoplayButton) { removeEvents(autoplayButton, {'click': toggleAutoplay}); }\n if (autoplay) { clearInterval(autoplayTimer); }\n\n // container\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n if (touch) { removeEvents(container, touchEvents); }\n if (mouseDrag) { removeEvents(container, dragEvents); }\n\n // cache Object values in options && reset HTML\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n\n tnsList.forEach(function(item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (typeof el === 'object' && el) {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n });\n\n\n // reset variables\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null;\n // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') { this[a] = null; }\n }\n isOn = false;\n }\n\n// === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n function onResize (e) {\n raf(function(){ resizeTasks(getEvent(e)); });\n }\n\n function resizeTasks (e) {\n if (!isOn) { return; }\n if (nested === 'outer') { events.emit('outerResized', info(e)); }\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone;\n // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n if (bpChanged) { events.emit('newBreakpointStart', info(e)); }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n }\n // update options\n resetVariblesWhenDisable(disable);\n\n viewport = getViewportWidth(); // <= edgePadding, gutter\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n needContainerTransform = true;\n }\n }\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) { indexMax = getIndexMax(); } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n updateIndex();\n }\n }\n\n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n if (!autoplay) { autoplayHoverPause = autoplayResetOnVisibility = false; }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ?\n addEvents(doc, docmentKeydownEvent) :\n removeEvents(doc, docmentKeydownEvent);\n }\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n if (nav !== navTem) {\n if (nav) {\n showElement(navContainer);\n updateNavVisibility();\n } else {\n hideElement(navContainer);\n }\n }\n if (touch !== touchTem) {\n touch ?\n addEvents(container, touchEvents, options.preventScrollOnTouch) :\n removeEvents(container, touchEvents);\n }\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ?\n addEvents(container, dragEvents) :\n removeEvents(container, dragEvents);\n }\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) { showElement(autoplayButton); }\n if (!animating && !autoplayUserPaused) { startAutoplay(); }\n } else {\n if (autoplayButton) { hideElement(autoplayButton); }\n if (animating) { stopAutoplay(); }\n }\n }\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ?\n addEvents(container, hoverEvents) :\n removeEvents(container, hoverEvents);\n }\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ?\n addEvents(doc, visibilityEvent) :\n removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) { needContainerTransform = true; }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) { innerWrapper.style.height = ''; }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) { needContainerTransform = true; }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n if (indChanged) {\n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) { additionalUpdates(); }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) { updateGallerySlidePositions(); }\n\n if (!disable && !freeze) {\n // non-mediaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = getSlideWidthStyle(fixedWidth, gutter, items) +\n getSlideGutterStyle(gutter);\n\n // remove the last line and\n // add new styles\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n }\n\n // auto height\n if (autoHeight) { doAutoHeight(); }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) { events.emit('newBreakpointEnd', info(e)); }\n }\n\n\n\n\n\n // === INITIALIZATION FUNCTIONS === //\n function getFreeze () {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone () {\n breakpointZone = 0;\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n if (windowWidth >= bp) { breakpointZone = bp; }\n }\n }\n\n // (slideBy, indexMin, indexMax) => index\n var updateIndex = (function () {\n return loop ?\n carousel ?\n // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n\n leftEdge += slideBy;\n rightEdge -= slideBy;\n\n // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter)%(fixedWidth + gutter)) { rightEdge -= 1; }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } :\n // loop + gallery\n function() {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) { index -= slideCount; }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) { index += slideCount; }\n }\n } :\n // non-loop\n function() {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n })();\n\n function disableUI () {\n if (!autoplay && autoplayButton) { hideElement(autoplayButton); }\n if (!nav && navContainer) { hideElement(navContainer); }\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n\n function enableUI () {\n if (autoplay && autoplayButton) { showElement(autoplayButton); }\n if (nav && navContainer) { showElement(navContainer); }\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n }\n }\n\n function freezeSlider () {\n if (frozen) { return; }\n\n // remove edge padding from inner wrapper\n if (edgePadding) { innerWrapper.style.margin = '0px'; }\n\n // add class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { addClass(slideItems[i], str); }\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n disableUI();\n\n frozen = true;\n }\n\n function unfreezeSlider () {\n if (!frozen) { return; }\n\n // restore edge padding for inner wrapper\n // for mordern browsers\n if (edgePadding && CSSMQ) { innerWrapper.style.margin = ''; }\n\n // remove class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { removeClass(slideItems[i], str); }\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n enableUI();\n\n frozen = false;\n }\n\n function disableSlider () {\n if (disabled) { return; }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { hideElement(slideItems[j]); }\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // vertical slider\n if (!horizontal || !carousel) { removeAttrs(innerWrapper, ['style']); }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // update tools\n disableUI();\n\n disabled = true;\n }\n\n function enableSlider () {\n if (!disabled) { return; }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { showElement(slideItems[j]); }\n showElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n }\n\n // update tools\n enableUI();\n\n disabled = false;\n }\n\n function updateLiveRegion () {\n var str = getLiveRegionStr();\n if (liveregionCurrent.innerHTML !== str) { liveregionCurrent.innerHTML = str; }\n }\n\n function getLiveRegionStr () {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end;\n }\n\n function getVisibleSlideRange (val) {\n if (val == null) { val = getContainerTransformValue(); }\n var start = index, end, rangestart, rangeend;\n\n // get range start, range end for autoWidth and fixedWidth\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = - (parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n }\n\n // get start, end\n // - check auto width\n if (autoWidth) {\n slidePositions.forEach(function(point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) { start = i; }\n if (rangeend - point >= 0.5) { end = i; }\n }\n });\n\n // - check percentage width, fixed width\n } else {\n\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n if (center || edgePadding) {\n start = Math.floor(rangestart/cell);\n end = Math.ceil(rangeend/cell - 1);\n } else {\n end = start + Math.ceil(viewport/cell) - 1;\n }\n\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad () {\n if (lazyload && !disable) {\n var arg = getVisibleSlideRange();\n arg.push(lazyloadSelector);\n\n getImageArray.apply(null, arg).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n eve[TRANSITIONEND] = function (e) { e.stopPropagation(); };\n addEvents(img, eve);\n\n addEvents(img, imgEvents);\n\n // update src\n img.src = getAttr(img, 'data-src');\n\n // update srcset\n var srcset = getAttr(img, 'data-srcset');\n if (srcset) { img.srcset = srcset; }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded (e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed (e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded (img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed (img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted (img) {\n addClass(img, imgCompleteClass);\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray (start, end, imgSelector) {\n var imgs = [];\n if (!imgSelector) { imgSelector = 'img'; }\n\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll(imgSelector), function (img) { imgs.push(img); });\n start++;\n }\n\n return imgs;\n }\n\n // check if all visible images are loaded\n // and update container height if it's done\n function doAutoHeight () {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function(){ imgsLoadedCheck(imgs, updateInnerWrapperHeight); });\n }\n\n function imgsLoadedCheck (imgs, cb) {\n // execute callback function if all images are complete\n if (imgsComplete) { return cb(); }\n\n // check image classes\n imgs.forEach(function (img, index) {\n if (!lazyload && img.complete) { imgCompleted(img); } // Check image.complete\n if (hasClass(img, imgCompleteClass)) { imgs.splice(index, 1); }\n });\n\n // execute callback function if selected images are all complete\n if (!imgs.length) { return cb(); }\n\n // otherwise execute this functiona again\n raf(function(){ imgsLoadedCheck(imgs, cb); });\n }\n\n function additionalUpdates () {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n\n function update_carousel_transition_duration () {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight (slideStart, slideRange) {\n var heights = [];\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n }\n\n // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n function updateInnerWrapperHeight () {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) { wp.style.height = maxHeight + 'px'; }\n }\n\n // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n function setSlidePositions () {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n\n forEach(slideItems, function(item, i) {\n // skip the first slide\n if (i) { slidePositions.push(item.getBoundingClientRect()[attr] - base); }\n // add the end edge\n if (i === slideCountNew - 1) { slidePositions.push(item.getBoundingClientRect()[attr2] - base); }\n });\n }\n\n // update slide\n function updateSlideStatus () {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n\n forEach(slideItems, function(item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n }\n // hide slides\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n }\n\n // gallery: update slide position\n function updateGallerySlidePositions () {\n var l = index + Math.min(slideCount, items);\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n }\n\n // remove outlet animation\n removeClass(item, animateOut);\n }\n\n // removing '.tns-moving'\n setTimeout(function() {\n forEach(slideItems, function(el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n }\n\n // set tabindex on Nav\n function updateNavStatus () {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n\n setAttrs(navCurrent, {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName (el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton (el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled (el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement (isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n }\n\n // set 'disabled' to true on controls when reach the edges\n function updateControlsStatus () {\n if (!controls || rewind || loop) { return; }\n\n var prevDisabled = (prevIsButton) ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = (nextIsButton) ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = (index <= indexMin) ? true : false,\n disableNext = (!rewind && index >= indexMax) ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n }\n\n // set duration\n function resetDuration (el, str) {\n if (TRANSITIONDURATION) { el.style[TRANSITIONDURATION] = str; }\n }\n\n function getSliderWidth () {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap (num) {\n if (num == null) { num = index; }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? ((viewport - gap) - (slidePositions[num + 1] - slidePositions[num] - gutter))/2 :\n fixedWidth ? (viewport - fixedWidth) / 2 :\n (items - 1) / 2;\n }\n\n function getRightBoundary () {\n var gap = edgePadding ? gutter : 0,\n result = (viewport + gap) - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? - (fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() :\n getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n if (result > 0) { result = 0; }\n\n return result;\n }\n\n function getContainerTransformValue (num) {\n if (num == null) { num = index; }\n\n var val;\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = - (fixedWidth + gutter) * num;\n if (center) { val += getCenterGap(); }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n if (center) { num -= getCenterGap(); }\n val = - num * 100 / denominator;\n }\n } else {\n val = - slidePositions[num];\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) { val = Math.max(val, rightBoundary); }\n\n val += (horizontal && !autoWidth && !fixedWidth) ? '%' : 'px';\n\n return val;\n }\n\n function doContainerTransformSilent (val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform (val) {\n if (val == null) { val = getContainerTransformValue(); }\n if (textDirection === 'rtl' && val.charAt(0) === '-') {\n val = val.substr(1);\n }\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide (number, classOut, classIn, isOut) {\n var l = number + items;\n if (!loop) { l = Math.min(l, slideCountNew); }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i];\n\n // set item positions\n if (!isOut) { item.style.left = (i - index) * 100 / items + '%'; }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n removeClass(item, classOut);\n addClass(item, classIn);\n\n if (isOut) { slideItemsOut.push(item); }\n }\n }\n\n // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n var transformCore = (function () {\n return carousel ?\n function () {\n resetDuration(container, '');\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or\n // zero duration for all browsers\n doContainerTransform();\n // run fallback function manually\n // when duration is 0 / container is hidden\n if (!speed || !isVisible(container)) { onTransitionEnd(); }\n\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) { updateContentWrapperHeight(); }\n } :\n function () {\n slideItemsOut = [];\n\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn);\n\n // run fallback function manually\n // when transition or animation not supported / duration is 0\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) { onTransitionEnd(); }\n };\n })();\n\n function render (e, sliderMoved) {\n if (updateIndexBeforeTransform) { updateIndex(); }\n\n // render when slider was moved (touch or drag) even though index may not change\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n if (autoHeight) { doAutoHeight(); }\n\n // pause autoplay when click or keydown from user\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) { stopAutoplay(); }\n\n running = true;\n transformCore();\n }\n }\n\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n function strTrans (str) {\n return str.toLowerCase().replace(/-/g, '');\n }\n\n // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n function onTransitionEnd (event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i];\n // set item positions\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) {\n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event'\n * have to check event first, otherwise event.target will cause an error\n * => or 'gallery' mode:\n * + event target is slide item\n * => or 'carousel' mode:\n * + event target is container,\n * + event.property is the same with transform attribute\n */\n if (!event ||\n !carousel && event.target.parentNode === container ||\n event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n\n if (!updateIndexBeforeTransform) {\n var indexTem = index;\n updateIndex();\n if (index !== indexTem) {\n events.emit('indexChanged', info());\n\n doContainerTransformSilent();\n }\n }\n\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n running = false;\n indexCached = index;\n }\n }\n\n }\n\n // # ACTIONS\n function goTo (targetIndex, e) {\n if (freeze) { return; }\n\n // prev slideBy\n if (targetIndex === 'prev') {\n onControlsClick(e, -1);\n\n // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1);\n\n // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n var absIndex = getAbsIndex(),\n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = - absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') { targetIndex = parseInt(targetIndex); }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) { targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); }\n\n indexGap = targetIndex - absIndex;\n }\n }\n\n // gallery: make sure new page won't overlap with current page\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += (index + indexGap - slideCount) >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap;\n\n // make sure index is in range\n if (carousel && loop) {\n if (index < indexMin) { index += slideCount; }\n if (index > indexMax) { index -= slideCount; }\n }\n\n // if index is changed, start rendering\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n\n }\n }\n\n // on controls click\n function onControlsClick (e, dir) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { target = target.parentNode; }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n if (autoWidth) { index = Math.floor(index); }\n // pass e when click control buttons or keydown\n render((passEventObject || (e && e.type === 'keydown')) ? e : null);\n }\n }\n\n // on nav click\n function onNavClick (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n e = getEvent(e);\n var target = getTarget(e), navIndex;\n\n // find the clicked nav item\n while (target !== navContainer && !hasAttr(target, 'data-nav')) { target = target.parentNode; }\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) { stopAutoplay(); }\n navClicked = -1; // reset navClicked\n }\n }\n }\n\n // autoplay functions\n function setAutoplayTimer () {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n\n animating = true;\n }\n\n function stopAutoplayTimer () {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton (action, txt) {\n setAttrs(autoplayButton, {'data-action': action});\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay () {\n setAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('stop', autoplayText[1]); }\n }\n\n function stopAutoplay () {\n stopAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('start', autoplayText[0]); }\n }\n\n // programaitcally play/pause the slider\n function play () {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n function pause () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange () {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause () {\n if (animating) {\n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart () {\n if (autoplayHoverPaused) {\n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n }\n\n // keydown events on document\n function onDocumentKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n }\n\n // on key control\n function onControlsKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) { onControlsClick(e, -1); }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n }\n\n // set focus\n function setFocus (el) {\n el.focus();\n }\n\n // on key nav\n function onNavKeydown (e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n if (!hasAttr(curElement, 'data-nav')) { return; }\n\n // var code = e.keyCode,\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) { setFocus(navItems[navIndex - 1]); }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) { setFocus(navItems[navIndex + 1]); }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent (e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n function getTarget (e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent (e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior (e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected () {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n if (autoplay && animating) { stopAutoplayTimer(); }\n\n panStart = true;\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove (e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) { rafIndex = raf(function(){ panUpdate(e); }); }\n } else {\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) { preventScroll = true; }\n }\n\n if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) {\n e.preventDefault();\n }\n }\n }\n\n function panUpdate (e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n caf(rafIndex);\n if (panStart) { rafIndex = raf(function(){ panUpdate(e); }); }\n\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) { preventScroll = true; }\n\n try {\n if (e.type) { events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e)); }\n } catch(err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew): dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd (e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n if (carousel) { resetDuration(container, ''); }\n panStart = false;\n\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {'click': function preventClick (e) {\n preventDefaultBehavior(e);\n removeEvents(target, {'click': preventClick});\n }});\n }\n\n if (carousel) {\n rafIndex = raf(function() {\n if (horizontal && !autoWidth) {\n var indexMoved = - dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n if (textDirection === 'rtl') { \n index += indexMoved * -1;\n } else {\n index += indexMoved;\n }\n } else {\n var moved = - (translateInit + dist);\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n if (moved > slidePositions[i] && dist < 0) { index += 1; }\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n }\n\n // reset\n if (options.preventScrollOnTouch === 'auto') { preventScroll = false; }\n if (swipeAngle) { moveDirectionExpected = '?'; }\n if (autoplay && !animating) { setAutoplayTimer(); }\n }\n\n // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n function updateContentWrapperHeight () {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages () {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n function updateNavVisibility () {\n if (!nav || navAsThumbnails) { return; }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n }\n\n // cache pages\n pagesCached = pages;\n }\n }\n\n function info (e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {},\n };\n }\n\n return {\n version: '2.9.3',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function() {\n return tns(extend(options, optionsElements));\n }\n };\n};\n\nreturn tns;\n})();\n\nexport default tns;","import tns from 'tiny-slider'\n\nexport default class {\n connect() {\n var $container, slider;\n\n function init() {\n var data = $container.data();\n var sidebar = $container.data().sidebar;\n var items = data.browseGroupCategoriesCount;\n var dir = $('html').attr('dir');\n var controls = $container.parent().find('.browse-group-categories-controls')[0];\n\n slider = tns({\n container: $container[0],\n controlsContainer: controls,\n loop: false,\n nav: false,\n items: 1,\n slideBy: 'page',\n textDirection: dir,\n responsive: {\n 576: {\n items: itemCount(items, sidebar)\n }\n }\n });\n }\n\n // Destroy the slider instance, as tns will change the dom elements, causing some issues with turbolinks\n function setupDestroy() {\n document.addEventListener('turbolinks:before-cache', function() {\n if (slider && slider.destroy) {\n slider.destroy();\n }\n });\n }\n\n function itemCount(items, sidebar) {\n if (items < 3) {\n return items;\n }\n return sidebar ? 3 : 4;\n }\n\n return $('[data-browse-group-categories-carousel]').each(function() {\n $container = $(this);\n init();\n setupDestroy();\n });\n }\n}\n","export default class {\n connect() {\n if ($.fn.carousel) {\n $('.carousel').carousel();\n }\n }\n}\n","export default class {\n connect() {\n var $clearBtn = $('.btn-reset');\n var $input = $clearBtn.prev('#browse_q');\n var btnCheck = function(){\n if ($input.val() !== '') {\n $clearBtn.css('display', 'block');\n } else {\n $clearBtn.css('display', 'none');\n }\n };\n\n btnCheck();\n $input.on('keyup', function() {\n btnCheck();\n });\n\n $clearBtn.on('click', function(event) {\n event.preventDefault();\n $input.val('');\n });\n }\n}\n","import OpenSeadragon from 'openseadragon';\n\nexport default class {\n connect() {\n $('.zpr-link').on('click', function() {\n var modalDialog = $('#blacklight-modal .modal-dialog');\n var modalContent = modalDialog.find('.modal-content')\n modalDialog.removeClass('modal-lg')\n modalDialog.addClass('modal-xl')\n modalContent.html('<div id=\"osd-modal-container\"></div>');\n var controls = `<div class=\"controls d-flex justify-content-center justify-content-md-end\">\n <div class=\"custom-close-controls pr-3 pe-3 pt-3\">\n <button type=\"button\" class=\"btn btn-dark\" data-dismiss=\"modal\" data-bs-dismiss=\"modal\" aria-hidden=\"true\">${Spotlight.ZprLinks.close}</button>\n </div>\n <div class=\"zoom-controls mb-3 mr-md-3 me-md-3\">\n <button id=\"osd-zoom-in\" type=\"button\" class=\"btn btn-dark\">${Spotlight.ZprLinks.zoomIn}</button>\n <button id=\"osd-zoom-out\" type=\"button\" class=\"btn btn-dark\">${Spotlight.ZprLinks.zoomOut}</button>\n </div>\n <div id=\"empty-div-required-by-osd\"></div>\n </div>`\n\n $('#osd-modal-container').append('<div id=\"osd-div\"></div>');\n $('#osd-modal-container').append(controls);\n\n $('#blacklight-modal').modal('show');\n \n $('#blacklight-modal').one('hidden.bs.modal', function (event) {\n modalDialog.removeClass('modal-xl')\n modalDialog.addClass('modal-lg')\n });\n\n OpenSeadragon({\n id: 'osd-div',\n zoomInButton: \"osd-zoom-in\",\n zoomOutButton: \"osd-zoom-out\",\n // This is a hack where OpenSeadragon (if using mapped buttons) requires you\n // to map all of the buttons.\n homeButton: \"empty-div-required-by-osd\",\n fullPageButton: \"empty-div-required-by-osd\",\n nextButton: \"empty-div-required-by-osd\",\n previousButton: \"empty-div-required-by-osd\",\n tileSources: [$(this).data('iiif-tilesource')]\n })\n });\n }\n}\n","import BrowseGroupCateogries from 'spotlight/user/browse_group_categories'\nimport Carousel from 'spotlight/user/carousel'\nimport ClearFormButton from 'spotlight/user/clear_form_button'\nimport ZprLinks from 'spotlight/user/zpr_links'\n\nexport default class {\n connect() {\n new BrowseGroupCateogries().connect()\n new Carousel().connect()\n new ClearFormButton().connect()\n new ZprLinks().connect()\n }\n}\n","export default class {\n connect() {\n $(\"[data-action='add-another']\").on(\"click\", function(event) {\n event.preventDefault();\n\n var templateId = $(this).data('template-id');\n\n var template = document.querySelector('#' + templateId);\n var clone = document.importNode(template.content, true);\n\n var count = $(this).closest('.form-group').find('[name=\"' + $(clone).find('[name]').attr('name') + '\"]').length + 1;\n $(clone).find('[id]').each(function(index, el) {\n $(el).attr('id', $(el).attr('id') + '_' + String(count));\n });\n\n $(clone).find('[for]').each(function(index, el) {\n $(el).attr('for', $(el).attr('for') + '_' + String(count));\n });\n\n\n $(clone).insertBefore(this);\n });\n }\n}\n","export default class {\n connect() {\n $(\"[data-expanded-add-button]\").each((_i, el) => this.addExpandBehaviorToButton($(el)))\n }\n\n addExpandBehaviorToButton(button){\n var settings = {\n speed: (button.data('speed') || 450),\n animate_width: (button.data('animate_width') || 425)\n }\n var target = $(button.data('field-target'));\n var save = $(\"input[data-behavior='save']\", target);\n var cancel = $(\"input[data-behavior='cancel']\", target);\n var input = $(\"input[type='text']\", target);\n var original_width = button.outerWidth();\n var expanded = false;\n\n // Animate button open when the mouse enters or\n // the button is given focus (i.e. clicked/tabbed)\n button.on(\"mouseenter focus\", function(){\n expandButton();\n });\n\n // Don't allow blank titles\n save.on('click', function(){\n if ( inputEmpty() ) {\n return false;\n }\n });\n\n // Empty input and collapse\n // button on cancel click\n cancel.on('click', function(e){\n e.preventDefault();\n input.val('');\n collapseButton();\n });\n\n // Collapse the button on when\n // an empty input loses focus\n input.on(\"blur\", function(){\n if ( inputEmpty() ) {\n collapseButton();\n }\n });\n function expandButton(){\n // If this has not yet been expanded, recalculate original_width to \n // handle things that may have been originally hidden.\n if (!expanded) {\n original_width = button.outerWidth();\n }\n if(button.outerWidth() <= (original_width + 5)) {\n expanded = true;\n button.animate(\n {width: settings.animate_width + 'px'}, settings.speed, function(){\n target.show(0, function(){\n input.focus();\n // Set the button to auto width to make\n // sure it has room for any inputs\n button.width(\"auto\");\n // Explicitly set the width of the button\n // so the close animation works properly\n button.width(button.width());\n });\n }\n )\n }\n }\n function collapseButton(){\n target.hide();\n button.animate({width: original_width + 'px'}, settings.speed);\n }\n function inputEmpty(){\n return $.trim(input.val()) == \"\";\n }\n }\n}\n","export default class {\n connect() {\n // Add Select/Deselect all input behavior\n this.addCheckboxToggleBehavior();\n this.addEnableToggleBehavior();\n }\n \n // Add Select/Deselect all behavior for metadata field names for a given view e.g. Item details. \n addCheckboxToggleBehavior() {\n $(\"[data-behavior='metadata-select']\").each(function(){\n var selectCheckbox = $(this);\n var parentCell = selectCheckbox.parents(\"th\");\n var table = parentCell.closest(\"table\");\n var columnRows = $(\"tr td:nth-child(\" + (parentCell.index() + 1) + \")\", table);\n var checkboxes = $(\"input[type='checkbox']\", columnRows);\n updateSelectAllInput(selectCheckbox, columnRows);\n // Add the check/uncheck behavior to the select/deselect all checkbox\n selectCheckbox.on('click', function(e){\n var allChecked = allCheckboxesChecked(columnRows);\n columnRows.each(function(){\n $(\"input[type='checkbox']\", $(this)).prop('checked', !allChecked);\n });\n });\n // When a single checkbox is selected/unselected, the \"All\" checkbox should be updated accordingly.\n checkboxes.each(function(){\n $(this).on('change', function(){\n updateSelectAllInput(selectCheckbox, columnRows);\n });\n }); \n });\n\n // Check number of checkboxes against the number of checked\n // checkboxes to determine if all of them are checked or not\n function allCheckboxesChecked(elements) {\n return ($(\"input[type='checkbox']\", elements).length == $(\"input[type='checkbox']:checked\", elements).length)\n }\n\n // Check or uncheck the \"All\" checkbox for each view column, e.g. Item details, List, etc.\n function updateSelectAllInput(checkbox, elements) {\n if ( allCheckboxesChecked(elements) ) {\n checkbox.prop('checked', true);\n } else {\n checkbox.prop('checked', false);\n }\n }\n }\n \n addEnableToggleBehavior() {\n $(\"[data-behavior='enable-feature']\").each(function(){\n var checkbox = $(this);\n var target = $($(this).data('target'));\n\n checkbox.on('change', function() {\n if ($(this).is(':checked')) {\n target.find('input:checkbox').not(\"[data-behavior='enable-feature']\").prop('checked', true).attr('disabled', false);\n } else {\n target.find('input:checkbox').not(\"[data-behavior='enable-feature']\").prop('checked', false).attr('disabled', true);\n }\n });\n });\n }\n}","import Clipboard from 'clipboard';\n\nexport default class {\n connect() {\n new Clipboard('.copy-email-addresses');\n }\n}\n","export default class Iiif {\n constructor(manifestUrl, manifest) {\n this.manifestUrl = manifestUrl;\n this.manifest = manifest;\n }\n\n sequences() {\n var it = {};\n var context = this;\n it[Symbol.iterator] = function*() {\n for (let sequence of context.manifest.sequences) {\n yield sequence;\n };\n }\n return it;\n }\n\n canvases() {\n var it = {};\n var context = this;\n it[Symbol.iterator] = function*() {\n for (let sequence of context.sequences()) {\n for (let canvas of sequence.canvases) {\n yield canvas;\n }\n }\n }\n return it;\n }\n\n images() {\n var it = {};\n var context = this;\n it[Symbol.iterator] = function*() {\n for (let canvas of context.canvases()) {\n for (let image of canvas.images) {\n var iiifService = image.resource.service['@id'];\n yield {\n 'thumb': iiifService + '/full/!100,100/0/default.jpg',\n 'tilesource': iiifService + '/info.json',\n 'manifest': context.manifestUrl,\n 'canvasId': canvas['@id'],\n 'imageId': image['@id']\n };\n }\n }\n }\n return it;\n }\n\n imagesArray() {\n return Array.from(this.images())\n }\n}\n","import Iiif from 'spotlight/admin/iiif'\n\nexport function addImageSelector(input, panel, manifestUrl, initialize) {\n if (!manifestUrl) {\n showNonIiifAlert(input);\n return;\n }\n var cropper = input.data('iiifCropper');\n $.ajax(manifestUrl).done(\n function(manifest) {\n var iiifManifest = new Iiif(manifestUrl, manifest);\n\n var thumbs = iiifManifest.imagesArray();\n\n hideNonIiifAlert(input);\n\n if (initialize) {\n cropper.setIiifFields(thumbs[0]);\n panel.multiImageSelector(); // Clears out existing selector\n }\n\n if(thumbs.length > 1) {\n panel.show();\n panel.multiImageSelector(thumbs, function(selectorImage) {\n cropper.setIiifFields(selectorImage);\n }, cropper.iiifImageField.val());\n }\n }\n );\n}\n\nfunction showNonIiifAlert(input){\n input.parent().prev('[data-behavior=\"non-iiif-alert\"]').show();\n}\n\nfunction hideNonIiifAlert(input){\n input.parent().prev('[data-behavior=\"non-iiif-alert\"]').hide();\n}","import SirTrevor from \"sir-trevor\"\n\nconst Spotlight = function() {\n var buffer = [];\n return {\n onLoad: function(func) {\n buffer.push(func);\n },\n\n activate: function() {\n this.sirTrevorIcon = window.sirTrevorIcon;\n for(var i = 0; i < buffer.length; i++) {\n buffer[i].call();\n }\n },\n csrfToken: function () {\n return document.querySelector('meta[name=csrf-token]')?.content\n },\n ZprLinks: {\n close: \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\"><path d=\\\"M0 0h24v24H0V0z\\\" fill=\\\"none\\\"/><path d=\\\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\\\"/></svg>\",\n zoomIn: \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\"><path d=\\\"M0 0h24v24H0V0z\\\" fill=\\\"none\\\"/><path d=\\\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm.5-7H9v2H7v1h2v2h1v-2h2V9h-2z\\\"/></svg>\\n\",\n zoomOut: \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\"><path d=\\\"M0 0h24v24H0V0z\\\" fill=\\\"none\\\"/><path d=\\\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7V9z\\\"/></svg>\\n\"\n }\n };\n}();\n\n// This allows us to configure Spotlight in app/views/layouts/base.html.erb\nwindow.Spotlight = Spotlight\nwindow.SirTrevor = SirTrevor\nexport default Spotlight\n","import { addImageSelector } from 'spotlight/admin/add_image_selector'\nimport Core from 'spotlight/core'\n\nexport default class Crop {\n constructor(cropArea, preserveAspectRatio = true) {\n this.cropArea = cropArea;\n this.cropArea.data('iiifCropper', this);\n // This element will also have the IIIF input elements contained\n // There may be multiple elements with data-cropper attributes, but\n // there should only one element with this data-cropper attribute value.\n this.cropSelector = '[data-cropper=\"' + cropArea.data('cropperKey') + '\"]';\n this.cropTool = $(this.cropSelector);\n // Exhibit and masthead cropping requires the ratio between image width and height\n // to be consistent, whereas item widget cropping allows any combination of \n // image width and height.\n this.preserveAspectRatio = preserveAspectRatio;\n // Get the IIIF input elements used to store/reference IIIF information\n this.inputPrefix = this.cropTool.data('input-prefix');\n this.iiifUrlField = this.iiifInputElement(this.inputPrefix, 'iiif_tilesource', this.cropTool);\n this.iiifRegionField = this.iiifInputElement(this.inputPrefix, 'iiif_region', this.cropTool);\n this.iiifManifestField = this.iiifInputElement(this.inputPrefix, 'iiif_manifest_url', this.cropTool);\n this.iiifCanvasField = this.iiifInputElement(this.inputPrefix, 'iiif_canvas_id', this.cropTool);\n this.iiifImageField = this.iiifInputElement(this.inputPrefix, 'iiif_image_id', this.cropTool);\n // Get the closest form element\n this.form = cropArea.closest('form');\n this.tileSource = null;\n }\n\n // Return the iiif input element based on the fieldname.\n // Multiple input fields with the same name on the page may be related \n // to a cropper. We thus need to pass in a parent element. \n iiifInputElement(inputPrefix, fieldName, inputParentElement) {\n return $('input[name=\"' + inputPrefix + '[' + fieldName + ']\"]', inputParentElement);\n }\n\n // Render the cropper environment and add hooks into the autocomplete and upload forms\n render() {\n this.setupAutoCompletes();\n this.setupAjaxFileUpload();\n this.setupExistingIiifCropper();\n }\n\n // Setup the cropper on page load if the field\n // that holds the IIIF url is populated\n setupExistingIiifCropper() {\n if(this.iiifUrlField.val() === '') {\n return;\n }\n\n this.addImageSelectorToExistingCropTool();\n this.setTileSource(this.iiifUrlField.val());\n }\n\n // Display the IIIF Cropper map with the current IIIF Layer (and cropbox, once the layer is available)\n setupIiifCropper() {\n this.loaded = false;\n\n this.renderCropperMap();\n\n if (this.imageLayer) {\n // Force a broken layer's container to be an element before removing.\n // Code in leaflet-iiif land calls delete on the image layer's container when removing,\n // which errors if there is an issue fetching the info.json and stops further necessary steps to execute.\n if(!this.imageLayer._container) {\n this.imageLayer._container = $('<div></div>');\n }\n this.cropperMap.removeLayer(this.imageLayer);\n }\n\n this.imageLayer = L.tileLayer.iiif(this.tileSource).addTo(this.cropperMap);\n\n var self = this;\n this.imageLayer.on('load', function() {\n if (!self.loaded) {\n var region = self.getCropRegion();\n self.positionIiifCropBox(region);\n self.loaded = true;\n }\n });\n\n this.cropArea.data('initiallyVisible', this.cropArea.is(':visible'));\n }\n\n // Get (or initialize) the current crop region from the form data\n getCropRegion() {\n var regionFieldValue = this.iiifRegionField.val();\n if(!regionFieldValue || regionFieldValue === '') {\n var region = this.defaultCropRegion();\n this.iiifRegionField.val(region);\n return region;\n } else {\n return regionFieldValue.split(',');\n }\n }\n\n // Calculate a default crop region in the center of the image using the correct aspect ratio\n defaultCropRegion() {\n var imageWidth = this.imageLayer.x;\n var imageHeight = this.imageLayer.y;\n\n var boxWidth = Math.floor(imageWidth / 2);\n var boxHeight = Math.floor(boxWidth / this.aspectRatio());\n\n return [\n Math.floor((imageWidth - boxWidth) / 2),\n Math.floor((imageHeight - boxHeight) / 2),\n boxWidth,\n boxHeight\n ];\n }\n\n // Calculate the required aspect ratio for the crop area\n aspectRatio() {\n var cropWidth = parseInt(this.cropArea.data('crop-width'));\n var cropHeight = parseInt(this.cropArea.data('crop-height'));\n return cropWidth / cropHeight;\n }\n\n // Position the IIIF Crop Box at the given IIIF region\n positionIiifCropBox(region) {\n var bounds = this.unprojectIIIFRegionToBounds(region);\n\n if (!this.cropBox) {\n this.renderCropBox(bounds);\n }\n\n this.cropBox.setBounds(bounds);\n this.cropperMap.invalidateSize();\n this.cropperMap.fitBounds(bounds);\n\n this.cropBox.editor.editLayer.clearLayers();\n this.cropBox.editor.refresh();\n this.cropBox.editor.initVertexMarkers();\n }\n\n // Set all of the various input fields to\n // the appropriate IIIF URL or identifier\n setIiifFields(iiifObject) {\n this.setTileSource(iiifObject.tilesource);\n this.iiifManifestField.val(iiifObject.manifest);\n this.iiifCanvasField.val(iiifObject.canvasId);\n this.iiifImageField.val(iiifObject.imageId);\n }\n\n // Set the Crop tileSource and setup the cropper\n setTileSource(source) {\n if (source == this.tileSource) {\n return;\n }\n\n if (source === null || source === undefined) {\n console.error('No tilesource provided when setting up IIIF Cropper');\n return;\n }\n\n if (this.cropBox) {\n this.iiifRegionField.val(\"\");\n }\n\n this.tileSource = source;\n this.iiifUrlField.val(source);\n this.setupIiifCropper();\n }\n\n // Render the Leaflet Map into the crop area\n renderCropperMap() {\n if (this.cropperMap) {\n return;\n }\n\n var cropperOptions = {\n editable: true,\n center: [0, 0],\n crs: L.CRS.Simple,\n zoom: 0\n }\n\n if(this.preserveAspectRatio) {\n cropperOptions['editOptions'] = {\n rectangleEditorClass: this.aspectRatioPreservingRectangleEditor(this.aspectRatio())\n };\n }\n\n this.cropperMap = L.map(this.cropArea.attr('id'), cropperOptions);\n this.invalidateMapSizeOnTabToggle();\n }\n\n // Render the crop box (a Leaflet editable rectangle) onto the canvas\n renderCropBox(initialBounds) {\n this.cropBox = L.rectangle(initialBounds);\n this.cropBox.addTo(this.cropperMap);\n this.cropBox.enableEdit();\n this.cropBox.on('dblclick', L.DomEvent.stop).on('dblclick', this.cropBox.toggleEdit);\n\n var self = this;\n this.cropperMap.on('editable:dragend editable:vertex:dragend', function(e) {\n var bounds = e.layer.getBounds();\n var region = self.projectBoundsToIIIFRegion(bounds);\n\n self.iiifRegionField.val(region.join(','));\n });\n }\n\n // Get the maximum zoom level for the IIIF Layer (always 1:1 image pixel to canvas?)\n maxZoom() {\n if(this.imageLayer) {\n return this.imageLayer.maxZoom;\n }\n }\n\n // Take a Leaflet LatLngBounds object and transform it into a IIIF [x, y, w, h] region\n projectBoundsToIIIFRegion(bounds) {\n var min = this.cropperMap.project(bounds.getNorthWest(), this.maxZoom());\n var max = this.cropperMap.project(bounds.getSouthEast(), this.maxZoom());\n return [\n Math.max(Math.floor(min.x), 0),\n Math.max(Math.floor(min.y), 0),\n Math.floor(max.x - min.x),\n Math.floor(max.y - min.y)\n ];\n }\n\n // Take a IIIF [x, y, w, h] region and transform it into a Leaflet LatLngBounds\n unprojectIIIFRegionToBounds(region) {\n var minPoint = L.point(parseInt(region[0]), parseInt(region[1]));\n var maxPoint = L.point(parseInt(region[0]) + parseInt(region[2]), parseInt(region[1]) + parseInt(region[3]));\n\n var min = this.cropperMap.unproject(minPoint, this.maxZoom());\n var max = this.cropperMap.unproject(maxPoint, this.maxZoom());\n return L.latLngBounds(min, max);\n }\n\n // TODO: Add accessors to update hidden inputs with IIIF uri/ids?\n\n // Setup autocomplete inputs to have the iiif_cropper context\n setupAutoCompletes() {\n var input = $('[data-behavior=\"autocomplete\"]', this.cropTool);\n input.data('iiifCropper', this);\n }\n\n setupAjaxFileUpload() {\n this.fileInput = $('input[type=\"file\"]', this.cropTool);\n this.fileInput.change(() => this.uploadFile());\n }\n\n addImageSelectorToExistingCropTool() {\n if(this.iiifManifestField.val() === '') {\n return;\n }\n\n var input = $('[data-behavior=\"autocomplete\"]', this.cropTool);\n \n // Not every page which uses this module has autocomplete linked directly to the cropping tool\n if(input.length) {\n var panel = $(input.data('target-panel'));\n addImageSelector(input, panel, this.iiifManifestField.val(), !this.iiifImageField.val());\n }\n }\n\n invalidateMapSizeOnTabToggle() {\n var tabs = $('[role=\"tablist\"]', this.form);\n var self = this;\n tabs.on('shown.bs.tab', function() {\n if(self.cropArea.data('initiallyVisible') === false && self.cropArea.is(':visible')) {\n self.cropperMap.invalidateSize();\n // Because the map size is 0,0 when image is loading (not visible) we need to refit the bounds of the layer\n self.imageLayer._fitBounds();\n self.cropArea.data('initiallyVisible', null);\n }\n });\n }\n\n // Get all the form data with the exception of the _method field.\n getData() {\n var data = new FormData(this.form[0]);\n data.append('_method', null);\n return data;\n }\n\n uploadFile() {\n var url = this.fileInput.data('endpoint')\n // Every post creates a new image/masthead.\n // Because they create IIIF urls which are heavily cached.\n $.ajax({\n url: url, //Server script to process data\n type: 'POST',\n success: (data, stat, xhr) => this.successHandler(data, stat, xhr),\n // error: errorHandler,\n // Form data\n data: this.getData(),\n headers: {\n 'X-CSRF-Token': Core.csrfToken() || ''\n },\n //Options to tell jQuery not to process data or worry about content-type.\n cache: false,\n contentType: false,\n processData: false\n });\n }\n\n successHandler(data, stat, xhr) {\n this.setIiifFields({ tilesource: data.tilesource });\n this.setUploadId(data.id);\n }\n\n setUploadId(id) {\n // This input is currently used for exhibit masthead or thumbnail image upload.\n // The name should be sufficient in this case, as we don't use this part of the\n // code for solr document widgets where we enable cropping. \n // If we require more specificity, we can scope this to this.cropTool. \n $('input[name=\"' + this.inputPrefix + '[upload_id]\"]').val(id);\n }\n\n aspectRatioPreservingRectangleEditor(aspect) {\n return L.Editable.RectangleEditor.extend({\n extendBounds: function (e) {\n var index = e.vertex.getIndex(),\n next = e.vertex.getNext(),\n previous = e.vertex.getPrevious(),\n oppositeIndex = (index + 2) % 4,\n opposite = e.vertex.latlngs[oppositeIndex];\n\n if ((index % 2) == 1) {\n // calculate horiz. displacement\n e.latlng.update([opposite.lat + ((1 / aspect) * (opposite.lng - e.latlng.lng)), e.latlng.lng]);\n } else {\n // calculate vert. displacement\n e.latlng.update([e.latlng.lat, (opposite.lng - (aspect * (opposite.lat - e.latlng.lat)))]);\n }\n var bounds = new L.LatLngBounds(e.latlng, opposite);\n // Update latlngs by hand to preserve order.\n previous.latlng.update([e.latlng.lat, opposite.lng]);\n next.latlng.update([opposite.lat, e.latlng.lng]);\n this.updateBounds(bounds);\n this.refreshVertexMarkers();\n }\n });\n }\n}\n","import Crop from 'spotlight/admin/crop';\n\nexport default class CroppableModal {\n\n attachModalHandlers() {\n // Attach handler for when modal first loads, to show the cropper\n this.attachModalLoadBehavior();\n // Attach handler for save by checking if clicking in the modal is on a save button\n this.attachModalSaveHandler();\n }\n\n attachModalLoadBehavior() {\n // Listen for event thrown when modal is displayed with content\n document.addEventListener('loaded.blacklight.blacklight-modal', function(e) {\n var dataCropperDiv = $('#blacklight-modal [data-behavior=\"iiif-cropper\"]');\n \n if(dataCropperDiv) {\n new Crop(dataCropperDiv, false).render();\n }\n });\n }\n\n // Field names are of the format item[item_0][iiif_image_id]\n iiifInputField(itemIndex, fieldName, parentElement) {\n var itemPrefix = 'item[' + itemIndex + ']';\n var selector = 'input[name=\"' + itemPrefix + '[' + fieldName + ']\"]';\n return $(selector, parentElement);\n }\n\n attachModalSaveHandler() {\n var context = this;\n \n document.addEventListener('show.blacklight.blacklight-modal', function(e) {\n $('#save-cropping-selection').on('click', () => {\n context.saveCroppedRegion();\n });\n });\n }\n\n saveCroppedRegion() {\n //On hitting \"save changes\", we need to copy over the value\n //to the iiif thumbnail url input field as well as the image source itself\n var context = this;\n var dataCropperDiv = $('#blacklight-modal [data-behavior=\"iiif-cropper\"]');\n\n if(dataCropperDiv) {\n var dataCropperKey = dataCropperDiv.data(\"cropper-key\");\n var itemIndex = dataCropperDiv.data(\"index-id\");\n // Get the element on the main edit page whose select image link opened up the modal\n var itemElement = $('[data-cropper=\"' + dataCropperKey + '\"]');\n // Get the hidden input field on the main edit page corresponding to this item\n var thumbnailSaveField = context.iiifInputField(itemIndex, 'thumbnail_image_url', itemElement);\n var fullimageSaveField = context.iiifInputField(itemIndex, 'full_image_url', itemElement);\n var iiifTilesource = context.iiifInputField(itemIndex, 'iiif_tilesource', itemElement).val();\n var regionValue = context.iiifInputField(itemIndex, 'iiif_region', itemElement).val();\n // Extract the region string to incorporate into the thumbnail URL\n var urlPrefix = iiifTilesource.substring(0, iiifTilesource.lastIndexOf('/info.json'));\n var thumbnailUrl = urlPrefix + '/' + regionValue + '/!400,400/0/default.jpg';\n // Set the hidden input value to the thumbnail URL\n // Also set the full image - which is used by widgets like carousel or slideshow\n thumbnailSaveField.val(thumbnailUrl);\n fullimageSaveField.val(urlPrefix + '/' + regionValue + '/!800,800/0/default.jpg');\n // Also change img url for thumbnail image\n var itemImage = $('img.img-thumbnail', itemElement); \n itemImage.attr('src', thumbnailUrl);\n }\n }\n}\n","import Crop from 'spotlight/admin/crop';\nimport CroppableModal from 'spotlight/admin/croppable_modal';\n\nexport default class Croppable {\n connect() {\n // For exhibit masthead or thumbnail pages, where\n // the div exists on page load\n $('[data-behavior=\"iiif-cropper\"]').each(function() {\n var cropElement = $(this)\n new Crop(cropElement).render()\n })\n\n // In the case of individual document thumbnails, selection\n // of the image is through a modal. Here we attach the event\n new CroppableModal().attachModalHandlers();\n }\n}\n","/*\n Simple plugin add edit-in-place behavior\n*/\nexport default class {\n connect() {\n $('[data-in-place-edit-target]').each(function() {\n $(this).on('click.inplaceedit', function() {\n var $label = $(this).find($(this).data('in-place-edit-target'));\n var $input = $(this).find($(this).data('in-place-edit-field-target'));\n\n // hide the edit-in-place affordance icon while in edit mode\n $(this).addClass('hide-edit-icon');\n $label.hide();\n $input.val($label.text());\n $input.attr('type', 'text');\n $input.select();\n $input.focus();\n\n $input.on('keypress', function(e) {\n if(e.which == 13) {\n $input.trigger('blur.inplaceedit');\n return false;\n }\n });\n\n $input.on('blur.inplaceedit', function() {\n var value = $input.val();\n\n if ($.trim(value).length == 0) {\n $input.val($label.text());\n } else {\n $label.text(value);\n }\n\n $label.show();\n $input.attr('type', 'hidden');\n // when leaving edit mode, should no longer hide edit-in-place affordance icon\n $(\"[data-in-place-edit-target]\").removeClass('hide-edit-icon');\n\n return false;\n });\n\n return false;\n });\n })\n\n $(\"[data-behavior='restore-default']\").each(function(){\n var hidden = $(\"[data-default-value]\", $(this));\n var value = $($(\"[data-in-place-edit-target]\", $(this)).data('in-place-edit-target'), $(this));\n var button = $(\"[data-restore-default]\", $(this));\n\n hidden.on('keypress', function(e) {\n if(e.which == 13) {\n hidden.trigger('blur');\n return false;\n }\n });\n\n hidden.on('blur', function(){\n if( $(this).val() == $(this).data('default-value') ) {\n button.addClass('d-none');\n } else {\n button.removeClass('d-none');\n }\n });\n button.on('click', function(e){\n e.preventDefault();\n hidden.val(hidden.data('default-value'));\n value.text(hidden.data('default-value'));\n button.hide();\n });\n });\n }\n}\n","/*\nhttps://gist.github.com/pjambet/3710461\n*/\nvar LATIN_MAP = {\n 'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', 'Ç':\n 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', 'Î': 'I',\n 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', 'Õ': 'O', 'Ö':\n 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', 'Ü': 'U', 'Ű': 'U',\n 'Ý': 'Y', 'Þ': 'TH', 'ß': 'ss', 'à':'a', 'á':'a', 'â': 'a', 'ã': 'a', 'ä':\n 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e',\n 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó':\n 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u',\n 'û': 'u', 'ü': 'u', 'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y'\n}\nvar LATIN_SYMBOLS_MAP = {\n '©':'(c)'\n}\nvar GREEK_MAP = {\n 'α':'a', 'β':'b', 'γ':'g', 'δ':'d', 'ε':'e', 'ζ':'z', 'η':'h', 'θ':'8',\n 'ι':'i', 'κ':'k', 'λ':'l', 'μ':'m', 'ν':'n', 'ξ':'3', 'ο':'o', 'π':'p',\n 'ρ':'r', 'σ':'s', 'τ':'t', 'υ':'y', 'φ':'f', 'χ':'x', 'ψ':'ps', 'ω':'w',\n 'ά':'a', 'έ':'e', 'ί':'i', 'ό':'o', 'ύ':'y', 'ή':'h', 'ώ':'w', 'ς':'s',\n 'ϊ':'i', 'ΰ':'y', 'ϋ':'y', 'ΐ':'i',\n 'Α':'A', 'Β':'B', 'Γ':'G', 'Δ':'D', 'Ε':'E', 'Ζ':'Z', 'Η':'H', 'Θ':'8',\n 'Ι':'I', 'Κ':'K', 'Λ':'L', 'Μ':'M', 'Ν':'N', 'Ξ':'3', 'Ο':'O', 'Π':'P',\n 'Ρ':'R', 'Σ':'S', 'Τ':'T', 'Υ':'Y', 'Φ':'F', 'Χ':'X', 'Ψ':'PS', 'Ω':'W',\n 'Ά':'A', 'Έ':'E', 'Ί':'I', 'Ό':'O', 'Ύ':'Y', 'Ή':'H', 'Ώ':'W', 'Ϊ':'I',\n 'Ϋ':'Y'\n}\nvar TURKISH_MAP = {\n 'ş':'s', 'Ş':'S', 'ı':'i', 'İ':'I', 'ç':'c', 'Ç':'C', 'ü':'u', 'Ü':'U',\n 'ö':'o', 'Ö':'O', 'ğ':'g', 'Ğ':'G'\n}\nvar RUSSIAN_MAP = {\n 'а':'a', 'б':'b', 'в':'v', 'г':'g', 'д':'d', 'е':'e', 'ё':'yo', 'ж':'zh',\n 'з':'z', 'и':'i', 'й':'j', 'к':'k', 'л':'l', 'м':'m', 'н':'n', 'о':'o',\n 'п':'p', 'р':'r', 'с':'s', 'т':'t', 'у':'u', 'ф':'f', 'х':'h', 'ц':'c',\n 'ч':'ch', 'ш':'sh', 'щ':'sh', 'ъ':'', 'ы':'y', 'ь':'', 'э':'e', 'ю':'yu',\n 'я':'ya',\n 'А':'A', 'Б':'B', 'В':'V', 'Г':'G', 'Д':'D', 'Е':'E', 'Ё':'Yo', 'Ж':'Zh',\n 'З':'Z', 'И':'I', 'Й':'J', 'К':'K', 'Л':'L', 'М':'M', 'Н':'N', 'О':'O',\n 'П':'P', 'Р':'R', 'С':'S', 'Т':'T', 'У':'U', 'Ф':'F', 'Х':'H', 'Ц':'C',\n 'Ч':'Ch', 'Ш':'Sh', 'Щ':'Sh', 'Ъ':'', 'Ы':'Y', 'Ь':'', 'Э':'E', 'Ю':'Yu',\n 'Я':'Ya'\n}\nvar UKRAINIAN_MAP = {\n 'Є':'Ye', 'І':'I', 'Ї':'Yi', 'Ґ':'G', 'є':'ye', 'і':'i', 'ї':'yi', 'ґ':'g'\n}\nvar CZECH_MAP = {\n 'č':'c', 'ď':'d', 'ě':'e', 'ň': 'n', 'ř':'r', 'š':'s', 'ť':'t', 'ů':'u',\n 'ž':'z', 'Č':'C', 'Ď':'D', 'Ě':'E', 'Ň': 'N', 'Ř':'R', 'Š':'S', 'Ť':'T',\n 'Ů':'U', 'Ž':'Z'\n}\n\nvar POLISH_MAP = {\n 'ą':'a', 'ć':'c', 'ę':'e', 'ł':'l', 'ń':'n', 'ó':'o', 'ś':'s', 'ź':'z',\n 'ż':'z', 'Ą':'A', 'Ć':'C', 'Ę':'e', 'Ł':'L', 'Ń':'N', 'Ó':'o', 'Ś':'S',\n 'Ź':'Z', 'Ż':'Z'\n}\n\nvar LATVIAN_MAP = {\n 'ā':'a', 'č':'c', 'ē':'e', 'ģ':'g', 'ī':'i', 'ķ':'k', 'ļ':'l', 'ņ':'n',\n 'š':'s', 'ū':'u', 'ž':'z', 'Ā':'A', 'Č':'C', 'Ē':'E', 'Ģ':'G', 'Ī':'i',\n 'Ķ':'k', 'Ļ':'L', 'Ņ':'N', 'Š':'S', 'Ū':'u', 'Ž':'Z'\n}\n\nvar ALL_DOWNCODE_MAPS=new Array()\nALL_DOWNCODE_MAPS[0]=LATIN_MAP\nALL_DOWNCODE_MAPS[1]=LATIN_SYMBOLS_MAP\nALL_DOWNCODE_MAPS[2]=GREEK_MAP\nALL_DOWNCODE_MAPS[3]=TURKISH_MAP\nALL_DOWNCODE_MAPS[4]=RUSSIAN_MAP\nALL_DOWNCODE_MAPS[5]=UKRAINIAN_MAP\nALL_DOWNCODE_MAPS[6]=CZECH_MAP\nALL_DOWNCODE_MAPS[7]=POLISH_MAP\nALL_DOWNCODE_MAPS[8]=LATVIAN_MAP\n\nvar Downcoder = new Object();\nDowncoder.Initialize = function()\n{\n if (Downcoder.map) // already made\n return ;\n Downcoder.map ={}\n Downcoder.chars = '' ;\n for(var i in ALL_DOWNCODE_MAPS)\n {\n var lookup = ALL_DOWNCODE_MAPS[i]\n for (var c in lookup)\n {\n Downcoder.map[c] = lookup[c] ;\n Downcoder.chars += c ;\n }\n }\n Downcoder.regex = new RegExp('[' + Downcoder.chars + ']|[^' + Downcoder.chars + ']+','g') ;\n }\n \nconst downcode = function( slug )\n{\n Downcoder.Initialize() ;\n var downcoded =\"\"\n var pieces = slug.match(Downcoder.regex);\n if(pieces)\n {\n for (var i = 0 ; i < pieces.length ; i++)\n {\n if (pieces[i].length == 1)\n {\n var mapped = Downcoder.map[pieces[i]] ;\n if (mapped != null)\n {\n downcoded+=mapped;\n continue ;\n }\n }\n downcoded+=pieces[i];\n }\n }\n else\n {\n downcoded = slug;\n }\n return downcoded;\n}\n\n\nfunction URLify(s, num_chars) {\n // changes, e.g., \"Petty theft\" to \"petty_theft\"\n // remove all these words from the string before urlifying\n s = downcode(s);\n //\n // if downcode doesn't hit, the char will be stripped here\n s = s.replace(/[^-\\w\\s]/g, ' '); // remove unneeded chars\n s = s.replace(/^\\s+|\\s+$/g, ''); // trim leading/trailing spaces\n s = s.replace(/[-\\s]+/g, '-'); // convert spaces to hyphens\n s = s.toLowerCase(); // convert to lowercase\n return s.substring(0, num_chars);// trim to first num_chars chars\n}\n\nexport { URLify };","import { URLify } from 'parameterize';\n\nexport default class {\n connect() {\n // auto-fill the exhibit slug on the new exhibit form\n $('#new_exhibit').each(function() {\n $('#exhibit_title').on('change keyup', function() {\n $('#exhibit_slug').attr('placeholder', URLify($(this).val(), $(this).val().length));\n });\n\n $('#exhibit_slug').on('focus', function() {\n if ($(this).val() === '') {\n $(this).val($(this).attr('placeholder'));\n }\n });\n });\n\n $(\"#another-email\").on(\"click\", function(e) {\n e.preventDefault();\n\n var container = $(this).closest('.form-group');\n var contacts = container.find('.contact');\n var inputContainer = contacts.first().clone();\n\n // wipe out any values from the inputs\n inputContainer.find('input').each(function() {\n $(this).val('');\n $(this).attr('id', $(this).attr('id').replace('0', contacts.length));\n $(this).attr('name', $(this).attr('name').replace('0', contacts.length));\n if ($(this).attr('aria-label')) {\n $(this).attr('aria-label', $(this).attr('aria-label').replace('1', contacts.length + 1));\n }\n });\n\n inputContainer.find('.contact-email-delete-wrapper').remove();\n inputContainer.find('.confirmation-status').remove();\n\n // bootstrap does not render input-groups with only one value in them correctly.\n inputContainer.find('.input-group input:only-child').closest('.input-group').removeClass('input-group');\n\n $(inputContainer).insertAfter(contacts.last());\n });\n\n if (document.getElementById('another-email')) {\n document.addEventListener('turbo:submit-end', this.contactToDeleteNotFoundHandler);\n }\n\n if ($.fn.tooltip) {\n $('.btn-with-tooltip').tooltip();\n }\n\n // Put focus in saved search title input when Save this search modal is shown\n $('#save-modal').on('shown.bs.modal', function () {\n $('#search_title').focus();\n });\n }\n\n contactToDeleteNotFoundHandler(e) {\n const contact = e.detail.formSubmission?.delegate?.element?.querySelector('.contact')\n if (contact && e.detail?.fetchResponse?.response?.status === 404) {\n const error = contact.querySelector('.contact-email-delete-error');\n error.style.display = 'block';\n error.querySelector('.error-msg').textContent = 'Not Found';\n }\n }\n}","\n(function($, _) {\n 'use strict';\n\n /*\n * SerializedForm is built as a singleton jQuery plugin. It needs to be able to\n * handle instantiation from multiple sources, and use the [data-form-observer]\n * as global state object.\n */\n $.SerializedForm = function () {\n var $serializedForm;\n var plugin = this;\n\n // Store form serialization in data attribute\n function serializeFormStatus () {\n $serializedForm.data('serialized-form', formSerialization($serializedForm));\n }\n\n // Do custom serialization of the sir-trevor form data. This needs to be a\n // passed in argument for comparison later on.\n function formSerialization (form) {\n var content_editable = [];\n var i = 0;\n $(\"[contenteditable='true']\", form).each(function(){\n content_editable.push('&contenteditable_' + i + '=' + $(this).text());\n });\n return form.serialize() + content_editable.join();\n }\n\n // Unbind observing form on submit (which we have to do because of turbolinks)\n function unbindObservedFormSubmit () {\n $serializedForm.on('submit', function () {\n $(this).data('being-submitted', true);\n });\n }\n\n // Get the stored serialized form status\n function serializedFormStatus () {\n return $serializedForm.data('serialized-form');\n }\n\n // Check all observed forms on page for status change\n plugin.observedFormsStatusHasChanged = function () {\n var unsaved_changes = false;\n $('[data-form-observer]').each(function (){\n if ( !$(this).data(\"being-submitted\") ) {\n if (serializedFormStatus() != formSerialization($(this))) {\n unsaved_changes = true;\n }\n }\n });\n return unsaved_changes;\n }\n\n function init () {\n $serializedForm = $('[data-form-observer]');\n serializeFormStatus();\n unbindObservedFormSubmit();\n }\n\n init();\n\n return plugin;\n };\n})(jQuery);\n\nexport default class {\n connect() {\n // Instantiate the singleton SerializedForm plugin\n var serializedForm = $.SerializedForm();\n $(window).on('beforeunload page:before-change turbolinks:before-visit turbo:before-visit', function(event) {\n // Don't handle the same event twice #turbolinks\n if (event.handled !== true) {\n if ( serializedForm.observedFormsStatusHasChanged() ) {\n event.handled = true;\n var message = \"You have unsaved changes. Are you sure you want to leave this page?\";\n // There are variations in how Webkit browsers may handle this:\n // https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload\n if ( event.type == \"beforeunload\" ) {\n return message;\n } else {\n return confirm(message)\n }\n }\n }\n });\n }\n}\n","export default class {\n delete_lock(el) {\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]')?.content;\n \n fetch(el.dataset.lock, {\n method: 'DELETE',\n headers: {\n 'X-CSRF-Token': csrfToken\n }\n });\n \n el.removeAttribute('data-lock');\n }\n\n connect() {\n document.querySelectorAll('[data-lock]').forEach(element => {\n element.addEventListener('click', (e) => {\n this.delete_lock(e.target);\n });\n });\n }\n}","// Module to add multi-image selector to widget panels\n\n(function(){\n $.fn.multiImageSelector = function(image_versions, clickCallback, activeImageId) {\n var changeLink = $(\"<a href='javascript:;'>Change</a>\"),\n thumbsListContainer = $(\"<div class='thumbs-list' style='display:none'></div>\"),\n thumbList = $(\"<ul></ul>\"),\n panel;\n\n var imageIds = $.map(image_versions, function(e) { return e['imageId']; });\n\n return init(this);\n\n function init(el) {\n panel = el;\n\n destroyExistingImageSelector();\n if(image_versions && image_versions.length > 1) {\n addChangeLink();\n addThumbsList();\n }\n }\n function addChangeLink() {\n $('[data-panel-image-pagination]', panel)\n .html(\"Image <span data-current-image='true'>\" + indexOf(activeImageId) + \"</span> of \" + image_versions.length)\n .show()\n .append(\" \")\n .append(changeLink);\n addChangeLinkBehavior();\n }\n\n function destroyExistingImageSelector() {\n var pagination = $('[data-panel-image-pagination]', panel);\n pagination.html('');\n pagination.next('.' + thumbsListContainer.attr('class')).remove();\n }\n\n function indexOf(thumb){\n const index = imageIds.indexOf(thumb)\n if (index > -1) {\n return index + 1;\n } else {\n return 1;\n }\n }\n function addChangeLinkBehavior() {\n changeLink.on('click', function(){\n thumbsListContainer.slideToggle();\n updateThumbListWidth();\n addScrollBehavior();\n scrollToActiveThumb();\n loadVisibleThumbs();\n swapChangeLinkText($(this));\n });\n }\n function updateThumbListWidth() {\n var width = 0;\n $('li', thumbList).each(function(){\n width += $(this).outerWidth();\n });\n thumbList.width(width + 5);\n }\n function loadVisibleThumbs(){\n var viewportWidth = thumbsListContainer.width();\n var width = 0;\n $('li', thumbList).each(function(){\n var thisThumb = $(this),\n image = $('img', thisThumb),\n totalWidth = width += thisThumb.width(),\n position = (thumbList.position().left + totalWidth) - thisThumb.width();\n\n if(position >= 0 && position < viewportWidth) {\n image.prop('src', image.data('src'));\n }\n });\n }\n function addScrollBehavior(){\n thumbsListContainer.scrollStop(function(){\n loadVisibleThumbs();\n });\n }\n function scrollToActiveThumb(){\n var halfContainerWidth = (thumbsListContainer.width() / 2),\n activeThumbLeftPosition = ($('.active', thumbList).position() || $('li', thumbList).first().position()).left,\n halfActiveThumbWidth = ($('.active', thumbList).width() / 2);\n thumbsListContainer.scrollLeft(\n (activeThumbLeftPosition - halfContainerWidth) + halfActiveThumbWidth\n );\n }\n function addThumbsList() {\n addThumbsToList();\n updateActiveThumb();\n $('.card-header', panel).append(\n thumbsListContainer.append(\n thumbList\n )\n );\n }\n function updateActiveThumb(){\n $('li', thumbList).each(function(){\n var item = $(this);\n if($('img', item).data('image-id') == activeImageId){\n item.addClass('active');\n }\n });\n }\n function swapChangeLinkText(link){\n link.text(\n link.text() == 'Change' ? 'Close' : 'Change'\n )\n }\n\n function addThumbsToList(){\n $.each(image_versions, function(i){\n var listItem = $('<li data-index=\"' + i + '\"><a href=\"javascript:;\"><img src=\"' + image_versions[i]['thumb'] +'\" data-image-id=\"' + image_versions[i]['imageId'] +'\" /></a></li>');\n listItem.on('click', function(){\n // get the current image id\n var imageid = $('img', $(this)).data('image-id');\n var src = $('img', $(this)).attr('src');\n\n if (typeof clickCallback === 'function' ) {\n clickCallback(image_versions[i]);\n }\n\n // mark the current selection as active\n $('li.active', thumbList).removeClass('active');\n $(this).addClass('active');\n\n // update the multi-image selector image\n $(\".pic img.img-thumbnail\", panel).attr(\"src\", src);\n\n $('[data-panel-image-pagination] [data-current-image]', panel).text(\n $('li', thumbList).index($(this)) + 1\n );\n scrollToActiveThumb();\n });\n $(\"img\", listItem).on('load', function() {\n updateThumbListWidth();\n });\n thumbList.append(listItem);\n });\n }\n };\n\n})(jQuery);\n\n// source: http://stackoverflow.com/questions/14035083/jquery-bind-event-on-scroll-stops\njQuery.fn.scrollStop = function(callback) {\n $(this).scroll(function() {\n var self = this,\n $this = $(self);\n\n if ($this.data('scrollTimeout')) {\n clearTimeout($this.data('scrollTimeout'));\n }\n\n $this.data('scrollTimeout', setTimeout(callback, 250, self));\n });\n};\n","// Place all the behaviors and hooks related to the matching controller here.\n// All this logic will automatically be available in application.js.\nimport Core from 'spotlight/core'\n\nexport default class {\n connect(){\n SirTrevor.setDefaults({\n iconUrl: Spotlight.sirTrevorIcon,\n uploadUrl: $('[data-attachment-endpoint]').data('attachment-endpoint'),\n ajaxOptions: {\n headers: {\n 'X-CSRF-Token': Core.csrfToken() || ''\n },\n credentials: 'same-origin'\n }\n });\n\n SirTrevor.Blocks.Heading.prototype.toolbarEnabled = true;\n SirTrevor.Blocks.Quote.prototype.toolbarEnabled = true;\n SirTrevor.Blocks.Text.prototype.toolbarEnabled = true;\n\n var instance = $('.js-st-instance').first();\n\n if (instance.length) {\n var editor = new SirTrevor.Editor({\n el: instance[0],\n blockTypes: instance.data('blockTypes'),\n altTextSettings: instance.data('altTextSettings'),\n defaultType:[\"Text\"],\n onEditorRender: function() {\n $.SerializedForm();\n },\n blockTypeLimits: {\n \"SearchResults\": 1\n }\n });\n\n editor.blockControls = Core.BlockControls.create(editor);\n\n new Core.BlockLimits(editor).enforceLimits(editor);\n }\n }\n}\n","export default class {\n connect() {\n var monitorElements = $('[data-behavior=\"progress-panel\"]');\n var defaultRefreshRate = 3000;\n var panelContainer;\n var pollers = [];\n\n $(monitorElements).each(function() {\n panelContainer = $(this);\n panelContainer.hide();\n var monitorUrl = panelContainer.data('monitorUrl');\n var refreshRate = panelContainer.data('refreshRate') || defaultRefreshRate;\n pollers.push(\n setInterval(function() {\n checkMonitorUrl(monitorUrl);\n }, refreshRate)\n );\n });\n\n // Clear the intervals on turbolink:click event (e.g. when the user navigates away from the page)\n $(document).on('turbolinks:click', function() {\n if (pollers.length > 0) {\n $.each(pollers, function() {\n clearInterval(this);\n });\n pollers = [];\n }\n });\n\n function checkMonitorUrl(url) {\n $.ajax(url).done(success).fail(fail);\n }\n\n function success(data) {\n if (data.recently_in_progress) {\n updateMonitorPanel(data);\n monitorPanel().show();\n } else {\n monitorPanel().hide();\n }\n }\n\n function fail() { monitorPanel().hide(); }\n\n function updateMonitorPanel(data) {\n panelStartDate().text(data.started_at);\n panelCurrentDate().text(data.updated_at);\n panelCompletedDate().text(data.updated_at);\n panelCurrent().text(data.completed);\n setPanelCompleted(data.finished);\n updatePanelTotals(data);\n updatePanelErrorMessage(data);\n updateProgressBar(data);\n\n panelContainer.show();\n }\n\n function updateProgressBar(data) {\n var percentage = calculatePercentage(data);\n progressBar()\n .attr('aria-valuemax', data.total)\n .attr('aria-valuenow', percentage)\n .css('width', percentage + '%')\n .text(percentage + '%');\n\n if (data.finished) {\n progressBar().removeClass('active').removeClass('progress-bar-striped');\n }\n }\n\n function updatePanelErrorMessage(data) {\n // We currently do not store this state,\n // but with this code we can in the future.\n if ( data.errored ) {\n panelErrorMessage().show();\n } else {\n panelErrorMessage().hide();\n }\n }\n\n function updatePanelTotals(data) {\n panelTotals().each(function() {\n $(this).text(data.total);\n });\n }\n\n function calculatePercentage(data) {\n if (data.total == 0) return 0;\n return Math.floor((data.completed / data.total) * 100);\n }\n\n function monitorPanel() {\n return panelContainer.find('.index-status');\n }\n\n function panelStartDate() {\n return monitorPanel()\n .find('[data-behavior=\"monitor-start\"]')\n .find('[data-behavior=\"date\"]');\n }\n\n function panelCurrentDate() {\n return monitorPanel()\n .find('[data-behavior=\"monitor-current\"]')\n .find('[data-behavior=\"date\"]');\n }\n\n function panelCompletedDate() {\n return monitorPanel()\n .find('[data-behavior=\"monitor-completed\"]')\n .find('[data-behavior=\"date\"]');\n }\n\n function panelTotals() {\n return monitorPanel().find('[data-behavior=\"total\"]');\n }\n\n function panelCurrent() {\n return monitorPanel()\n .find('[data-behavior=\"monitor-current\"]')\n .find('[data-behavior=\"completed\"]');\n }\n\n function progressBar() {\n return monitorPanel().find('.progress-bar');\n }\n\n function panelErrorMessage() {\n return monitorPanel().find('[data-behavior=\"monitor-error\"]');\n }\n\n function setPanelCompleted(finished) {\n var panel = monitorPanel().find('[data-behavior=\"monitor-completed\"]');\n\n if (finished) {\n panel.show();\n } else {\n panel.hide();\n }\n }\n\n return this;\n }\n}\n","export default class {\n connect() {\n // Don't allow unchecking of checkboxes with the data-readonly attribute \n $(\"input[type='checkbox'][data-readonly]\").on(\"click\", function(event) {\n event.preventDefault();\n })\n }\n}\n","import { addImageSelector } from 'spotlight/admin/add_image_selector'\n\nconst docStore = new Map();\n\nfunction highlight(value, query) {\n if (query.trim() === '') return value;\n const queryValue = query.trim();\n return queryValue ? value.replace(new RegExp(queryValue, 'gi'), '<strong>$&</strong>') : value;\n}\n\nfunction templateFunc(obj, query) {\n const thumbnail = obj.thumbnail ? `<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"${obj.thumbnail}\" /></div>` : '';\n const privateClass = obj.private ? ' blacklight-private' : '';\n const title = highlight(obj.title, query);\n const description = obj.description ? `<small> ${highlight(obj.description, query)}</small>` : '';\n return `<div class=\"autocomplete-item${privateClass}\">${thumbnail}\n <span class=\"autocomplete-title\">${title}</span><br/>${description}\n </div>`;\n}\n\nfunction autoCompleteElementTemplate(obj, query) {\n return `<li role=\"option\" data-autocomplete-value=\"${obj.id}\">${templateFunc(obj, query)}</li>`;\n}\n\nfunction getAutoCompleteElementDataMap(autoCompleteElement) {\n if (!docStore.has(autoCompleteElement.id)) {\n docStore.set(autoCompleteElement.id, new Map());\n }\n return docStore.get(autoCompleteElement.id);\n}\n\nasync function fetchResult(url) {\n const result = await fetchAutocompleteJSON(url);\n const docs = result.docs || [];\n const query = this.querySelector('input').value || '';\n const autoCompleteElementDataMap = getAutoCompleteElementDataMap(this);\n return docs.map(doc => {\n autoCompleteElementDataMap.set(doc.id, doc);\n return autoCompleteElementTemplate(doc, query);\n }).join('');\n}\n\nexport function addAutocompletetoFeaturedImage(){\n const autocompletePath = $('form[data-autocomplete-exhibit-catalog-path]').data('autocomplete-exhibit-catalog-path');\n const featuredImageTypeaheads = $('[data-featured-image-typeahead]');\n if (featuredImageTypeaheads.length === 0) return;\n\n $.each(featuredImageTypeaheads, function(index, autoCompleteInput) {\n const autoCompleteElement = autoCompleteInput.closest('auto-complete');\n\n autoCompleteElement.setAttribute('src', autocompletePath);\n autoCompleteElement.fetchResult = fetchResult;\n autoCompleteElement.addEventListener('auto-complete-change', e => {\n const data = getAutoCompleteElementDataMap(autoCompleteElement).get(e.relatedTarget.value);\n if (!data) return;\n\n const inputElement = $(e.relatedTarget);\n const panel = document.querySelector(e.relatedTarget.dataset.targetPanel);\n e.relatedTarget.value = data.title;\n addImageSelector(inputElement, $(panel), data.iiif_manifest, true);\n $(inputElement.data('id-field')).val(data['global_id']);\n inputElement.attr('type', 'text');\n });\n });\n}\n\nexport async function fetchAutocompleteJSON(url) {\n const res = await(fetch(url.toString()));\n if (!res.ok) {\n throw new Error(await res.text());\n }\n return await res.json();\n}\n","/*\n Simple plugin to select form elements\n when other elements are clicked.\n*/\n(function($) {\n $.fn.selectRelatedInput = function() {\n var clickElements = this;\n\n $(clickElements).each(function() {\n var target = $($(this).data('input-select-target'));\n\n var event;\n\n if ($(this).is(\"select\")) {\n event = 'change';\n } else {\n event = 'click';\n }\n\n $(this).on(event, function() {\n if (target.is(\":checkbox\") || target.is(\":radio\")) {\n target.prop('checked', true);\n } else {\n target.focus();\n }\n });\n });\n\n return this;\n };\n})(jQuery);\n\nexport default class {\n connect() {\n $('[data-input-select-target]').selectRelatedInput();\n }\n}\n","import Sortable from 'sortablejs';\n\nconst Module = (function() {\n const nestableContainerSelector = '[data-behavior=\"nestable\"]';\n const sortableOptions = {\n animation: 150,\n draggable: '.dd-item',\n handle: '.dd-handle',\n fallbackOnBody: true,\n swapThreshold: 0.65,\n emptyInsertThreshold: 15,\n onStart: onStartHandler,\n onEnd: onEndHandler,\n onMove: onMoveHandler,\n }\n const draggableClass = 'dd-item';\n const nestedSortableClass = 'dd-list';\n const nestedSortableSelector = '.dd-list';\n const nestedSortableNodeName = 'ol';\n const findNode = (id, container) => container.querySelector(`[data-id=\"${id}\"]`);\n const setWeight = (node, weight) => weightField(node).value = weight;\n const setParent = (node, parentId) => parentPageField(node).value = parentId;\n const weightField = node => findProperty(node, \"weight\");\n const parentPageField = node => findProperty(node, \"parent_page\");\n const findProperty = (node, property) => node.querySelector(`input[data-property=\"${property}\"]`);\n let nestedId = 0;\n\n return {\n init: function(nestedContainers) {\n if (nestedContainers === undefined) {\n nestedContainers = document.querySelectorAll(nestableContainerSelector);\n }\n\n // nestedContainers could be a jQuery selector result, normalize to an array.\n const containersToInit = Array.from(nestedContainers);\n containersToInit.forEach((container) => {\n // Sir Trevor listens for drag and drop events and will error on Sortable events.\n // Don't let them bubble past the Sortable wrapper.\n container.addEventListener('drop', stopPropagationHandler);\n \n const nestedSortables = [\n ...(container.matches(nestedSortableSelector) ? [container] : []),\n ...Array.from(container.querySelectorAll(nestedSortableSelector))\n ];\n const group = `nested-${nestedId++}`;\n \n nestedSortables.forEach(sortable => {\n new Sortable(sortable, { ...sortableOptions, group: group });\n });\n });\n }\n };\n\n function stopPropagationHandler(evt) {\n evt.stopPropagation();\n }\n\n function onStartHandler(evt) {\n makeEmptyChildSortablesForEligibleParents(getNestableContainer(evt.item), getMaxNestingLevelSetting(evt.item));\n }\n\n function onEndHandler(evt) {\n const nestableContainer = getNestableContainer(evt.item);\n removeEmptySortables(nestableContainer);\n updateWeightsAndRelationships(nestableContainer);\n }\n\n function onMoveHandler(evt) {\n // The usage of data-max-depth is one off of the standard notion of depth (# edges to root)\n // E.g., data-max-depth=2 allows for one level of nesting.\n // evt.dragged is a draggable in a Sortable (e.g., a dd-item)\n // evt.to is the Sortable to insert into (e.g., a dd-list)\n const maxAllowedDepth = getMaxNestingLevelSetting(evt.to) - 1;\n const newDepth = getSortableDepth(evt.to) + getHeight(evt.dragged);\n\n // Be careful here. Returning true is different than returning nothing in SortableJS.\n if (newDepth > maxAllowedDepth) {\n return false;\n }\n }\n\n // Get the depth of the sortable element from the root container\n function getSortableDepth(sortableElement) {\n const originatingGroup = Sortable.get(sortableElement).options.group.name;\n let depth = 0;\n let parentSortableElement = sortableElement;\n\n while ((parentSortableElement = parentSortableElement.parentElement.closest(nestedSortableSelector))) {\n const parentSortable = Sortable.get(parentSortableElement);\n if (parentSortable?.options.group.name === originatingGroup) {\n depth++;\n }\n }\n\n return depth;\n }\n\n // Find the max child depth in the tree, starting from the draggableElement\n function findMaxDepth(draggableElement) {\n const childSortableElement = draggableElement.querySelector(nestedSortableSelector);\n if (!childSortableElement) {\n return 1;\n }\n\n const children = childSortableElement.querySelectorAll(`.${draggableClass}`);\n const childDepths = Array.from(children).map(findMaxDepth);\n return 1 + Math.max(0, ...childDepths);\n }\n\n function getHeight(draggableElement) {\n return findMaxDepth(draggableElement) - 1;\n }\n\n function getNestableContainer(element) {\n return element.closest(nestableContainerSelector);\n }\n\n function getMaxNestingLevelSetting(element) {\n return getNestableContainer(element).getAttribute('data-max-depth') || 1;\n }\n\n // Create empty child sortables for all potential parents as appropriate for the given nesting level\n function makeEmptyChildSortablesForEligibleParents(container, nestingLevel) {\n if (nestingLevel <= 1) {\n return;\n }\n\n const sortableElement = container.querySelector(nestedSortableSelector);\n const sortable = Sortable.get(sortableElement);\n if (!sortable) {\n return;\n }\n\n const group = sortable.options.group.name;\n const draggableElements = Array.from(sortableElement.children)\n .filter(child => child.classList.contains(draggableClass));\n\n draggableElements.forEach(draggableElement => {\n if (!draggableElement.querySelector(nestedSortableSelector)) {\n const emptySortableElement = document.createElement(nestedSortableNodeName);\n emptySortableElement.className = nestedSortableClass;\n draggableElement.appendChild(emptySortableElement);\n new Sortable(emptySortableElement, { ...sortableOptions, group: group });\n }\n makeEmptyChildSortablesForEligibleParents(draggableElement, nestingLevel - 1);\n });\n }\n\n // Remove any empty sortables within the container. They could be empty lists, which are invalid for accessibility.\n function removeEmptySortables(container) {\n const sortableElements = container.querySelectorAll(nestedSortableSelector);\n sortableElements.forEach(sortableElement => {\n if (sortableElement.innerHTML.trim() === '') {\n const sortable = Sortable.get(sortableElement);\n if (sortable) {\n sortable.destroy();\n sortableElement.remove();\n }\n }\n });\n }\n\n // Traverse all sortables within a container and update the weight and parent_page inputs\n function updateWeightsAndRelationships(container) {\n const sortableElement = container.matches(nestedSortableSelector) ? container : container.querySelector(nestedSortableSelector);\n const nestingLevelSetting = getMaxNestingLevelSetting(sortableElement);\n const sortable = Sortable.get(sortableElement);\n const stack = [{nodes: sortable.toArray(), parentId: ''}];\n let weight = 0;\n\n while (stack.length > 0) {\n const {nodes, parentId} = stack.pop();\n\n nodes.forEach((nodeId) => {\n const node = findNode(nodeId, container);\n setWeight(node, weight++);\n\n if (nestingLevelSetting > 1) {\n setParent(node, parentId);\n const children = node.querySelector(nestedSortableSelector);\n if (children) {\n const sortableElement = Sortable.get(children);\n stack.push({nodes: sortableElement.toArray(), parentId: nodeId});\n }\n }\n });\n }\n }\n})();\n\nexport default Module\n","export default class {\n connect() {\n if ($('[role=tabpanel]').length > 0 && window.location.hash) {\n var tabpanel = $(window.location.hash).closest('[role=tabpanel]');\n $('a[role=tab][href=\"#'+tabpanel.attr('id')+'\"]').tab('show');\n }\n }\n}\n","// translationProgress is a plugin that updates the \"3/14\" progress\n// counters in the tabs of the translation adminstration dashboard.\n// This works by counting the number of progress items and translations\n// present (indicated by data attributes) in each tab's content\nexport default class {\n connect() {\n $('[data-behavior=\"translation-progress\"]').each(function(){\n var currentTab = $(this);\n var tabName = $(this).attr('aria-controls');\n var translationFields = $('#' + tabName).find('[data-translation-progress-item=\"true\"]');\n var completedTranslations = $('#' + tabName).find('[data-translation-present=\"true\"]');\n\n currentTab.find('span').text(completedTranslations.length + '/' + translationFields.length);\n })\n }\n}","// Blacklight's BookmarkToggle is doing the real work, this only adds/removes the \"blacklight-private\" class.\nconst VisibilityToggle = (e) => {\n if (e.target.matches('[data-checkboxsubmit-target=\"checkbox\"]')) {\n const form = e.target.closest('form')\n if (form) {\n // Add/remove the \"private\" label to the document row when visibility is toggled\n const docRow = form.closest('tr')\n if (docRow) docRow.classList.toggle('blacklight-private')\n }\n }\n}\ndocument.addEventListener('click', VisibilityToggle)\nexport default VisibilityToggle\n","export default class {\n connect() {\n var container;\n function edit_user(event) {\n event.preventDefault();\n $(this).closest('tr').hide();\n const id = $(this).attr('data-target') || $(this).attr('data-bs-target');\n const edit_view = $(\"[data-edit-for='\"+id+\"']\", container).show();\n $.each(edit_view.find('input[type=\"text\"], select'), function() {\n // Cache original values incase editing is canceled\n $(this).data('orig', $(this).val());\n });\n }\n\n function cancel_edit(event) {\n event.preventDefault();\n const id = $(this).closest('tr').attr('data-edit-for');\n const edit_view = $(\"[data-edit-for='\"+id+\"']\", container).hide();\n clear_errors(edit_view);\n rollback_changes(edit_view);\n $(\"[data-show-for='\"+id+\"']\", container).show();\n }\n\n function clear_errors(element) {\n element.find('.has-error')\n .removeClass('has-error')\n .find('.form-text')\n .remove(); // Remove the error messages\n }\n\n function rollback_changes(element) {\n $.each(element.find('input[type=\"text\"], select'), function() {\n $(this).val($(this).data('orig')).trigger('change');\n });\n }\n\n function destroy_user(event) {\n const id = $(this).attr('data-target') || $(this).attr('data-bs-target');\n $(\"[data-destroy-for='\"+id+\"']\", container).val('1');\n }\n\n function new_user(event) {\n event.preventDefault();\n const edit_view = $(\"[data-edit-for='new']\", container).show();\n $.each(edit_view.find('input[type=\"text\"], select'), function() {\n // Cache original values incase editing is canceled\n $(this).data('orig', $(this).val());\n });\n }\n\n function open_errors() {\n const edit_row = container.find('.has-error').closest('[data-edit-for]');\n edit_row.show();\n // The following row has the controls, so show it too.\n edit_row.next().show();\n }\n\n $('.edit_exhibit, .admin-users').each(function() {\n\n container = $(this);\n $('[data-edit-for]', container).hide();\n open_errors();\n $(\"[data-behavior='edit-user']\", container).on('click', edit_user);\n $(\"[data-behavior='cancel-edit']\", container).on('click', cancel_edit);\n $(\"[data-behavior='destroy-user']\", container).on('click', destroy_user);\n $(\"[data-behavior='new-user']\", container).on('click', new_user);\n })\n }\n}\n","import { fetchAutocompleteJSON } from 'spotlight/admin/search_typeahead';\n\n(function ($){\n SirTrevor.BlockMixins.Autocompleteable = {\n mixinName: \"Autocompleteable\",\n preload: true,\n\n initializeAutocompleteable: function() {\n this.on(\"onRender\", this.addAutocompletetoSirTrevorForm);\n\n if (this['autocomplete_url'] === undefined) {\n this.autocomplete_url = function() { return $('form[data-autocomplete-url]').data('autocomplete-url'); };\n }\n\n if (this['autocomplete_fetch'] === undefined) {\n this.autocomplete_fetch = this.fetchAutocompleteResults;\n }\n\n if (this['transform_autocomplete_results'] === undefined) {\n this.transform_autocomplete_results = (val) => val\n }\n\n if (this['highlight'] === undefined) {\n this.highlight = function(value) {\n if (!value) return '';\n const queryValue = this.getQueryValue().trim();\n return queryValue ? value.replace(new RegExp(queryValue, 'gi'), '<strong>$&</strong>') : value;\n }\n }\n\n if (this['autocomplete_control'] === undefined) {\n this.autocomplete_control = function() {\n const autocompleteID = this.autocompleteID();\n return `\n <auto-complete src=\"${this.autocomplete_url()}\" for=\"${autocompleteID}-popup\" fetch-on-empty>\n <input type=\"text\" name=\"${autocompleteID}\" placeholder=\"${i18n.t(\"blocks:autocompleteable:placeholder\")}\" data-default-typeahead>\n <ul id=\"${autocompleteID}-popup\"></ul>\n <div id=\"${autocompleteID}-popup-feedback\" class=\"sr-only visually-hidden\"></div>\n </auto-complete>\n ` };\n }\n\n if (this['autocomplete_element_template'] === undefined) {\n this.autocomplete_element_template = function(item) {\n return `<li role=\"option\" data-autocomplete-value=\"${item.id}\">${this.autocomplete_template(item)}</li>`\n }\n }\n },\n\n queryTokenizer: function(query) {\n return query.trim().toLowerCase().split(/\\s+/).filter(Boolean);\n },\n\n filterResults: function(data, query) {\n const queryStrings = this.queryTokenizer(query);\n return data.filter(item => {\n const lowerTitle = item.title.toLowerCase();\n return queryStrings.some(queryString => lowerTitle.includes(queryString));\n });\n },\n\n fetchAutocompleteResults: async function(url) {\n const result = await fetchAutocompleteJSON(url);\n const transformed = this.transform_autocomplete_results(result);\n this.fetchedData = {};\n transformed.map(item => this.fetchedData[item.id] = item);\n return transformed.map(item => this.autocomplete_element_template(item)).join('');\n },\n\n fetchOnceAndFilterLocalResults: async function(url) {\n if (this.fetchedData === undefined) {\n await this.fetchAutocompleteResults(url);\n }\n const query = url.searchParams.get('q');\n const data = Object.values(this.fetchedData);\n const filteredData = query ? this.filterResults(data, query) : data;\n return filteredData.map(item => this.autocomplete_element_template(item)).join('');\n },\n\n autocompleteID: function() {\n return this.blockID + '-autocomplete';\n },\n\n getQueryValue: function() {\n const completer = this.inner.querySelector(\"auto-complete > input\");\n return completer.value;\n },\n\n addAutocompletetoSirTrevorForm: function() {\n const completer = this.inner.querySelector(\"auto-complete\");\n completer.fetchResult = this.autocomplete_fetch.bind(this);\n completer.addEventListener('auto-complete-change', (e) => {\n const data = this.fetchedData[e.relatedTarget.value];\n if (e.relatedTarget.value && data) {\n e.value = e.relatedTarget.value = '';\n this.createItemPanel({ ...data, display: \"true\" });\n }\n });\n },\n },\n\n\n SirTrevor.Block.prototype.availableMixins.push(\"autocompleteable\");\n})(jQuery);\n","(function ($){\n SirTrevor.BlockMixins.Formable = {\n mixinName: \"Formable\",\n preload: true,\n\n initializeFormable: function() {\n\n if (this['afterLoadData'] === undefined) {\n this['afterLoadData'] = function(data) { };\n }\n },\n\n formId: function(id) {\n return this.blockID + \"_\" + id;\n },\n\n _serializeData: function() {\n\n var data = $(\":input,textarea,select\", this.inner).not(':input:radio').serializeJSON();\n\n $(':input:radio:checked', this.inner).each(function(index, input) {\n var key = $(input).data('key') || input.getAttribute('name');\n\n if (!key.match(\"\\\\[\")) {\n data[key] = $(input).val();\n }\n });\n\n /* Simple to start. Add conditions later */\n if (this.hasTextBlock()) {\n data.text = this.getTextBlockHTML();\n data.format = 'html';\n if (data.text && data.text.length > 0 && this.options.convertToMarkdown) {\n data.text = stToMarkdown(data.text, this.type);\n data.format = 'markdown';\n }\n }\n\n return data;\n },\n\n loadData: function(data){\n if (this.hasTextBlock()) {\n if (data.text && data.text.length > 0 && this.options.convertFromMarkdown && data.format !== \"html\") {\n this.setTextBlockHTML(SirTrevor.toHTML(data.text, this.type));\n } else {\n this.setTextBlockHTML(data.text);\n }\n }\n this.loadFormDataByKey(data);\n this.afterLoadData(data);\n },\n\n loadFormDataByKey: function(data) {\n $(':input', this.inner).not('button,:input[type=hidden]').each(function(index, input) {\n var key = $(input).data('key') || input.getAttribute('name');\n\n if (key) {\n\n if (key.match(\"\\\\[\\\\]$\")) {\n key = key.replace(\"[]\", \"\");\n }\n\n // by wrapping it in an array, this'll \"just work\" for radio and checkbox fields too\n var input_data = data[key];\n\n if (!(input_data instanceof Array)) {\n input_data = [input_data];\n }\n $(this).val(input_data);\n }\n });\n },\n },\n\n\n SirTrevor.Block.prototype.availableMixins.push(\"formable\");\n})(jQuery);\n","(function ($){\n SirTrevor.BlockMixins.Plustextable = {\n mixinName: \"Textable\",\n preload: true,\n\n initializeTextable: function() {\n if (this['formId'] === undefined) {\n this.withMixin(SirTrevor.BlockMixins.Formable);\n }\n \n if (this['show_heading'] === undefined) {\n this.show_heading = true;\n }\n },\n \n align_key:\"text-align\",\n text_key:\"item-text\",\n heading_key: \"title\",\n \n text_area: function() { \n return `\n <div class=\"row\">\n <div class=\"col-md-8\">\n <div class=\"form-group mb-3\">\n ${this.heading()}\n <div class=\"field\">\n <label for=\"${this.formId(this.text_key)}\" class=\"col-form-label\">${i18n.t(\"blocks:textable:text\")}</label>\n <div id=\"${this.formId(this.text_key)}\" class=\"st-text-block form-control\" contenteditable=\"true\"></div>\n </div>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div class=\"text-align\">\n <p>${i18n.t(\"blocks:textable:align:title\")}</p>\n <input data-key=\"${this.align_key}\" type=\"radio\" name=\"${this.formId(this.align_key)}\" id=\"${this.formId(this.align_key + \"-left\")}\" value=\"left\" checked=\"true\">\n <label for=\"${this.formId(this.align_key + \"-left\")}\">${i18n.t(\"blocks:textable:align:left\")}</label>\n <input data-key=\"${this.align_key}\" type=\"radio\" name=\"${this.formId(this.align_key)}\" id=\"${this.formId(this.align_key + \"-right\")}\" value=\"right\">\n <label for=\"${this.formId(this.align_key + \"-right\")}\">${i18n.t(\"blocks:textable:align:right\")}</label>\n </div>\n </div>\n </div>`\n },\n \n heading: function() {\n if(this.show_heading) {\n return `<div class=\"field\">\n <label for=\"${this.formId(this.heading_key)}\" class=\"col-form-label\">${i18n.t(\"blocks:textable:heading\")}</label>\n <input type=\"text\" class=\"form-control\" id=\"${this.formId(this.heading_key)}\" name=\"${this.heading_key}\" />\n </div>`\n } else {\n return \"\";\n }\n },\n };\n \n\n SirTrevor.Block.prototype.availableMixins.push(\"plustextable\");\n})(jQuery);\n","import Core from 'spotlight/core'\n\n(function ($){\n Core.Block = SirTrevor.Block.extend({\n scribeOptions: {\n allowBlockElements: true,\n tags: { p: true }\n },\n formable: true,\n editorHTML: function() {\n return '';\n },\n beforeBlockRender: function() {\n this.availableMixins.forEach(function(mixin) {\n if (this[mixin] && SirTrevor.BlockMixins[this.capitalize(mixin)].preload) {\n this.withMixin(SirTrevor.BlockMixins[this.capitalize(mixin)]);\n }\n }, this);\n },\n $instance: function() { return $('#' + this.instanceID); },\n capitalize: function(string) {\n return string.charAt(0).toUpperCase() + string.substring(1).toLowerCase();\n }\n })\n})(jQuery);\n","import Core from 'spotlight/core'\nimport SpotlightNestable from 'spotlight/admin/spotlight_nestable'\n\nCore.Block.Resources = (function(){\n\n return Core.Block.extend({\n type: \"resources\",\n formable: true,\n autocompleteable: true,\n show_heading: true,\n show_image_selection: true,\n title: function() { return i18n.t(\"blocks:\" + this.type + \":title\"); },\n description: function() { return i18n.t(\"blocks:\" + this.type + \":description\"); },\n alt_text_guidelines: function() {\n if (this.showAltText()) {\n return i18n.t(\"blocks:alt_text_guidelines:intro\");\n }\n return \"\";\n },\n alt_text_guidelines_link: function() {\n if (this.showAltText()) {\n var link_url = i18n.t(\"blocks:alt_text_guidelines:link_url\");\n var link_label = i18n.t(\"blocks:alt_text_guidelines:link_label\");\n return '<a target=\"_blank\" href=\"' + link_url + '\">' + link_label + '</a>';\n }\n return \"\";\n },\n icon_name: \"resources\",\n blockGroup: function() { return i18n.t(\"blocks:group:items\") },\n\n primary_field_key: \"primary-caption-field\",\n show_primary_field_key: \"show-primary-caption\",\n secondary_field_key: \"secondary-caption-field\",\n show_secondary_field_key: \"show-secondary-caption\",\n\n display_checkbox: \"display-checkbox\",\n decorative_checkbox: \"decorative-checkbox\",\n alt_text_textarea: \"alt-text-textarea\",\n\n globalIndex: 0,\n\n _itemPanelIiifFields: function(index, data) {\n return [];\n },\n\n _altTextFieldsHTML: function(index, data) {\n if (this.showAltText()) {\n return this.altTextHTML(index, data);\n }\n return \"\";\n },\n\n showAltText: function() {\n return this.editorOptions.altTextSettings[this._typeAsCamelCase()]\n },\n\n _typeAsCamelCase: function() {\n return this.type\n .split('_')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join('');\n },\n _itemSelectImageLink: function(block_item_id, doc_id, index) {\n // If image selection is not possible for this block, then do not show\n // image selection link\n if (!this.show_image_selection) return ``;\n var url = $('form[data-exhibit-path]').data('exhibit-path') + '/select_image?';\n var markup = `\n <a name=\"selectimage\" href=\"${url}block_item_id=${block_item_id}&index_id=${index}\" data-blacklight-modal=\"trigger\">Select image area</a>\n `;\n return markup;\n },\n _itemPanel: function(data) {\n var index = \"item_\" + this.globalIndex++;\n var checked;\n if (data.display == \"true\") {\n checked = \"checked='checked'\"\n } else {\n checked = \"\";\n }\n var resource_id = data.slug || data.id;\n var block_item_id = this.formId(index);\n var markup = `\n <li class=\"field dd-item dd3-item\" data-cropper=\"select_image_${block_item_id}\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${block_item_id}\" data-input-prefix=\"item[${index}]\">\n <input type=\"hidden\" name=\"item[${index}][id]\" value=\"${resource_id}\" />\n <input type=\"hidden\" name=\"item[${index}][title]\" value=\"${data.title}\" />\n ${this._itemPanelIiifFields(index, data)}\n <input data-property=\"weight\" type=\"hidden\" name=\"item[${index}][weight]\" value=\"${data.weight}\" />\n <div class=\"card d-flex dd3-content\">\n <div class=\"dd-handle dd3-handle\">${i18n.t(\"blocks:resources:panel:drag\")}</div>\n <div class=\"card-header item-grid\">\n <div class=\"d-flex\">\n <div class=\"d-inline-block\">\n <div class=\"d-flex\">\n <div class=\"checkbox\">\n <input name=\"item[${index}][display]\" type=\"hidden\" value=\"false\" />\n <input name=\"item[${index}][display]\" id=\"${this.formId(this.display_checkbox + '_' + data.id)}\" type=\"checkbox\" ${checked} class=\"item-grid-checkbox\" value=\"true\" />\n <label class=\"sr-only visually-hidden\" for=\"${this.formId(this.display_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:panel:display\")}</label>\n </div>\n <div class=\"pic\">\n <img class=\"img-thumbnail\" src=\"${(data.thumbnail_image_url || ((data.iiif_tilesource || \"\").replace(\"/info.json\", \"/full/!100,100/0/default.jpg\")))}\" />\n </div>\n </div>\n <div class=\"d-inline-block\">\n ${this._itemSelectImageLink(block_item_id,data.id, index)}\n </div>\n </div>\n <div class=\"main\">\n <div class=\"title card-title\">${data.title}</div>\n <div>${(data.slug || data.id)}</div>\n ${this._altTextFieldsHTML(index, data)}\n </div>\n <div class=\"remove float-right float-end\">\n <a data-item-grid-panel-remove=\"true\" href=\"#\">${i18n.t(\"blocks:resources:panel:remove\")}</a>\n </div>\n </div>\n <div data-panel-image-pagination=\"true\"></div>\n </div>\n </div>\n </li>\n `\n\n const panel = $(markup);\n var context = this;\n\n $('.remove a', panel).on('click', function(e) {\n e.preventDefault();\n $(this).closest('.field').remove();\n context.afterPanelDelete();\n\n });\n\n this.afterPanelRender(data, panel);\n\n return panel;\n },\n\n afterPanelRender: function(data, panel) {\n \n },\n\n afterPanelDelete: function() {\n\n },\n\n createItemPanel: function(data) {\n var panel = this._itemPanel(data);\n this.attachAltTextHandlers(panel);\n $(panel).appendTo($('.panels > ol', this.inner));\n $('[data-behavior=\"nestable\"]', this.inner).trigger('change');\n },\n\n item_options: function() { return \"\"; },\n\n content: function() {\n var templates = [this.items_selector()];\n if (this.plustextable) {\n templates.push(this.text_area());\n }\n return templates.join(\"<hr />\\n\");\n },\n\n items_selector: function() { return [\n '<div class=\"row\">',\n '<div class=\"col-md-8\">',\n '<div class=\"form-group mb-3\">',\n '<div class=\"panels dd nestable-item-grid\" data-behavior=\"nestable\" data-max-depth=\"1\"><ol class=\"dd-list\"></ol></div>',\n this.autocomplete_control(),\n '</div>',\n '</div>',\n '<div class=\"col-md-4\">',\n this.item_options(),\n '</div>',\n '</div>'].join(\"\\n\")\n },\n\n editorHTML: function() {\n return `<div class=\"form resources-admin clearfix\">\n <div class=\"widget-header\">\n ${this.description()}\n ${this.alt_text_guidelines()}\n ${this.alt_text_guidelines_link()}\n </div>\n ${this.content()}\n </div>`\n },\n\n _altTextData: function(data) {\n const isDecorative = data.decorative;\n const altText = isDecorative ? '' : (data.alt_text || '');\n const altTextBackup = data.alt_text_backup || '';\n const placeholderAttr = isDecorative ? '' : `placeholder=\"${i18n.t(\"blocks:resources:alt_text:placeholder\")}\"`;\n const disabledAttr = isDecorative ? 'disabled' : '';\n\n return { isDecorative, altText, altTextBackup, placeholderAttr, disabledAttr };\n },\n\n altTextHTML: function(index, data) {\n const { isDecorative, altText, altTextBackup, placeholderAttr, disabledAttr } = this._altTextData(data);\n return `<div class=\"mt-2 pt-2 d-flex\">\n <div class=\"me-2 mr-2\">\n <label class=\"col-form-label pb-0 pt-1\" for=\"${this.formId(this.alt_text_textarea + '_' + data.id)}\">${i18n.t(\"blocks:resources:alt_text:alternative_text\")}</label>\n <div class=\"form-check mb-1 justify-content-end\">\n <input class=\"form-check-input\" type=\"checkbox\"\n id=\"${this.formId(this.decorative_checkbox + '_' + data.id)}\" name=\"item[${index}][decorative]\" ${isDecorative ? 'checked' : ''}>\n <label class=\"form-check-label\" for=\"${this.formId(this.decorative_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:alt_text:decorative\")}</label>\n </div>\n </div>\n <div class=\"flex-grow-1 flex-fill d-flex\">\n <input type=\"hidden\" name=\"item[${index}][alt_text_backup]\" value=\"${altTextBackup}\" />\n <textarea class=\"form-control w-100\" rows=\"2\" ${placeholderAttr}\n id=\"${this.formId(this.alt_text_textarea + '_' + data.id)}\" name=\"item[${index}][alt_text]\" ${disabledAttr}>${altText}</textarea>\n </div>\n </div>`\n },\n\n attachAltTextHandlers: function(panel) {\n if (this.showAltText()) {\n const decorativeCheckbox = $('input[name$=\"[decorative]\"]', panel);\n const altTextInput = $('textarea[name$=\"[alt_text]\"]', panel);\n const altTextBackupInput = $('input[name$=\"[alt_text_backup]\"]', panel);\n\n decorativeCheckbox.on('change', function() {\n const isDecorative = this.checked;\n if (isDecorative) {\n altTextBackupInput.val(altTextInput.val());\n altTextInput.val('');\n } else {\n altTextInput.val(altTextBackupInput.val());\n }\n altTextInput\n .prop('disabled', isDecorative)\n .attr('placeholder', isDecorative ? '' : i18n.t(\"blocks:resources:alt_text:placeholder\"));\n });\n\n altTextInput.on('input', function() {\n $(this).data('lastValue', $(this).val());\n });\n }\n },\n\n onBlockRender: function() {\n SpotlightNestable.init($('[data-behavior=\"nestable\"]', this.inner));\n $('[data-input-select-target]', this.inner).selectRelatedInput();\n },\n\n afterLoadData: function(data) {\n var context = this;\n $.each(Object.keys(data.item || {}).map(function(k) { return data.item[k]}).sort(function(a,b) { return a.weight - b.weight; }), function(index, item) {\n context.createItemPanel(item);\n });\n \n }\n });\n\n})();\n","import Core from 'spotlight/core'\n\nSirTrevor.Blocks.Browse = (function(){\n\n return Core.Block.Resources.extend({\n type: \"browse\",\n\n icon_name: \"browse\",\n\n autocomplete_url: function() {\n return document.getElementById(this.instanceID).closest('form[data-autocomplete-exhibit-searches-path]').dataset.autocompleteExhibitSearchesPath;\n },\n\n autocomplete_fetch: function(url) {\n return this.fetchOnceAndFilterLocalResults(url);\n },\n\n autocomplete_template: function(obj) {\n const thumbnail = obj.thumbnail_image_url ? `<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"${obj.thumbnail_image_url}\" /></div>` : ''\n const description = obj.description ? `<small> ${obj.description}</small>` : '';\n return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${this.highlight(obj.full_title)}</span>${description}</div>`;\n },\n\n _itemPanel: function(data) {\n var index = \"item_\" + this.globalIndex++;\n var checked;\n if (data.display == \"true\") {\n checked = \"checked='checked'\"\n } else {\n checked = \"\";\n }\n var resource_id = data.slug || data.id;\n var markup = `\n <li class=\"field dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(index)}\">\n <input type=\"hidden\" name=\"item[${index}][id]\" value=\"${resource_id}\" />\n <input type=\"hidden\" name=\"item[${index}][full_title]\" value=\"${(data.full_title || data.title)}\" />\n <input data-property=\"weight\" type=\"hidden\" name=\"item[${index}][weight]\" value=\"${data.weight}\" />\n <div class=\"card d-flex dd3-content\">\n <div class=\"dd-handle dd3-handle\">${i18n.t(\"blocks:resources:panel:drag\")}</div>\n <div class=\"card-header item-grid\">\n <div class=\"d-flex\">\n <div class=\"checkbox\">\n <input name=\"item[${index}][display]\" type=\"hidden\" value=\"false\" />\n <input name=\"item[${index}][display]\" id=\"${this.formId(this.display_checkbox + '_' + data.id)}\" type=\"checkbox\" ${checked} class=\"item-grid-checkbox\" value=\"true\" />\n <label class=\"sr-only visually-hidden\" for=\"${this.formId(this.display_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:panel:display\")}</label>\n </div>\n <div class=\"pic\">\n <img class=\"img-thumbnail\" src=\"${(data.thumbnail_image_url || ((data.iiif_tilesource || \"\").replace(\"/info.json\", \"/full/!100,100/0/default.jpg\")))}\" />\n </div>\n <div class=\"main\">\n <div class=\"title card-title\">${(data.full_title || data.title)}</div>\n <div>${(data.slug || data.id)}</div>\n </div>\n <div class=\"remove float-right float-end\">\n <a data-item-grid-panel-remove=\"true\" href=\"#\">${i18n.t(\"blocks:resources:panel:remove\")}</a>\n </div>\n </div>\n </div>\n </div>\n </li>`\n\n var panel = $(markup);\n var context = this;\n\n $('.remove a', panel).on('click', function(e) {\n e.preventDefault();\n $(this).closest('.field').remove();\n context.afterPanelDelete();\n\n });\n\n this.afterPanelRender(data, panel);\n\n return panel;\n },\n\n item_options: function() { return `\n <label>\n <input type=\"hidden\" name=\"display-item-counts\" value=\"false\" />\n <input type=\"checkbox\" name=\"display-item-counts\" value=\"true\" checked />\n ${i18n.t(\"blocks:browse:item_counts\")}\n </label>`\n },\n });\n\n})();\n","/*\n Sir Trevor BrowseGroupCategories\n*/\nimport Core from 'spotlight/core'\n\nSirTrevor.Blocks.BrowseGroupCategories = (function(){\n\n return Core.Block.Resources.extend({\n type: \"browse_group_categories\",\n icon_name: \"browse\",\n\n autocomplete_control: function() {\n const autocompleteID = this.blockID + '-autocomplete';\n return `<auto-complete src=\"${this.autocomplete_url()}\" for=\"${autocompleteID}-popup\" fetch-on-empty>\n <input type=\"text\" name=\"${autocompleteID}\" placeholder=\"${i18n.t(\"blocks:browse_group_categories:autocomplete\")}\" data-default-typeahead>\n <ul id=\"${autocompleteID}-popup\"></ul>\n <div id=\"${autocompleteID}-popup-feedback\" class=\"sr-only visually-hidden\"></div>\n </auto-complete>`\n },\n autocomplete_template: function(obj) {\n return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">\n <span class=\"autocomplete-title\">${this.highlight(obj.title)}</span><br/></div>`\n },\n\n autocomplete_url: function() {\n return document.getElementById(this.instanceID).closest('form[data-autocomplete-exhibit-browse-groups-path]').dataset.autocompleteExhibitBrowseGroupsPath;\n },\n autocomplete_fetch: function(url) {\n return this.fetchOnceAndFilterLocalResults(url);\n },\n _itemPanel: function(data) {\n var index = \"item_\" + this.globalIndex++;\n var checked;\n if (data.display == \"true\") {\n checked = \"checked='checked'\"\n } else {\n checked = \"\";\n }\n var resource_id = data.slug || data.id;\n var markup = `\n <li class=\"field dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(index)}\">\n <input type=\"hidden\" name=\"item[${index}][id]\" value=\"${resource_id}\" />\n <input type=\"hidden\" name=\"item[${index}][title]\" value=\"${data.title}\" />\n <input data-property=\"weight\" type=\"hidden\" name=\"item[${index}][weight]\" value=\"${data.weight}\" />\n <div class=\"card d-flex dd3-content\">\n <div class=\"dd-handle dd3-handle\">${i18n.t(\"blocks:resources:panel:drag\")}</div>\n <div class=\"d-flex card-header item-grid justify-content-between\">\n <div class=\"d-flex flex-grow-1\">\n <div class=\"checkbox\">\n <input name=\"item[${index}][display]\" type=\"hidden\" value=\"false\" />\n <input name=\"item[${index}][display]\" id=\"${this.formId(this.display_checkbox + '_' + data.id)}\" type=\"checkbox\" ${checked} class=\"item-grid-checkbox\" value=\"true\" />\n <label class=\"sr-only visually-hidden\" for=\"${this.formId(this.display_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:panel:display\")}</label>\n </div>\n <div class=\"main\">\n <div class=\"title card-title\">${data.title}</div>\n </div>\n </div>\n <div class=\"d-flex\">\n <a data-item-grid-panel-remove=\"true\" href=\"#\">${i18n.t(\"blocks:resources:panel:remove\")}</a>\n </div>\n </div>\n </div>\n </li>`\n\n const panel = $(markup);\n var context = this;\n\n $('a[data-item-grid-panel-remove]', panel).on('click', function(e) {\n e.preventDefault();\n $(this).closest('.field').remove();\n context.afterPanelDelete();\n\n });\n\n this.afterPanelRender(data, panel);\n\n return panel;\n },\n\n item_options: function() { return `\n <label>\n <input type=\"hidden\" name=\"display-item-counts\" value=\"false\" />\n <input type=\"checkbox\" name=\"display-item-counts\" value=\"true\" checked />\n ${i18n.t(\"blocks:browse_group_categories:item_counts\")}\n </label>`\n },\n });\n})();\n","/*\n Sir Trevor ItemText Block.\n This block takes an ID,\n fetches the record from solr,\n displays the image, title, \n and any provided text\n and displays them.\n*/\n\nSirTrevor.Blocks.Iframe = (function(){\n\n return SirTrevor.Block.extend({\n type: \"Iframe\",\n formable: true,\n \n title: function() { return i18n.t('blocks:iframe:title'); },\n description: function() { return i18n.t('blocks:iframe:description'); },\n\n icon_name: \"iframe\",\n \n editorHTML: function() {\n return `<div class=\"clearfix\">\n <div class=\"widget-header\">\n ${this.description()}\n </div>\n <textarea name=\"code\" class=\"form-control\" rows=\"5\" placeholder=\"${i18n.t(\"blocks:iframe:placeholder\")}\"></textarea>\n </div>`;\n }\n });\n})();","SirTrevor.Blocks.LinkToSearch = (function(){\n\n return SirTrevor.Blocks.Browse.extend({\n\n type: \"link_to_search\",\n\n icon_name: 'search_results',\n\n searches_key: \"slug\",\n view_key: \"view\",\n plustextable: false,\n\n });\n})();\n","/*\n Sir Trevor ItemText Block.\n This block takes an ID,\n fetches the record from solr,\n displays the image, title, \n and any provided text\n and displays them.\n*/\nimport Core from 'spotlight/core'\n\nSirTrevor.Blocks.Oembed = (function(){\n\n return Core.Block.extend({\n plustextable: true,\n\n id_key:\"url\",\n\n type: \"oembed\",\n \n title: function() { return i18n.t('blocks:oembed:title'); },\n description: function() { return i18n.t('blocks:oembed:description'); },\n\n icon_name: \"oembed\",\n show_heading: false,\n\n editorHTML: function () {\n return `<div class=\"form oembed-text-admin clearfix\">\n <div class=\"widget-header\">\n ${this.description()}\n </div>\n <div class=\"row\">\n <div class=\"form-group mb-3 col-md-8\">\n <label for=\"${this.formId(this.id_key)}\">${i18n.t(\"blocks:oembed:url\")}</label>\n <input name=\"${this.id_key}\" class=\"form-control col-md-6\" type=\"text\" id=\"${this.formId(this.id_key)}\" />\n </div>\n </div>\n ${this.text_area()}\n </div>`\n }\n });\n})();","import Core from 'spotlight/core'\n\nSirTrevor.Blocks.FeaturedPages = (function(){\n\n return Core.Block.Resources.extend({\n type: \"featured_pages\",\n\n icon_name: \"pages\",\n\n autocomplete_url: function() { return document.getElementById(this.instanceID).closest('form[data-autocomplete-exhibit-pages-path]').dataset.autocompleteExhibitPagesPath; },\n autocomplete_fetch: function(url) {\n return this.fetchOnceAndFilterLocalResults(url);\n },\n autocomplete_template: function(obj) {\n const description = obj.description ? `<small> ${obj.description}</small>` : '';\n const thumbnail = obj.thumbnail_image_url ? `<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"${obj.thumbnail_image_url}\" /></div>` : ''\n return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${this.highlight(obj.title)}</span><br/>${description}</div>`\n },\n });\n\n})();\n","/*\n Sir Trevor ItemText Block.\n This block takes an ID,\n fetches the record from solr,\n displays the image, title, \n and any provided text\n and displays them.\n*/\n\nSirTrevor.Blocks.Rule = (function(){\n\n return SirTrevor.Block.extend({\n type: \"rule\",\n \n title: function() { return i18n.t('blocks:rule:title'); },\n\n icon_name: \"rule\",\n \n editorHTML: function() {\n return '<hr />'\n }\n });\n})();","//= require spotlight/admin/blocks/browse_block\n\nSirTrevor.Blocks.SearchResults = (function(){\n\n return SirTrevor.Blocks.Browse.extend({\n\n type: \"search_results\",\n\n icon_name: 'search_results',\n\n searches_key: \"slug\",\n view_key: \"view\",\n plustextable: false,\n\n content: function() {\n return this.items_selector()\n },\n\n item_options: function() {\n var block = this;\n var fields = $('[data-blacklight-configuration-search-views]').data('blacklight-configuration-search-views');\n\n return $.map(fields, function(field) {\n return `<div>\n <label for='${block.formId(block.view_key + field.key)}'>\n <input id='${block.formId(block.view_key + field.key)}' name='${block.view_key}[]' type='checkbox' value='${field.key}' />\n ${field.label}\n </label>\n </div>`\n }).join(\"\\n\");\n },\n\n afterPanelRender: function(data, panel) {\n $(this.inner).find('.item-input-field').attr(\"disabled\", \"disabled\");\n },\n\n afterPanelDelete: function() {\n $(this.inner).find('.item-input-field').removeAttr(\"disabled\");\n },\n\n });\n})();\n","import Iiif from 'spotlight/admin/iiif'\nimport Core from 'spotlight/core'\n\nSirTrevor.Blocks.SolrDocumentsBase = (function(){\n\n return Core.Block.Resources.extend({\n plustextable: true,\n autocomplete_url: function() { return this.$instance().closest('form[data-autocomplete-exhibit-catalog-path]').data('autocomplete-exhibit-catalog-path') },\n autocomplete_template: function(obj) {\n const thumbnail = obj.thumbnail ? `<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"${obj.thumbnail}\" /></div>` : ''\n return `<div class=\"autocomplete-item${obj.private ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${this.highlight(obj.title)}</span><br/><small> ${this.highlight(obj.description)}</small></div>`\n },\n transform_autocomplete_results: function(response) {\n return $.map(response['docs'], function(doc) {\n return doc;\n })\n },\n\n caption_option_values: function() {\n var fields = $('[data-blacklight-configuration-index-fields]').data('blacklight-configuration-index-fields');\n\n return $.map(fields, function(field) {\n return $('<option />').val(field.key).text(field.label)[0].outerHTML;\n }).join(\"\\n\");\n },\n\n item_options: function() { return this.caption_options(); },\n\n caption_options: function() { return `\n <div class=\"field-select primary-caption\" data-behavior=\"item-caption-admin\">\n <input name=\"${this.show_primary_field_key}\" type=\"hidden\" value=\"false\" />\n <input data-input-select-target=\"#${this.formId(this.primary_field_key)}\" name=\"${this.show_primary_field_key}\" id=\"${this.formId(this.show_primary_field_key)}\" type=\"checkbox\" value=\"true\" />\n <label for=\"${this.formId(this.show_primary_field_key)}\">${i18n.t(\"blocks:solr_documents:caption:primary\")}</label>\n <select data-input-select-target=\"#${this.formId(this.show_primary_field_key)}\" name=\"${this.primary_field_key}\" id=\"${this.formId(this.primary_field_key)}\">\n <option value=\"\">${i18n.t(\"blocks:solr_documents:caption:placeholder\")}</option>\n ${this.caption_option_values()}\n </select>\n </div>\n <div class=\"field-select secondary-caption\" data-behavior=\"item-caption-admin\">\n <input name=\"${this.show_secondary_field_key}\" type=\"hidden\" value=\"false\" />\n <input data-input-select-target=\"#${this.formId(this.secondary_field_key)}\" name=\"${this.show_secondary_field_key}\" id=\"${this.formId(this.show_secondary_field_key)}\" type=\"checkbox\" value=\"true\" />\n <label for=\"${this.formId(this.show_secondary_field_key)}\">${i18n.t(\"blocks:solr_documents:caption:secondary\")}</label>\n <select data-input-select-target=\"#${this.formId(this.show_secondary_field_key)}\" name=\"${this.secondary_field_key}\" id=\"${this.formId(this.secondary_field_key)}\">\n <option value=\"\">${i18n.t(\"blocks:solr_documents:caption:placeholder\")}</option>\n ${this.caption_option_values()}\n </select>\n </div>\n `},\n\n // Sets the first version of the IIIF information from autocomplete data.\n _itemPanelIiifFields: function(index, autocomplete_data) {\n var iiifFields = [\n '<input type=\"hidden\" name=\"item[' + index + '][thumbnail_image_url]\" value=\"' + (autocomplete_data.thumbnail_image_url || autocomplete_data.thumbnail || \"\") + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][full_image_url]\" value=\"' + (autocomplete_data.full_image_url || autocomplete_data.thumbnail_image_url || autocomplete_data.thumbnail || \"\") + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_tilesource]\" value=\"' + (autocomplete_data.iiif_tilesource) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_manifest_url]\" value=\"' + (autocomplete_data.iiif_manifest_url) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_canvas_id]\" value=\"' + (autocomplete_data.iiif_canvas_id) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_image_id]\" value=\"' + (autocomplete_data.iiif_image_id) + '\"/>',\n ];\n\n // The region input is required for widgets that enable image cropping but not otherwise\n if(this.show_image_selection) {\n iiifFields.push('<input type=\"hidden\" name=\"item[' + index + '][iiif_region]\" value=\"' + (autocomplete_data.iiif_region || \"\") + '\"/>');\n }\n\n return iiifFields.join(\"\\n\");\n },\n // Overwrites the hidden inputs from _itemPanelIiifFields with data from the\n // manifest. Called by afterPanelRender - the manifest_data here is built\n // from canvases in the manifest, transformed by spotlight/admin/iiif.js in\n // the #images method.\n setIiifFields: function(panel, manifest_data, initialize) {\n var legacyThumbnailField = $(panel).find('[name$=\"[thumbnail_image_url]\"]')\n var legacyFullField = $(panel).find('[name$=\"[full_image_url]\"]')\n\n if (initialize && legacyThumbnailField.val().length > 0) {\n return;\n }\n\n legacyThumbnailField.val(\"\");\n legacyFullField.val(\"\");\n $(panel).find('[name$=\"[iiif_image_id]\"]').val(manifest_data.imageId);\n $(panel).find('[name$=\"[iiif_tilesource]\"]').val(manifest_data.tilesource);\n $(panel).find('[name$=\"[iiif_manifest_url]\"]').val(manifest_data.manifest);\n $(panel).find('[name$=\"[iiif_canvas_id]\"]').val(manifest_data.canvasId);\n $(panel).find('img.img-thumbnail').attr('src', manifest_data.thumbnail_image_url || manifest_data.tilesource.replace(\"/info.json\", \"/full/100,100/0/default.jpg\"));\n },\n afterPanelRender: function(data, panel) {\n var context = this;\n var manifestUrl = data.iiif_manifest || data.iiif_manifest_url;\n\n if (!manifestUrl) {\n $(panel).find('[name$=\"[thumbnail_image_url]\"]').val(data.thumbnail_image_url || data.thumbnail);\n $(panel).find('[name$=\"[full_image_url]\"]').val(data.full_image_url);\n\n return;\n }\n\n $.ajax(manifestUrl).done(\n function(manifest) {\n var iiifManifest = new Iiif(manifestUrl, manifest);\n\n var thumbs = iiifManifest.imagesArray();\n\n if (!data.iiif_image_id) {\n context.setIiifFields(panel, thumbs[0], !!data.iiif_manifest_url);\n }\n\n\n if(thumbs.length > 1) {\n panel.multiImageSelector(thumbs, function(selectorImage) {\n context.setIiifFields(panel, selectorImage, false);\n }, data.iiif_image_id);\n }\n }\n );\n }\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocuments = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n type: \"solr_documents\",\n\n icon_name: \"items\",\n\n item_options: function() { return this.caption_options() + this.zpr_option(); },\n\n zpr_option: function() {\n return `\n <div>\n <input name=\"${this.zpr_key}\" type=\"hidden\" value=\"false\" />\n <input name=\"${this.zpr_key}\" id=\"${this.formId(this.zpr_key)}\" data-key=\"${this.zpr_key}\" type=\"checkbox\" value=\"true\" />\n <label for=\"${this.formId(this.zpr_key)}\">${i18n.t(\"blocks:solr_documents:zpr:title\")}</label>\n </div>\n `\n },\n\n zpr_key: 'zpr_link'\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocumentsCarousel = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n plustextable: false,\n type: \"solr_documents_carousel\",\n\n icon_name: \"item_carousel\",\n\n auto_play_images_key: \"auto-play-images\",\n auto_play_images_interval_key: \"auto-play-images-interval\",\n max_height_key: \"max-height\",\n\n carouselCycleTimesInSeconds: {\n values: [ 3, 5, 8, 12, 20 ],\n selected: 5\n },\n\n carouselMaxHeights: {\n values: { 'Small': 'small', 'Medium': 'medium', 'Large': 'large' },\n selected: 'Medium'\n },\n\n item_options: function() {\n return `${this.caption_options()}\n <div class=\"field-select auto-cycle-images\" data-behavior=\"auto-cycle-images\">\n <input name=\"${this.auto_play_images_key}\" type=\"hidden\" value=\"false\" />\n <input name=\"${this.auto_play_images_key}\" id=\"${this.formId(this.auto_play_images_key)}\" data-key=\"${this.auto_play_images_key}\" type=\"checkbox\" value=\"true\" checked/>\n <label for=\"${this.formId(this.auto_play_images_key)}\">${i18n.t(\"blocks:solr_documents_carousel:interval:title\")}</label>\n <select name=\"${this.auto_play_images_interval_key}\" id=\"${this.formId(this.auto_play_images_interval_key)}\" data=key=\"${this.auto_play_images_interval_key}\">\n <option value=\"\">${i18n.t(\"blocks:solr_documents_carousel:interval:placeholder\")}</option>\n ${this.addCarouselCycleOptions(this.carouselCycleTimesInSeconds)}\n </select>\n </div>\n <div class=\"field-select max-heights\" data-behavior=\"max-heights\">\n <label for=\"${this.formId(this.max_height_key)}\">${i18n.t(\"blocks:solr_documents_carousel:height:title\")}</label><br/>\n ${this.addCarouselMaxHeightOptions(this.carouselMaxHeights)}\n </div>`\n },\n\n addCarouselCycleOptions: function(options) {\n var html = '';\n\n $.each(options.values, function(index, interval) {\n var selected = (interval === options.selected) ? 'selected' : '',\n intervalInMilliSeconds = parseInt(interval, 10) * 1000;\n\n html += '<option value=\"' + intervalInMilliSeconds + '\" ' + selected + '>' + interval + ' seconds</option>';\n });\n\n return html;\n },\n\n addCarouselMaxHeightOptions: function(options) {\n var html = '',\n _this = this;\n\n $.each(options.values, function(size, px) {\n var checked = (size === options.selected) ? 'checked' : '',\n id = _this.formId(_this.max_height_key)\n\n html += '<input data-key=\"' + _this.max_height_key + '\" type=\"radio\" name=\"' + id + '\" value=\"' + px + '\" id=\"' + id + '\" ' + checked + '>';\n html += '<label class=\"carousel-size\" for=\"' + id + '\">' + size + '</label>';\n });\n\n return html;\n },\n\n afterPreviewLoad: function(options) {\n $(this.inner).find('.carousel').carousel();\n\n // the bootstrap carousel only initializes data-bs-slide widgets on page load, so we need\n // to initialize them ourselves..\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || $this.attr('data-bs-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to') || $this.attr('data-bs-slide-to')\n if (slideIndex) options.interval = false\n\n $.fn.carousel.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(this.inner).find('.carousel')\n .on('click.bs.carousel.data-api', '[data-slide], [data-bs-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to], [data-bs-slide-to]', clickHandler)\n }\n\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocumentsEmbed = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n type: \"solr_documents_embed\",\n icon_name: \"item_embed\",\n show_image_selection: false,\n\n item_options: function() { return \"\" },\n\n afterPreviewLoad: function(options) {\n $(this.inner).find('picture[data-openseadragon]').openseadragon();\n }\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocumentsFeatures = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n plustextable: false,\n type: \"solr_documents_features\",\n\n icon_name: \"item_features\",\n\n afterPreviewLoad: function(options) {\n $(this.inner).find('.carousel').carousel();\n\n // the bootstrap carousel only initializes data-bs-slide widgets on page load, so we need\n // to initialize them ourselves..\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || $this.attr('data-bs-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to') || $this.attr('data-bs-slide-to')\n if (slideIndex) options.interval = false\n\n $.fn.carousel.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(this.inner).find('.carousel')\n .on('click.bs.carousel.data-api', '[data-slide], [data-bs-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to], [data-bs-slide-to]', clickHandler)\n }\n\n });\n\n})();\n","//= require spotlight/admin/blocks/solr_documents_base_block\n\nSirTrevor.Blocks.SolrDocumentsGrid = (function(){\n\n return SirTrevor.Blocks.SolrDocumentsBase.extend({\n type: \"solr_documents_grid\",\n\n icon_name: \"item_grid\",\n\n\n item_options: function() { return \"\" }\n });\n\n})();\n","import SpotlightNestable from 'spotlight/admin/spotlight_nestable'\nimport Core from 'spotlight/core'\n\nSirTrevor.Blocks.UploadedItems = (function(){\n return Core.Block.Resources.extend({\n plustextable: true,\n uploadable: true,\n autocompleteable: false,\n show_image_selection: false,\n \n id_key: 'file',\n\n type: 'uploaded_items',\n\n icon_name: 'items',\n\n blockGroup: 'undefined',\n\n // Clear out the default Uploadable upload options\n // since we will be using our own custom controls\n upload_options: { html: '' },\n\n fileInput: function() { return $(this.inner).find('input[type=\"file\"]'); },\n\n onBlockRender: function(){\n SpotlightNestable.init($(this.inner).find('[data-behavior=\"nestable\"]'));\n\n this.fileInput().on('change', (function(ev) {\n this.onDrop(ev.currentTarget);\n }).bind(this));\n },\n\n onDrop: function(transferData){\n var file = transferData.files[0],\n urlAPI = (typeof URL !== \"undefined\") ? URL : (typeof webkitURL !== \"undefined\") ? webkitURL : null;\n\n // Handle one upload at a time\n if (/image/.test(file.type)) {\n this.loading();\n\n this.uploader(\n file,\n function(data) {\n this.createItemPanel(data);\n this.fileInput().val('');\n this.ready();\n },\n function(error) {\n this.addMessage(i18n.t('blocks:image:upload_error'));\n this.ready();\n }\n );\n }\n },\n\n title: function() { return i18n.t('blocks:uploaded_items:title'); },\n description: function() { return i18n.t('blocks:uploaded_items:description'); },\n\n globalIndex: 0,\n\n _itemPanel: function(data) {\n var index = \"file_\" + this.globalIndex++;\n var checked = 'checked=\"checked\"';\n\n if (data.display == 'false') {\n checked = '';\n }\n\n var dataId = data.id || data.uid;\n var dataTitle = data.title || data.name;\n var dataUrl = data.url || data.file.url;\n\n var markup = `\n <li class=\"field dd-item dd3-item\" data-id=\"${index}\" id=\"${this.formId(index)}\">\n <input type=\"hidden\" name=\"item[${index}][id]\" value=\"${dataId}\" />\n <input type=\"hidden\" name=\"item[${index}][title]\" value=\"${dataTitle}\" />\n <input type=\"hidden\" name=\"item[${index}][url]\" data-item-grid-thumbnail=\"true\" value=\"${dataUrl}\"/>\n <input data-property=\"weight\" type=\"hidden\" name=\"item[${index}][weight]\" value=\"${data.weight}\" />\n <div class=\"card d-flex dd3-content\">\n <div class=\"dd-handle dd3-handle\">${i18n.t(\"blocks:resources:panel:drag\")}</div>\n <div class=\"card-header d-flex item-grid\">\n <div class=\"checkbox\">\n <input name=\"item[${index}][display]\" type=\"hidden\" value=\"false\" />\n <input name=\"item[${index}][display]\" id=\"${this.formId(this.display_checkbox + '_' + dataId)}\" type=\"checkbox\" ${checked} class=\"item-grid-checkbox\" value=\"true\" />\n <label class=\"sr-only visually-hidden\" for=\"${this.formId(this.display_checkbox + '_' + dataId)}\">${i18n.t(\"blocks:resources:panel:display\")}</label>\n </div>\n <div class=\"pic\">\n <img class=\"img-thumbnail\" src=\"${dataUrl}\" />\n </div>\n <div class=\"main form-horizontal\">\n <div class=\"title card-title\">${dataTitle}</div>\n <div class=\"field row mr-3 me-3\">\n <label for=\"${this.formId('caption_' + dataId)}\" class=\"col-form-label col-md-3\">${i18n.t(\"blocks:uploaded_items:caption\")}</label>\n <input type=\"text\" class=\"form-control col\" id=\"${this.formId('caption_' + dataId)}\" name=\"item[${index}][caption]\" data-field=\"caption\"/>\n </div>\n <div class=\"field row mr-3 me-3\">\n <label for=\"${this.formId('link_' + dataId)}\" class=\"col-form-label col-md-3\">${i18n.t(\"blocks:uploaded_items:link\")}</label>\n <input type=\"text\" class=\"form-control col\" id=\"${this.formId('link_' + dataId)}\" name=\"item[${index}][link]\" data-field=\"link\"/>\n </div>\n ${this._altTextFieldsHTML(index, data)}\n </div>\n <div class=\"remove float-right float-end\">\n <a data-item-grid-panel-remove=\"true\" href=\"#\">${i18n.t(\"blocks:resources:panel:remove\")}</a>\n </div>\n </div>\n </li>`\n\n const panel = $(markup);\n panel.find('[data-field=\"caption\"]').val(data.caption);\n panel.find('[data-field=\"link\"]').val(data.link);\n var context = this;\n\n $('.remove a', panel).on('click', function(e) {\n e.preventDefault();\n $(this).closest('.field').remove();\n context.afterPanelDelete();\n });\n\n this.afterPanelRender(data, panel);\n\n return panel;\n },\n\n editorHTML: function() {\n return `<div class=\"form oembed-text-admin clearfix\">\n <div class=\"widget-header\">\n ${this.description()}\n ${this.alt_text_guidelines()}\n ${this.alt_text_guidelines_link()}\n </div>\n <div class=\"row\">\n <div class=\"form-group mb-3 col-md-8\">\n <div class=\"panels dd nestable-item-grid\" data-behavior=\"nestable\" data-max-depth=\"1\">\n <ol class=\"dd-list\">\n </ol>\n </div>\n <input type=\"file\" id=\"uploaded_item_url\" name=\"file[file_0][file_data]\" />\n </div>\n <div class=\"col-md-4\">\n <input name=\"${this.zpr_key}\" type=\"hidden\" value=\"false\" />\n <input name=\"${this.zpr_key}\" id=\"${this.formId(this.zpr_key)}\" data-key=\"${this.zpr_key}\" type=\"checkbox\" value=\"true\" />\n <label for=\"${this.formId(this.zpr_key)}\">${i18n.t(\"blocks:solr_documents:zpr:title\")}</label>\n </div>\n </div>\n ${this.text_area()}\n </div>`\n },\n\n altTextHTML: function(index, data) {\n const { isDecorative, altText, altTextBackup, placeholderAttr, disabledAttr } = this._altTextData(data);\n return `\n <div class=\"field row mr-3 me-3\">\n <div class=\"col-lg-3 ps-md-2 pl-md-2\">\n <label class=\"col-form-label text-nowrap pb-0 pt-1 justify-content-md-start justify-content-lg-end d-flex\" for=\"${this.formId(this.alt_text_textarea + '_' + data.id)}\">${i18n.t(\"blocks:resources:alt_text:alternative_text\")}</label>\n <div class=\"form-check d-flex justify-content-md-start justify-content-lg-end\">\n <input class=\"form-check-input\" type=\"checkbox\"\n id=\"${this.formId(this.decorative_checkbox + '_' + data.id)}\" name=\"item[${index}][decorative]\" ${isDecorative ? 'checked' : ''}>\n <label class=\"form-check-label\" for=\"${this.formId(this.decorative_checkbox + '_' + data.id)}\">${i18n.t(\"blocks:resources:alt_text:decorative\")}</label>\n </div>\n </div>\n <input type=\"hidden\" name=\"item[${index}][alt_text_backup]\" value=\"${altTextBackup}\" />\n <textarea class=\"col-lg-9\" rows=\"2\" ${placeholderAttr}\n id=\"${this.formId(this.alt_text_textarea + '_' + data.id)}\" name=\"item[${index}][alt_text]\" ${disabledAttr}>${altText}</textarea>\n </div>`\n },\n\n zpr_key: 'zpr_link'\n });\n})();\n","import Core from 'spotlight/core'\n\n(function() {\n var BLOCK_REPLACER_CONTROL_TEMPLATE = function(block) {\n var el = document.createElement('button');\n el.className = \"st-block-controls__button\";\n el.setAttribute('data-type', block.type);\n el.type = \"button\";\n\n var img = document.createElement('svg');\n img.className = \"st-icon\";\n img.setAttribute('role', 'img');\n\n var use = document.createElement('use');\n use.setAttributeNS('https://www.w3.org/1999/xlink', 'href', SirTrevor.config.defaults.iconUrl + \"#\" + block.icon_name);\n img.appendChild(use);\n el.appendChild(img);\n el.appendChild(document.createTextNode(block.title()));\n\n return el.outerHTML;\n };\n\n function generateBlocksHTML(Blocks, availableTypes) {\n var groups = {};\n for(var i in availableTypes) {\n var type = availableTypes[i];\n if (Blocks.hasOwnProperty(type) && Blocks[type].prototype.toolbarEnabled) {\n var blockGroup;\n\n if ($.isFunction(Blocks[type].prototype.blockGroup)) {\n blockGroup = Blocks[type].prototype.blockGroup();\n } else {\n blockGroup = Blocks[type].prototype.blockGroup;\n }\n\n if (blockGroup == 'undefined' || blockGroup === undefined) {\n blockGroup = i18n.t(\"blocks:group:undefined\");\n }\n\n groups[blockGroup] = groups[blockGroup] || [];\n groups[blockGroup].push(BLOCK_REPLACER_CONTROL_TEMPLATE(Blocks[type].prototype));\n }\n }\n\n function generateBlock(groups, key) {\n var group = groups[key];\n var groupEl = $(\"<div class='st-controls-group'><div class='st-group-col-form-label'>\" + key + \"</div></div>\");\n var buttons = group.reduce(function(memo, btn) {\n return memo += btn;\n }, \"\");\n groupEl.append(buttons);\n return groupEl[0].outerHTML;\n }\n\n var standardWidgets = generateBlock(groups, i18n.t(\"blocks:group:undefined\"));\n\n var exhibitWidgets = Object.keys(groups).map(function(key) {\n if (key !== i18n.t(\"blocks:group:undefined\")) {\n return generateBlock(groups, key);\n }\n }).filter(function (element) {\n return element != null;\n });\n\n var blocks = [standardWidgets].concat(exhibitWidgets).join(\"<hr />\");\n return blocks;\n }\n\n function render(Blocks, availableTypes) {\n var el = document.createElement('div');\n el.className = \"st-block-controls__buttons\";\n el.innerHTML = generateBlocksHTML.apply(null, arguments);\n\n var elButtons = document.createElement('div');\n elButtons.className = \"spotlight-block-controls\";\n elButtons.appendChild(el);\n return elButtons;\n }\n\n Core.BlockControls = function() { };\n Core.BlockControls.create = function(editor) {\n // REFACTOR - should probably not know about blockManager\n var el = render(SirTrevor.Blocks, editor.blockManager.blockTypes);\n\n function hide() {\n var parent = el.parentNode;\n if (!parent) { return; }\n parent.removeChild(el);\n parent.classList.remove(\"st-block--controls-active\");\n return parent;\n }\n\n function destroy() {\n SirTrevor = null;\n el = null;\n }\n\n function insert(e) {\n e.stopPropagation();\n\n var parent = this.parentNode;\n if (!parent || hide() === parent) { return; }\n $('.st-block__inner', parent).after(el);\n parent.classList.add(\"st-block--controls-active\");\n }\n\n function replaceBlock() {\n SirTrevor.mediator.trigger(\n \"block:replace\", el.parentNode, this.getAttribute('data-type')\n );\n }\n\n $(editor.wrapper).delegate(\".st-block-replacer\", \"click\", insert);\n $(editor.wrapper).delegate(\".st-block-controls__button\", \"click\", insert);\n\n return {\n el: el,\n hide: hide,\n destroy: destroy\n };\n };\n})();\n","import Core from 'spotlight/core'\n\nCore.BlockLimits = function(editor) {\n this.editor = editor;\n};\n\nCore.BlockLimits.prototype.enforceLimits = function(editor) {\n this.addEditorCallbacks(editor);\n this.checkGlobalBlockTypeLimit()();\n};\n\nCore.BlockLimits.prototype.addEditorCallbacks = function(editor) {\n SirTrevor.EventBus.on('block:create:new', this.checkBlockTypeLimitOnAdd());\n SirTrevor.EventBus.on('block:remove', this.checkGlobalBlockTypeLimit());\n};\n\nCore.BlockLimits.prototype.checkBlockTypeLimitOnAdd = function() {\n var editor = this.editor;\n\n return function(block) {\n var control = $(\".st-block-controls__button[data-type='\" + block.type + \"']\", editor.blockControls.el);\n\n control.prop(\"disabled\", !editor.blockManager.canCreateBlock(block.class()));\n };\n};\n\nCore.BlockLimits.prototype.checkGlobalBlockTypeLimit = function() {\n // we don't know what type of block was created or removed.. So, try them all.\n var editor = this.editor;\n\n return function() {\n $.each(editor.blockManager.blockTypes, function(i, type) {\n var block_type = SirTrevor.Blocks[type].prototype;\n\n var control = $(editor.blockControls.el).find(\".st-block-controls__button[data-type='\" + block_type.type + \"']\");\n control.prop(\"disabled\", !editor.blockManager.canCreateBlock(type));\n });\n };\n};\n","SirTrevor.Locales.en.blocks = $.extend(SirTrevor.Locales.en.blocks, {\n autocompleteable: {\n placeholder: \"Enter a title...\"\n },\n\n browse: {\n title: \"Browse Categories\",\n description: \"This widget highlights browse categories. Each highlighted category links to the corresponding browse category results page.\",\n item_counts: \"Include item counts?\"\n },\n\n browse_group_categories: {\n autocomplete: \"Enter a browse group title...\",\n title: \"Browse Group Categories\",\n description: \"This widget displays all browse categories associated with a selected browse group as a horizontally-scrolling row. Each selected browse group is displayed as a separate row. Each displayed category in a group links to the corresponding browse category results page.\",\n item_counts: \"Include category item counts?\"\n },\n\n link_to_search: {\n title: \"Saved Searches\",\n description: \"This widget highlights saved searches. Each highlighted saved search links to the search results page generated by the saved search parameters. Any saved search listed on the Curation > Browse categories page, whether published or not, can be highlighted as a saved search.\",\n item_counts: \"Include item counts?\"\n },\n\n iframe: {\n title: \"IFrame\",\n description: \"This widget embeds iframe-based embed code into pages\",\n placeholder: \"Enter embed code here. It should begin with e.g. '<iframe'\"\n },\n\n oembed: {\n title: \"Embed + Text\",\n description: \"This widget embeds an oEmbed-supported web resource and a text block to the left or right of it. Examples of oEmbed-supported resources include those from YouTube, Twitter, Flickr, and SlideShare.\",\n url: \"URL\",\n },\n\n uploaded_items: {\n title: \"Uploaded Item Row\",\n description: \"This widget displays uploaded items in a horizontal row. Optionally, you can add a heading and/or text to be displayed adjacent to the items. The item caption and link URL fields are also optional.\",\n caption: 'Caption',\n link: 'Link URL'\n },\n\n featured_pages: {\n title: \"Pages\",\n description: \"This widget highlights pages from this exhibit. Each highlighted item links to the corresponding page.\"\n },\n\n resources: {\n panel: {\n drag: \"Drag\",\n display: \"Display?\",\n remove: \"Remove\"\n },\n alt_text: {\n decorative: \"Decorative\",\n alternative_text: \"Alternative text\",\n placeholder: \"Enter alt text for this item...\"\n }\n },\n\n rule: {\n title: \"Horizontal Rule\"\n },\n\n search_results: {\n title: \"Search Results\",\n description: \"This widget displays a set of search results on a page. Specify a search result set by selecting an existing browse category. You can also select the view types that are available to the user when viewing the result set.\"\n },\n\n solr_documents: {\n title: \"Item Row\",\n description: \"This widget displays exhibit items in a horizontal row. Optionally, you can add a heading and/or text to be displayed adjacent to the items.\",\n caption: {\n placeholder: \"Select...\",\n primary: \"Primary caption\",\n secondary: \"Secondary caption\"\n },\n zpr: {\n title: 'Offer \"View larger\" option'\n }\n },\n\n solr_documents_carousel: {\n title: \"Item Carousel\",\n description: \"This widget displays exhibit items in a carousel. You can configure the item captions, how the images are cycled, and the size of the carousel.\",\n interval: {\n title: \"Automatically cycle images\",\n placeholder: \"Select...\"\n },\n height: {\n title: \"Maximum carousel height\"\n }\n },\n\n solr_documents_embed: {\n title: \"Item Embed\",\n description: \"This widget embeds an exhibit item in a viewer on a page. Optionally, you can add a heading to be displayed above the viewer and/or text to be displayed adjacent to the viewer.\",\n },\n\n solr_documents_features: {\n title: \"Item Slideshow\",\n description: \"This widget displays exhibit items in a static slideshow. The user will move between items in the slideshow using the field you select as the primary caption.\"\n },\n\n solr_documents_grid: {\n title: \"Item Grid\",\n description: \"This widget displays exhibit items in a multi-row grid. Optionally, you can add a heading and/or text to be displayed adjacent to the items.\"\n },\n\n textable: {\n heading: \"Heading\",\n text: \"Text\",\n align: {\n title: \"Display text on:\",\n left: \"Left\",\n right: \"Right\"\n }\n },\n\n group: {\n undefined: \"Standard widgets\",\n items: \"Exhibit item widgets\"\n },\n\n alt_text_guidelines: {\n intro: 'For each item, please enter alternative text or appropriately check the decorative box. ',\n link_label: 'Guidelines for writing alt text.',\n link_url: 'https://www.w3.org/WAI/tutorials/images/' \n }\n});\n","import AddAnother from 'spotlight/admin/add_another'\nimport AddNewButton from 'spotlight/admin/add_new_button'\nimport BlacklightConfiguration from 'spotlight/admin/blacklight_configuration'\nimport CopyEmailAddress from 'spotlight/admin/copy_email_addresses'\nimport Croppable from 'spotlight/admin/croppable'\nimport EditInPlace from 'spotlight/admin/edit_in_place'\nimport Exhibits from 'spotlight/admin/exhibits'\nimport FormObserver from 'spotlight/admin/form_observer'\nimport Locks from 'spotlight/admin/locks'\nimport 'spotlight/admin/multi_image_selector'\nimport Pages from 'spotlight/admin/pages'\nimport ProgressMonitor from 'spotlight/admin/progress_monitor'\nimport ReadonlyCheckbox from 'spotlight/admin/readonly_checkbox'\nimport { addAutocompletetoFeaturedImage } from 'spotlight/admin/search_typeahead'\nimport SelectRelatedInput from 'spotlight/admin/select_related_input'\nimport SpotlightNestable from 'spotlight/admin/spotlight_nestable'\nimport Tabs from 'spotlight/admin/tabs'\nimport TranslationProgress from 'spotlight/admin/translation_progress'\nimport 'spotlight/admin/visibility_toggle'\nimport Users from 'spotlight/admin/users'\n\nimport 'spotlight/admin/block_mixins/autocompleteable'\nimport 'spotlight/admin/block_mixins/formable'\nimport 'spotlight/admin/block_mixins/plustextable'\n\nimport 'spotlight/admin/blocks/block'\nimport 'spotlight/admin/blocks/resources_block' // This is a base class of several other blocks, so must come first\nimport 'spotlight/admin/blocks/browse_block'\nimport 'spotlight/admin/blocks/browse_group_categories_block'\nimport 'spotlight/admin/blocks/iframe_block'\nimport 'spotlight/admin/blocks/link_to_search_block'\nimport 'spotlight/admin/blocks/oembed_block'\nimport 'spotlight/admin/blocks/pages_block'\nimport 'spotlight/admin/blocks/rule_block'\nimport 'spotlight/admin/blocks/search_result_block'\nimport 'spotlight/admin/blocks/solr_documents_base_block'\nimport 'spotlight/admin/blocks/solr_documents_block'\nimport 'spotlight/admin/blocks/solr_documents_carousel_block'\nimport 'spotlight/admin/blocks/solr_documents_embed_block'\nimport 'spotlight/admin/blocks/solr_documents_features_block'\nimport 'spotlight/admin/blocks/solr_documents_grid_block'\nimport 'spotlight/admin/blocks/uploaded_items_block'\n\nimport 'spotlight/admin/sir-trevor/block_controls'\nimport 'spotlight/admin/sir-trevor/block_limits'\nimport 'spotlight/admin/sir-trevor/locales'\n\n\nexport default class {\n connect() {\n new AddAnother().connect()\n new AddNewButton().connect()\n new CopyEmailAddress().connect()\n new Croppable().connect()\n new EditInPlace().connect()\n new Exhibits().connect()\n new FormObserver().connect()\n new Locks().connect()\n new BlacklightConfiguration().connect()\n new Pages().connect()\n new ProgressMonitor().connect()\n new ReadonlyCheckbox().connect()\n new SelectRelatedInput().connect()\n new Tabs().connect()\n new TranslationProgress().connect()\n new Users().connect()\n addAutocompletetoFeaturedImage()\n SpotlightNestable.init();\n }\n}","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n\n static targets = [\n 'addNewTagWrapper',\n 'dropdownContent',\n 'initialTags',\n 'newTag',\n 'searchResultTags',\n 'selectedTags',\n 'tagControlWrapper',\n 'tagSearch',\n 'tagsField',\n 'tagSearchDropdown',\n 'tagSearchInputWrapper'\n ]\n\n static values = {\n tags: Array,\n translations: Object\n }\n\n tagDropdown (event) {\n this.dropdownContentTarget.classList.toggle('d-none')\n }\n\n clickOutside (event) {\n const isShown = !this.dropdownContentTarget.classList.contains('d-none')\n const inSelected = event.target.classList.contains('pill-close')\n const inContainer = this.tagControlWrapperTarget.contains(event.target)\n if (!inContainer && !inSelected && isShown) {\n this.tagDropdown(event)\n }\n }\n\n handleKeydown (event) {\n if (event.key === 'Enter') {\n event.preventDefault()\n const hidden = this.dropdownContentTarget.classList.contains('d-none')\n if (hidden) return;\n\n const tagElementToAdd = this.dropdownContentTarget.querySelector('.active')?.firstElementChild\n if (tagElementToAdd) tagElementToAdd.click()\n }\n\n if (event.key === ',') {\n event.preventDefault()\n if (this.tagSearchTarget.value.length === 0) return\n\n if (!this.addNewTagWrapperTarget.classList.contains('d-none')) {\n this.addNewTagWrapperTarget.click()\n this.tagSearchTarget.focus()\n return\n }\n\n const exactMatch = this.dropdownContentTarget.querySelector('.active')?.firstElementChild\n if (exactMatch?.checked === false) {\n exactMatch.click()\n this.resetSearch()\n }\n this.tagSearchTarget.focus()\n }\n }\n\n addNewTag (event) {\n if (this.addNewTagWrapperTarget.classList.contains('d-none') || this.newTagTarget.dataset.tag.length === 0) {\n return\n }\n\n this.tagsValue = this.tagsValue.concat([this.newTagTarget.dataset.tag])\n this.resetSearch()\n }\n\n resetSearch() {\n this.tagSearchTarget.value = ''\n this.newTagTarget.innerHTML = ''\n this.newTagTarget.dataset.tag = ''\n this.newTagTarget.disabled = true\n this.addNewTagWrapperTarget.classList.add('d-none')\n this.searchResultTagsTargets.forEach(target => this.showElement(target.parentElement))\n }\n\n tagUpdate (event) {\n const target = event.target ? event.target : event\n if (target.checked) {\n this.tagsValue = this.tagsValue.concat([target.dataset.tag])\n } else {\n this.tagsValue = this.tagsValue.filter(tag => tag !== target.dataset.tag)\n }\n }\n\n updateSearchResultsPlaceholder(event) {\n const placeholderElement = this.dropdownContentTarget.querySelector('.no-results')\n if (!placeholderElement) return\n\n const hasVisibleTags = this.dropdownContentTarget.querySelector('label:not(.d-none):not(.no-results)')\n placeholderElement.classList.toggle('d-none', hasVisibleTags)\n }\n\n tagCreate(event) {\n event.preventDefault()\n const newTagCheckbox = document.createElement('label')\n newTagCheckbox.innerHTML = `<input type=\"checkbox\" checked data-action=\"click->${this.identifier}#tagUpdate\" data-tag-selector-target=\"searchResultTags\" data-tag=\"${this.newTagTarget.dataset.tag}\"> ${this.newTagTarget.dataset.tag}`\n const existingTags = Array.from(this.dropdownContentTarget.querySelectorAll('label:not(#add-new-tag-wrapper)'))\n const insertPosition = existingTags.findIndex(tag => tag.textContent.trim().localeCompare(this.newTagTarget.dataset.tag) > 0)\n if (insertPosition === -1) {\n this.addNewTagWrapperTarget.insertAdjacentElement('beforebegin', newTagCheckbox)\n } else {\n existingTags[insertPosition].insertAdjacentElement('beforebegin', newTagCheckbox)\n }\n\n this.tagsValue = this.tagsValue.concat([this.newTagTarget.dataset.tag])\n this.tagSearchTarget.value = ''\n this.tagSearchTarget.dispatchEvent(new Event('input'))\n }\n\n\n tagsValueChanged() {\n const isEmpty = this.tagsValue.length === 0\n\n this.selectedTagsTarget.classList.toggle('d-none', isEmpty)\n this.tagSearchInputWrapperTarget.classList.toggle('rounded', isEmpty)\n this.tagSearchInputWrapperTarget.classList.toggle('rounded-bottom', !isEmpty)\n\n if (!isEmpty) {\n this.selectedTagsTarget.innerHTML = `<ul class=\"list-unstyled border rounded-top mb-0 p-1 px-2\">${this.renderTagPills()}</ul>`\n }\n\n const newValue = this.tagsValue.join(', ')\n if (this.tagsFieldTarget.value !== newValue) {\n this.tagsFieldTarget.value = newValue\n }\n }\n\n normalizeTag (tag) {\n const normalizeRegex = /[^\\w\\s]/gi\n return tag.replace(normalizeRegex, '').toLowerCase().trim()\n }\n\n showElement (element) {\n element.classList.add('d-block')\n element.classList.remove('d-none')\n }\n\n hideElement (element) {\n element.classList.remove('d-block')\n element.classList.add('d-none')\n }\n\n search(event) {\n const searchTerm = this.normalizeTag(event.target.value)\n this.dropdownContentTarget.classList.remove('d-none')\n\n const exactMatch = this.searchResultTagsTargets.some(target => {\n const compareTerm = this.normalizeTag(target.dataset.tag)\n const isMatch = compareTerm.includes(searchTerm)\n target.parentElement.classList.remove('active')\n this[isMatch ? 'showElement' : 'hideElement'](target.parentElement)\n return compareTerm === searchTerm\n })\n\n this[searchTerm.length > 0 && !exactMatch ? 'showElement' : 'hideElement'](this.addNewTagWrapperTarget)\n this.addNewTagWrapperTarget.classList.remove('active')\n this.dropdownContentTarget.querySelector('label:not(.d-none)')?.classList.add('active')\n }\n\n updateTagToAdd (event) {\n const tagAlreadyAdded = this.tagsValue.some(tag =>\n this.normalizeTag(tag) === this.normalizeTag(event.target.value)\n )\n this.newTagTarget.dataset.tag = event.target.value.trim()\n this.newTagTarget.nextSibling.textContent = ` ${this.translationsValue.add_new_tag}: ${event.target.value}`\n this.newTagTarget.disabled = !this.newTagTarget.dataset.tag.length || tagAlreadyAdded\n }\n\n deselect (event) {\n event.preventDefault()\n\n const clickedTag = event.target.closest('button').dataset.tag\n const target = this.searchResultTagsTargets.find((tag) => tag.dataset.tag === clickedTag)\n target ? target.click() : this.tagsValue = this.tagsValue.filter(tag => tag !== clickedTag)\n }\n\n renderTagPills () {\n return this.tagsValue.map((tag) => {\n return `\n <li class=\"d-inline-flex gap-2 align-items-center my-2\">\n <span class=\"bg-light badge rounded-pill border selected-item d-inline-flex align-items-center text-dark\">\n <span class=\"selected-item-label d-inline-flex\">${tag}</span>\n <button\n type=\"button\"\n data-action=\"${this.identifier}#deselect\"\n data-tag=\"${tag}\"\n class=\"btn-close close ms-1 ml-1\"\n aria-label=\"${this.translationsValue.remove} ${tag}\"\n ><span aria-hidden=\"true\" class=\"visually-hidden\">×</span></button>\n </span>\n </li>\n `\n }).join('')\n }\n}\n","import TagSelectorController from 'spotlight/controllers/tag_selector_controller'\n\nexport default class {\n connect() {\n if (typeof Stimulus === \"undefined\") return\n Stimulus.register('tag-selector', TagSelectorController)\n }\n}\n","import UserIndex from 'spotlight/user'\nimport AdminIndex from 'spotlight/admin'\nimport Core from 'spotlight/core'\nimport SpotlightControllers from 'spotlight/controllers'\n\nCore.onLoad(() => {\n new SpotlightControllers().connect()\n new UserIndex().connect()\n new AdminIndex().connect()\n})\n\nexport default Core\n"],"names":["Spotlight","SirTrevor","Core","SpotlightNestable","Controller"],"mappings":"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AE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;EAC5E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC5E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;EAC3E,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE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"}
|