blacklight-spotlight 4.3.6 → 4.4.0
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 +20 -11
- data/app/assets/javascripts/spotlight/spotlight.esm.js.map +1 -1
- data/app/assets/javascripts/spotlight/spotlight.js +20 -11
- data/app/assets/javascripts/spotlight/spotlight.js.map +1 -1
- data/app/assets/stylesheets/spotlight/_accessibility.scss +9 -0
- data/app/assets/stylesheets/spotlight/_browse.scss +1 -0
- data/app/assets/stylesheets/spotlight/_mixins.scss +1 -0
- data/app/components/spotlight/edit_view_links_component.html.erb +13 -0
- data/app/components/spotlight/edit_view_links_component.rb +16 -0
- data/app/components/spotlight/solr_document_legacy_embed_component.rb +1 -1
- data/app/components/spotlight/tag_list_form_component.html.erb +1 -1
- data/app/controllers/spotlight/accessibility_controller.rb +48 -0
- data/app/helpers/spotlight/main_app_helpers.rb +1 -1
- data/app/helpers/spotlight/title_helper.rb +4 -0
- data/app/javascript/spotlight/admin/blocks/resources_block.js +16 -7
- data/app/javascript/spotlight/admin/blocks/solr_documents_embed_block.js +0 -1
- data/app/javascript/spotlight/admin/pages.js +1 -0
- data/app/javascript/spotlight/admin/visibility_toggle.js +1 -1
- data/app/javascript/spotlight/user/clear_form_button.js +2 -2
- data/app/models/sir_trevor_rails/block.rb +12 -0
- data/app/models/sir_trevor_rails/blocks/solr_documents_block.rb +4 -0
- data/app/models/sir_trevor_rails/blocks/solr_documents_embed_block.rb +3 -0
- data/app/models/sir_trevor_rails/blocks/uploaded_items_block.rb +4 -0
- data/app/models/spotlight/custom_field.rb +1 -1
- data/app/services/spotlight/exhibit_import_export_service.rb +1 -0
- data/app/views/spotlight/accessibility/alt_text.html.erb +64 -0
- data/app/views/spotlight/browse/_search_box.html.erb +9 -11
- data/app/views/spotlight/dashboards/_page.html.erb +1 -9
- data/app/views/spotlight/exhibits/_form.html.erb +2 -2
- data/app/views/spotlight/feature_pages/_header.html.erb +1 -4
- data/app/views/spotlight/pages/_form.html.erb +1 -1
- data/app/views/spotlight/pages/_page.html.erb +1 -5
- data/app/views/spotlight/searches/_form.html.erb +3 -3
- data/app/views/spotlight/shared/_exhibit_sidebar.html.erb +1 -0
- data/app/views/spotlight/sir_trevor/blocks/_uploaded_items_block.html.erb +2 -2
- data/config/locales/spotlight.en.yml +11 -2
- data/config/routes.rb +2 -0
- data/lib/spotlight/version.rb +1 -1
- metadata +6 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"spotlight.esm.js","sources":["../../../javascript/spotlight/user/browse_group_categories.js","../../../javascript/spotlight/user/carousel.js","../../../javascript/spotlight/user/clear_form_button.js","../../../javascript/spotlight/user/report_a_problem.js","../../../javascript/spotlight/user/zpr_links.js","../../../javascript/spotlight/user/index.js","../../../../vendor/assets/javascripts/nestable.js","../../../../vendor/assets/javascripts/bootstrap-tagsinput.js","../../../../vendor/assets/javascripts/jquery.serializejson.js","../../../../vendor/assets/javascripts/leaflet-iiif.js","../../../../vendor/assets/javascripts/Leaflet.Editable.js","../../../../vendor/assets/javascripts/Path.Drag.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.js","../../../javascript/spotlight/admin/edit_in_place.js","../../../javascript/spotlight/admin/exhibit_tag_autocomplete.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/checkbox_submit.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/index.js"],"sourcesContent":["export 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 $('.carousel').carousel();\n }\n}\n","export default class {\n connect() {\n var $clearBtn = $('.btn-reset');\n var $input = $clearBtn.parent().prev('input');\n var btnCheck = function(){\n if ($input.val() !== '') {\n $clearBtn.css('display', 'inline-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 var container, target;\n\n function init() {\n const target_val = container.attr('data-target') || container.attr('data-bs-target');\n if (!target_val) \n return\n\n target = $(\"#\" + target_val); \n container.on('click', open);\n target.find('[data-behavior=\"cancel-link\"]').on('click', close);\n }\n\n function open(event) {\n event.preventDefault();\n target.slideToggle('slow');\n }\n\n function close(event) {\n event.preventDefault();\n target.slideUp('fast');\n }\n\n return $('[data-behavior=\"contact-link\"]').each(function() { \n container = $(this);\n init();\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 ReportProblem from 'spotlight/user/report_a_problem'\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 ReportProblem().connect()\n new ZprLinks().connect()\n }\n}\n","/*!\n * Nestable jQuery Plugin - Copyright (c) 2012 David Bushell - http://dbushell.com/\n * Dual-licensed under the BSD or MIT licenses\n */\n;(function($, window, document, undefined)\n{\n var hasTouch = 'ontouchstart' in window;\n var nestableCopy;\n\n /**\n * Detect CSS pointer-events property\n * events are normally disabled on the dragging element to avoid conflicts\n * https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.js\n */\n var hasPointerEvents = (function()\n {\n var el = document.createElement('div'),\n docEl = document.documentElement;\n if (!('pointerEvents' in el.style)) {\n return false;\n }\n el.style.pointerEvents = 'auto';\n el.style.pointerEvents = 'x';\n docEl.appendChild(el);\n var supports = window.getComputedStyle && window.getComputedStyle(el, '').pointerEvents === 'auto';\n docEl.removeChild(el);\n return !!supports;\n })();\n\n var eStart = hasTouch ? 'touchstart' : 'mousedown',\n eMove = hasTouch ? 'touchmove' : 'mousemove',\n eEnd = hasTouch ? 'touchend' : 'mouseup',\n eCancel = hasTouch ? 'touchcancel' : 'mouseup';\n \n var defaults = {\n listNodeName : 'ol',\n itemNodeName : 'li',\n rootClass : 'dd',\n listClass : 'dd-list',\n itemClass : 'dd-item',\n dragClass : 'dd-dragel',\n handleClass : 'dd-handle',\n collapsedClass : 'dd-collapsed',\n placeClass : 'dd-placeholder',\n noDragClass : 'dd-nodrag',\n noChildrenClass : 'dd-nochildren',\n emptyClass : 'dd-empty',\n expandBtnHTML : '<button data-action=\"expand\" type=\"button\">Expand</button>',\n collapseBtnHTML : '<button data-action=\"collapse\" type=\"button\">Collapse</button>',\n group : 0,\n maxDepth : 5,\n threshold : 20,\n reject : [],\n //method for call when an item has been successfully dropped\n //method has 1 argument in which sends an object containing all\n //necessary details\n dropCallback : null,\n // When a node is dragged it is moved to its new location.\n // You can set the next option to true to create a copy of the node that is dragged.\n cloneNodeOnDrag : false,\n // When the node is dragged and released outside its list delete it.\n dragOutsideToDelete : false\n };\n\n function Plugin(element, options)\n {\n this.w = $(document);\n this.el = $(element);\n this.options = $.extend({}, defaults, options);\n this.init();\n }\n\n Plugin.prototype = {\n\n init: function()\n {\n var list = this;\n\n list.reset();\n\n list.el.data('nestable-group', this.options.group);\n\n list.placeEl = $('<div class=\"' + list.options.placeClass + '\"/>');\n\n $.each(this.el.find(list.options.itemNodeName), function(k, el) {\n list.setParent($(el));\n });\n\n list.el.on('click', 'button', function(e)\n {\n if (list.dragEl || (!hasTouch && e.button !== 0)) {\n return;\n }\n var target = $(e.currentTarget),\n action = target.data('action'),\n item = target.parent(list.options.itemNodeName);\n if (action === 'collapse') {\n list.collapseItem(item);\n }\n if (action === 'expand') {\n list.expandItem(item);\n }\n });\n\n var onStartEvent = function(e)\n {\n var handle = $(e.target);\n\n list.nestableCopy = handle.closest('.'+list.options.rootClass).clone(true);\n\n if (!handle.hasClass(list.options.handleClass)) {\n if (handle.closest('.' + list.options.noDragClass).length) {\n return;\n }\n handle = handle.closest('.' + list.options.handleClass);\n }\n if (!handle.length || list.dragEl || (!hasTouch && e.which !== 1) || (hasTouch && e.touches.length !== 1)) {\n return;\n }\n e.preventDefault();\n list.dragStart(hasTouch ? e.touches[0] : e);\n };\n\n var onMoveEvent = function(e)\n {\n if (list.dragEl) {\n e.preventDefault();\n list.dragMove(hasTouch ? e.touches[0] : e);\n }\n };\n\n var onEndEvent = function(e)\n {\n if (list.dragEl) {\n e.preventDefault();\n list.dragStop(hasTouch ? e.touches[0] : e);\n }\n };\n\n if (hasTouch) {\n list.el[0].addEventListener(eStart, onStartEvent, false);\n window.addEventListener(eMove, onMoveEvent, false);\n window.addEventListener(eEnd, onEndEvent, false);\n window.addEventListener(eCancel, onEndEvent, false);\n } else {\n list.el.on(eStart, onStartEvent);\n list.w.on(eMove, onMoveEvent);\n list.w.on(eEnd, onEndEvent);\n }\n\n var destroyNestable = function()\n {\n if (hasTouch) {\n list.el[0].removeEventListener(eStart, onStartEvent, false);\n window.removeEventListener(eMove, onMoveEvent, false);\n window.removeEventListener(eEnd, onEndEvent, false);\n window.removeEventListener(eCancel, onEndEvent, false);\n } else {\n list.el.off(eStart, onStartEvent);\n list.w.off(eMove, onMoveEvent);\n list.w.off(eEnd, onEndEvent);\n }\n\n list.el.off('click');\n list.el.unbind('destroy-nestable');\n\n list.el.data(\"nestable\", null);\n\n var buttons = list.el[0].getElementsByTagName('button');\n\n $(buttons).remove();\n };\n\n list.el.bind('destroy-nestable', destroyNestable);\n },\n\n destroy: function ()\n {\n this.expandAll();\n this.el.trigger('destroy-nestable');\n },\n\n serialize: function()\n {\n var data,\n depth = 0,\n list = this;\n const step = function(level, depth)\n {\n var array = [ ],\n items = level.children(list.options.itemNodeName);\n items.each(function()\n {\n var li = $(this),\n item = $.extend({}, li.data()),\n sub = li.children(list.options.listNodeName);\n if (sub.length) {\n item.children = step(sub, depth + 1);\n }\n array.push(item);\n });\n return array;\n };\n var el;\n\n if (list.el.is(list.options.listNodeName)) {\n el = list.el;\n } else {\n el = list.el.find(list.options.listNodeName).first();\n }\n data = step(el, depth);\n return data;\n },\n\n reset: function()\n {\n this.mouse = {\n offsetX : 0,\n offsetY : 0,\n startX : 0,\n startY : 0,\n lastX : 0,\n lastY : 0,\n nowX : 0,\n nowY : 0,\n distX : 0,\n distY : 0,\n dirAx : 0,\n dirX : 0,\n dirY : 0,\n lastDirX : 0,\n lastDirY : 0,\n distAxX : 0,\n distAxY : 0\n };\n this.moving = false;\n this.dragEl = null;\n this.dragRootEl = null;\n this.dragDepth = 0;\n this.dragItem = null;\n this.hasNewRoot = false;\n this.pointEl = null;\n this.sourceRoot = null;\n this.isOutsideRoot = false;\n },\n\n expandItem: function(li)\n {\n li.removeClass(this.options.collapsedClass);\n li.children('[data-action=\"expand\"]').hide();\n li.children('[data-action=\"collapse\"]').show();\n li.children(this.options.listNodeName).show();\n this.el.trigger('expand', [li]);\n li.trigger('expand');\n },\n\n collapseItem: function(li)\n {\n var lists = li.children(this.options.listNodeName);\n if (lists.length) {\n li.addClass(this.options.collapsedClass);\n li.children('[data-action=\"collapse\"]').hide();\n li.children('[data-action=\"expand\"]').show();\n li.children(this.options.listNodeName).hide();\n }\n this.el.trigger('collapse', [li]);\n li.trigger('collapse');\n },\n\n expandAll: function()\n {\n var list = this;\n list.el.find(list.options.itemNodeName).each(function() {\n list.expandItem($(this));\n });\n },\n\n collapseAll: function()\n {\n var list = this;\n list.el.find(list.options.itemNodeName).each(function() {\n list.collapseItem($(this));\n });\n },\n\n setParent: function(li)\n {\n if (li.children(this.options.listNodeName).length) {\n li.prepend($(this.options.expandBtnHTML));\n li.prepend($(this.options.collapseBtnHTML));\n }\n if( (' ' + li[0].className + ' ').indexOf(' ' + defaults.collapsedClass + ' ') > -1 )\n {\n li.children('[data-action=\"collapse\"]').hide();\n } else {\n li.children('[data-action=\"expand\"]').hide();\n }\n },\n\n unsetParent: function(li)\n {\n li.removeClass(this.options.collapsedClass);\n li.children('[data-action]').remove();\n li.children(this.options.listNodeName).remove();\n },\n\n dragStart: function(e)\n {\n var mouse = this.mouse,\n target = $(e.target),\n dragItem = target.closest('.' + this.options.handleClass).closest(this.options.itemNodeName);\n\n this.sourceRoot = target.closest('.' + this.options.rootClass);\n\n this.dragItem = dragItem;\n\n this.placeEl.css('height', dragItem.height());\n\n mouse.offsetX = e.offsetX !== undefined ? e.offsetX : e.pageX - target.offset().left;\n mouse.offsetY = e.offsetY !== undefined ? e.offsetY : e.pageY - target.offset().top;\n mouse.startX = mouse.lastX = e.pageX;\n mouse.startY = mouse.lastY = e.pageY;\n\n this.dragRootEl = this.el;\n\n this.dragEl = $(document.createElement(this.options.listNodeName)).addClass(this.options.listClass + ' ' + this.options.dragClass);\n this.dragEl.css('width', dragItem.width());\n\n // fix for zepto.js\n //dragItem.after(this.placeEl).detach().appendTo(this.dragEl);\n if(this.options.cloneNodeOnDrag) {\n dragItem.after(dragItem.clone());\n } else {\n dragItem.after(this.placeEl);\n }\n dragItem[0].parentNode.removeChild(dragItem[0]);\n dragItem.appendTo(this.dragEl);\n\n $(document.body).append(this.dragEl);\n this.dragEl.css({\n 'left' : e.pageX - mouse.offsetX,\n 'top' : e.pageY - mouse.offsetY\n });\n // total depth of dragging item\n var i, depth,\n items = this.dragEl.find(this.options.itemNodeName);\n for (i = 0; i < items.length; i++) {\n depth = $(items[i]).parents(this.options.listNodeName).length;\n if (depth > this.dragDepth) {\n this.dragDepth = depth;\n }\n }\n },\n\n dragStop: function(e)\n {\n // fix for zepto.js\n //this.placeEl.replaceWith(this.dragEl.children(this.options.itemNodeName + ':first').detach());\n var el = this.dragEl.children(this.options.itemNodeName).first();\n el[0].parentNode.removeChild(el[0]);\n\n if(this.isOutsideRoot && this.options.dragOutsideToDelete)\n {\n var parent = this.placeEl.parent();\n this.placeEl.remove();\n if (!parent.children().length) {\n this.unsetParent(parent.parent());\n }\n // If all nodes where deleted, create a placeholder element.\n if (!this.dragRootEl.find(this.options.itemNodeName).length)\n {\n this.dragRootEl.append('<div class=\"' + this.options.emptyClass + '\"/>');\n }\n } \n else \n {\n this.placeEl.replaceWith(el);\n }\n\n if (!this.moving)\n {\n $(this.dragItem).trigger('click');\n }\n\n var i;\n var isRejected = false;\n for (i = 0; i < this.options.reject.length; i++)\n {\n var reject = this.options.reject[i];\n if (reject.rule.apply(this.dragRootEl))\n {\n var nestableDragEl = el.clone(true);\n this.dragRootEl.html(this.nestableCopy.children().clone(true));\n if (reject.action) {\n reject.action.apply(this.dragRootEl, [nestableDragEl]);\n }\n\n isRejected = true;\n break;\n }\n }\n\n if (!isRejected)\n {\n this.dragEl.remove();\n this.el.trigger('change');\n\n //Let's find out new parent id\n var parentItem = el.parent().parent();\n var parentId = null;\n if(parentItem !== null && !parentItem.is('.' + this.options.rootClass))\n parentId = parentItem.data('id');\n\n if($.isFunction(this.options.dropCallback))\n {\n var details = {\n sourceId : el.data('id'),\n destId : parentId,\n sourceEl : el,\n destParent : parentItem,\n destRoot : el.closest('.' + this.options.rootClass),\n sourceRoot : this.sourceRoot\n };\n this.options.dropCallback.call(this, details);\n }\n\n if (this.hasNewRoot) {\n this.dragRootEl.trigger('change');\n }\n\n this.reset();\n }\n },\n\n dragMove: function(e)\n {\n var list, parent, prev, next, depth,\n opt = this.options,\n mouse = this.mouse;\n\n this.dragEl.css({\n 'left' : e.pageX - mouse.offsetX,\n 'top' : e.pageY - mouse.offsetY\n });\n\n // mouse position last events\n mouse.lastX = mouse.nowX;\n mouse.lastY = mouse.nowY;\n // mouse position this events\n mouse.nowX = e.pageX;\n mouse.nowY = e.pageY;\n // distance mouse moved between events\n mouse.distX = mouse.nowX - mouse.lastX;\n mouse.distY = mouse.nowY - mouse.lastY;\n // direction mouse was moving\n mouse.lastDirX = mouse.dirX;\n mouse.lastDirY = mouse.dirY;\n // direction mouse is now moving (on both axis)\n mouse.dirX = mouse.distX === 0 ? 0 : mouse.distX > 0 ? 1 : -1;\n mouse.dirY = mouse.distY === 0 ? 0 : mouse.distY > 0 ? 1 : -1;\n // axis mouse is now moving on\n var newAx = Math.abs(mouse.distX) > Math.abs(mouse.distY) ? 1 : 0;\n\n // do nothing on first move\n if (!this.moving) {\n mouse.dirAx = newAx;\n this.moving = true;\n return;\n }\n\n // calc distance moved on this axis (and direction)\n if (mouse.dirAx !== newAx) {\n mouse.distAxX = 0;\n mouse.distAxY = 0;\n } else {\n mouse.distAxX += Math.abs(mouse.distX);\n if (mouse.dirX !== 0 && mouse.dirX !== mouse.lastDirX) {\n mouse.distAxX = 0;\n }\n mouse.distAxY += Math.abs(mouse.distY);\n if (mouse.dirY !== 0 && mouse.dirY !== mouse.lastDirY) {\n mouse.distAxY = 0;\n }\n }\n mouse.dirAx = newAx;\n\n /**\n * move horizontal\n */\n if (mouse.dirAx && mouse.distAxX >= opt.threshold) {\n // reset move distance on x-axis for new phase\n mouse.distAxX = 0;\n prev = this.placeEl.prev(opt.itemNodeName);\n // increase horizontal level if previous sibling exists and is not collapsed\n if (mouse.distX > 0 && prev.length && !prev.hasClass(opt.collapsedClass) && !prev.hasClass(opt.noChildrenClass)) {\n // cannot increase level when item above is collapsed\n list = prev.find(opt.listNodeName).last();\n // check if depth limit has reached\n depth = this.placeEl.parents(opt.listNodeName).length;\n if (depth + this.dragDepth <= opt.maxDepth) {\n // create new sub-level if one doesn't exist\n if (!list.length) {\n list = $('<' + opt.listNodeName + '/>').addClass(opt.listClass);\n list.append(this.placeEl);\n prev.append(list);\n this.setParent(prev);\n } else {\n // else append to next level up\n list = prev.children(opt.listNodeName).last();\n list.append(this.placeEl);\n }\n }\n }\n // decrease horizontal level\n if (mouse.distX < 0) {\n // we can't decrease a level if an item preceeds the current one\n next = this.placeEl.next(opt.itemNodeName);\n if (!next.length) {\n parent = this.placeEl.parent();\n this.placeEl.closest(opt.itemNodeName).after(this.placeEl);\n if (!parent.children().length) {\n this.unsetParent(parent.parent());\n }\n }\n }\n }\n\n var isEmpty = false;\n\n // find list item under cursor\n if (!hasPointerEvents) {\n this.dragEl[0].style.visibility = 'hidden';\n }\n \n this.pointEl = $(document.elementFromPoint(e.pageX - document.documentElement.scrollLeft, e.pageY - (window.pageYOffset || document.documentElement.scrollTop)));\n\n // Check if the node is dragged outside of its list.\n if(this.dragRootEl.has(this.pointEl).length) {\n this.isOutsideRoot = false;\n this.dragEl[0].style.opacity = 1;\n } else {\n this.isOutsideRoot = true;\n this.dragEl[0].style.opacity = 0.5;\n }\n\n // find parent list of item under cursor\n var pointElRoot = this.pointEl.closest('.' + opt.rootClass),\n isNewRoot = this.dragRootEl.data('nestable-id') !== pointElRoot.data('nestable-id');\n\n this.isOutsideRoot = !pointElRoot.length;\n\n if (!hasPointerEvents) {\n this.dragEl[0].style.visibility = 'visible';\n }\n if (this.pointEl.hasClass(opt.handleClass)) {\n this.pointEl = this.pointEl.closest( opt.itemNodeName );\n }\n\n if (opt.maxDepth == 1 && !this.pointEl.hasClass(opt.itemClass)) {\n this.pointEl = this.pointEl.closest(\".\" + opt.itemClass);\n }\n\n if (this.pointEl.hasClass(opt.emptyClass)) {\n isEmpty = true;\n }\n else if (!this.pointEl.length || !this.pointEl.hasClass(opt.itemClass)) {\n return;\n }\n\n /**\n * move vertical\n */\n if (!mouse.dirAx || isNewRoot || isEmpty) {\n // check if groups match if dragging over new root\n if (isNewRoot && opt.group !== pointElRoot.data('nestable-group')) {\n return;\n }\n // check depth limit\n depth = this.dragDepth - 1 + this.pointEl.parents(opt.listNodeName).length;\n if (depth > opt.maxDepth) {\n return;\n }\n var before = e.pageY < (this.pointEl.offset().top + this.pointEl.height() / 2);\n parent = this.placeEl.parent();\n // if empty create new list to replace empty placeholder\n if (isEmpty) {\n list = $(document.createElement(opt.listNodeName)).addClass(opt.listClass);\n list.append(this.placeEl);\n this.pointEl.replaceWith(list);\n }\n else if (before) {\n this.pointEl.before(this.placeEl);\n }\n else {\n this.pointEl.after(this.placeEl);\n }\n if (!parent.children().length) {\n this.unsetParent(parent.parent());\n }\n if (!this.dragRootEl.find(opt.itemNodeName).length) {\n this.dragRootEl.append('<div class=\"' + opt.emptyClass + '\"/>');\n }\n // parent root list has changed\n this.dragRootEl = pointElRoot;\n if (isNewRoot) {\n this.hasNewRoot = this.el[0] !== this.dragRootEl[0];\n }\n }\n }\n\n };\n\n $.fn.nestable = function(params)\n {\n var lists = this,\n retval = this;\n\n var generateUid = function (separator) {\n var delim = separator || \"-\";\n\n function S4() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n }\n\n return (S4() + S4() + delim + S4() + delim + S4() + delim + S4() + delim + S4() + S4() + S4());\n };\n\n lists.each(function()\n {\n var plugin = $(this).data(\"nestable\");\n\n if (!plugin) {\n $(this).data(\"nestable\", new Plugin(this, params));\n $(this).data(\"nestable-id\", generateUid());\n } else {\n if (typeof params === 'string' && typeof plugin[params] === 'function') {\n retval = plugin[params]();\n }\n }\n });\n\n return retval || lists;\n };\n\n})(window.jQuery || window.Zepto, window, document);\n","/* From https://github.com/TimSchlechter/bootstrap-tagsinput/blob/2661784c2c281d3a69b93897ff3f39e4ffa5cbd1/dist/bootstrap-tagsinput.js */\n\n/* The MIT License (MIT)\n\nCopyright (c) 2013 Tim Schlechter\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/* Retrieved 12 February 2014 */\n\n(function ($) {\n \"use strict\";\n\n var defaultOptions = {\n tagClass: function(item) {\n return 'badge badge-info bg-info';\n },\n itemValue: function(item) {\n return item ? item.toString() : item;\n },\n itemText: function(item) {\n return this.itemValue(item);\n },\n freeInput: true,\n maxTags: undefined,\n confirmKeys: [13],\n onTagExists: function(item, $tag) {\n $tag.hide().fadeIn();\n }\n };\n\n /**\n * Constructor function\n */\n function TagsInput(element, options) {\n this.itemsArray = [];\n\n this.$element = $(element);\n this.$element.hide();\n\n this.isSelect = (element.tagName === 'SELECT');\n this.multiple = (this.isSelect && element.hasAttribute('multiple'));\n this.objectItems = options && options.itemValue;\n this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';\n this.inputSize = Math.max(1, this.placeholderText.length);\n\n this.$container = $('<div class=\"bootstrap-tagsinput\"></div>');\n this.$input = $('<input size=\"' + this.inputSize + '\" type=\"text\" placeholder=\"' + this.placeholderText + '\"/>').appendTo(this.$container);\n\n this.$element.after(this.$container);\n\n this.build(options);\n }\n\n TagsInput.prototype = {\n constructor: TagsInput,\n\n /**\n * Adds the given item as a new tag. Pass true to dontPushVal to prevent\n * updating the elements val()\n */\n add: function(item, dontPushVal) {\n var self = this;\n\n if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)\n return;\n\n // Ignore falsey values, except false\n if (item !== false && !item)\n return;\n\n // Throw an error when trying to add an object while the itemValue option was not set\n if (typeof item === \"object\" && !self.objectItems)\n throw(\"Can't add objects when itemValue option is not set\");\n\n // Ignore strings only containg whitespace\n if (item.toString().match(/^\\s*$/))\n return;\n\n // If SELECT but not multiple, remove current tag\n if (self.isSelect && !self.multiple && self.itemsArray.length > 0)\n self.remove(self.itemsArray[0]);\n\n if (typeof item === \"string\" && this.$element[0].tagName === 'INPUT') {\n var items = item.split(',');\n if (items.length > 1) {\n for (var i = 0; i < items.length; i++) {\n this.add(items[i], true);\n }\n\n if (!dontPushVal)\n self.pushVal();\n return;\n }\n }\n\n var itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item);\n\n // Ignore items allready added\n var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];\n if (existing) {\n // Invoke onTagExists\n if (self.options.onTagExists) {\n var $existingTag = $(\".tag\", self.$container).filter(function() { return $(this).data(\"item\") === existing; });\n self.options.onTagExists(item, $existingTag);\n }\n return;\n }\n\n // register item in internal array and map\n self.itemsArray.push(item);\n\n // add a tag element\n var $tag = $('<span class=\"tag ' + htmlEncode(tagClass) + '\">' + htmlEncode(itemText) + '<span data-role=\"remove\"></span></span>');\n $tag.data('item', item);\n self.findInputWrapper().before($tag);\n $tag.after(' ');\n\n // add <option /> if item represents a value not present in one of the <select />'s options\n if (self.isSelect && !$('option[value=\"' + escape(itemValue) + '\"]',self.$element)[0]) {\n var $option = $('<option selected>' + htmlEncode(itemText) + '</option>');\n $option.data('item', item);\n $option.attr('value', itemValue);\n self.$element.append($option);\n }\n\n if (!dontPushVal)\n self.pushVal();\n\n // Add class when reached maxTags\n if (self.options.maxTags === self.itemsArray.length)\n self.$container.addClass('bootstrap-tagsinput-max');\n\n self.$element.trigger($.Event('itemAdded', { item: item }));\n },\n\n /**\n * Removes the given item. Pass true to dontPushVal to prevent updating the\n * elements val()\n */\n remove: function(item, dontPushVal) {\n var self = this;\n\n if (self.objectItems) {\n if (typeof item === \"object\")\n item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == self.options.itemValue(item); } )[0];\n else\n item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == item; } )[0];\n }\n\n if (item) {\n $('.tag', self.$container).filter(function() { return $(this).data('item') === item; }).remove();\n $('option', self.$element).filter(function() { return $(this).data('item') === item; }).remove();\n self.itemsArray.splice($.inArray(item, self.itemsArray), 1);\n }\n\n if (!dontPushVal)\n self.pushVal();\n\n // Remove class when reached maxTags\n if (self.options.maxTags > self.itemsArray.length)\n self.$container.removeClass('bootstrap-tagsinput-max');\n\n self.$element.trigger($.Event('itemRemoved', { item: item }));\n },\n\n /**\n * Removes all items\n */\n removeAll: function() {\n var self = this;\n\n $('.tag', self.$container).remove();\n $('option', self.$element).remove();\n\n while(self.itemsArray.length > 0)\n self.itemsArray.pop();\n\n self.pushVal();\n\n if (self.options.maxTags && !this.isEnabled())\n this.enable();\n },\n\n /**\n * Refreshes the tags so they match the text/value of their corresponding\n * item.\n */\n refresh: function() {\n var self = this;\n $('.tag', self.$container).each(function() {\n var $tag = $(this),\n item = $tag.data('item'),\n itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item);\n\n // Update tag's class and inner text\n $tag.attr('class', null);\n $tag.addClass('tag ' + htmlEncode(tagClass));\n $tag.contents().filter(function() {\n return this.nodeType == 3;\n })[0].nodeValue = htmlEncode(itemText);\n\n if (self.isSelect) {\n var option = $('option', self.$element).filter(function() { return $(this).data('item') === item; });\n option.attr('value', itemValue);\n }\n });\n },\n\n /**\n * Returns the items added as tags\n */\n items: function() {\n return this.itemsArray;\n },\n\n /**\n * Assembly value by retrieving the value of each item, and set it on the\n * element. \n */\n pushVal: function() {\n var self = this,\n val = $.map(self.items(), function(item) {\n return self.options.itemValue(item).toString();\n });\n\n self.$element.val(val, true).trigger('change');\n },\n\n /**\n * Initializes the tags input behaviour on the element\n */\n build: function(options) {\n var self = this;\n\n self.options = $.extend({}, defaultOptions, options);\n var typeahead = self.options.typeahead || {};\n\n // When itemValue is set, freeInput should always be false\n if (self.objectItems)\n self.options.freeInput = false;\n\n makeOptionItemFunction(self.options, 'itemValue');\n makeOptionItemFunction(self.options, 'itemText');\n makeOptionItemFunction(self.options, 'tagClass');\n\n // for backwards compatibility, self.options.source is deprecated\n if (self.options.source)\n typeahead.source = self.options.source;\n\n if (typeahead.source && $.fn.typeahead) {\n makeOptionFunction(typeahead, 'source');\n\n self.$input.typeahead({\n source: function (query, process) {\n function processItems(items) {\n var texts = [];\n\n for (var i = 0; i < items.length; i++) {\n var text = self.options.itemText(items[i]);\n map[text] = items[i];\n texts.push(text);\n }\n process(texts);\n }\n\n this.map = {};\n var map = this.map,\n data = typeahead.source(query);\n\n if ($.isFunction(data.success)) {\n // support for Angular promises\n data.success(processItems);\n } else {\n // support for functions and jquery promises\n $.when(data)\n .then(processItems);\n }\n },\n updater: function (text) {\n self.add(this.map[text]);\n },\n matcher: function (text) {\n return (text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1);\n },\n sorter: function (texts) {\n return texts.sort();\n },\n highlighter: function (text) {\n var regex = new RegExp( '(' + this.query + ')', 'gi' );\n return text.replace( regex, \"<strong>$1</strong>\" );\n }\n });\n }\n\n self.$container.on('click', $.proxy(function(event) {\n self.$input.focus();\n }, self));\n\n self.$container.on('keydown', 'input', $.proxy(function(event) {\n var $input = $(event.target),\n $inputWrapper = self.findInputWrapper();\n\n switch (event.which) {\n // BACKSPACE\n case 8:\n if (doGetCaretPosition($input[0]) === 0) {\n var prev = $inputWrapper.prev();\n if (prev) {\n self.remove(prev.data('item'));\n }\n }\n break;\n\n // DELETE\n case 46:\n if (doGetCaretPosition($input[0]) === 0) {\n var next = $inputWrapper.next();\n if (next) {\n self.remove(next.data('item'));\n }\n }\n break;\n\n // LEFT ARROW\n case 37:\n // Try to move the input before the previous tag\n var $prevTag = $inputWrapper.prev();\n if ($input.val().length === 0 && $prevTag[0]) {\n $prevTag.before($inputWrapper);\n $input.focus();\n }\n break;\n // RIGHT ARROW\n case 39:\n // Try to move the input after the next tag\n var $nextTag = $inputWrapper.next();\n if ($input.val().length === 0 && $nextTag[0]) {\n $nextTag.after($inputWrapper);\n $input.focus();\n }\n break;\n default:\n // When key corresponds one of the confirmKeys, add current input\n // as a new tag\n if (self.options.freeInput && $.inArray(event.which, self.options.confirmKeys) >= 0) {\n self.add($input.val());\n $input.val('');\n event.preventDefault();\n }\n }\n\n // Reset internal input's size\n $input.attr('size', Math.max(this.inputSize, $input.val().length));\n }, self));\n\n // Remove icon clicked\n self.$container.on('click', '[data-role=remove]', $.proxy(function(event) {\n self.remove($(event.target).closest('.tag').data('item'));\n }, self));\n\n // Only add existing value as tags when using strings as tags\n if (self.options.itemValue === defaultOptions.itemValue) {\n if (self.$element[0].tagName === 'INPUT') {\n self.add(self.$element.val());\n } else {\n $('option', self.$element).each(function() {\n self.add($(this).attr('value'), true);\n });\n }\n }\n },\n\n /**\n * Removes all tagsinput behaviour and unregsiter all event handlers\n */\n destroy: function() {\n var self = this;\n\n // Unbind events\n self.$container.off('keypress', 'input');\n self.$container.off('click', '[role=remove]');\n\n self.$container.remove();\n self.$element.removeData('tagsinput');\n self.$element.show();\n },\n\n /**\n * Sets focus on the tagsinput \n */\n focus: function() {\n this.$input.focus();\n },\n\n /**\n * Returns the internal input element\n */\n input: function() {\n return this.$input;\n },\n\n /**\n * Returns the element which is wrapped around the internal input. This\n * is normally the $container, but typeahead.js moves the $input element.\n */\n findInputWrapper: function() {\n var elt = this.$input[0],\n container = this.$container[0];\n while(elt && elt.parentNode !== container)\n elt = elt.parentNode;\n\n return $(elt);\n }\n };\n\n /**\n * Register JQuery plugin\n */\n $.fn.tagsinput = function(arg1, arg2) {\n var results = [];\n\n this.each(function() {\n var tagsinput = $(this).data('tagsinput');\n\n // Initialize a new tags input\n if (!tagsinput) {\n tagsinput = new TagsInput(this, arg1);\n $(this).data('tagsinput', tagsinput);\n results.push(tagsinput);\n\n if (this.tagName === 'SELECT') {\n $('option', $(this)).attr('selected', 'selected');\n }\n\n // Init tags from $(this).val()\n $(this).val($(this).val());\n } else {\n // Invoke function on existing tags input\n var retVal = tagsinput[arg1](arg2);\n if (retVal !== undefined)\n results.push(retVal);\n }\n });\n\n if ( typeof arg1 == 'string') {\n // Return the results from the invoked function calls\n return results.length > 1 ? results : results[0];\n } else {\n return results;\n }\n };\n\n $.fn.tagsinput.Constructor = TagsInput;\n \n /**\n * Most options support both a string or number as well as a function as \n * option value. This function makes sure that the option with the given\n * key in the given options is wrapped in a function\n */\n function makeOptionItemFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var propertyName = options[key];\n options[key] = function(item) { return item[propertyName]; };\n }\n }\n function makeOptionFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var value = options[key];\n options[key] = function() { return value; };\n }\n }\n /**\n * HtmlEncodes the given value\n */\n var htmlEncodeContainer = $('<div />');\n function htmlEncode(value) {\n if (value) {\n return htmlEncodeContainer.text(value).html();\n } else {\n return '';\n }\n }\n\n /**\n * Returns the position of the caret in the given input field\n * http://flightschool.acylt.com/devnotes/caret-position-woes/\n */\n function doGetCaretPosition(oField) {\n var iCaretPos = 0;\n if (document.selection) {\n oField.focus ();\n var oSel = document.selection.createRange();\n oSel.moveStart ('character', -oField.value.length);\n iCaretPos = oSel.text.length;\n } else if (oField.selectionStart || oField.selectionStart == '0') {\n iCaretPos = oField.selectionStart;\n }\n return (iCaretPos);\n }\n\n /**\n * Initialize tagsinput behaviour on inputs and selects which have\n * data-role=tagsinput\n */\n $(function() {\n $(\"input[data-role=tagsinput], select[multiple][data-role=tagsinput]\").tagsinput();\n });\n})(window.jQuery);\n\n","/*!\n SerializeJSON jQuery plugin.\n https://github.com/marioizquierdo/jquery.serializeJSON\n version 2.4.2 (Oct, 2014)\n\n Copyright (c) 2014 Mario Izquierdo\n Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\n and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\n*/\n(function ($) {\n \"use strict\";\n\n // jQuery('form').serializeJSON()\n $.fn.serializeJSON = function (options) {\n var serializedObject, formAsArray, keys, type, value, _ref, f, opts;\n f = $.serializeJSON;\n opts = f.optsWithDefaults(options); // calculate values for options {parseNumbers, parseBoolens, parseNulls}\n f.validateOptions(opts);\n formAsArray = this.serializeArray(); // array of objects {name, value}\n f.readCheckboxUncheckedValues(formAsArray, this, opts); // add {name, value} of unchecked checkboxes if needed\n\n serializedObject = {};\n $.each(formAsArray, function (i, input) {\n keys = f.splitInputNameIntoKeysArray(input.name);\n type = keys.pop(); // the last element is always the type (\"string\" by default)\n if (type !== 'skip') { // easy way to skip a value\n value = f.parseValue(input.value, type, opts); // string, number, boolean or null\n if (opts.parseWithFunction && type === '_') value = opts.parseWithFunction(value, input.name); // allow for custom parsing\n f.deepSet(serializedObject, keys, value, opts);\n }\n });\n return serializedObject;\n };\n\n // Use $.serializeJSON as namespace for the auxiliar functions\n // and to define defaults\n $.serializeJSON = {\n\n defaultOptions: {\n parseNumbers: false, // convert values like \"1\", \"-2.33\" to 1, -2.33\n parseBooleans: false, // convert \"true\", \"false\" to true, false\n parseNulls: false, // convert \"null\" to null\n parseAll: false, // all of the above\n parseWithFunction: null, // to use custom parser, a function like: function(val){ return parsed_val; }\n checkboxUncheckedValue: undefined, // to include that value for unchecked checkboxes (instead of ignoring them)\n useIntKeysAsArrayIndex: false // name=\"foo[2]\" value=\"v\" => {foo: [null, null, \"v\"]}, instead of {foo: [\"2\": \"v\"]}\n },\n\n // Merge options with defaults to get {parseNumbers, parseBoolens, parseNulls, useIntKeysAsArrayIndex}\n optsWithDefaults: function(options) {\n var f, parseAll;\n if (options == null) options = {}; // arg default value = {}\n f = $.serializeJSON;\n parseAll = f.optWithDefaults('parseAll', options);\n return {\n parseNumbers: parseAll || f.optWithDefaults('parseNumbers', options),\n parseBooleans: parseAll || f.optWithDefaults('parseBooleans', options),\n parseNulls: parseAll || f.optWithDefaults('parseNulls', options),\n parseWithFunction: f.optWithDefaults('parseWithFunction', options),\n checkboxUncheckedValue: f.optWithDefaults('checkboxUncheckedValue', options),\n useIntKeysAsArrayIndex: f.optWithDefaults('useIntKeysAsArrayIndex', options)\n }\n },\n\n optWithDefaults: function(key, options) {\n return (options[key] !== false) && (options[key] !== '') && (options[key] || $.serializeJSON.defaultOptions[key]);\n },\n\n validateOptions: function(opts) {\n var opt, validOpts;\n validOpts = ['parseNumbers', 'parseBooleans', 'parseNulls', 'parseAll', 'parseWithFunction', 'checkboxUncheckedValue', 'useIntKeysAsArrayIndex']\n for (opt in opts) {\n if (validOpts.indexOf(opt) === -1) {\n throw new Error(\"serializeJSON ERROR: invalid option '\" + opt + \"'. Please use one of \" + validOpts.join(','));\n }\n }\n },\n\n // Convert the string to a number, boolean or null, depending on the enable option and the string format.\n parseValue: function(str, type, opts) {\n var value, f;\n f = $.serializeJSON;\n if (type == 'string') return str; // force string\n if (type == 'number' || (opts.parseNumbers && f.isNumeric(str))) return Number(str); // number\n if (type == 'boolean' || (opts.parseBooleans && (str === \"true\" || str === \"false\"))) return ([\"false\", \"null\", \"undefined\", \"\", \"0\"].indexOf(str) === -1); // boolean\n if (type == 'null' || (opts.parseNulls && str == \"null\")) return [\"false\", \"null\", \"undefined\", \"\", \"0\"].indexOf(str) !== -1 ? null : str; // null\n if (type == 'array' || type == 'object') return JSON.parse(str); // array or objects require JSON\n if (type == 'auto') return f.parseValue(str, null, {parseNumbers: true, parseBooleans: true, parseNulls: true}); // try again with something like \"parseAll\"\n return str; // otherwise, keep same string\n },\n\n isObject: function(obj) { return obj === Object(obj); }, // is this variable an object?\n isUndefined: function(obj) { return obj === void 0; }, // safe check for undefined values\n isValidArrayIndex: function(val) { return /^[0-9]+$/.test(String(val)); }, // 1,2,3,4 ... are valid array indexes\n isNumeric: function(obj) { return obj - parseFloat(obj) >= 0; }, // taken from jQuery.isNumeric implementation. Not using jQuery.isNumeric to support old jQuery and Zepto versions\n\n // Split the input name in programatically readable keys.\n // The last element is always the type (default \"_\").\n // Examples:\n // \"foo\" => ['foo', '_']\n // \"foo:string\" => ['foo', 'string']\n // \"foo:boolean\" => ['foo', 'boolean']\n // \"[foo]\" => ['foo', '_']\n // \"foo[inn][bar]\" => ['foo', 'inn', 'bar', '_']\n // \"foo[inn[bar]]\" => ['foo', 'inn', 'bar', '_']\n // \"foo[inn][arr][0]\" => ['foo', 'inn', 'arr', '0', '_']\n // \"arr[][val]\" => ['arr', '', 'val', '_']\n // \"arr[][val]:null\" => ['arr', '', 'val', 'null']\n splitInputNameIntoKeysArray: function (name) {\n var keys, nameWithoutType, type, _ref, f;\n f = $.serializeJSON;\n _ref = f.extractTypeFromInputName(name), nameWithoutType = _ref[0], type = _ref[1];\n keys = nameWithoutType.split('['); // split string into array\n keys = $.map(keys, function (key) { return key.replace(/]/g, ''); }); // remove closing brackets\n if (keys[0] === '') { keys.shift(); } // ensure no opening bracket (\"[foo][inn]\" should be same as \"foo[inn]\")\n keys.push(type); // add type at the end\n return keys;\n },\n\n // Returns [name-without-type, type] from name.\n // \"foo\" => [\"foo\", \"_\"]\n // \"foo:boolean\" => [\"foo\", \"boolean\"]\n // \"foo[bar]:null\" => [\"foo[bar]\", \"null\"]\n extractTypeFromInputName: function(name) {\n var match, f;\n f = $.serializeJSON;\n if (match = name.match(/(.*):([^:]+)$/)){\n var validTypes = ['string', 'number', 'boolean', 'null', 'array', 'object', 'skip', 'auto']; // validate type\n if (validTypes.indexOf(match[2]) !== -1) {\n return [match[1], match[2]];\n } else {\n throw new Error(\"serializeJSON ERROR: Invalid type \" + match[2] + \" found in input name '\" + name + \"', please use one of \" + validTypes.join(', '))\n }\n } else {\n return [name, '_']; // no defined type, then use parse options\n }\n },\n\n // Set a value in an object or array, using multiple keys to set in a nested object or array:\n //\n // deepSet(obj, ['foo'], v) // obj['foo'] = v\n // deepSet(obj, ['foo', 'inn'], v) // obj['foo']['inn'] = v // Create the inner obj['foo'] object, if needed\n // deepSet(obj, ['foo', 'inn', '123'], v) // obj['foo']['arr']['123'] = v //\n //\n // deepSet(obj, ['0'], v) // obj['0'] = v\n // deepSet(arr, ['0'], v, {useIntKeysAsArrayIndex: true}) // arr[0] = v\n // deepSet(arr, [''], v) // arr.push(v)\n // deepSet(obj, ['arr', ''], v) // obj['arr'].push(v)\n //\n // arr = [];\n // deepSet(arr, ['', v] // arr => [v]\n // deepSet(arr, ['', 'foo'], v) // arr => [v, {foo: v}]\n // deepSet(arr, ['', 'bar'], v) // arr => [v, {foo: v, bar: v}]\n // deepSet(arr, ['', 'bar'], v) // arr => [v, {foo: v, bar: v}, {bar: v}]\n //\n deepSet: function (o, keys, value, opts) {\n var key, nextKey, tail, lastIdx, lastVal, f;\n if (opts == null) opts = {};\n f = $.serializeJSON;\n if (f.isUndefined(o)) { throw new Error(\"ArgumentError: param 'o' expected to be an object or array, found undefined\"); }\n if (!keys || keys.length === 0) { throw new Error(\"ArgumentError: param 'keys' expected to be an array with least one element\"); }\n\n key = keys[0];\n\n // Only one key, then it's not a deepSet, just assign the value.\n if (keys.length === 1) {\n if (key === '') {\n o.push(value); // '' is used to push values into the array (assume o is an array)\n } else {\n o[key] = value; // other keys can be used as object keys or array indexes\n }\n\n // With more keys is a deepSet. Apply recursively.\n } else {\n\n nextKey = keys[1];\n\n // '' is used to push values into the array,\n // with nextKey, set the value into the same object, in object[nextKey].\n // Covers the case of ['', 'foo'] and ['', 'var'] to push the object {foo, var}, and the case of nested arrays.\n if (key === '') {\n lastIdx = o.length - 1; // asume o is array\n lastVal = o[lastIdx];\n if (f.isObject(lastVal) && (f.isUndefined(lastVal[nextKey]) || keys.length > 2)) { // if nextKey is not present in the last object element, or there are more keys to deep set\n key = lastIdx; // then set the new value in the same object element\n } else {\n key = lastIdx + 1; // otherwise, point to set the next index in the array\n }\n }\n\n // o[key] defaults to object or array, depending if nextKey is an array index (int or '') or an object key (string)\n if (f.isUndefined(o[key])) {\n if (nextKey === '') { // '' is used to push values into the array.\n o[key] = [];\n } else if (opts.useIntKeysAsArrayIndex && f.isValidArrayIndex(nextKey)) { // if 1, 2, 3 ... then use an array, where nextKey is the index\n o[key] = [];\n } else { // for anything else, use an object, where nextKey is going to be the attribute name\n o[key] = {};\n }\n }\n\n // Recursively set the inner object\n tail = keys.slice(1);\n f.deepSet(o[key], tail, value, opts);\n }\n },\n\n // Fill the formAsArray object with values for the unchecked checkbox inputs,\n // using the same format as the jquery.serializeArray function.\n // The value of the unchecked values is determined from the opts.checkboxUncheckedValue\n // and/or the data-unchecked-value attribute of the inputs.\n readCheckboxUncheckedValues: function (formAsArray, $form, opts) {\n var selector, $uncheckedCheckboxes, $el, dataUncheckedValue, f;\n if (opts == null) opts = {};\n f = $.serializeJSON;\n\n selector = 'input[type=checkbox][name]:not(:checked,[disabled])';\n $uncheckedCheckboxes = $form.find(selector).add($form.filter(selector));\n $uncheckedCheckboxes.each(function (i, el) {\n $el = $(el);\n dataUncheckedValue = $el.attr('data-unchecked-value');\n if(dataUncheckedValue) { // data-unchecked-value has precedence over option opts.checkboxUncheckedValue\n formAsArray.push({name: el.name, value: dataUncheckedValue});\n } else {\n if (!f.isUndefined(opts.checkboxUncheckedValue)) {\n formAsArray.push({name: el.name, value: opts.checkboxUncheckedValue});\n }\n }\n });\n }\n\n };\n\n}(window.jQuery || window.Zepto || window.$));","/*\n * Leaflet-IIIF 3.0.0\n * IIIF Viewer for Leaflet\n * by Jack Reed, @mejackreed\n */\n\nL.TileLayer.Iiif = L.TileLayer.extend({\n options: {\n continuousWorld: true,\n tileSize: 256,\n updateWhenIdle: true,\n tileFormat: 'jpg',\n fitBounds: true,\n setMaxBounds: false\n },\n\n initialize: function(url, options) {\n options = typeof options !== 'undefined' ? options : {};\n\n if (options.maxZoom) {\n this._customMaxZoom = true;\n }\n\n // Check for explicit tileSize set\n if (options.tileSize) {\n this._explicitTileSize = true;\n }\n\n // Check for an explicit quality\n if (options.quality) {\n this._explicitQuality = true;\n }\n\n options = L.setOptions(this, options);\n this._infoPromise = null;\n this._infoUrl = url;\n this._baseUrl = this._templateUrl();\n this._getInfo();\n },\n getTileUrl: function(coords) {\n var _this = this,\n x = coords.x,\n y = (coords.y),\n zoom = _this._getZoomForUrl(),\n scale = Math.pow(2, _this.maxNativeZoom - zoom),\n tileBaseSize = _this.options.tileSize * scale,\n minx = (x * tileBaseSize),\n miny = (y * tileBaseSize),\n maxx = Math.min(minx + tileBaseSize, _this.x),\n maxy = Math.min(miny + tileBaseSize, _this.y);\n\n var xDiff = (maxx - minx);\n var yDiff = (maxy - miny);\n\n // Canonical URI Syntax for v2\n var size = Math.ceil(xDiff / scale) + ',';\n if (_this.type === 'ImageService3') {\n // Cannonical URI Syntax for v3\n size = size + Math.ceil(yDiff / scale);\n }\n\n return L.Util.template(this._baseUrl, L.extend({\n format: _this.options.tileFormat,\n quality: _this.quality,\n region: [minx, miny, xDiff, yDiff].join(','),\n rotation: 0,\n size: size\n }, this.options));\n },\n onAdd: function(map) {\n var _this = this;\n\n // Wait for info.json fetch and parse to complete\n Promise.all([_this._infoPromise]).then(function() {\n // Store unmutated imageSizes\n _this._imageSizesOriginal = _this._imageSizes.slice(0);\n\n // Set maxZoom for map\n map._layersMaxZoom = _this.maxZoom;\n\n // Call add TileLayer\n L.TileLayer.prototype.onAdd.call(_this, map);\n\n // Set minZoom and minNativeZoom based on how the imageSizes match up\n var smallestImage = _this._imageSizes[0];\n var mapSize = _this._map.getSize();\n var newMinZoom = 0;\n // Loop back through 5 times to see if a better fit can be found.\n for (var i = 1; i <= 5; i++) {\n if (smallestImage.x > mapSize.x || smallestImage.y > mapSize.y) {\n smallestImage = smallestImage.divideBy(2);\n _this._imageSizes.unshift(smallestImage);\n newMinZoom = -i;\n } else {\n break;\n }\n }\n _this.options.minZoom = newMinZoom;\n _this.options.minNativeZoom = newMinZoom;\n _this._prev_map_layersMinZoom = _this._map._layersMinZoom;\n _this._map._layersMinZoom = newMinZoom;\n\n if (_this.options.fitBounds) {\n _this._fitBounds();\n }\n\n if(_this.options.setMaxBounds) {\n _this._setMaxBounds();\n }\n\n // Reset tile sizes to handle non 256x256 IIIF tiles\n _this.on('tileload', function(tile, url) {\n\n var height = tile.tile.naturalHeight,\n width = tile.tile.naturalWidth;\n\n // No need to resize if tile is 256 x 256\n if (height === 256 && width === 256) return;\n\n tile.tile.style.width = width + 'px';\n tile.tile.style.height = height + 'px';\n\n });\n })\n .catch(function(err){\n console.error(err);\n });\n },\n onRemove: function(map) {\n var _this = this;\n\n map._layersMinZoom = _this._prev_map_layersMinZoom;\n _this._imageSizes = _this._imageSizesOriginal;\n\n // Remove maxBounds set for this image\n if(_this.options.setMaxBounds) {\n map.setMaxBounds(null);\n }\n\n // Call remove TileLayer\n L.TileLayer.prototype.onRemove.call(_this, map);\n\n },\n _fitBounds: function() {\n var _this = this;\n\n // Find best zoom level and center map\n var initialZoom = _this._getInitialZoom(_this._map.getSize());\n var offset = _this._imageSizes.length - 1 - _this.options.maxNativeZoom;\n var imageSize = _this._imageSizes[initialZoom + offset];\n var sw = _this._map.options.crs.pointToLatLng(L.point(0, imageSize.y), initialZoom);\n var ne = _this._map.options.crs.pointToLatLng(L.point(imageSize.x, 0), initialZoom);\n var bounds = L.latLngBounds(sw, ne);\n\n _this._map.fitBounds(bounds, true);\n },\n _setMaxBounds: function() {\n var _this = this;\n\n // Find best zoom level, center map, and constrain viewer\n var initialZoom = _this._getInitialZoom(_this._map.getSize());\n var imageSize = _this._imageSizes[initialZoom];\n var sw = _this._map.options.crs.pointToLatLng(L.point(0, imageSize.y), initialZoom);\n var ne = _this._map.options.crs.pointToLatLng(L.point(imageSize.x, 0), initialZoom);\n var bounds = L.latLngBounds(sw, ne);\n\n _this._map.setMaxBounds(bounds, true);\n },\n _getInfo: function() {\n var _this = this;\n\n _this._infoPromise = fetch(_this._infoUrl)\n .then(function(response) {\n return response.json();\n })\n .catch(function(err){\n console.error(err);\n })\n .then(function(data) {\n _this.y = data.height;\n _this.x = data.width;\n\n var tierSizes = [],\n imageSizes = [],\n scale,\n width_,\n height_,\n tilesX_,\n tilesY_;\n\n // Set quality based off of IIIF version\n if (data.profile instanceof Array) {\n _this.profile = data.profile[0];\n }else {\n _this.profile = data.profile;\n }\n _this.type = data.type;\n\n _this._setQuality();\n\n // Unless an explicit tileSize is set, use a preferred tileSize\n if (!_this._explicitTileSize) {\n // Set the default first\n _this.options.tileSize = 256;\n if (data.tiles) {\n // Image API 2.0 Case\n _this.options.tileSize = data.tiles[0].width;\n } else if (data.tile_width){\n // Image API 1.1 Case\n _this.options.tileSize = data.tile_width;\n }\n }\n\n function ceilLog2(x) {\n return Math.ceil(Math.log(x) / Math.LN2);\n };\n\n // Calculates maximum native zoom for the layer\n _this.maxNativeZoom = Math.max(\n ceilLog2(_this.x / _this.options.tileSize),\n ceilLog2(_this.y / _this.options.tileSize),\n 0\n );\n _this.options.maxNativeZoom = _this.maxNativeZoom;\n\n // Enable zooming further than native if maxZoom option supplied\n if (_this._customMaxZoom && _this.options.maxZoom > _this.maxNativeZoom) {\n _this.maxZoom = _this.options.maxZoom;\n }\n else {\n _this.maxZoom = _this.maxNativeZoom;\n }\n\n for (var i = 0; i <= _this.maxZoom; i++) {\n scale = Math.pow(2, _this.maxNativeZoom - i);\n width_ = Math.ceil(_this.x / scale);\n height_ = Math.ceil(_this.y / scale);\n tilesX_ = Math.ceil(width_ / _this.options.tileSize);\n tilesY_ = Math.ceil(height_ / _this.options.tileSize);\n tierSizes.push([tilesX_, tilesY_]);\n imageSizes.push(L.point(width_,height_));\n }\n\n _this._tierSizes = tierSizes;\n _this._imageSizes = imageSizes;\n })\n .catch(function(err){\n console.error(err);\n });\n\n },\n\n _setQuality: function() {\n var _this = this;\n var profileToCheck = _this.profile;\n\n if (_this._explicitQuality) {\n return;\n }\n\n // If profile is an object\n if (typeof(profileToCheck) === 'object') {\n profileToCheck = profileToCheck['@id'];\n }\n\n // Set the quality based on the IIIF compliance level\n switch (true) {\n case /^http:\\/\\/library.stanford.edu\\/iiif\\/image-api\\/1.1\\/compliance.html.*$/.test(profileToCheck):\n _this.options.quality = 'native';\n break;\n // Assume later profiles and set to default\n default:\n _this.options.quality = 'default';\n break;\n }\n },\n\n _infoToBaseUrl: function() {\n return this._infoUrl.replace('info.json', '');\n },\n _templateUrl: function() {\n return this._infoToBaseUrl() + '{region}/{size}/{rotation}/{quality}.{format}';\n },\n _isValidTile: function(coords) {\n var _this = this;\n var zoom = _this._getZoomForUrl();\n var sizes = _this._tierSizes[zoom];\n var x = coords.x;\n var y = coords.y;\n if (zoom < 0 && x >= 0 && y >= 0) {\n return true;\n }\n\n if (!sizes) return false;\n if (x < 0 || sizes[0] <= x || y < 0 || sizes[1] <= y) {\n return false;\n }else {\n return true;\n }\n },\n _tileShouldBeLoaded: function(coords) {\n return this._isValidTile(coords);\n },\n _getInitialZoom: function (mapSize) {\n var _this = this;\n var tolerance = 0.8;\n var imageSize;\n // Calculate an offset between the zoom levels and the array accessors\n var offset = _this._imageSizes.length - 1 - _this.options.maxNativeZoom;\n for (var i = _this._imageSizes.length - 1; i >= 0; i--) {\n imageSize = _this._imageSizes[i];\n if (imageSize.x * tolerance < mapSize.x && imageSize.y * tolerance < mapSize.y) {\n return i - offset;\n }\n }\n // return a default zoom\n return 2;\n }\n});\n\nL.tileLayer.iiif = function(url, options) {\n return new L.TileLayer.Iiif(url, options);\n};\n","'use strict';\n(function (factory, window) {\n /*globals define, module, require*/\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === 'function' && define.amd) {\n define(['leaflet'], factory);\n\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === 'object') {\n module.exports = factory(require('leaflet'));\n }\n\n // attach your plugin to the global 'L' variable\n if(typeof window !== 'undefined' && window.L){\n factory(window.L);\n }\n\n}(function (L) {\n // 🍂miniclass CancelableEvent (Event objects)\n // 🍂method cancel()\n // Cancel any subsequent action.\n\n // 🍂miniclass VertexEvent (Event objects)\n // 🍂property vertex: VertexMarker\n // The vertex that fires the event.\n\n // 🍂miniclass ShapeEvent (Event objects)\n // 🍂property shape: Array\n // The shape (LatLngs array) subject of the action.\n\n // 🍂miniclass CancelableVertexEvent (Event objects)\n // 🍂inherits VertexEvent\n // 🍂inherits CancelableEvent\n\n // 🍂miniclass CancelableShapeEvent (Event objects)\n // 🍂inherits ShapeEvent\n // 🍂inherits CancelableEvent\n\n // 🍂miniclass LayerEvent (Event objects)\n // 🍂property layer: object\n // The Layer (Marker, Polyline…) subject of the action.\n\n // 🍂namespace Editable; 🍂class Editable; 🍂aka L.Editable\n // Main edition handler. By default, it is attached to the map\n // as `map.editTools` property.\n // Leaflet.Editable is made to be fully extendable. You have three ways to customize\n // the behaviour: using options, listening to events, or extending.\n L.Editable = L.Evented.extend({\n\n statics: {\n FORWARD: 1,\n BACKWARD: -1\n },\n\n options: {\n\n // You can pass them when creating a map using the `editOptions` key.\n // 🍂option zIndex: int = 1000\n // The default zIndex of the editing tools.\n zIndex: 1000,\n\n // 🍂option polygonClass: class = L.Polygon\n // Class to be used when creating a new Polygon.\n polygonClass: L.Polygon,\n\n // 🍂option polylineClass: class = L.Polyline\n // Class to be used when creating a new Polyline.\n polylineClass: L.Polyline,\n\n // 🍂option markerClass: class = L.Marker\n // Class to be used when creating a new Marker.\n markerClass: L.Marker,\n\n // 🍂option rectangleClass: class = L.Rectangle\n // Class to be used when creating a new Rectangle.\n rectangleClass: L.Rectangle,\n\n // 🍂option circleClass: class = L.Circle\n // Class to be used when creating a new Circle.\n circleClass: L.Circle,\n\n // 🍂option drawingCSSClass: string = 'leaflet-editable-drawing'\n // CSS class to be added to the map container while drawing.\n drawingCSSClass: 'leaflet-editable-drawing',\n\n // 🍂option drawingCursor: const = 'crosshair'\n // Cursor mode set to the map while drawing.\n drawingCursor: 'crosshair',\n\n // 🍂option editLayer: Layer = new L.LayerGroup()\n // Layer used to store edit tools (vertex, line guide…).\n editLayer: undefined,\n\n // 🍂option featuresLayer: Layer = new L.LayerGroup()\n // Default layer used to store drawn features (Marker, Polyline…).\n featuresLayer: undefined,\n\n // 🍂option polylineEditorClass: class = PolylineEditor\n // Class to be used as Polyline editor.\n polylineEditorClass: undefined,\n\n // 🍂option polygonEditorClass: class = PolygonEditor\n // Class to be used as Polygon editor.\n polygonEditorClass: undefined,\n\n // 🍂option markerEditorClass: class = MarkerEditor\n // Class to be used as Marker editor.\n markerEditorClass: undefined,\n\n // 🍂option rectangleEditorClass: class = RectangleEditor\n // Class to be used as Rectangle editor.\n rectangleEditorClass: undefined,\n\n // 🍂option circleEditorClass: class = CircleEditor\n // Class to be used as Circle editor.\n circleEditorClass: undefined,\n\n // 🍂option lineGuideOptions: hash = {}\n // Options to be passed to the line guides.\n lineGuideOptions: {},\n\n // 🍂option skipMiddleMarkers: boolean = false\n // Set this to true if you don't want middle markers.\n skipMiddleMarkers: false\n\n },\n\n initialize: function (map, options) {\n L.setOptions(this, options);\n this._lastZIndex = this.options.zIndex;\n this.map = map;\n this.editLayer = this.createEditLayer();\n this.featuresLayer = this.createFeaturesLayer();\n this.forwardLineGuide = this.createLineGuide();\n this.backwardLineGuide = this.createLineGuide();\n },\n\n fireAndForward: function (type, e) {\n e = e || {};\n e.editTools = this;\n this.fire(type, e);\n this.map.fire(type, e);\n },\n\n createLineGuide: function () {\n var options = L.extend({dashArray: '5,10', weight: 1, interactive: false}, this.options.lineGuideOptions);\n return L.polyline([], options);\n },\n\n createVertexIcon: function (options) {\n return L.Browser.touch ? new L.Editable.TouchVertexIcon(options) : new L.Editable.VertexIcon(options);\n },\n\n createEditLayer: function () {\n return this.options.editLayer || new L.LayerGroup().addTo(this.map);\n },\n\n createFeaturesLayer: function () {\n return this.options.featuresLayer || new L.LayerGroup().addTo(this.map);\n },\n\n moveForwardLineGuide: function (latlng) {\n if (this.forwardLineGuide._latlngs.length) {\n this.forwardLineGuide._latlngs[1] = latlng;\n this.forwardLineGuide._bounds.extend(latlng);\n this.forwardLineGuide.redraw();\n }\n },\n\n moveBackwardLineGuide: function (latlng) {\n if (this.backwardLineGuide._latlngs.length) {\n this.backwardLineGuide._latlngs[1] = latlng;\n this.backwardLineGuide._bounds.extend(latlng);\n this.backwardLineGuide.redraw();\n }\n },\n\n anchorForwardLineGuide: function (latlng) {\n this.forwardLineGuide._latlngs[0] = latlng;\n this.forwardLineGuide._bounds.extend(latlng);\n this.forwardLineGuide.redraw();\n },\n\n anchorBackwardLineGuide: function (latlng) {\n this.backwardLineGuide._latlngs[0] = latlng;\n this.backwardLineGuide._bounds.extend(latlng);\n this.backwardLineGuide.redraw();\n },\n\n attachForwardLineGuide: function () {\n this.editLayer.addLayer(this.forwardLineGuide);\n },\n\n attachBackwardLineGuide: function () {\n this.editLayer.addLayer(this.backwardLineGuide);\n },\n\n detachForwardLineGuide: function () {\n this.forwardLineGuide.setLatLngs([]);\n this.editLayer.removeLayer(this.forwardLineGuide);\n },\n\n detachBackwardLineGuide: function () {\n this.backwardLineGuide.setLatLngs([]);\n this.editLayer.removeLayer(this.backwardLineGuide);\n },\n\n blockEvents: function () {\n // Hack: force map not to listen to other layers events while drawing.\n if (!this._oldTargets) {\n this._oldTargets = this.map._targets;\n this.map._targets = {};\n }\n },\n\n unblockEvents: function () {\n if (this._oldTargets) {\n // Reset, but keep targets created while drawing.\n this.map._targets = L.extend(this.map._targets, this._oldTargets);\n delete this._oldTargets;\n }\n },\n\n registerForDrawing: function (editor) {\n if (this._drawingEditor) this.unregisterForDrawing(this._drawingEditor);\n this.blockEvents();\n editor.reset(); // Make sure editor tools still receive events.\n this._drawingEditor = editor;\n this.map.on('mousemove touchmove', editor.onDrawingMouseMove, editor);\n this.map.on('mousedown', this.onMousedown, this);\n this.map.on('mouseup', this.onMouseup, this);\n L.DomUtil.addClass(this.map._container, this.options.drawingCSSClass);\n this.defaultMapCursor = this.map._container.style.cursor;\n this.map._container.style.cursor = this.options.drawingCursor;\n },\n\n unregisterForDrawing: function (editor) {\n this.unblockEvents();\n L.DomUtil.removeClass(this.map._container, this.options.drawingCSSClass);\n this.map._container.style.cursor = this.defaultMapCursor;\n editor = editor || this._drawingEditor;\n if (!editor) return;\n this.map.off('mousemove touchmove', editor.onDrawingMouseMove, editor);\n this.map.off('mousedown', this.onMousedown, this);\n this.map.off('mouseup', this.onMouseup, this);\n if (editor !== this._drawingEditor) return;\n delete this._drawingEditor;\n if (editor._drawing) editor.cancelDrawing();\n },\n\n onMousedown: function (e) {\n this._mouseDown = e;\n this._drawingEditor.onDrawingMouseDown(e);\n },\n\n onMouseup: function (e) {\n if (this._mouseDown) {\n var editor = this._drawingEditor,\n mouseDown = this._mouseDown;\n this._mouseDown = null;\n editor.onDrawingMouseUp(e);\n if (this._drawingEditor !== editor) return; // onDrawingMouseUp may call unregisterFromDrawing.\n var origin = L.point(mouseDown.originalEvent.clientX, mouseDown.originalEvent.clientY);\n var distance = L.point(e.originalEvent.clientX, e.originalEvent.clientY).distanceTo(origin);\n if (Math.abs(distance) < 9 * (window.devicePixelRatio || 1)) this._drawingEditor.onDrawingClick(e);\n }\n },\n\n // 🍂section Public methods\n // You will generally access them by the `map.editTools`\n // instance:\n //\n // `map.editTools.startPolyline();`\n\n // 🍂method drawing(): boolean\n // Return true if any drawing action is ongoing.\n drawing: function () {\n return this._drawingEditor && this._drawingEditor.drawing();\n },\n\n // 🍂method stopDrawing()\n // When you need to stop any ongoing drawing, without needing to know which editor is active.\n stopDrawing: function () {\n this.unregisterForDrawing();\n },\n\n // 🍂method commitDrawing()\n // When you need to commit any ongoing drawing, without needing to know which editor is active.\n commitDrawing: function (e) {\n if (!this._drawingEditor) return;\n this._drawingEditor.commitDrawing(e);\n },\n\n connectCreatedToMap: function (layer) {\n return this.featuresLayer.addLayer(layer);\n },\n\n // 🍂method startPolyline(latlng: L.LatLng, options: hash): L.Polyline\n // Start drawing a Polyline. If `latlng` is given, a first point will be added. In any case, continuing on user click.\n // If `options` is given, it will be passed to the Polyline class constructor.\n startPolyline: function (latlng, options) {\n var line = this.createPolyline([], options);\n line.enableEdit(this.map).newShape(latlng);\n return line;\n },\n\n // 🍂method startPolygon(latlng: L.LatLng, options: hash): L.Polygon\n // Start drawing a Polygon. If `latlng` is given, a first point will be added. In any case, continuing on user click.\n // If `options` is given, it will be passed to the Polygon class constructor.\n startPolygon: function (latlng, options) {\n var polygon = this.createPolygon([], options);\n polygon.enableEdit(this.map).newShape(latlng);\n return polygon;\n },\n\n // 🍂method startMarker(latlng: L.LatLng, options: hash): L.Marker\n // Start adding a Marker. If `latlng` is given, the Marker will be shown first at this point.\n // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch).\n // If `options` is given, it will be passed to the Marker class constructor.\n startMarker: function (latlng, options) {\n latlng = latlng || this.map.getCenter().clone();\n var marker = this.createMarker(latlng, options);\n marker.enableEdit(this.map).startDrawing();\n return marker;\n },\n\n // 🍂method startRectangle(latlng: L.LatLng, options: hash): L.Rectangle\n // Start drawing a Rectangle. If `latlng` is given, the Rectangle anchor will be added. In any case, continuing on user drag.\n // If `options` is given, it will be passed to the Rectangle class constructor.\n startRectangle: function(latlng, options) {\n var corner = latlng || L.latLng([0, 0]);\n var bounds = new L.LatLngBounds(corner, corner);\n var rectangle = this.createRectangle(bounds, options);\n rectangle.enableEdit(this.map).startDrawing();\n return rectangle;\n },\n\n // 🍂method startCircle(latlng: L.LatLng, options: hash): L.Circle\n // Start drawing a Circle. If `latlng` is given, the Circle anchor will be added. In any case, continuing on user drag.\n // If `options` is given, it will be passed to the Circle class constructor.\n startCircle: function (latlng, options) {\n latlng = latlng || this.map.getCenter().clone();\n var circle = this.createCircle(latlng, options);\n circle.enableEdit(this.map).startDrawing();\n return circle;\n },\n\n startHole: function (editor, latlng) {\n editor.newHole(latlng);\n },\n\n createLayer: function (klass, latlngs, options) {\n options = L.Util.extend({editOptions: {editTools: this}}, options);\n var layer = new klass(latlngs, options);\n // 🍂namespace Editable\n // 🍂event editable:created: LayerEvent\n // Fired when a new feature (Marker, Polyline…) is created.\n this.fireAndForward('editable:created', {layer: layer});\n return layer;\n },\n\n createPolyline: function (latlngs, options) {\n return this.createLayer(options && options.polylineClass || this.options.polylineClass, latlngs, options);\n },\n\n createPolygon: function (latlngs, options) {\n return this.createLayer(options && options.polygonClass || this.options.polygonClass, latlngs, options);\n },\n\n createMarker: function (latlng, options) {\n return this.createLayer(options && options.markerClass || this.options.markerClass, latlng, options);\n },\n\n createRectangle: function (bounds, options) {\n return this.createLayer(options && options.rectangleClass || this.options.rectangleClass, bounds, options);\n },\n\n createCircle: function (latlng, options) {\n return this.createLayer(options && options.circleClass || this.options.circleClass, latlng, options);\n }\n\n });\n\n L.extend(L.Editable, {\n\n makeCancellable: function (e) {\n e.cancel = function () {\n e._cancelled = true;\n };\n }\n\n });\n\n // 🍂namespace Map; 🍂class Map\n // Leaflet.Editable add options and events to the `L.Map` object.\n // See `Editable` events for the list of events fired on the Map.\n // 🍂example\n //\n // ```js\n // var map = L.map('map', {\n // editable: true,\n // editOptions: {\n // …\n // }\n // });\n // ```\n // 🍂section Editable Map Options\n L.Map.mergeOptions({\n\n // 🍂namespace Map\n // 🍂section Map Options\n // 🍂option editToolsClass: class = L.Editable\n // Class to be used as vertex, for path editing.\n editToolsClass: L.Editable,\n\n // 🍂option editable: boolean = false\n // Whether to create a L.Editable instance at map init.\n editable: false,\n\n // 🍂option editOptions: hash = {}\n // Options to pass to L.Editable when instanciating.\n editOptions: {}\n\n });\n\n L.Map.addInitHook(function () {\n\n this.whenReady(function () {\n if (this.options.editable) {\n this.editTools = new this.options.editToolsClass(this, this.options.editOptions);\n }\n });\n\n });\n\n L.Editable.VertexIcon = L.DivIcon.extend({\n\n options: {\n iconSize: new L.Point(8, 8)\n }\n\n });\n\n L.Editable.TouchVertexIcon = L.Editable.VertexIcon.extend({\n\n options: {\n iconSize: new L.Point(20, 20)\n }\n\n });\n\n\n // 🍂namespace Editable; 🍂class VertexMarker; Handler for dragging path vertices.\n L.Editable.VertexMarker = L.Marker.extend({\n\n options: {\n draggable: true,\n className: 'leaflet-div-icon leaflet-vertex-icon'\n },\n\n\n // 🍂section Public methods\n // The marker used to handle path vertex. You will usually interact with a `VertexMarker`\n // instance when listening for events like `editable:vertex:ctrlclick`.\n\n initialize: function (latlng, latlngs, editor, options) {\n // We don't use this._latlng, because on drag Leaflet replace it while\n // we want to keep reference.\n this.latlng = latlng;\n this.latlngs = latlngs;\n this.editor = editor;\n L.Marker.prototype.initialize.call(this, latlng, options);\n this.options.icon = this.editor.tools.createVertexIcon({className: this.options.className});\n this.latlng.__vertex = this;\n this.editor.editLayer.addLayer(this);\n this.setZIndexOffset(editor.tools._lastZIndex + 1);\n },\n\n onAdd: function (map) {\n L.Marker.prototype.onAdd.call(this, map);\n this.on('drag', this.onDrag);\n this.on('dragstart', this.onDragStart);\n this.on('dragend', this.onDragEnd);\n this.on('mouseup', this.onMouseup);\n this.on('click', this.onClick);\n this.on('contextmenu', this.onContextMenu);\n this.on('mousedown touchstart', this.onMouseDown);\n this.addMiddleMarkers();\n },\n\n onRemove: function (map) {\n if (this.middleMarker) this.middleMarker.delete();\n delete this.latlng.__vertex;\n this.off('drag', this.onDrag);\n this.off('dragstart', this.onDragStart);\n this.off('dragend', this.onDragEnd);\n this.off('mouseup', this.onMouseup);\n this.off('click', this.onClick);\n this.off('contextmenu', this.onContextMenu);\n this.off('mousedown touchstart', this.onMouseDown);\n L.Marker.prototype.onRemove.call(this, map);\n },\n\n onDrag: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerDrag(e);\n var iconPos = L.DomUtil.getPosition(this._icon),\n latlng = this._map.layerPointToLatLng(iconPos);\n this.latlng.update(latlng);\n this._latlng = this.latlng; // Push back to Leaflet our reference.\n this.editor.refresh();\n if (this.middleMarker) this.middleMarker.updateLatLng();\n var next = this.getNext();\n if (next && next.middleMarker) next.middleMarker.updateLatLng();\n },\n\n onDragStart: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerDragStart(e);\n },\n\n onDragEnd: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerDragEnd(e);\n },\n\n onClick: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerClick(e);\n },\n\n onMouseup: function (e) {\n L.DomEvent.stop(e);\n e.vertex = this;\n this.editor.map.fire('mouseup', e);\n },\n\n onContextMenu: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerContextMenu(e);\n },\n\n onMouseDown: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerMouseDown(e);\n },\n\n // 🍂method delete()\n // Delete a vertex and the related LatLng.\n delete: function () {\n var next = this.getNext(); // Compute before changing latlng\n this.latlngs.splice(this.getIndex(), 1);\n this.editor.editLayer.removeLayer(this);\n this.editor.onVertexDeleted({latlng: this.latlng, vertex: this});\n if (!this.latlngs.length) this.editor.deleteShape(this.latlngs);\n if (next) next.resetMiddleMarker();\n this.editor.refresh();\n },\n\n // 🍂method getIndex(): int\n // Get the index of the current vertex among others of the same LatLngs group.\n getIndex: function () {\n return this.latlngs.indexOf(this.latlng);\n },\n\n // 🍂method getLastIndex(): int\n // Get last vertex index of the LatLngs group of the current vertex.\n getLastIndex: function () {\n return this.latlngs.length - 1;\n },\n\n // 🍂method getPrevious(): VertexMarker\n // Get the previous VertexMarker in the same LatLngs group.\n getPrevious: function () {\n if (this.latlngs.length < 2) return;\n var index = this.getIndex(),\n previousIndex = index - 1;\n if (index === 0 && this.editor.CLOSED) previousIndex = this.getLastIndex();\n var previous = this.latlngs[previousIndex];\n if (previous) return previous.__vertex;\n },\n\n // 🍂method getNext(): VertexMarker\n // Get the next VertexMarker in the same LatLngs group.\n getNext: function () {\n if (this.latlngs.length < 2) return;\n var index = this.getIndex(),\n nextIndex = index + 1;\n if (index === this.getLastIndex() && this.editor.CLOSED) nextIndex = 0;\n var next = this.latlngs[nextIndex];\n if (next) return next.__vertex;\n },\n\n addMiddleMarker: function (previous) {\n if (!this.editor.hasMiddleMarkers()) return;\n previous = previous || this.getPrevious();\n if (previous && !this.middleMarker) this.middleMarker = this.editor.addMiddleMarker(previous, this, this.latlngs, this.editor);\n },\n\n addMiddleMarkers: function () {\n if (!this.editor.hasMiddleMarkers()) return;\n var previous = this.getPrevious();\n if (previous) this.addMiddleMarker(previous);\n var next = this.getNext();\n if (next) next.resetMiddleMarker();\n },\n\n resetMiddleMarker: function () {\n if (this.middleMarker) this.middleMarker.delete();\n this.addMiddleMarker();\n },\n\n // 🍂method split()\n // Split the vertex LatLngs group at its index, if possible.\n split: function () {\n if (!this.editor.splitShape) return; // Only for PolylineEditor\n this.editor.splitShape(this.latlngs, this.getIndex());\n },\n\n // 🍂method continue()\n // Continue the vertex LatLngs from this vertex. Only active for first and last vertices of a Polyline.\n continue: function () {\n if (!this.editor.continueBackward) return; // Only for PolylineEditor\n var index = this.getIndex();\n if (index === 0) this.editor.continueBackward(this.latlngs);\n else if (index === this.getLastIndex()) this.editor.continueForward(this.latlngs);\n }\n\n });\n\n L.Editable.mergeOptions({\n\n // 🍂namespace Editable\n // 🍂option vertexMarkerClass: class = VertexMarker\n // Class to be used as vertex, for path editing.\n vertexMarkerClass: L.Editable.VertexMarker\n\n });\n\n L.Editable.MiddleMarker = L.Marker.extend({\n\n options: {\n opacity: 0.5,\n className: 'leaflet-div-icon leaflet-middle-icon',\n draggable: true\n },\n\n initialize: function (left, right, latlngs, editor, options) {\n this.left = left;\n this.right = right;\n this.editor = editor;\n this.latlngs = latlngs;\n L.Marker.prototype.initialize.call(this, this.computeLatLng(), options);\n this._opacity = this.options.opacity;\n this.options.icon = this.editor.tools.createVertexIcon({className: this.options.className});\n this.editor.editLayer.addLayer(this);\n this.setVisibility();\n },\n\n setVisibility: function () {\n var leftPoint = this._map.latLngToContainerPoint(this.left.latlng),\n rightPoint = this._map.latLngToContainerPoint(this.right.latlng),\n size = L.point(this.options.icon.options.iconSize);\n if (leftPoint.distanceTo(rightPoint) < size.x * 3) this.hide();\n else this.show();\n },\n\n show: function () {\n this.setOpacity(this._opacity);\n },\n\n hide: function () {\n this.setOpacity(0);\n },\n\n updateLatLng: function () {\n this.setLatLng(this.computeLatLng());\n this.setVisibility();\n },\n\n computeLatLng: function () {\n var leftPoint = this.editor.map.latLngToContainerPoint(this.left.latlng),\n rightPoint = this.editor.map.latLngToContainerPoint(this.right.latlng),\n y = (leftPoint.y + rightPoint.y) / 2,\n x = (leftPoint.x + rightPoint.x) / 2;\n return this.editor.map.containerPointToLatLng([x, y]);\n },\n\n onAdd: function (map) {\n L.Marker.prototype.onAdd.call(this, map);\n L.DomEvent.on(this._icon, 'mousedown touchstart', this.onMouseDown, this);\n map.on('zoomend', this.setVisibility, this);\n },\n\n onRemove: function (map) {\n delete this.right.middleMarker;\n L.DomEvent.off(this._icon, 'mousedown touchstart', this.onMouseDown, this);\n map.off('zoomend', this.setVisibility, this);\n L.Marker.prototype.onRemove.call(this, map);\n },\n\n onMouseDown: function (e) {\n var iconPos = L.DomUtil.getPosition(this._icon),\n latlng = this.editor.map.layerPointToLatLng(iconPos);\n e = {\n originalEvent: e,\n latlng: latlng\n };\n if (this.options.opacity === 0) return;\n L.Editable.makeCancellable(e);\n this.editor.onMiddleMarkerMouseDown(e);\n if (e._cancelled) return;\n this.latlngs.splice(this.index(), 0, e.latlng);\n this.editor.refresh();\n var icon = this._icon;\n var marker = this.editor.addVertexMarker(e.latlng, this.latlngs);\n this.editor.onNewVertex(marker);\n /* Hack to workaround browser not firing touchend when element is no more on DOM */\n var parent = marker._icon.parentNode;\n parent.removeChild(marker._icon);\n marker._icon = icon;\n parent.appendChild(marker._icon);\n marker._initIcon();\n marker._initInteraction();\n marker.setOpacity(1);\n /* End hack */\n // Transfer ongoing dragging to real marker\n L.Draggable._dragging = false;\n marker.dragging._draggable._onDown(e.originalEvent);\n this.delete();\n },\n\n delete: function () {\n this.editor.editLayer.removeLayer(this);\n },\n\n index: function () {\n return this.latlngs.indexOf(this.right.latlng);\n }\n\n });\n\n L.Editable.mergeOptions({\n\n // 🍂namespace Editable\n // 🍂option middleMarkerClass: class = VertexMarker\n // Class to be used as middle vertex, pulled by the user to create a new point in the middle of a path.\n middleMarkerClass: L.Editable.MiddleMarker\n\n });\n\n // 🍂namespace Editable; 🍂class BaseEditor; 🍂aka L.Editable.BaseEditor\n // When editing a feature (Marker, Polyline…), an editor is attached to it. This\n // editor basically knows how to handle the edition.\n L.Editable.BaseEditor = L.Handler.extend({\n\n initialize: function (map, feature, options) {\n L.setOptions(this, options);\n this.map = map;\n this.feature = feature;\n this.feature.editor = this;\n this.editLayer = new L.LayerGroup();\n this.tools = this.options.editTools || map.editTools;\n },\n\n // 🍂method enable(): this\n // Set up the drawing tools for the feature to be editable.\n addHooks: function () {\n if (this.isConnected()) this.onFeatureAdd();\n else this.feature.once('add', this.onFeatureAdd, this);\n this.onEnable();\n this.feature.on(this._getEvents(), this);\n return;\n },\n\n // 🍂method disable(): this\n // Remove the drawing tools for the feature.\n removeHooks: function () {\n this.feature.off(this._getEvents(), this);\n if (this.feature.dragging) this.feature.dragging.disable();\n this.editLayer.clearLayers();\n this.tools.editLayer.removeLayer(this.editLayer);\n this.onDisable();\n if (this._drawing) this.cancelDrawing();\n return;\n },\n\n // 🍂method drawing(): boolean\n // Return true if any drawing action is ongoing with this editor.\n drawing: function () {\n return !!this._drawing;\n },\n\n reset: function () {},\n\n onFeatureAdd: function () {\n this.tools.editLayer.addLayer(this.editLayer);\n if (this.feature.dragging) this.feature.dragging.enable();\n },\n\n hasMiddleMarkers: function () {\n return !this.options.skipMiddleMarkers && !this.tools.options.skipMiddleMarkers;\n },\n\n fireAndForward: function (type, e) {\n e = e || {};\n e.layer = this.feature;\n this.feature.fire(type, e);\n this.tools.fireAndForward(type, e);\n },\n\n onEnable: function () {\n // 🍂namespace Editable\n // 🍂event editable:enable: Event\n // Fired when an existing feature is ready to be edited.\n this.fireAndForward('editable:enable');\n },\n\n onDisable: function () {\n // 🍂namespace Editable\n // 🍂event editable:disable: Event\n // Fired when an existing feature is not ready anymore to be edited.\n this.fireAndForward('editable:disable');\n },\n\n onEditing: function () {\n // 🍂namespace Editable\n // 🍂event editable:editing: Event\n // Fired as soon as any change is made to the feature geometry.\n this.fireAndForward('editable:editing');\n },\n\n onStartDrawing: function () {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:start: Event\n // Fired when a feature is to be drawn.\n this.fireAndForward('editable:drawing:start');\n },\n\n onEndDrawing: function () {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:end: Event\n // Fired when a feature is not drawn anymore.\n this.fireAndForward('editable:drawing:end');\n },\n\n onCancelDrawing: function () {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:cancel: Event\n // Fired when user cancel drawing while a feature is being drawn.\n this.fireAndForward('editable:drawing:cancel');\n },\n\n onCommitDrawing: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:commit: Event\n // Fired when user finish drawing a feature.\n this.fireAndForward('editable:drawing:commit', e);\n },\n\n onDrawingMouseDown: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:mousedown: Event\n // Fired when user `mousedown` while drawing.\n this.fireAndForward('editable:drawing:mousedown', e);\n },\n\n onDrawingMouseUp: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:mouseup: Event\n // Fired when user `mouseup` while drawing.\n this.fireAndForward('editable:drawing:mouseup', e);\n },\n\n startDrawing: function () {\n if (!this._drawing) this._drawing = L.Editable.FORWARD;\n this.tools.registerForDrawing(this);\n this.onStartDrawing();\n },\n\n commitDrawing: function (e) {\n this.onCommitDrawing(e);\n this.endDrawing();\n },\n\n cancelDrawing: function () {\n // If called during a vertex drag, the vertex will be removed before\n // the mouseup fires on it. This is a workaround. Maybe better fix is\n // To have L.Draggable reset it's status on disable (Leaflet side).\n L.Draggable._dragging = false;\n this.onCancelDrawing();\n this.endDrawing();\n },\n\n endDrawing: function () {\n this._drawing = false;\n this.tools.unregisterForDrawing(this);\n this.onEndDrawing();\n },\n\n onDrawingClick: function (e) {\n if (!this.drawing()) return;\n L.Editable.makeCancellable(e);\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:click: CancelableEvent\n // Fired when user `click` while drawing, before any internal action is being processed.\n this.fireAndForward('editable:drawing:click', e);\n if (e._cancelled) return;\n if (!this.isConnected()) this.connect(e);\n this.processDrawingClick(e);\n },\n\n isConnected: function () {\n return this.map.hasLayer(this.feature);\n },\n\n connect: function (e) {\n this.tools.connectCreatedToMap(this.feature);\n this.tools.editLayer.addLayer(this.editLayer);\n },\n\n onMove: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:move: Event\n // Fired when `move` mouse while drawing, while dragging a marker, and while dragging a vertex.\n this.fireAndForward('editable:drawing:move', e);\n },\n\n onDrawingMouseMove: function (e) {\n this.onMove(e);\n },\n\n _getEvents: function () {\n return {\n dragstart: this.onDragStart,\n drag: this.onDrag,\n dragend: this.onDragEnd,\n remove: this.disable\n };\n },\n\n onDragStart: function (e) {\n this.onEditing();\n // 🍂namespace Editable\n // 🍂event editable:dragstart: Event\n // Fired before a path feature is dragged.\n this.fireAndForward('editable:dragstart', e);\n },\n\n onDrag: function (e) {\n this.onMove(e);\n // 🍂namespace Editable\n // 🍂event editable:drag: Event\n // Fired when a path feature is being dragged.\n this.fireAndForward('editable:drag', e);\n },\n\n onDragEnd: function (e) {\n // 🍂namespace Editable\n // 🍂event editable:dragend: Event\n // Fired after a path feature has been dragged.\n this.fireAndForward('editable:dragend', e);\n }\n\n });\n\n // 🍂namespace Editable; 🍂class MarkerEditor; 🍂aka L.Editable.MarkerEditor\n // 🍂inherits BaseEditor\n // Editor for Marker.\n L.Editable.MarkerEditor = L.Editable.BaseEditor.extend({\n\n onDrawingMouseMove: function (e) {\n L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e);\n if (this._drawing) this.feature.setLatLng(e.latlng);\n },\n\n processDrawingClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:clicked: Event\n // Fired when user `click` while drawing, after all internal actions.\n this.fireAndForward('editable:drawing:clicked', e);\n this.commitDrawing(e);\n },\n\n connect: function (e) {\n // On touch, the latlng has not been updated because there is\n // no mousemove.\n if (e) this.feature._latlng = e.latlng;\n L.Editable.BaseEditor.prototype.connect.call(this, e);\n }\n\n });\n\n // 🍂namespace Editable; 🍂class PathEditor; 🍂aka L.Editable.PathEditor\n // 🍂inherits BaseEditor\n // Base class for all path editors.\n L.Editable.PathEditor = L.Editable.BaseEditor.extend({\n\n CLOSED: false,\n MIN_VERTEX: 2,\n\n addHooks: function () {\n L.Editable.BaseEditor.prototype.addHooks.call(this);\n if (this.feature) this.initVertexMarkers();\n return this;\n },\n\n initVertexMarkers: function (latlngs) {\n if (!this.enabled()) return;\n latlngs = latlngs || this.getLatLngs();\n if (isFlat(latlngs)) this.addVertexMarkers(latlngs);\n else for (var i = 0; i < latlngs.length; i++) this.initVertexMarkers(latlngs[i]);\n },\n\n getLatLngs: function () {\n return this.feature.getLatLngs();\n },\n\n // 🍂method reset()\n // Rebuild edit elements (Vertex, MiddleMarker, etc.).\n reset: function () {\n this.editLayer.clearLayers();\n this.initVertexMarkers();\n },\n\n addVertexMarker: function (latlng, latlngs) {\n return new this.tools.options.vertexMarkerClass(latlng, latlngs, this);\n },\n\n onNewVertex: function (vertex) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:new: VertexEvent\n // Fired when a new vertex is created.\n this.fireAndForward('editable:vertex:new', {latlng: vertex.latlng, vertex: vertex});\n },\n\n addVertexMarkers: function (latlngs) {\n for (var i = 0; i < latlngs.length; i++) {\n this.addVertexMarker(latlngs[i], latlngs);\n }\n },\n\n refreshVertexMarkers: function (latlngs) {\n latlngs = latlngs || this.getDefaultLatLngs();\n for (var i = 0; i < latlngs.length; i++) {\n latlngs[i].__vertex.update();\n }\n },\n\n addMiddleMarker: function (left, right, latlngs) {\n return new this.tools.options.middleMarkerClass(left, right, latlngs, this);\n },\n\n onVertexMarkerClick: function (e) {\n L.Editable.makeCancellable(e);\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:click: CancelableVertexEvent\n // Fired when a `click` is issued on a vertex, before any internal action is being processed.\n this.fireAndForward('editable:vertex:click', e);\n if (e._cancelled) return;\n if (this.tools.drawing() && this.tools._drawingEditor !== this) return;\n var index = e.vertex.getIndex(), commit;\n if (e.originalEvent.ctrlKey) {\n this.onVertexMarkerCtrlClick(e);\n } else if (e.originalEvent.altKey) {\n this.onVertexMarkerAltClick(e);\n } else if (e.originalEvent.shiftKey) {\n this.onVertexMarkerShiftClick(e);\n } else if (e.originalEvent.metaKey) {\n this.onVertexMarkerMetaKeyClick(e);\n } else if (index === e.vertex.getLastIndex() && this._drawing === L.Editable.FORWARD) {\n if (index >= this.MIN_VERTEX - 1) commit = true;\n } else if (index === 0 && this._drawing === L.Editable.BACKWARD && this._drawnLatLngs.length >= this.MIN_VERTEX) {\n commit = true;\n } else if (index === 0 && this._drawing === L.Editable.FORWARD && this._drawnLatLngs.length >= this.MIN_VERTEX && this.CLOSED) {\n commit = true; // Allow to close on first point also for polygons\n } else {\n this.onVertexRawMarkerClick(e);\n }\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:clicked: VertexEvent\n // Fired when a `click` is issued on a vertex, after all internal actions.\n this.fireAndForward('editable:vertex:clicked', e);\n if (commit) this.commitDrawing(e);\n },\n\n onVertexRawMarkerClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:rawclick: CancelableVertexEvent\n // Fired when a `click` is issued on a vertex without any special key and without being in drawing mode.\n this.fireAndForward('editable:vertex:rawclick', e);\n if (e._cancelled) return;\n if (!this.vertexCanBeDeleted(e.vertex)) return;\n e.vertex.delete();\n },\n\n vertexCanBeDeleted: function (vertex) {\n return vertex.latlngs.length > this.MIN_VERTEX;\n },\n\n onVertexDeleted: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:deleted: VertexEvent\n // Fired after a vertex has been deleted by user.\n this.fireAndForward('editable:vertex:deleted', e);\n },\n\n onVertexMarkerCtrlClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:ctrlclick: VertexEvent\n // Fired when a `click` with `ctrlKey` is issued on a vertex.\n this.fireAndForward('editable:vertex:ctrlclick', e);\n },\n\n onVertexMarkerShiftClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:shiftclick: VertexEvent\n // Fired when a `click` with `shiftKey` is issued on a vertex.\n this.fireAndForward('editable:vertex:shiftclick', e);\n },\n\n onVertexMarkerMetaKeyClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:metakeyclick: VertexEvent\n // Fired when a `click` with `metaKey` is issued on a vertex.\n this.fireAndForward('editable:vertex:metakeyclick', e);\n },\n\n onVertexMarkerAltClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:altclick: VertexEvent\n // Fired when a `click` with `altKey` is issued on a vertex.\n this.fireAndForward('editable:vertex:altclick', e);\n },\n\n onVertexMarkerContextMenu: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:contextmenu: VertexEvent\n // Fired when a `contextmenu` is issued on a vertex.\n this.fireAndForward('editable:vertex:contextmenu', e);\n },\n\n onVertexMarkerMouseDown: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:mousedown: VertexEvent\n // Fired when user `mousedown` a vertex.\n this.fireAndForward('editable:vertex:mousedown', e);\n },\n\n onMiddleMarkerMouseDown: function (e) {\n // 🍂namespace Editable\n // 🍂section MiddleMarker events\n // 🍂event editable:middlemarker:mousedown: VertexEvent\n // Fired when user `mousedown` a middle marker.\n this.fireAndForward('editable:middlemarker:mousedown', e);\n },\n\n onVertexMarkerDrag: function (e) {\n this.onMove(e);\n if (this.feature._bounds) this.extendBounds(e);\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:drag: VertexEvent\n // Fired when a vertex is dragged by user.\n this.fireAndForward('editable:vertex:drag', e);\n },\n\n onVertexMarkerDragStart: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:dragstart: VertexEvent\n // Fired before a vertex is dragged by user.\n this.fireAndForward('editable:vertex:dragstart', e);\n },\n\n onVertexMarkerDragEnd: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:dragend: VertexEvent\n // Fired after a vertex is dragged by user.\n this.fireAndForward('editable:vertex:dragend', e);\n },\n\n setDrawnLatLngs: function (latlngs) {\n this._drawnLatLngs = latlngs || this.getDefaultLatLngs();\n },\n\n startDrawing: function () {\n if (!this._drawnLatLngs) this.setDrawnLatLngs();\n L.Editable.BaseEditor.prototype.startDrawing.call(this);\n },\n\n startDrawingForward: function () {\n this.startDrawing();\n },\n\n endDrawing: function () {\n this.tools.detachForwardLineGuide();\n this.tools.detachBackwardLineGuide();\n if (this._drawnLatLngs && this._drawnLatLngs.length < this.MIN_VERTEX) this.deleteShape(this._drawnLatLngs);\n L.Editable.BaseEditor.prototype.endDrawing.call(this);\n delete this._drawnLatLngs;\n },\n\n addLatLng: function (latlng) {\n if (this._drawing === L.Editable.FORWARD) this._drawnLatLngs.push(latlng);\n else this._drawnLatLngs.unshift(latlng);\n this.feature._bounds.extend(latlng);\n var vertex = this.addVertexMarker(latlng, this._drawnLatLngs);\n this.onNewVertex(vertex);\n this.refresh();\n },\n\n newPointForward: function (latlng) {\n this.addLatLng(latlng);\n this.tools.attachForwardLineGuide();\n this.tools.anchorForwardLineGuide(latlng);\n },\n\n newPointBackward: function (latlng) {\n this.addLatLng(latlng);\n this.tools.anchorBackwardLineGuide(latlng);\n },\n\n // 🍂namespace PathEditor\n // 🍂method push()\n // Programmatically add a point while drawing.\n push: function (latlng) {\n if (!latlng) return console.error('L.Editable.PathEditor.push expect a vaild latlng as parameter');\n if (this._drawing === L.Editable.FORWARD) this.newPointForward(latlng);\n else this.newPointBackward(latlng);\n },\n\n removeLatLng: function (latlng) {\n latlng.__vertex.delete();\n this.refresh();\n },\n\n // 🍂method pop(): L.LatLng or null\n // Programmatically remove last point (if any) while drawing.\n pop: function () {\n if (this._drawnLatLngs.length <= 1) return;\n var latlng;\n if (this._drawing === L.Editable.FORWARD) latlng = this._drawnLatLngs[this._drawnLatLngs.length - 1];\n else latlng = this._drawnLatLngs[0];\n this.removeLatLng(latlng);\n if (this._drawing === L.Editable.FORWARD) this.tools.anchorForwardLineGuide(this._drawnLatLngs[this._drawnLatLngs.length - 1]);\n else this.tools.anchorForwardLineGuide(this._drawnLatLngs[0]);\n return latlng;\n },\n\n processDrawingClick: function (e) {\n if (e.vertex && e.vertex.editor === this) return;\n if (this._drawing === L.Editable.FORWARD) this.newPointForward(e.latlng);\n else this.newPointBackward(e.latlng);\n this.fireAndForward('editable:drawing:clicked', e);\n },\n\n onDrawingMouseMove: function (e) {\n L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e);\n if (this._drawing) {\n this.tools.moveForwardLineGuide(e.latlng);\n this.tools.moveBackwardLineGuide(e.latlng);\n }\n },\n\n refresh: function () {\n this.feature.redraw();\n this.onEditing();\n },\n\n // 🍂namespace PathEditor\n // 🍂method newShape(latlng?: L.LatLng)\n // Add a new shape (Polyline, Polygon) in a multi, and setup up drawing tools to draw it;\n // if optional `latlng` is given, start a path at this point.\n newShape: function (latlng) {\n var shape = this.addNewEmptyShape();\n if (!shape) return;\n this.setDrawnLatLngs(shape[0] || shape); // Polygon or polyline\n this.startDrawingForward();\n // 🍂namespace Editable\n // 🍂section Shape events\n // 🍂event editable:shape:new: ShapeEvent\n // Fired when a new shape is created in a multi (Polygon or Polyline).\n this.fireAndForward('editable:shape:new', {shape: shape});\n if (latlng) this.newPointForward(latlng);\n },\n\n deleteShape: function (shape, latlngs) {\n var e = {shape: shape};\n L.Editable.makeCancellable(e);\n // 🍂namespace Editable\n // 🍂section Shape events\n // 🍂event editable:shape:delete: CancelableShapeEvent\n // Fired before a new shape is deleted in a multi (Polygon or Polyline).\n this.fireAndForward('editable:shape:delete', e);\n if (e._cancelled) return;\n shape = this._deleteShape(shape, latlngs);\n if (this.ensureNotFlat) this.ensureNotFlat(); // Polygon.\n this.feature.setLatLngs(this.getLatLngs()); // Force bounds reset.\n this.refresh();\n this.reset();\n // 🍂namespace Editable\n // 🍂section Shape events\n // 🍂event editable:shape:deleted: ShapeEvent\n // Fired after a new shape is deleted in a multi (Polygon or Polyline).\n this.fireAndForward('editable:shape:deleted', {shape: shape});\n return shape;\n },\n\n _deleteShape: function (shape, latlngs) {\n latlngs = latlngs || this.getLatLngs();\n if (!latlngs.length) return;\n var self = this,\n inplaceDelete = function (latlngs, shape) {\n // Called when deleting a flat latlngs\n shape = latlngs.splice(0, Number.MAX_VALUE);\n return shape;\n },\n spliceDelete = function (latlngs, shape) {\n // Called when removing a latlngs inside an array\n latlngs.splice(latlngs.indexOf(shape), 1);\n if (!latlngs.length) self._deleteShape(latlngs);\n return shape;\n };\n if (latlngs === shape) return inplaceDelete(latlngs, shape);\n for (var i = 0; i < latlngs.length; i++) {\n if (latlngs[i] === shape) return spliceDelete(latlngs, shape);\n else if (latlngs[i].indexOf(shape) !== -1) return spliceDelete(latlngs[i], shape);\n }\n },\n\n // 🍂namespace PathEditor\n // 🍂method deleteShapeAt(latlng: L.LatLng): Array\n // Remove a path shape at the given `latlng`.\n deleteShapeAt: function (latlng) {\n var shape = this.feature.shapeAt(latlng);\n if (shape) return this.deleteShape(shape);\n },\n\n // 🍂method appendShape(shape: Array)\n // Append a new shape to the Polygon or Polyline.\n appendShape: function (shape) {\n this.insertShape(shape);\n },\n\n // 🍂method prependShape(shape: Array)\n // Prepend a new shape to the Polygon or Polyline.\n prependShape: function (shape) {\n this.insertShape(shape, 0);\n },\n\n // 🍂method insertShape(shape: Array, index: int)\n // Insert a new shape to the Polygon or Polyline at given index (default is to append).\n insertShape: function (shape, index) {\n this.ensureMulti();\n shape = this.formatShape(shape);\n if (typeof index === 'undefined') index = this.feature._latlngs.length;\n this.feature._latlngs.splice(index, 0, shape);\n this.feature.redraw();\n if (this._enabled) this.reset();\n },\n\n extendBounds: function (e) {\n this.feature._bounds.extend(e.vertex.latlng);\n },\n\n onDragStart: function (e) {\n this.editLayer.clearLayers();\n L.Editable.BaseEditor.prototype.onDragStart.call(this, e);\n },\n\n onDragEnd: function (e) {\n this.initVertexMarkers();\n L.Editable.BaseEditor.prototype.onDragEnd.call(this, e);\n }\n\n });\n\n // 🍂namespace Editable; 🍂class PolylineEditor; 🍂aka L.Editable.PolylineEditor\n // 🍂inherits PathEditor\n L.Editable.PolylineEditor = L.Editable.PathEditor.extend({\n\n startDrawingBackward: function () {\n this._drawing = L.Editable.BACKWARD;\n this.startDrawing();\n },\n\n // 🍂method continueBackward(latlngs?: Array)\n // Set up drawing tools to continue the line backward.\n continueBackward: function (latlngs) {\n if (this.drawing()) return;\n latlngs = latlngs || this.getDefaultLatLngs();\n this.setDrawnLatLngs(latlngs);\n if (latlngs.length > 0) {\n this.tools.attachBackwardLineGuide();\n this.tools.anchorBackwardLineGuide(latlngs[0]);\n }\n this.startDrawingBackward();\n },\n\n // 🍂method continueForward(latlngs?: Array)\n // Set up drawing tools to continue the line forward.\n continueForward: function (latlngs) {\n if (this.drawing()) return;\n latlngs = latlngs || this.getDefaultLatLngs();\n this.setDrawnLatLngs(latlngs);\n if (latlngs.length > 0) {\n this.tools.attachForwardLineGuide();\n this.tools.anchorForwardLineGuide(latlngs[latlngs.length - 1]);\n }\n this.startDrawingForward();\n },\n\n getDefaultLatLngs: function (latlngs) {\n latlngs = latlngs || this.feature._latlngs;\n if (!latlngs.length || latlngs[0] instanceof L.LatLng) return latlngs;\n else return this.getDefaultLatLngs(latlngs[0]);\n },\n\n ensureMulti: function () {\n if (this.feature._latlngs.length && isFlat(this.feature._latlngs)) {\n this.feature._latlngs = [this.feature._latlngs];\n }\n },\n\n addNewEmptyShape: function () {\n if (this.feature._latlngs.length) {\n var shape = [];\n this.appendShape(shape);\n return shape;\n } else {\n return this.feature._latlngs;\n }\n },\n\n formatShape: function (shape) {\n if (isFlat(shape)) return shape;\n else if (shape[0]) return this.formatShape(shape[0]);\n },\n\n // 🍂method splitShape(latlngs?: Array, index: int)\n // Split the given `latlngs` shape at index `index` and integrate new shape in instance `latlngs`.\n splitShape: function (shape, index) {\n if (!index || index >= shape.length - 1) return;\n this.ensureMulti();\n var shapeIndex = this.feature._latlngs.indexOf(shape);\n if (shapeIndex === -1) return;\n var first = shape.slice(0, index + 1),\n second = shape.slice(index);\n // We deal with reference, we don't want twice the same latlng around.\n second[0] = L.latLng(second[0].lat, second[0].lng, second[0].alt);\n this.feature._latlngs.splice(shapeIndex, 1, first, second);\n this.refresh();\n this.reset();\n }\n\n });\n\n // 🍂namespace Editable; 🍂class PolygonEditor; 🍂aka L.Editable.PolygonEditor\n // 🍂inherits PathEditor\n L.Editable.PolygonEditor = L.Editable.PathEditor.extend({\n\n CLOSED: true,\n MIN_VERTEX: 3,\n\n newPointForward: function (latlng) {\n L.Editable.PathEditor.prototype.newPointForward.call(this, latlng);\n if (!this.tools.backwardLineGuide._latlngs.length) this.tools.anchorBackwardLineGuide(latlng);\n if (this._drawnLatLngs.length === 2) this.tools.attachBackwardLineGuide();\n },\n\n addNewEmptyHole: function (latlng) {\n this.ensureNotFlat();\n var latlngs = this.feature.shapeAt(latlng);\n if (!latlngs) return;\n var holes = [];\n latlngs.push(holes);\n return holes;\n },\n\n // 🍂method newHole(latlng?: L.LatLng, index: int)\n // Set up drawing tools for creating a new hole on the Polygon. If the `latlng` param is given, a first point is created.\n newHole: function (latlng) {\n var holes = this.addNewEmptyHole(latlng);\n if (!holes) return;\n this.setDrawnLatLngs(holes);\n this.startDrawingForward();\n if (latlng) this.newPointForward(latlng);\n },\n\n addNewEmptyShape: function () {\n if (this.feature._latlngs.length && this.feature._latlngs[0].length) {\n var shape = [];\n this.appendShape(shape);\n return shape;\n } else {\n return this.feature._latlngs;\n }\n },\n\n ensureMulti: function () {\n if (this.feature._latlngs.length && isFlat(this.feature._latlngs[0])) {\n this.feature._latlngs = [this.feature._latlngs];\n }\n },\n\n ensureNotFlat: function () {\n if (!this.feature._latlngs.length || isFlat(this.feature._latlngs)) this.feature._latlngs = [this.feature._latlngs];\n },\n\n vertexCanBeDeleted: function (vertex) {\n var parent = this.feature.parentShape(vertex.latlngs),\n idx = L.Util.indexOf(parent, vertex.latlngs);\n if (idx > 0) return true; // Holes can be totally deleted without removing the layer itself.\n return L.Editable.PathEditor.prototype.vertexCanBeDeleted.call(this, vertex);\n },\n\n getDefaultLatLngs: function () {\n if (!this.feature._latlngs.length) this.feature._latlngs.push([]);\n return this.feature._latlngs[0];\n },\n\n formatShape: function (shape) {\n // [[1, 2], [3, 4]] => must be nested\n // [] => must be nested\n // [[]] => is already nested\n if (isFlat(shape) && (!shape[0] || shape[0].length !== 0)) return [shape];\n else return shape;\n }\n\n });\n\n // 🍂namespace Editable; 🍂class RectangleEditor; 🍂aka L.Editable.RectangleEditor\n // 🍂inherits PathEditor\n L.Editable.RectangleEditor = L.Editable.PathEditor.extend({\n\n CLOSED: true,\n MIN_VERTEX: 4,\n\n options: {\n skipMiddleMarkers: true\n },\n\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 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 onDrawingMouseDown: function (e) {\n L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e);\n this.connect();\n var latlngs = this.getDefaultLatLngs();\n // L.Polygon._convertLatLngs removes last latlng if it equals first point,\n // which is the case here as all latlngs are [0, 0]\n if (latlngs.length === 3) latlngs.push(e.latlng);\n var bounds = new L.LatLngBounds(e.latlng, e.latlng);\n this.updateBounds(bounds);\n this.updateLatLngs(bounds);\n this.refresh();\n this.reset();\n // Stop dragging map.\n // L.Draggable has two workflows:\n // - mousedown => mousemove => mouseup\n // - touchstart => touchmove => touchend\n // Problem: L.Map.Tap does not allow us to listen to touchstart, so we only\n // can deal with mousedown, but then when in a touch device, we are dealing with\n // simulated events (actually simulated by L.Map.Tap), which are no more taken\n // into account by L.Draggable.\n // Ref.: https://github.com/Leaflet/Leaflet.Editable/issues/103\n e.originalEvent._simulated = false;\n this.map.dragging._draggable._onUp(e.originalEvent);\n // Now transfer ongoing drag action to the bottom right corner.\n // Should we refine which corne will handle the drag according to\n // drag direction?\n latlngs[3].__vertex.dragging._draggable._onDown(e.originalEvent);\n },\n\n onDrawingMouseUp: function (e) {\n this.commitDrawing(e);\n e.originalEvent._simulated = false;\n L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e);\n },\n\n onDrawingMouseMove: function (e) {\n e.originalEvent._simulated = false;\n L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e);\n },\n\n\n getDefaultLatLngs: function (latlngs) {\n return latlngs || this.feature._latlngs[0];\n },\n\n updateBounds: function (bounds) {\n this.feature._bounds = bounds;\n },\n\n updateLatLngs: function (bounds) {\n var latlngs = this.getDefaultLatLngs(),\n newLatlngs = this.feature._boundsToLatLngs(bounds);\n // Keep references.\n for (var i = 0; i < latlngs.length; i++) {\n latlngs[i].update(newLatlngs[i]);\n };\n }\n\n });\n\n // 🍂namespace Editable; 🍂class CircleEditor; 🍂aka L.Editable.CircleEditor\n // 🍂inherits PathEditor\n L.Editable.CircleEditor = L.Editable.PathEditor.extend({\n\n MIN_VERTEX: 2,\n\n options: {\n skipMiddleMarkers: true\n },\n\n initialize: function (map, feature, options) {\n L.Editable.PathEditor.prototype.initialize.call(this, map, feature, options);\n this._resizeLatLng = this.computeResizeLatLng();\n },\n\n computeResizeLatLng: function () {\n // While circle is not added to the map, _radius is not set.\n var delta = (this.feature._radius || this.feature._mRadius) * Math.cos(Math.PI / 4),\n point = this.map.project(this.feature._latlng);\n return this.map.unproject([point.x + delta, point.y - delta]);\n },\n\n updateResizeLatLng: function () {\n this._resizeLatLng.update(this.computeResizeLatLng());\n this._resizeLatLng.__vertex.update();\n },\n\n getLatLngs: function () {\n return [this.feature._latlng, this._resizeLatLng];\n },\n\n getDefaultLatLngs: function () {\n return this.getLatLngs();\n },\n\n onVertexMarkerDrag: function (e) {\n if (e.vertex.getIndex() === 1) this.resize(e);\n else this.updateResizeLatLng(e);\n L.Editable.PathEditor.prototype.onVertexMarkerDrag.call(this, e);\n },\n\n resize: function (e) {\n var radius = this.feature._latlng.distanceTo(e.latlng)\n this.feature.setRadius(radius);\n },\n\n onDrawingMouseDown: function (e) {\n L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e);\n this._resizeLatLng.update(e.latlng);\n this.feature._latlng.update(e.latlng);\n this.connect();\n // Stop dragging map.\n e.originalEvent._simulated = false;\n this.map.dragging._draggable._onUp(e.originalEvent);\n // Now transfer ongoing drag action to the radius handler.\n this._resizeLatLng.__vertex.dragging._draggable._onDown(e.originalEvent);\n },\n\n onDrawingMouseUp: function (e) {\n this.commitDrawing(e);\n e.originalEvent._simulated = false;\n L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e);\n },\n\n onDrawingMouseMove: function (e) {\n e.originalEvent._simulated = false;\n L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e);\n },\n\n onDrag: function (e) {\n L.Editable.PathEditor.prototype.onDrag.call(this, e);\n this.feature.dragging.updateLatLng(this._resizeLatLng);\n }\n\n });\n\n // 🍂namespace Editable; 🍂class EditableMixin\n // `EditableMixin` is included to `L.Polyline`, `L.Polygon`, `L.Rectangle`, `L.Circle`\n // and `L.Marker`. It adds some methods to them.\n // *When editing is enabled, the editor is accessible on the instance with the\n // `editor` property.*\n var EditableMixin = {\n\n createEditor: function (map) {\n map = map || this._map;\n var tools = (this.options.editOptions || {}).editTools || map.editTools;\n if (!tools) throw Error('Unable to detect Editable instance.')\n var Klass = this.options.editorClass || this.getEditorClass(tools);\n return new Klass(map, this, this.options.editOptions);\n },\n\n // 🍂method enableEdit(map?: L.Map): this.editor\n // Enable editing, by creating an editor if not existing, and then calling `enable` on it.\n enableEdit: function (map) {\n if (!this.editor) this.createEditor(map);\n this.editor.enable();\n return this.editor;\n },\n\n // 🍂method editEnabled(): boolean\n // Return true if current instance has an editor attached, and this editor is enabled.\n editEnabled: function () {\n return this.editor && this.editor.enabled();\n },\n\n // 🍂method disableEdit()\n // Disable editing, also remove the editor property reference.\n disableEdit: function () {\n if (this.editor) {\n this.editor.disable();\n delete this.editor;\n }\n },\n\n // 🍂method toggleEdit()\n // Enable or disable editing, according to current status.\n toggleEdit: function () {\n if (this.editEnabled()) this.disableEdit();\n else this.enableEdit();\n },\n\n _onEditableAdd: function () {\n if (this.editor) this.enableEdit();\n }\n\n };\n\n var PolylineMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.polylineEditorClass) ? tools.options.polylineEditorClass : L.Editable.PolylineEditor;\n },\n\n shapeAt: function (latlng, latlngs) {\n // We can have those cases:\n // - latlngs are just a flat array of latlngs, use this\n // - latlngs is an array of arrays of latlngs, loop over\n var shape = null;\n latlngs = latlngs || this._latlngs;\n if (!latlngs.length) return shape;\n else if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs;\n else for (var i = 0; i < latlngs.length; i++) if (this.isInLatLngs(latlng, latlngs[i])) return latlngs[i];\n return shape;\n },\n\n isInLatLngs: function (l, latlngs) {\n if (!latlngs) return false;\n var i, k, len, part = [], p,\n w = this._clickTolerance();\n this._projectLatlngs(latlngs, part, this._pxBounds);\n part = part[0];\n p = this._map.latLngToLayerPoint(l);\n\n if (!this._pxBounds.contains(p)) { return false; }\n for (i = 1, len = part.length, k = 0; i < len; k = i++) {\n\n if (L.LineUtil.pointToSegmentDistance(p, part[k], part[i]) <= w) {\n return true;\n }\n }\n return false;\n }\n\n };\n\n var PolygonMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.polygonEditorClass) ? tools.options.polygonEditorClass : L.Editable.PolygonEditor;\n },\n\n shapeAt: function (latlng, latlngs) {\n // We can have those cases:\n // - latlngs are just a flat array of latlngs, use this\n // - latlngs is an array of arrays of latlngs, this is a simple polygon (maybe with holes), use the first\n // - latlngs is an array of arrays of arrays, this is a multi, loop over\n var shape = null;\n latlngs = latlngs || this._latlngs;\n if (!latlngs.length) return shape;\n else if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs;\n else if (isFlat(latlngs[0]) && this.isInLatLngs(latlng, latlngs[0])) shape = latlngs;\n else for (var i = 0; i < latlngs.length; i++) if (this.isInLatLngs(latlng, latlngs[i][0])) return latlngs[i];\n return shape;\n },\n\n isInLatLngs: function (l, latlngs) {\n var inside = false, l1, l2, j, k, len2;\n\n for (j = 0, len2 = latlngs.length, k = len2 - 1; j < len2; k = j++) {\n l1 = latlngs[j];\n l2 = latlngs[k];\n\n if (((l1.lat > l.lat) !== (l2.lat > l.lat)) &&\n (l.lng < (l2.lng - l1.lng) * (l.lat - l1.lat) / (l2.lat - l1.lat) + l1.lng)) {\n inside = !inside;\n }\n }\n\n return inside;\n },\n\n parentShape: function (shape, latlngs) {\n latlngs = latlngs || this._latlngs;\n if (!latlngs) return;\n var idx = L.Util.indexOf(latlngs, shape);\n if (idx !== -1) return latlngs;\n for (var i = 0; i < latlngs.length; i++) {\n idx = L.Util.indexOf(latlngs[i], shape);\n if (idx !== -1) return latlngs[i];\n }\n }\n\n };\n\n\n var MarkerMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.markerEditorClass) ? tools.options.markerEditorClass : L.Editable.MarkerEditor;\n }\n\n };\n\n var RectangleMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.rectangleEditorClass) ? tools.options.rectangleEditorClass : L.Editable.RectangleEditor;\n }\n\n };\n\n var CircleMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.circleEditorClass) ? tools.options.circleEditorClass : L.Editable.CircleEditor;\n }\n\n };\n\n var keepEditable = function () {\n // Make sure you can remove/readd an editable layer.\n this.on('add', this._onEditableAdd);\n };\n\n var isFlat = L.LineUtil.isFlat || L.LineUtil._flat || L.Polyline._flat; // <=> 1.1 compat.\n\n\n if (L.Polyline) {\n L.Polyline.include(EditableMixin);\n L.Polyline.include(PolylineMixin);\n L.Polyline.addInitHook(keepEditable);\n }\n if (L.Polygon) {\n L.Polygon.include(EditableMixin);\n L.Polygon.include(PolygonMixin);\n }\n if (L.Marker) {\n L.Marker.include(EditableMixin);\n L.Marker.include(MarkerMixin);\n L.Marker.addInitHook(keepEditable);\n }\n if (L.Rectangle) {\n L.Rectangle.include(EditableMixin);\n L.Rectangle.include(RectangleMixin);\n }\n if (L.Circle) {\n L.Circle.include(EditableMixin);\n L.Circle.include(CircleMixin);\n }\n\n L.LatLng.prototype.update = function (latlng) {\n latlng = L.latLng(latlng);\n this.lat = latlng.lat;\n this.lng = latlng.lng;\n }\n\n}, window));\n","'use strict';\n\n/* A Draggable that does not update the element position\nand takes care of only bubbling to targetted path in Canvas mode. */\nL.PathDraggable = L.Draggable.extend({\n\n initialize: function (path) {\n this._path = path;\n this._canvas = (path._map.getRenderer(path) instanceof L.Canvas);\n var element = this._canvas ? this._path._map.getRenderer(this._path)._container : this._path._path;\n L.Draggable.prototype.initialize.call(this, element, element, true);\n },\n\n _updatePosition: function () {\n var e = {originalEvent: this._lastEvent};\n this.fire('drag', e);\n },\n\n _onDown: function (e) {\n var first = e.touches ? e.touches[0] : e;\n this._startPoint = new L.Point(first.clientX, first.clientY);\n if (this._canvas && !this._path._containsPoint(this._path._map.mouseEventToLayerPoint(first))) { return; }\n L.Draggable.prototype._onDown.call(this, e);\n }\n\n});\n\n\nL.Handler.PathDrag = L.Handler.extend({\n\n initialize: function (path) {\n this._path = path;\n },\n\n getEvents: function () {\n return {\n dragstart: this._onDragStart,\n drag: this._onDrag,\n dragend: this._onDragEnd\n };\n },\n\n addHooks: function () {\n if (!this._draggable) { this._draggable = new L.PathDraggable(this._path); }\n this._draggable.on(this.getEvents(), this).enable();\n L.DomUtil.addClass(this._draggable._element, 'leaflet-path-draggable');\n },\n\n removeHooks: function () {\n this._draggable.off(this.getEvents(), this).disable();\n L.DomUtil.removeClass(this._draggable._element, 'leaflet-path-draggable');\n },\n\n moved: function () {\n return this._draggable && this._draggable._moved;\n },\n\n _onDragStart: function () {\n this._startPoint = this._draggable._startPoint;\n this._path\n .closePopup()\n .fire('movestart')\n .fire('dragstart');\n },\n\n _onDrag: function (e) {\n var path = this._path,\n event = (e.originalEvent.touches && e.originalEvent.touches.length === 1 ? e.originalEvent.touches[0] : e.originalEvent),\n newPoint = L.point(event.clientX, event.clientY),\n latlng = path._map.layerPointToLatLng(newPoint);\n\n this._offset = newPoint.subtract(this._startPoint);\n this._startPoint = newPoint;\n\n this._path.eachLatLng(this.updateLatLng, this);\n path.redraw();\n\n e.latlng = latlng;\n e.offset = this._offset;\n path.fire('move', e)\n .fire('drag', e);\n },\n\n _onDragEnd: function (e) {\n if (this._path._bounds) this.resetBounds();\n this._path.fire('moveend')\n .fire('dragend', e);\n },\n\n latLngToLayerPoint: function (latlng) {\n // Same as map.latLngToLayerPoint, but without the round().\n var projectedPoint = this._path._map.project(L.latLng(latlng));\n return projectedPoint._subtract(this._path._map.getPixelOrigin());\n },\n\n updateLatLng: function (latlng) {\n var oldPoint = this.latLngToLayerPoint(latlng);\n oldPoint._add(this._offset);\n var newLatLng = this._path._map.layerPointToLatLng(oldPoint);\n latlng.lat = newLatLng.lat;\n latlng.lng = newLatLng.lng;\n },\n\n resetBounds: function () {\n this._path._bounds = new L.LatLngBounds();\n this._path.eachLatLng(function (latlng) {\n this._bounds.extend(latlng);\n });\n }\n\n});\n\nL.Path.include({\n\n eachLatLng: function (callback, context) {\n context = context || this;\n var loop = function (latlngs) {\n for (var i = 0; i < latlngs.length; i++) {\n if (L.Util.isArray(latlngs[i])) loop(latlngs[i]);\n else callback.call(context, latlngs[i]);\n }\n };\n loop(this.getLatLngs ? this.getLatLngs() : [this.getLatLng()]);\n }\n\n});\n\nL.Path.addInitHook(function () {\n\n this.dragging = new L.Handler.PathDrag(this);\n if (this.options.draggable) {\n this.once('add', function () {\n this.dragging.enable();\n });\n }\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 button behavior\n this.addCheckboxToggleBehavior();\n this.addEnableToggleBehavior();\n }\n \n // Add Select/Deselect all button behavior\n addCheckboxToggleBehavior() {\n $(\"[data-behavior='metadata-select']\").each(function(){\n var button = $(this)\n var parentCell = button.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 swapSelectAllButtonText(button, columnRows);\n // Add the check/uncheck behavior to the button\n // and swap the button text if necessary\n button.on('click', function(e){\n e.preventDefault();\n var allChecked = allCheckboxesChecked(columnRows);\n columnRows.each(function(){\n $(\"input[type='checkbox']\", $(this)).prop('checked', !allChecked);\n swapSelectAllButtonText(button, columnRows);\n });\n });\n // Swap button text when a checkbox value changes\n checkboxes.each(function(){\n $(this).on('change', function(){\n swapSelectAllButtonText(button, columnRows);\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 // Swap the button text to \"Deselect all\"\n // when all the checkboxes are checked and\n // \"Select all\" when any are unchecked\n function swapSelectAllButtonText(button, elements) {\n if ( allCheckboxesChecked(elements) ) {\n button.text(button.data('deselect-text'));\n } else {\n button.text(button.data('select-text'));\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}","export 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}","const Spotlight = function() {\n var buffer = [];\n return {\n onLoad: function(func) {\n buffer.push(func);\n },\n\n activate: function() {\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\n\nexport default Spotlight\n\nBlacklight.onLoad(function() {\n Spotlight.activate();\n});\n\n","import { addImageSelector } from 'spotlight/admin/add_image_selector'\nimport Core from 'spotlight/core'\n\nexport default class Crop {\n constructor(cropArea) {\n this.cropArea = cropArea;\n this.cropArea.data('iiifCropper', this);\n this.cropSelector = '[data-cropper=\"' + cropArea.data('cropperKey') + '\"]';\n this.cropTool = $(this.cropSelector);\n this.formPrefix = this.cropTool.data('form-prefix');\n this.iiifUrlField = $('#' + this.formPrefix + '_iiif_tilesource');\n this.iiifRegionField = $('#' + this.formPrefix + '_iiif_region');\n this.iiifManifestField = $('#' + this.formPrefix + '_iiif_manifest_url');\n this.iiifCanvasField = $('#' + this.formPrefix + '_iiif_canvas_id');\n this.iiifImageField = $('#' + this.formPrefix + '_iiif_image_id');\n\n this.form = cropArea.closest('form');\n this.tileSource = null;\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 this.cropperMap = L.map(this.cropArea.attr('id'), {\n editable: true,\n center: [0, 0],\n crs: L.CRS.Simple,\n zoom: 0,\n editOptions: {\n rectangleEditorClass: this.aspectRatioPreservingRectangleEditor(this.aspectRatio())\n }\n });\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 var panel = $(input.data('target-panel'));\n\n addImageSelector(input, panel, this.iiifManifestField.val(), !this.iiifImageField.val());\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.formPrefix + \"_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 {\n connect() {\n $('[data-behavior=\"iiif-cropper\"]').each(function() {\n var cropElement = $(this)\n new Crop(cropElement).render()\n })\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","export default class {\n connect() {\n $('[data-autocomplete-tag=\"true\"]').each(function(_i, el) {\n var $el = $(el);\n // By default tags input binds on page ready to [data-role=tagsinput],\n // however, that doesn't work with Turbolinks. So we init manually:\n $el.tagsinput();\n\n var tags = new Bloodhound({\n datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n queryTokenizer: Bloodhound.tokenizers.whitespace,\n limit: 100,\n prefetch: {\n url: $el.data('autocomplete-url'),\n ttl: 1,\n filter: function(list) {\n // Let the dom know that the response has been returned\n $el.attr('data-autocomplete-fetched', true);\n return $.map(list, function(tag) { return { name: tag }; });\n }\n }\n });\n\n tags.initialize();\n\n $el.tagsinput('input').typeahead({highlight: true, hint: false}, {\n name: 'tags',\n displayKey: 'name',\n source: tags.ttAdapter()\n }).bind('typeahead:selected', $.proxy(function (obj, datum) {\n $el.tagsinput('add', datum.name);\n $el.tagsinput('input').typeahead('val', '');\n })).bind('blur', function() {\n $el.tagsinput('add', $el.tagsinput('input').typeahead('val'));\n $el.tagsinput('input').typeahead('val', '');\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 $('.contact-email-delete').on('ajax:success', function() {\n $(this).closest('.contact').fadeOut(250, function() { $(this).remove(); });\n });\n\n $('.contact-email-delete').on('ajax:error', function(event, _xhr, _status, error) {\n var errSpan = $(this).closest('.contact').find('.contact-email-delete-error');\n errSpan.show();\n errSpan.find('.error-msg').first().text(error || event.detail[1]);\n });\n\n $('.btn-with-tooltip').tooltip();\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(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', 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 $.ajax({ url: $(el).data('lock'), type: 'POST', data: { _method: \"delete\" }, async: false});\n $(el).removeAttr('data-lock');\n }\n\n connect() {\n $('[data-lock]').on('click', (e) => {\n this.delete_lock(e.target);\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 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\n(function($){\n $.fn.spotlightSearchTypeAhead = function( options ) {\n $.each(this, function(){\n addAutocompleteBehavior($(this));\n });\n\n function addAutocompleteBehavior( typeAheadInput, _ ) {\n var settings = $.extend({\n displayKey: 'title',\n minLength: 0,\n highlight: (typeAheadInput.data('autocomplete-highlight') || true),\n hint: (typeAheadInput.data('autocomplete-hint') || false),\n autoselect: (typeAheadInput.data('autocomplete-autoselect') || true)\n }, options);\n typeAheadInput.typeahead(settings, {\n displayKey: settings.displayKey,\n source: settings.bloodhound.ttAdapter(),\n templates: {\n suggestion: settings.template\n }\n })\n }\n return this;\n }\n})( jQuery );\n\nfunction itemsBloodhound() {\n var results = new Bloodhound({\n datumTokenizer: function(d) {\n return Bloodhound.tokenizers.whitespace(d.title);\n },\n queryTokenizer: Bloodhound.tokenizers.whitespace,\n limit: 100,\n remote: {\n url: $('form[data-autocomplete-exhibit-catalog-path]').data('autocomplete-exhibit-catalog-path').replace(\"%25QUERY\", \"%QUERY\"),\n filter: function(response) {\n return $.map(response['docs'], function(doc) {\n return doc;\n })\n }\n }\n });\n results.initialize();\n return results;\n};\n\nfunction templateFunc(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\">${obj.title}</span><br/><small> ${obj.description}</small></div>`)\n}\n\nexport function addAutocompletetoFeaturedImage(){\n if($('[data-featured-image-typeahead]').length > 0) {\n $('[data-featured-image-typeahead]').spotlightSearchTypeAhead({bloodhound: itemsBloodhound(), template: templateFunc}).on('click', function() {\n $(this).select();\n }).on('typeahead:selected typeahead:autocompleted', function(e, data) {\n var panel = $($(this).data('target-panel'));\n addImageSelector($(this), panel, data.iiif_manifest, true);\n $($(this).data('id-field')).val(data['global_id']);\n $(this).attr('type', 'text');\n });\n }\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","const Module = (function() {\n var nestableSelector = '[data-behavior=\"nestable\"]';\n return {\n init: function(selector){\n\n $(selector || nestableSelector).each(function(){\n // Because the Rails helper will not maintain the case that Nestable\n // expects, we just need to do this manual conversion. :(\n var data = $(this).data();\n data.expandBtnHTML = data.expandBtnHtml;\n data.collapseBtnHTML = data.collapseBtnHtml;\n $(this).nestable(data);\n updateWeightsAndRelationships($(this));\n });\n }\n };\n function updateWeightsAndRelationships(nestedList){\n nestedList.on('change', function(event){\n var container = $(event.currentTarget);\n var data = $(this).nestable('serialize');\n var weight = 0;\n for(var i in data){\n var parent_id = data[i]['id'];\n const parent_node = findNode(parent_id, container);\n setWeight(parent_node, weight++);\n if(data[i]['children']){\n var children = data[i]['children'];\n for(var child in children){\n var id = children[child]['id']\n var child_node = findNode(id, container);\n setWeight(child_node, weight++);\n setParent(child_node, parent_id);\n }\n } else {\n setParent(parent_node, \"\");\n }\n }\n });\n\n }\n function findNode(id, container) {\n return container.find(\"[data-id=\"+id+\"]\");\n }\n\n function setWeight(node, weight) {\n weight_field(node).val(weight);\n }\n\n function setParent(node, parent_id) {\n parent_page_field(node).val(parent_id);\n }\n\n /* find the input element with data-property=\"weight\" that is nested under the given node */\n function weight_field(node) {\n return find_property(node, \"weight\");\n }\n\n /* find the input element with data-property=\"parent_page\" that is nested under the given node */\n function parent_page_field(node){\n return find_property(node, \"parent_page\");\n }\n\n function find_property(node, property) {\n return node.find(\"input[data-property=\" + property + \"]\");\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}","/*\nNOTE: this is copied & adapted from BL8's checkbox_submit.js in order to have\nit accessible in a BL7-based spotlight. Once we drop support for BL7, this file\ncan be deleted and we can change visibility_toggle.es6 to import CheckboxSubmit\nfrom Blacklight.\n\nSee https://github.com/projectblacklight/blacklight/blob/main/app/javascript/blacklight/checkbox_submit.js\n*/\nexport default class CheckboxSubmit {\n constructor(form) {\n this.form = form\n }\n\n async clicked(evt) {\n this.spanTarget.innerHTML = this.form.getAttribute('data-inprogress')\n this.labelTarget.setAttribute('disabled', 'disabled');\n this.checkboxTarget.setAttribute('disabled', 'disabled');\n const csrfMeta = document.querySelector('meta[name=csrf-token]')\n const response = await fetch(this.formTarget.getAttribute('action'), {\n body: new FormData(this.formTarget),\n method: this.formTarget.getAttribute('method').toUpperCase(),\n headers: {\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-Token': csrfMeta ? csrfMeta.content : ''\n }\n })\n this.labelTarget.removeAttribute('disabled')\n this.checkboxTarget.removeAttribute('disabled')\n if (response.ok) {\n this.updateStateFor(!this.checked)\n // Not used for our case in Spotlight (visibility toggle)\n // const json = await response.json()\n // document.querySelector('[data-role=bookmark-counter]').innerHTML = json.bookmarks.count\n } else {\n alert('Error')\n }\n }\n\n get checked() {\n return (this.form.querySelectorAll('input[name=_method][value=delete]').length != 0)\n }\n\n get formTarget() {\n return this.form\n }\n\n get labelTarget() {\n return this.form.querySelector('[data-checkboxsubmit-target=\"label\"]')\n }\n\n get checkboxTarget() {\n return this.form.querySelector('[data-checkboxsubmit-target=\"checkbox\"]')\n }\n\n get spanTarget() {\n return this.form.querySelector('[data-checkboxsubmit-target=\"span\"]')\n }\n\n updateStateFor(state) {\n this.checkboxTarget.checked = state\n\n if (state) {\n this.labelTarget.classList.add('checked')\n //Set the Rails hidden field that fakes an HTTP verb\n //properly for current state action.\n this.formTarget.querySelector('input[name=_method]').value = 'delete'\n this.spanTarget.innerHTML = this.form.getAttribute('data-present')\n } else {\n this.labelTarget.classList.remove('checked')\n this.formTarget.querySelector('input[name=_method]').value = 'put'\n this.spanTarget.innerHTML = this.form.getAttribute('data-absent')\n }\n }\n}\n","// Visibility toggle for items in an exhibit, based on Blacklight's bookmark toggle\n// See: https://github.com/projectblacklight/blacklight/blob/main/app/javascript/blacklight/bookmark_toggle.js\n\nimport CheckboxSubmit from 'spotlight/admin/checkbox_submit'\n\nconst VisibilityToggle = (e) => {\n if (e.target.matches('[data-checkboxsubmit-target=\"checkbox\"]')) {\n const form = e.target.closest('form')\n if (form) {\n new CheckboxSubmit(form).clicked(e)\n\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}\n\nVisibilityToggle.selector = 'form.visibility-toggle'\n\ndocument.addEventListener('click', VisibilityToggle)\n\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","(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').replace(\"%25QUERY\", \"%QUERY\"); };\n }\n\n if (this['transform_autocomplete_results'] === undefined) {\n this.transform_autocomplete_results = (val) => val\n }\n\n if (this['autocomplete_control'] === undefined) {\n this.autocomplete_control = function() { return `<input type=\"text\" class=\"st-input-string form-control item-input-field\" data-twitter-typeahead=\"true\" placeholder=\"${i18n.t(\"blocks:autocompleteable:placeholder\")}\"/>` };\n }\n\n if (this['bloodhoundOptions'] === undefined) {\n this.bloodhoundOptions = function() {\n return {\n remote: {\n url: this.autocomplete_url(),\n filter: this.transform_autocomplete_results\n }\n };\n };\n }\n },\n\n addAutocompletetoSirTrevorForm: function() {\n $('[data-twitter-typeahead]', this.inner).spotlightSearchTypeAhead({bloodhound: this.bloodhound(), template: this.autocomplete_template}).on('typeahead:selected typeahead:autocompleted', this.autocompletedHandler()).on( 'focus', function() {\n if($(this).val() === '') {\n $(this).data().ttTypeahead.input.trigger('queryChanged', '');\n }\n });\n },\n\n autocompletedHandler: function(e, data) {\n var context = this;\n\n return function(e, data) {\n $(this).typeahead(\"val\", \"\");\n $(this).val(\"\");\n\n context.createItemPanel($.extend(data, {display: \"true\"}));\n }\n },\n\n bloodhound: function() {\n var block = this;\n var results = new Bloodhound(Object.assign({\n datumTokenizer: function(d) {\n return Bloodhound.tokenizers.whitespace(d.title);\n },\n queryTokenizer: Bloodhound.tokenizers.whitespace,\n limit: 100,\n }, block.bloodhoundOptions()));\n results.initialize();\n return results;\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(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_alt_text: true,\n\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.show_alt_text) {\n return i18n.t(\"blocks:alt_text_guidelines:intro\"); \n }\n return \"\";\n },\n alt_text_guidelines_link: function() {\n if (this.show_alt_text) {\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.show_alt_text) {\n return this.altTextHTML(index, data);\n }\n return \"\";\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 form-inline dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(\"item_\" + data.id)}\">\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=\"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.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.show_alt_text) {\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\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","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 $(this.inner).closest('form[data-autocomplete-exhibit-searches-path]').data('autocomplete-exhibit-searches-path').replace(\"%25QUERY\", \"%QUERY\");\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 return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${obj.full_title}</span><br/><small> ${obj.description}</small></div>`\n },\n\n bloodhoundOptions: function() {\n return {\n prefetch: {\n url: this.autocomplete_url(),\n ttl: 0\n }\n };\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 form-inline dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(\"item_\" + data.id)}\">\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 bloodhoundOptions: function() {\n var that = this;\n return {\n prefetch: {\n url: this.autocomplete_url(),\n ttl: 0,\n filter: function(response) {\n // Let the dom know that the response has been returned\n $(that.inner).attr('data-browse-groups-fetched', true);\n return response;\n }\n }\n };\n },\n\n autocomplete_control: function() {\n return `<input type=\"text\" class=\"st-input-string form-control item-input-field\" data-twitter-typeahead=\"true\" placeholder=\"${i18n.t(\"blocks:browse_group_categories:autocomplete\")}\"/>`\n },\n autocomplete_template: function(obj) {\n return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">\n <span class=\"autocomplete-title\">${obj.title}</span><br/></div>`\n },\n\n autocomplete_url: function() { return $(this.inner).closest('form[data-autocomplete-exhibit-browse-groups-path]').data('autocomplete-exhibit-browse-groups-path').replace(\"%25QUERY\", \"%QUERY\"); },\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 form-inline dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(\"item_\" + data.id)}\">\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 $(this.inner).closest('form[data-autocomplete-exhibit-pages-path]').data('autocomplete-exhibit-pages-path').replace(\"%25QUERY\", \"%QUERY\"); },\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 return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${obj.title}</span><br/><small> ${obj.description}</small></div>`\n },\n bloodhoundOptions: function() {\n return {\n prefetch: {\n url: this.autocomplete_url(),\n ttl: 0\n }\n };\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').replace(\"%25QUERY\", \"%QUERY\"); },\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\">${obj.title}</span><br/><small> ${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 return [\n // '<input type=\"hidden\" name=\"item[' + index + '][iiif_region]\" value=\"' + (data.iiif_region) + '\"/>',\n // for legacy compatiblity:\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 ].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 show_alt_text: false,\n icon_name: \"item_embed\",\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\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 form-inline dd-item dd3-item\" data-id=\"${index}\" id=\"${this.formId(\"item_\" + dataId)}\">\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","// These scripts are in the vendor directory\nimport 'nestable'\nimport 'bootstrap-tagsinput'\nimport 'jquery.serializejson'\nimport 'leaflet-iiif'\nimport 'Leaflet.Editable'\nimport 'Path.Drag'\n\nimport 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 ExhibitTagAutocomplete from 'spotlight/admin/exhibit_tag_autocomplete'\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 ExhibitTagAutocomplete().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 UserIndex from 'spotlight/user'\nimport AdminIndex from 'spotlight/admin'\nimport Core from 'spotlight/core'\n\nCore.onLoad(() => {\n new UserIndex().connect()\n new AdminIndex().connect()\n})\n\nexport default Core\n"],"names":["undefined","Spotlight","Core","SpotlightNestable"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"spotlight.esm.js","sources":["../../../javascript/spotlight/user/browse_group_categories.js","../../../javascript/spotlight/user/carousel.js","../../../javascript/spotlight/user/clear_form_button.js","../../../javascript/spotlight/user/report_a_problem.js","../../../javascript/spotlight/user/zpr_links.js","../../../javascript/spotlight/user/index.js","../../../../vendor/assets/javascripts/nestable.js","../../../../vendor/assets/javascripts/bootstrap-tagsinput.js","../../../../vendor/assets/javascripts/jquery.serializejson.js","../../../../vendor/assets/javascripts/leaflet-iiif.js","../../../../vendor/assets/javascripts/Leaflet.Editable.js","../../../../vendor/assets/javascripts/Path.Drag.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.js","../../../javascript/spotlight/admin/edit_in_place.js","../../../javascript/spotlight/admin/exhibit_tag_autocomplete.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/checkbox_submit.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/index.js"],"sourcesContent":["export 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 $('.carousel').carousel();\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 var container, target;\n\n function init() {\n const target_val = container.attr('data-target') || container.attr('data-bs-target');\n if (!target_val) \n return\n\n target = $(\"#\" + target_val); \n container.on('click', open);\n target.find('[data-behavior=\"cancel-link\"]').on('click', close);\n }\n\n function open(event) {\n event.preventDefault();\n target.slideToggle('slow');\n }\n\n function close(event) {\n event.preventDefault();\n target.slideUp('fast');\n }\n\n return $('[data-behavior=\"contact-link\"]').each(function() { \n container = $(this);\n init();\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 ReportProblem from 'spotlight/user/report_a_problem'\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 ReportProblem().connect()\n new ZprLinks().connect()\n }\n}\n","/*!\n * Nestable jQuery Plugin - Copyright (c) 2012 David Bushell - http://dbushell.com/\n * Dual-licensed under the BSD or MIT licenses\n */\n;(function($, window, document, undefined)\n{\n var hasTouch = 'ontouchstart' in window;\n var nestableCopy;\n\n /**\n * Detect CSS pointer-events property\n * events are normally disabled on the dragging element to avoid conflicts\n * https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.js\n */\n var hasPointerEvents = (function()\n {\n var el = document.createElement('div'),\n docEl = document.documentElement;\n if (!('pointerEvents' in el.style)) {\n return false;\n }\n el.style.pointerEvents = 'auto';\n el.style.pointerEvents = 'x';\n docEl.appendChild(el);\n var supports = window.getComputedStyle && window.getComputedStyle(el, '').pointerEvents === 'auto';\n docEl.removeChild(el);\n return !!supports;\n })();\n\n var eStart = hasTouch ? 'touchstart' : 'mousedown',\n eMove = hasTouch ? 'touchmove' : 'mousemove',\n eEnd = hasTouch ? 'touchend' : 'mouseup',\n eCancel = hasTouch ? 'touchcancel' : 'mouseup';\n \n var defaults = {\n listNodeName : 'ol',\n itemNodeName : 'li',\n rootClass : 'dd',\n listClass : 'dd-list',\n itemClass : 'dd-item',\n dragClass : 'dd-dragel',\n handleClass : 'dd-handle',\n collapsedClass : 'dd-collapsed',\n placeClass : 'dd-placeholder',\n noDragClass : 'dd-nodrag',\n noChildrenClass : 'dd-nochildren',\n emptyClass : 'dd-empty',\n expandBtnHTML : '<button data-action=\"expand\" type=\"button\">Expand</button>',\n collapseBtnHTML : '<button data-action=\"collapse\" type=\"button\">Collapse</button>',\n group : 0,\n maxDepth : 5,\n threshold : 20,\n reject : [],\n //method for call when an item has been successfully dropped\n //method has 1 argument in which sends an object containing all\n //necessary details\n dropCallback : null,\n // When a node is dragged it is moved to its new location.\n // You can set the next option to true to create a copy of the node that is dragged.\n cloneNodeOnDrag : false,\n // When the node is dragged and released outside its list delete it.\n dragOutsideToDelete : false\n };\n\n function Plugin(element, options)\n {\n this.w = $(document);\n this.el = $(element);\n this.options = $.extend({}, defaults, options);\n this.init();\n }\n\n Plugin.prototype = {\n\n init: function()\n {\n var list = this;\n\n list.reset();\n\n list.el.data('nestable-group', this.options.group);\n\n list.placeEl = $('<div class=\"' + list.options.placeClass + '\"/>');\n\n $.each(this.el.find(list.options.itemNodeName), function(k, el) {\n list.setParent($(el));\n });\n\n list.el.on('click', 'button', function(e)\n {\n if (list.dragEl || (!hasTouch && e.button !== 0)) {\n return;\n }\n var target = $(e.currentTarget),\n action = target.data('action'),\n item = target.parent(list.options.itemNodeName);\n if (action === 'collapse') {\n list.collapseItem(item);\n }\n if (action === 'expand') {\n list.expandItem(item);\n }\n });\n\n var onStartEvent = function(e)\n {\n var handle = $(e.target);\n\n list.nestableCopy = handle.closest('.'+list.options.rootClass).clone(true);\n\n if (!handle.hasClass(list.options.handleClass)) {\n if (handle.closest('.' + list.options.noDragClass).length) {\n return;\n }\n handle = handle.closest('.' + list.options.handleClass);\n }\n if (!handle.length || list.dragEl || (!hasTouch && e.which !== 1) || (hasTouch && e.touches.length !== 1)) {\n return;\n }\n e.preventDefault();\n list.dragStart(hasTouch ? e.touches[0] : e);\n };\n\n var onMoveEvent = function(e)\n {\n if (list.dragEl) {\n e.preventDefault();\n list.dragMove(hasTouch ? e.touches[0] : e);\n }\n };\n\n var onEndEvent = function(e)\n {\n if (list.dragEl) {\n e.preventDefault();\n list.dragStop(hasTouch ? e.touches[0] : e);\n }\n };\n\n if (hasTouch) {\n list.el[0].addEventListener(eStart, onStartEvent, false);\n window.addEventListener(eMove, onMoveEvent, false);\n window.addEventListener(eEnd, onEndEvent, false);\n window.addEventListener(eCancel, onEndEvent, false);\n } else {\n list.el.on(eStart, onStartEvent);\n list.w.on(eMove, onMoveEvent);\n list.w.on(eEnd, onEndEvent);\n }\n\n var destroyNestable = function()\n {\n if (hasTouch) {\n list.el[0].removeEventListener(eStart, onStartEvent, false);\n window.removeEventListener(eMove, onMoveEvent, false);\n window.removeEventListener(eEnd, onEndEvent, false);\n window.removeEventListener(eCancel, onEndEvent, false);\n } else {\n list.el.off(eStart, onStartEvent);\n list.w.off(eMove, onMoveEvent);\n list.w.off(eEnd, onEndEvent);\n }\n\n list.el.off('click');\n list.el.unbind('destroy-nestable');\n\n list.el.data(\"nestable\", null);\n\n var buttons = list.el[0].getElementsByTagName('button');\n\n $(buttons).remove();\n };\n\n list.el.bind('destroy-nestable', destroyNestable);\n },\n\n destroy: function ()\n {\n this.expandAll();\n this.el.trigger('destroy-nestable');\n },\n\n serialize: function()\n {\n var data,\n depth = 0,\n list = this;\n const step = function(level, depth)\n {\n var array = [ ],\n items = level.children(list.options.itemNodeName);\n items.each(function()\n {\n var li = $(this),\n item = $.extend({}, li.data()),\n sub = li.children(list.options.listNodeName);\n if (sub.length) {\n item.children = step(sub, depth + 1);\n }\n array.push(item);\n });\n return array;\n };\n var el;\n\n if (list.el.is(list.options.listNodeName)) {\n el = list.el;\n } else {\n el = list.el.find(list.options.listNodeName).first();\n }\n data = step(el, depth);\n return data;\n },\n\n reset: function()\n {\n this.mouse = {\n offsetX : 0,\n offsetY : 0,\n startX : 0,\n startY : 0,\n lastX : 0,\n lastY : 0,\n nowX : 0,\n nowY : 0,\n distX : 0,\n distY : 0,\n dirAx : 0,\n dirX : 0,\n dirY : 0,\n lastDirX : 0,\n lastDirY : 0,\n distAxX : 0,\n distAxY : 0\n };\n this.moving = false;\n this.dragEl = null;\n this.dragRootEl = null;\n this.dragDepth = 0;\n this.dragItem = null;\n this.hasNewRoot = false;\n this.pointEl = null;\n this.sourceRoot = null;\n this.isOutsideRoot = false;\n },\n\n expandItem: function(li)\n {\n li.removeClass(this.options.collapsedClass);\n li.children('[data-action=\"expand\"]').hide();\n li.children('[data-action=\"collapse\"]').show();\n li.children(this.options.listNodeName).show();\n this.el.trigger('expand', [li]);\n li.trigger('expand');\n },\n\n collapseItem: function(li)\n {\n var lists = li.children(this.options.listNodeName);\n if (lists.length) {\n li.addClass(this.options.collapsedClass);\n li.children('[data-action=\"collapse\"]').hide();\n li.children('[data-action=\"expand\"]').show();\n li.children(this.options.listNodeName).hide();\n }\n this.el.trigger('collapse', [li]);\n li.trigger('collapse');\n },\n\n expandAll: function()\n {\n var list = this;\n list.el.find(list.options.itemNodeName).each(function() {\n list.expandItem($(this));\n });\n },\n\n collapseAll: function()\n {\n var list = this;\n list.el.find(list.options.itemNodeName).each(function() {\n list.collapseItem($(this));\n });\n },\n\n setParent: function(li)\n {\n if (li.children(this.options.listNodeName).length) {\n li.prepend($(this.options.expandBtnHTML));\n li.prepend($(this.options.collapseBtnHTML));\n }\n if( (' ' + li[0].className + ' ').indexOf(' ' + defaults.collapsedClass + ' ') > -1 )\n {\n li.children('[data-action=\"collapse\"]').hide();\n } else {\n li.children('[data-action=\"expand\"]').hide();\n }\n },\n\n unsetParent: function(li)\n {\n li.removeClass(this.options.collapsedClass);\n li.children('[data-action]').remove();\n li.children(this.options.listNodeName).remove();\n },\n\n dragStart: function(e)\n {\n var mouse = this.mouse,\n target = $(e.target),\n dragItem = target.closest('.' + this.options.handleClass).closest(this.options.itemNodeName);\n\n this.sourceRoot = target.closest('.' + this.options.rootClass);\n\n this.dragItem = dragItem;\n\n this.placeEl.css('height', dragItem.height());\n\n mouse.offsetX = e.offsetX !== undefined ? e.offsetX : e.pageX - target.offset().left;\n mouse.offsetY = e.offsetY !== undefined ? e.offsetY : e.pageY - target.offset().top;\n mouse.startX = mouse.lastX = e.pageX;\n mouse.startY = mouse.lastY = e.pageY;\n\n this.dragRootEl = this.el;\n\n this.dragEl = $(document.createElement(this.options.listNodeName)).addClass(this.options.listClass + ' ' + this.options.dragClass);\n this.dragEl.css('width', dragItem.width());\n\n // fix for zepto.js\n //dragItem.after(this.placeEl).detach().appendTo(this.dragEl);\n if(this.options.cloneNodeOnDrag) {\n dragItem.after(dragItem.clone());\n } else {\n dragItem.after(this.placeEl);\n }\n dragItem[0].parentNode.removeChild(dragItem[0]);\n dragItem.appendTo(this.dragEl);\n\n $(document.body).append(this.dragEl);\n this.dragEl.css({\n 'left' : e.pageX - mouse.offsetX,\n 'top' : e.pageY - mouse.offsetY\n });\n // total depth of dragging item\n var i, depth,\n items = this.dragEl.find(this.options.itemNodeName);\n for (i = 0; i < items.length; i++) {\n depth = $(items[i]).parents(this.options.listNodeName).length;\n if (depth > this.dragDepth) {\n this.dragDepth = depth;\n }\n }\n },\n\n dragStop: function(e)\n {\n // fix for zepto.js\n //this.placeEl.replaceWith(this.dragEl.children(this.options.itemNodeName + ':first').detach());\n var el = this.dragEl.children(this.options.itemNodeName).first();\n el[0].parentNode.removeChild(el[0]);\n\n if(this.isOutsideRoot && this.options.dragOutsideToDelete)\n {\n var parent = this.placeEl.parent();\n this.placeEl.remove();\n if (!parent.children().length) {\n this.unsetParent(parent.parent());\n }\n // If all nodes where deleted, create a placeholder element.\n if (!this.dragRootEl.find(this.options.itemNodeName).length)\n {\n this.dragRootEl.append('<div class=\"' + this.options.emptyClass + '\"/>');\n }\n } \n else \n {\n this.placeEl.replaceWith(el);\n }\n\n if (!this.moving)\n {\n $(this.dragItem).trigger('click');\n }\n\n var i;\n var isRejected = false;\n for (i = 0; i < this.options.reject.length; i++)\n {\n var reject = this.options.reject[i];\n if (reject.rule.apply(this.dragRootEl))\n {\n var nestableDragEl = el.clone(true);\n this.dragRootEl.html(this.nestableCopy.children().clone(true));\n if (reject.action) {\n reject.action.apply(this.dragRootEl, [nestableDragEl]);\n }\n\n isRejected = true;\n break;\n }\n }\n\n if (!isRejected)\n {\n this.dragEl.remove();\n this.el.trigger('change');\n\n //Let's find out new parent id\n var parentItem = el.parent().parent();\n var parentId = null;\n if(parentItem !== null && !parentItem.is('.' + this.options.rootClass))\n parentId = parentItem.data('id');\n\n if($.isFunction(this.options.dropCallback))\n {\n var details = {\n sourceId : el.data('id'),\n destId : parentId,\n sourceEl : el,\n destParent : parentItem,\n destRoot : el.closest('.' + this.options.rootClass),\n sourceRoot : this.sourceRoot\n };\n this.options.dropCallback.call(this, details);\n }\n\n if (this.hasNewRoot) {\n this.dragRootEl.trigger('change');\n }\n\n this.reset();\n }\n },\n\n dragMove: function(e)\n {\n var list, parent, prev, next, depth,\n opt = this.options,\n mouse = this.mouse;\n\n this.dragEl.css({\n 'left' : e.pageX - mouse.offsetX,\n 'top' : e.pageY - mouse.offsetY\n });\n\n // mouse position last events\n mouse.lastX = mouse.nowX;\n mouse.lastY = mouse.nowY;\n // mouse position this events\n mouse.nowX = e.pageX;\n mouse.nowY = e.pageY;\n // distance mouse moved between events\n mouse.distX = mouse.nowX - mouse.lastX;\n mouse.distY = mouse.nowY - mouse.lastY;\n // direction mouse was moving\n mouse.lastDirX = mouse.dirX;\n mouse.lastDirY = mouse.dirY;\n // direction mouse is now moving (on both axis)\n mouse.dirX = mouse.distX === 0 ? 0 : mouse.distX > 0 ? 1 : -1;\n mouse.dirY = mouse.distY === 0 ? 0 : mouse.distY > 0 ? 1 : -1;\n // axis mouse is now moving on\n var newAx = Math.abs(mouse.distX) > Math.abs(mouse.distY) ? 1 : 0;\n\n // do nothing on first move\n if (!this.moving) {\n mouse.dirAx = newAx;\n this.moving = true;\n return;\n }\n\n // calc distance moved on this axis (and direction)\n if (mouse.dirAx !== newAx) {\n mouse.distAxX = 0;\n mouse.distAxY = 0;\n } else {\n mouse.distAxX += Math.abs(mouse.distX);\n if (mouse.dirX !== 0 && mouse.dirX !== mouse.lastDirX) {\n mouse.distAxX = 0;\n }\n mouse.distAxY += Math.abs(mouse.distY);\n if (mouse.dirY !== 0 && mouse.dirY !== mouse.lastDirY) {\n mouse.distAxY = 0;\n }\n }\n mouse.dirAx = newAx;\n\n /**\n * move horizontal\n */\n if (mouse.dirAx && mouse.distAxX >= opt.threshold) {\n // reset move distance on x-axis for new phase\n mouse.distAxX = 0;\n prev = this.placeEl.prev(opt.itemNodeName);\n // increase horizontal level if previous sibling exists and is not collapsed\n if (mouse.distX > 0 && prev.length && !prev.hasClass(opt.collapsedClass) && !prev.hasClass(opt.noChildrenClass)) {\n // cannot increase level when item above is collapsed\n list = prev.find(opt.listNodeName).last();\n // check if depth limit has reached\n depth = this.placeEl.parents(opt.listNodeName).length;\n if (depth + this.dragDepth <= opt.maxDepth) {\n // create new sub-level if one doesn't exist\n if (!list.length) {\n list = $('<' + opt.listNodeName + '/>').addClass(opt.listClass);\n list.append(this.placeEl);\n prev.append(list);\n this.setParent(prev);\n } else {\n // else append to next level up\n list = prev.children(opt.listNodeName).last();\n list.append(this.placeEl);\n }\n }\n }\n // decrease horizontal level\n if (mouse.distX < 0) {\n // we can't decrease a level if an item preceeds the current one\n next = this.placeEl.next(opt.itemNodeName);\n if (!next.length) {\n parent = this.placeEl.parent();\n this.placeEl.closest(opt.itemNodeName).after(this.placeEl);\n if (!parent.children().length) {\n this.unsetParent(parent.parent());\n }\n }\n }\n }\n\n var isEmpty = false;\n\n // find list item under cursor\n if (!hasPointerEvents) {\n this.dragEl[0].style.visibility = 'hidden';\n }\n \n this.pointEl = $(document.elementFromPoint(e.pageX - document.documentElement.scrollLeft, e.pageY - (window.pageYOffset || document.documentElement.scrollTop)));\n\n // Check if the node is dragged outside of its list.\n if(this.dragRootEl.has(this.pointEl).length) {\n this.isOutsideRoot = false;\n this.dragEl[0].style.opacity = 1;\n } else {\n this.isOutsideRoot = true;\n this.dragEl[0].style.opacity = 0.5;\n }\n\n // find parent list of item under cursor\n var pointElRoot = this.pointEl.closest('.' + opt.rootClass),\n isNewRoot = this.dragRootEl.data('nestable-id') !== pointElRoot.data('nestable-id');\n\n this.isOutsideRoot = !pointElRoot.length;\n\n if (!hasPointerEvents) {\n this.dragEl[0].style.visibility = 'visible';\n }\n if (this.pointEl.hasClass(opt.handleClass)) {\n this.pointEl = this.pointEl.closest( opt.itemNodeName );\n }\n\n if (opt.maxDepth == 1 && !this.pointEl.hasClass(opt.itemClass)) {\n this.pointEl = this.pointEl.closest(\".\" + opt.itemClass);\n }\n\n if (this.pointEl.hasClass(opt.emptyClass)) {\n isEmpty = true;\n }\n else if (!this.pointEl.length || !this.pointEl.hasClass(opt.itemClass)) {\n return;\n }\n\n /**\n * move vertical\n */\n if (!mouse.dirAx || isNewRoot || isEmpty) {\n // check if groups match if dragging over new root\n if (isNewRoot && opt.group !== pointElRoot.data('nestable-group')) {\n return;\n }\n // check depth limit\n depth = this.dragDepth - 1 + this.pointEl.parents(opt.listNodeName).length;\n if (depth > opt.maxDepth) {\n return;\n }\n var before = e.pageY < (this.pointEl.offset().top + this.pointEl.height() / 2);\n parent = this.placeEl.parent();\n // if empty create new list to replace empty placeholder\n if (isEmpty) {\n list = $(document.createElement(opt.listNodeName)).addClass(opt.listClass);\n list.append(this.placeEl);\n this.pointEl.replaceWith(list);\n }\n else if (before) {\n this.pointEl.before(this.placeEl);\n }\n else {\n this.pointEl.after(this.placeEl);\n }\n if (!parent.children().length) {\n this.unsetParent(parent.parent());\n }\n if (!this.dragRootEl.find(opt.itemNodeName).length) {\n this.dragRootEl.append('<div class=\"' + opt.emptyClass + '\"/>');\n }\n // parent root list has changed\n this.dragRootEl = pointElRoot;\n if (isNewRoot) {\n this.hasNewRoot = this.el[0] !== this.dragRootEl[0];\n }\n }\n }\n\n };\n\n $.fn.nestable = function(params)\n {\n var lists = this,\n retval = this;\n\n var generateUid = function (separator) {\n var delim = separator || \"-\";\n\n function S4() {\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n }\n\n return (S4() + S4() + delim + S4() + delim + S4() + delim + S4() + delim + S4() + S4() + S4());\n };\n\n lists.each(function()\n {\n var plugin = $(this).data(\"nestable\");\n\n if (!plugin) {\n $(this).data(\"nestable\", new Plugin(this, params));\n $(this).data(\"nestable-id\", generateUid());\n } else {\n if (typeof params === 'string' && typeof plugin[params] === 'function') {\n retval = plugin[params]();\n }\n }\n });\n\n return retval || lists;\n };\n\n})(window.jQuery || window.Zepto, window, document);\n","/* From https://github.com/TimSchlechter/bootstrap-tagsinput/blob/2661784c2c281d3a69b93897ff3f39e4ffa5cbd1/dist/bootstrap-tagsinput.js */\n\n/* The MIT License (MIT)\n\nCopyright (c) 2013 Tim Schlechter\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/* Retrieved 12 February 2014 */\n\n(function ($) {\n \"use strict\";\n\n var defaultOptions = {\n tagClass: function(item) {\n return 'badge badge-info bg-info';\n },\n itemValue: function(item) {\n return item ? item.toString() : item;\n },\n itemText: function(item) {\n return this.itemValue(item);\n },\n freeInput: true,\n maxTags: undefined,\n confirmKeys: [13],\n onTagExists: function(item, $tag) {\n $tag.hide().fadeIn();\n }\n };\n\n /**\n * Constructor function\n */\n function TagsInput(element, options) {\n this.itemsArray = [];\n\n this.$element = $(element);\n this.$element.hide();\n\n this.isSelect = (element.tagName === 'SELECT');\n this.multiple = (this.isSelect && element.hasAttribute('multiple'));\n this.objectItems = options && options.itemValue;\n this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';\n this.inputSize = Math.max(1, this.placeholderText.length);\n\n this.$container = $('<div class=\"bootstrap-tagsinput\"></div>');\n this.$input = $('<input size=\"' + this.inputSize + '\" type=\"text\" placeholder=\"' + this.placeholderText + '\"/>').appendTo(this.$container);\n\n this.$element.after(this.$container);\n\n this.build(options);\n }\n\n TagsInput.prototype = {\n constructor: TagsInput,\n\n /**\n * Adds the given item as a new tag. Pass true to dontPushVal to prevent\n * updating the elements val()\n */\n add: function(item, dontPushVal) {\n var self = this;\n\n if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)\n return;\n\n // Ignore falsey values, except false\n if (item !== false && !item)\n return;\n\n // Throw an error when trying to add an object while the itemValue option was not set\n if (typeof item === \"object\" && !self.objectItems)\n throw(\"Can't add objects when itemValue option is not set\");\n\n // Ignore strings only containg whitespace\n if (item.toString().match(/^\\s*$/))\n return;\n\n // If SELECT but not multiple, remove current tag\n if (self.isSelect && !self.multiple && self.itemsArray.length > 0)\n self.remove(self.itemsArray[0]);\n\n if (typeof item === \"string\" && this.$element[0].tagName === 'INPUT') {\n var items = item.split(',');\n if (items.length > 1) {\n for (var i = 0; i < items.length; i++) {\n this.add(items[i], true);\n }\n\n if (!dontPushVal)\n self.pushVal();\n return;\n }\n }\n\n var itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item);\n\n // Ignore items allready added\n var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];\n if (existing) {\n // Invoke onTagExists\n if (self.options.onTagExists) {\n var $existingTag = $(\".tag\", self.$container).filter(function() { return $(this).data(\"item\") === existing; });\n self.options.onTagExists(item, $existingTag);\n }\n return;\n }\n\n // register item in internal array and map\n self.itemsArray.push(item);\n\n // add a tag element\n var $tag = $('<span class=\"tag ' + htmlEncode(tagClass) + '\">' + htmlEncode(itemText) + '<span data-role=\"remove\"></span></span>');\n $tag.data('item', item);\n self.findInputWrapper().before($tag);\n $tag.after(' ');\n\n // add <option /> if item represents a value not present in one of the <select />'s options\n if (self.isSelect && !$('option[value=\"' + escape(itemValue) + '\"]',self.$element)[0]) {\n var $option = $('<option selected>' + htmlEncode(itemText) + '</option>');\n $option.data('item', item);\n $option.attr('value', itemValue);\n self.$element.append($option);\n }\n\n if (!dontPushVal)\n self.pushVal();\n\n // Add class when reached maxTags\n if (self.options.maxTags === self.itemsArray.length)\n self.$container.addClass('bootstrap-tagsinput-max');\n\n self.$element.trigger($.Event('itemAdded', { item: item }));\n },\n\n /**\n * Removes the given item. Pass true to dontPushVal to prevent updating the\n * elements val()\n */\n remove: function(item, dontPushVal) {\n var self = this;\n\n if (self.objectItems) {\n if (typeof item === \"object\")\n item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == self.options.itemValue(item); } )[0];\n else\n item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == item; } )[0];\n }\n\n if (item) {\n $('.tag', self.$container).filter(function() { return $(this).data('item') === item; }).remove();\n $('option', self.$element).filter(function() { return $(this).data('item') === item; }).remove();\n self.itemsArray.splice($.inArray(item, self.itemsArray), 1);\n }\n\n if (!dontPushVal)\n self.pushVal();\n\n // Remove class when reached maxTags\n if (self.options.maxTags > self.itemsArray.length)\n self.$container.removeClass('bootstrap-tagsinput-max');\n\n self.$element.trigger($.Event('itemRemoved', { item: item }));\n },\n\n /**\n * Removes all items\n */\n removeAll: function() {\n var self = this;\n\n $('.tag', self.$container).remove();\n $('option', self.$element).remove();\n\n while(self.itemsArray.length > 0)\n self.itemsArray.pop();\n\n self.pushVal();\n\n if (self.options.maxTags && !this.isEnabled())\n this.enable();\n },\n\n /**\n * Refreshes the tags so they match the text/value of their corresponding\n * item.\n */\n refresh: function() {\n var self = this;\n $('.tag', self.$container).each(function() {\n var $tag = $(this),\n item = $tag.data('item'),\n itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item);\n\n // Update tag's class and inner text\n $tag.attr('class', null);\n $tag.addClass('tag ' + htmlEncode(tagClass));\n $tag.contents().filter(function() {\n return this.nodeType == 3;\n })[0].nodeValue = htmlEncode(itemText);\n\n if (self.isSelect) {\n var option = $('option', self.$element).filter(function() { return $(this).data('item') === item; });\n option.attr('value', itemValue);\n }\n });\n },\n\n /**\n * Returns the items added as tags\n */\n items: function() {\n return this.itemsArray;\n },\n\n /**\n * Assembly value by retrieving the value of each item, and set it on the\n * element. \n */\n pushVal: function() {\n var self = this,\n val = $.map(self.items(), function(item) {\n return self.options.itemValue(item).toString();\n });\n\n self.$element.val(val, true).trigger('change');\n },\n\n /**\n * Initializes the tags input behaviour on the element\n */\n build: function(options) {\n var self = this;\n\n self.options = $.extend({}, defaultOptions, options);\n var typeahead = self.options.typeahead || {};\n\n // When itemValue is set, freeInput should always be false\n if (self.objectItems)\n self.options.freeInput = false;\n\n makeOptionItemFunction(self.options, 'itemValue');\n makeOptionItemFunction(self.options, 'itemText');\n makeOptionItemFunction(self.options, 'tagClass');\n\n // for backwards compatibility, self.options.source is deprecated\n if (self.options.source)\n typeahead.source = self.options.source;\n\n if (typeahead.source && $.fn.typeahead) {\n makeOptionFunction(typeahead, 'source');\n\n self.$input.typeahead({\n source: function (query, process) {\n function processItems(items) {\n var texts = [];\n\n for (var i = 0; i < items.length; i++) {\n var text = self.options.itemText(items[i]);\n map[text] = items[i];\n texts.push(text);\n }\n process(texts);\n }\n\n this.map = {};\n var map = this.map,\n data = typeahead.source(query);\n\n if ($.isFunction(data.success)) {\n // support for Angular promises\n data.success(processItems);\n } else {\n // support for functions and jquery promises\n $.when(data)\n .then(processItems);\n }\n },\n updater: function (text) {\n self.add(this.map[text]);\n },\n matcher: function (text) {\n return (text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1);\n },\n sorter: function (texts) {\n return texts.sort();\n },\n highlighter: function (text) {\n var regex = new RegExp( '(' + this.query + ')', 'gi' );\n return text.replace( regex, \"<strong>$1</strong>\" );\n }\n });\n }\n\n self.$container.on('click', $.proxy(function(event) {\n self.$input.focus();\n }, self));\n\n self.$container.on('keydown', 'input', $.proxy(function(event) {\n var $input = $(event.target),\n $inputWrapper = self.findInputWrapper();\n\n switch (event.which) {\n // BACKSPACE\n case 8:\n if (doGetCaretPosition($input[0]) === 0) {\n var prev = $inputWrapper.prev();\n if (prev) {\n self.remove(prev.data('item'));\n }\n }\n break;\n\n // DELETE\n case 46:\n if (doGetCaretPosition($input[0]) === 0) {\n var next = $inputWrapper.next();\n if (next) {\n self.remove(next.data('item'));\n }\n }\n break;\n\n // LEFT ARROW\n case 37:\n // Try to move the input before the previous tag\n var $prevTag = $inputWrapper.prev();\n if ($input.val().length === 0 && $prevTag[0]) {\n $prevTag.before($inputWrapper);\n $input.focus();\n }\n break;\n // RIGHT ARROW\n case 39:\n // Try to move the input after the next tag\n var $nextTag = $inputWrapper.next();\n if ($input.val().length === 0 && $nextTag[0]) {\n $nextTag.after($inputWrapper);\n $input.focus();\n }\n break;\n default:\n // When key corresponds one of the confirmKeys, add current input\n // as a new tag\n if (self.options.freeInput && $.inArray(event.which, self.options.confirmKeys) >= 0) {\n self.add($input.val());\n $input.val('');\n event.preventDefault();\n }\n }\n\n // Reset internal input's size\n $input.attr('size', Math.max(this.inputSize, $input.val().length));\n }, self));\n\n // Remove icon clicked\n self.$container.on('click', '[data-role=remove]', $.proxy(function(event) {\n self.remove($(event.target).closest('.tag').data('item'));\n }, self));\n\n // Only add existing value as tags when using strings as tags\n if (self.options.itemValue === defaultOptions.itemValue) {\n if (self.$element[0].tagName === 'INPUT') {\n self.add(self.$element.val());\n } else {\n $('option', self.$element).each(function() {\n self.add($(this).attr('value'), true);\n });\n }\n }\n },\n\n /**\n * Removes all tagsinput behaviour and unregsiter all event handlers\n */\n destroy: function() {\n var self = this;\n\n // Unbind events\n self.$container.off('keypress', 'input');\n self.$container.off('click', '[role=remove]');\n\n self.$container.remove();\n self.$element.removeData('tagsinput');\n self.$element.show();\n },\n\n /**\n * Sets focus on the tagsinput \n */\n focus: function() {\n this.$input.focus();\n },\n\n /**\n * Returns the internal input element\n */\n input: function() {\n return this.$input;\n },\n\n /**\n * Returns the element which is wrapped around the internal input. This\n * is normally the $container, but typeahead.js moves the $input element.\n */\n findInputWrapper: function() {\n var elt = this.$input[0],\n container = this.$container[0];\n while(elt && elt.parentNode !== container)\n elt = elt.parentNode;\n\n return $(elt);\n }\n };\n\n /**\n * Register JQuery plugin\n */\n $.fn.tagsinput = function(arg1, arg2) {\n var results = [];\n\n this.each(function() {\n var tagsinput = $(this).data('tagsinput');\n\n // Initialize a new tags input\n if (!tagsinput) {\n tagsinput = new TagsInput(this, arg1);\n $(this).data('tagsinput', tagsinput);\n results.push(tagsinput);\n\n if (this.tagName === 'SELECT') {\n $('option', $(this)).attr('selected', 'selected');\n }\n\n // Init tags from $(this).val()\n $(this).val($(this).val());\n } else {\n // Invoke function on existing tags input\n var retVal = tagsinput[arg1](arg2);\n if (retVal !== undefined)\n results.push(retVal);\n }\n });\n\n if ( typeof arg1 == 'string') {\n // Return the results from the invoked function calls\n return results.length > 1 ? results : results[0];\n } else {\n return results;\n }\n };\n\n $.fn.tagsinput.Constructor = TagsInput;\n \n /**\n * Most options support both a string or number as well as a function as \n * option value. This function makes sure that the option with the given\n * key in the given options is wrapped in a function\n */\n function makeOptionItemFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var propertyName = options[key];\n options[key] = function(item) { return item[propertyName]; };\n }\n }\n function makeOptionFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var value = options[key];\n options[key] = function() { return value; };\n }\n }\n /**\n * HtmlEncodes the given value\n */\n var htmlEncodeContainer = $('<div />');\n function htmlEncode(value) {\n if (value) {\n return htmlEncodeContainer.text(value).html();\n } else {\n return '';\n }\n }\n\n /**\n * Returns the position of the caret in the given input field\n * http://flightschool.acylt.com/devnotes/caret-position-woes/\n */\n function doGetCaretPosition(oField) {\n var iCaretPos = 0;\n if (document.selection) {\n oField.focus ();\n var oSel = document.selection.createRange();\n oSel.moveStart ('character', -oField.value.length);\n iCaretPos = oSel.text.length;\n } else if (oField.selectionStart || oField.selectionStart == '0') {\n iCaretPos = oField.selectionStart;\n }\n return (iCaretPos);\n }\n\n /**\n * Initialize tagsinput behaviour on inputs and selects which have\n * data-role=tagsinput\n */\n $(function() {\n $(\"input[data-role=tagsinput], select[multiple][data-role=tagsinput]\").tagsinput();\n });\n})(window.jQuery);\n\n","/*!\n SerializeJSON jQuery plugin.\n https://github.com/marioizquierdo/jquery.serializeJSON\n version 2.4.2 (Oct, 2014)\n\n Copyright (c) 2014 Mario Izquierdo\n Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\n and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\n*/\n(function ($) {\n \"use strict\";\n\n // jQuery('form').serializeJSON()\n $.fn.serializeJSON = function (options) {\n var serializedObject, formAsArray, keys, type, value, _ref, f, opts;\n f = $.serializeJSON;\n opts = f.optsWithDefaults(options); // calculate values for options {parseNumbers, parseBoolens, parseNulls}\n f.validateOptions(opts);\n formAsArray = this.serializeArray(); // array of objects {name, value}\n f.readCheckboxUncheckedValues(formAsArray, this, opts); // add {name, value} of unchecked checkboxes if needed\n\n serializedObject = {};\n $.each(formAsArray, function (i, input) {\n keys = f.splitInputNameIntoKeysArray(input.name);\n type = keys.pop(); // the last element is always the type (\"string\" by default)\n if (type !== 'skip') { // easy way to skip a value\n value = f.parseValue(input.value, type, opts); // string, number, boolean or null\n if (opts.parseWithFunction && type === '_') value = opts.parseWithFunction(value, input.name); // allow for custom parsing\n f.deepSet(serializedObject, keys, value, opts);\n }\n });\n return serializedObject;\n };\n\n // Use $.serializeJSON as namespace for the auxiliar functions\n // and to define defaults\n $.serializeJSON = {\n\n defaultOptions: {\n parseNumbers: false, // convert values like \"1\", \"-2.33\" to 1, -2.33\n parseBooleans: false, // convert \"true\", \"false\" to true, false\n parseNulls: false, // convert \"null\" to null\n parseAll: false, // all of the above\n parseWithFunction: null, // to use custom parser, a function like: function(val){ return parsed_val; }\n checkboxUncheckedValue: undefined, // to include that value for unchecked checkboxes (instead of ignoring them)\n useIntKeysAsArrayIndex: false // name=\"foo[2]\" value=\"v\" => {foo: [null, null, \"v\"]}, instead of {foo: [\"2\": \"v\"]}\n },\n\n // Merge options with defaults to get {parseNumbers, parseBoolens, parseNulls, useIntKeysAsArrayIndex}\n optsWithDefaults: function(options) {\n var f, parseAll;\n if (options == null) options = {}; // arg default value = {}\n f = $.serializeJSON;\n parseAll = f.optWithDefaults('parseAll', options);\n return {\n parseNumbers: parseAll || f.optWithDefaults('parseNumbers', options),\n parseBooleans: parseAll || f.optWithDefaults('parseBooleans', options),\n parseNulls: parseAll || f.optWithDefaults('parseNulls', options),\n parseWithFunction: f.optWithDefaults('parseWithFunction', options),\n checkboxUncheckedValue: f.optWithDefaults('checkboxUncheckedValue', options),\n useIntKeysAsArrayIndex: f.optWithDefaults('useIntKeysAsArrayIndex', options)\n }\n },\n\n optWithDefaults: function(key, options) {\n return (options[key] !== false) && (options[key] !== '') && (options[key] || $.serializeJSON.defaultOptions[key]);\n },\n\n validateOptions: function(opts) {\n var opt, validOpts;\n validOpts = ['parseNumbers', 'parseBooleans', 'parseNulls', 'parseAll', 'parseWithFunction', 'checkboxUncheckedValue', 'useIntKeysAsArrayIndex']\n for (opt in opts) {\n if (validOpts.indexOf(opt) === -1) {\n throw new Error(\"serializeJSON ERROR: invalid option '\" + opt + \"'. Please use one of \" + validOpts.join(','));\n }\n }\n },\n\n // Convert the string to a number, boolean or null, depending on the enable option and the string format.\n parseValue: function(str, type, opts) {\n var value, f;\n f = $.serializeJSON;\n if (type == 'string') return str; // force string\n if (type == 'number' || (opts.parseNumbers && f.isNumeric(str))) return Number(str); // number\n if (type == 'boolean' || (opts.parseBooleans && (str === \"true\" || str === \"false\"))) return ([\"false\", \"null\", \"undefined\", \"\", \"0\"].indexOf(str) === -1); // boolean\n if (type == 'null' || (opts.parseNulls && str == \"null\")) return [\"false\", \"null\", \"undefined\", \"\", \"0\"].indexOf(str) !== -1 ? null : str; // null\n if (type == 'array' || type == 'object') return JSON.parse(str); // array or objects require JSON\n if (type == 'auto') return f.parseValue(str, null, {parseNumbers: true, parseBooleans: true, parseNulls: true}); // try again with something like \"parseAll\"\n return str; // otherwise, keep same string\n },\n\n isObject: function(obj) { return obj === Object(obj); }, // is this variable an object?\n isUndefined: function(obj) { return obj === void 0; }, // safe check for undefined values\n isValidArrayIndex: function(val) { return /^[0-9]+$/.test(String(val)); }, // 1,2,3,4 ... are valid array indexes\n isNumeric: function(obj) { return obj - parseFloat(obj) >= 0; }, // taken from jQuery.isNumeric implementation. Not using jQuery.isNumeric to support old jQuery and Zepto versions\n\n // Split the input name in programatically readable keys.\n // The last element is always the type (default \"_\").\n // Examples:\n // \"foo\" => ['foo', '_']\n // \"foo:string\" => ['foo', 'string']\n // \"foo:boolean\" => ['foo', 'boolean']\n // \"[foo]\" => ['foo', '_']\n // \"foo[inn][bar]\" => ['foo', 'inn', 'bar', '_']\n // \"foo[inn[bar]]\" => ['foo', 'inn', 'bar', '_']\n // \"foo[inn][arr][0]\" => ['foo', 'inn', 'arr', '0', '_']\n // \"arr[][val]\" => ['arr', '', 'val', '_']\n // \"arr[][val]:null\" => ['arr', '', 'val', 'null']\n splitInputNameIntoKeysArray: function (name) {\n var keys, nameWithoutType, type, _ref, f;\n f = $.serializeJSON;\n _ref = f.extractTypeFromInputName(name), nameWithoutType = _ref[0], type = _ref[1];\n keys = nameWithoutType.split('['); // split string into array\n keys = $.map(keys, function (key) { return key.replace(/]/g, ''); }); // remove closing brackets\n if (keys[0] === '') { keys.shift(); } // ensure no opening bracket (\"[foo][inn]\" should be same as \"foo[inn]\")\n keys.push(type); // add type at the end\n return keys;\n },\n\n // Returns [name-without-type, type] from name.\n // \"foo\" => [\"foo\", \"_\"]\n // \"foo:boolean\" => [\"foo\", \"boolean\"]\n // \"foo[bar]:null\" => [\"foo[bar]\", \"null\"]\n extractTypeFromInputName: function(name) {\n var match, f;\n f = $.serializeJSON;\n if (match = name.match(/(.*):([^:]+)$/)){\n var validTypes = ['string', 'number', 'boolean', 'null', 'array', 'object', 'skip', 'auto']; // validate type\n if (validTypes.indexOf(match[2]) !== -1) {\n return [match[1], match[2]];\n } else {\n throw new Error(\"serializeJSON ERROR: Invalid type \" + match[2] + \" found in input name '\" + name + \"', please use one of \" + validTypes.join(', '))\n }\n } else {\n return [name, '_']; // no defined type, then use parse options\n }\n },\n\n // Set a value in an object or array, using multiple keys to set in a nested object or array:\n //\n // deepSet(obj, ['foo'], v) // obj['foo'] = v\n // deepSet(obj, ['foo', 'inn'], v) // obj['foo']['inn'] = v // Create the inner obj['foo'] object, if needed\n // deepSet(obj, ['foo', 'inn', '123'], v) // obj['foo']['arr']['123'] = v //\n //\n // deepSet(obj, ['0'], v) // obj['0'] = v\n // deepSet(arr, ['0'], v, {useIntKeysAsArrayIndex: true}) // arr[0] = v\n // deepSet(arr, [''], v) // arr.push(v)\n // deepSet(obj, ['arr', ''], v) // obj['arr'].push(v)\n //\n // arr = [];\n // deepSet(arr, ['', v] // arr => [v]\n // deepSet(arr, ['', 'foo'], v) // arr => [v, {foo: v}]\n // deepSet(arr, ['', 'bar'], v) // arr => [v, {foo: v, bar: v}]\n // deepSet(arr, ['', 'bar'], v) // arr => [v, {foo: v, bar: v}, {bar: v}]\n //\n deepSet: function (o, keys, value, opts) {\n var key, nextKey, tail, lastIdx, lastVal, f;\n if (opts == null) opts = {};\n f = $.serializeJSON;\n if (f.isUndefined(o)) { throw new Error(\"ArgumentError: param 'o' expected to be an object or array, found undefined\"); }\n if (!keys || keys.length === 0) { throw new Error(\"ArgumentError: param 'keys' expected to be an array with least one element\"); }\n\n key = keys[0];\n\n // Only one key, then it's not a deepSet, just assign the value.\n if (keys.length === 1) {\n if (key === '') {\n o.push(value); // '' is used to push values into the array (assume o is an array)\n } else {\n o[key] = value; // other keys can be used as object keys or array indexes\n }\n\n // With more keys is a deepSet. Apply recursively.\n } else {\n\n nextKey = keys[1];\n\n // '' is used to push values into the array,\n // with nextKey, set the value into the same object, in object[nextKey].\n // Covers the case of ['', 'foo'] and ['', 'var'] to push the object {foo, var}, and the case of nested arrays.\n if (key === '') {\n lastIdx = o.length - 1; // asume o is array\n lastVal = o[lastIdx];\n if (f.isObject(lastVal) && (f.isUndefined(lastVal[nextKey]) || keys.length > 2)) { // if nextKey is not present in the last object element, or there are more keys to deep set\n key = lastIdx; // then set the new value in the same object element\n } else {\n key = lastIdx + 1; // otherwise, point to set the next index in the array\n }\n }\n\n // o[key] defaults to object or array, depending if nextKey is an array index (int or '') or an object key (string)\n if (f.isUndefined(o[key])) {\n if (nextKey === '') { // '' is used to push values into the array.\n o[key] = [];\n } else if (opts.useIntKeysAsArrayIndex && f.isValidArrayIndex(nextKey)) { // if 1, 2, 3 ... then use an array, where nextKey is the index\n o[key] = [];\n } else { // for anything else, use an object, where nextKey is going to be the attribute name\n o[key] = {};\n }\n }\n\n // Recursively set the inner object\n tail = keys.slice(1);\n f.deepSet(o[key], tail, value, opts);\n }\n },\n\n // Fill the formAsArray object with values for the unchecked checkbox inputs,\n // using the same format as the jquery.serializeArray function.\n // The value of the unchecked values is determined from the opts.checkboxUncheckedValue\n // and/or the data-unchecked-value attribute of the inputs.\n readCheckboxUncheckedValues: function (formAsArray, $form, opts) {\n var selector, $uncheckedCheckboxes, $el, dataUncheckedValue, f;\n if (opts == null) opts = {};\n f = $.serializeJSON;\n\n selector = 'input[type=checkbox][name]:not(:checked,[disabled])';\n $uncheckedCheckboxes = $form.find(selector).add($form.filter(selector));\n $uncheckedCheckboxes.each(function (i, el) {\n $el = $(el);\n dataUncheckedValue = $el.attr('data-unchecked-value');\n if(dataUncheckedValue) { // data-unchecked-value has precedence over option opts.checkboxUncheckedValue\n formAsArray.push({name: el.name, value: dataUncheckedValue});\n } else {\n if (!f.isUndefined(opts.checkboxUncheckedValue)) {\n formAsArray.push({name: el.name, value: opts.checkboxUncheckedValue});\n }\n }\n });\n }\n\n };\n\n}(window.jQuery || window.Zepto || window.$));","/*\n * Leaflet-IIIF 3.0.0\n * IIIF Viewer for Leaflet\n * by Jack Reed, @mejackreed\n */\n\nL.TileLayer.Iiif = L.TileLayer.extend({\n options: {\n continuousWorld: true,\n tileSize: 256,\n updateWhenIdle: true,\n tileFormat: 'jpg',\n fitBounds: true,\n setMaxBounds: false\n },\n\n initialize: function(url, options) {\n options = typeof options !== 'undefined' ? options : {};\n\n if (options.maxZoom) {\n this._customMaxZoom = true;\n }\n\n // Check for explicit tileSize set\n if (options.tileSize) {\n this._explicitTileSize = true;\n }\n\n // Check for an explicit quality\n if (options.quality) {\n this._explicitQuality = true;\n }\n\n options = L.setOptions(this, options);\n this._infoPromise = null;\n this._infoUrl = url;\n this._baseUrl = this._templateUrl();\n this._getInfo();\n },\n getTileUrl: function(coords) {\n var _this = this,\n x = coords.x,\n y = (coords.y),\n zoom = _this._getZoomForUrl(),\n scale = Math.pow(2, _this.maxNativeZoom - zoom),\n tileBaseSize = _this.options.tileSize * scale,\n minx = (x * tileBaseSize),\n miny = (y * tileBaseSize),\n maxx = Math.min(minx + tileBaseSize, _this.x),\n maxy = Math.min(miny + tileBaseSize, _this.y);\n\n var xDiff = (maxx - minx);\n var yDiff = (maxy - miny);\n\n // Canonical URI Syntax for v2\n var size = Math.ceil(xDiff / scale) + ',';\n if (_this.type === 'ImageService3') {\n // Cannonical URI Syntax for v3\n size = size + Math.ceil(yDiff / scale);\n }\n\n return L.Util.template(this._baseUrl, L.extend({\n format: _this.options.tileFormat,\n quality: _this.quality,\n region: [minx, miny, xDiff, yDiff].join(','),\n rotation: 0,\n size: size\n }, this.options));\n },\n onAdd: function(map) {\n var _this = this;\n\n // Wait for info.json fetch and parse to complete\n Promise.all([_this._infoPromise]).then(function() {\n // Store unmutated imageSizes\n _this._imageSizesOriginal = _this._imageSizes.slice(0);\n\n // Set maxZoom for map\n map._layersMaxZoom = _this.maxZoom;\n\n // Call add TileLayer\n L.TileLayer.prototype.onAdd.call(_this, map);\n\n // Set minZoom and minNativeZoom based on how the imageSizes match up\n var smallestImage = _this._imageSizes[0];\n var mapSize = _this._map.getSize();\n var newMinZoom = 0;\n // Loop back through 5 times to see if a better fit can be found.\n for (var i = 1; i <= 5; i++) {\n if (smallestImage.x > mapSize.x || smallestImage.y > mapSize.y) {\n smallestImage = smallestImage.divideBy(2);\n _this._imageSizes.unshift(smallestImage);\n newMinZoom = -i;\n } else {\n break;\n }\n }\n _this.options.minZoom = newMinZoom;\n _this.options.minNativeZoom = newMinZoom;\n _this._prev_map_layersMinZoom = _this._map._layersMinZoom;\n _this._map._layersMinZoom = newMinZoom;\n\n if (_this.options.fitBounds) {\n _this._fitBounds();\n }\n\n if(_this.options.setMaxBounds) {\n _this._setMaxBounds();\n }\n\n // Reset tile sizes to handle non 256x256 IIIF tiles\n _this.on('tileload', function(tile, url) {\n\n var height = tile.tile.naturalHeight,\n width = tile.tile.naturalWidth;\n\n // No need to resize if tile is 256 x 256\n if (height === 256 && width === 256) return;\n\n tile.tile.style.width = width + 'px';\n tile.tile.style.height = height + 'px';\n\n });\n })\n .catch(function(err){\n console.error(err);\n });\n },\n onRemove: function(map) {\n var _this = this;\n\n map._layersMinZoom = _this._prev_map_layersMinZoom;\n _this._imageSizes = _this._imageSizesOriginal;\n\n // Remove maxBounds set for this image\n if(_this.options.setMaxBounds) {\n map.setMaxBounds(null);\n }\n\n // Call remove TileLayer\n L.TileLayer.prototype.onRemove.call(_this, map);\n\n },\n _fitBounds: function() {\n var _this = this;\n\n // Find best zoom level and center map\n var initialZoom = _this._getInitialZoom(_this._map.getSize());\n var offset = _this._imageSizes.length - 1 - _this.options.maxNativeZoom;\n var imageSize = _this._imageSizes[initialZoom + offset];\n var sw = _this._map.options.crs.pointToLatLng(L.point(0, imageSize.y), initialZoom);\n var ne = _this._map.options.crs.pointToLatLng(L.point(imageSize.x, 0), initialZoom);\n var bounds = L.latLngBounds(sw, ne);\n\n _this._map.fitBounds(bounds, true);\n },\n _setMaxBounds: function() {\n var _this = this;\n\n // Find best zoom level, center map, and constrain viewer\n var initialZoom = _this._getInitialZoom(_this._map.getSize());\n var imageSize = _this._imageSizes[initialZoom];\n var sw = _this._map.options.crs.pointToLatLng(L.point(0, imageSize.y), initialZoom);\n var ne = _this._map.options.crs.pointToLatLng(L.point(imageSize.x, 0), initialZoom);\n var bounds = L.latLngBounds(sw, ne);\n\n _this._map.setMaxBounds(bounds, true);\n },\n _getInfo: function() {\n var _this = this;\n\n _this._infoPromise = fetch(_this._infoUrl)\n .then(function(response) {\n return response.json();\n })\n .catch(function(err){\n console.error(err);\n })\n .then(function(data) {\n _this.y = data.height;\n _this.x = data.width;\n\n var tierSizes = [],\n imageSizes = [],\n scale,\n width_,\n height_,\n tilesX_,\n tilesY_;\n\n // Set quality based off of IIIF version\n if (data.profile instanceof Array) {\n _this.profile = data.profile[0];\n }else {\n _this.profile = data.profile;\n }\n _this.type = data.type;\n\n _this._setQuality();\n\n // Unless an explicit tileSize is set, use a preferred tileSize\n if (!_this._explicitTileSize) {\n // Set the default first\n _this.options.tileSize = 256;\n if (data.tiles) {\n // Image API 2.0 Case\n _this.options.tileSize = data.tiles[0].width;\n } else if (data.tile_width){\n // Image API 1.1 Case\n _this.options.tileSize = data.tile_width;\n }\n }\n\n function ceilLog2(x) {\n return Math.ceil(Math.log(x) / Math.LN2);\n };\n\n // Calculates maximum native zoom for the layer\n _this.maxNativeZoom = Math.max(\n ceilLog2(_this.x / _this.options.tileSize),\n ceilLog2(_this.y / _this.options.tileSize),\n 0\n );\n _this.options.maxNativeZoom = _this.maxNativeZoom;\n\n // Enable zooming further than native if maxZoom option supplied\n if (_this._customMaxZoom && _this.options.maxZoom > _this.maxNativeZoom) {\n _this.maxZoom = _this.options.maxZoom;\n }\n else {\n _this.maxZoom = _this.maxNativeZoom;\n }\n\n for (var i = 0; i <= _this.maxZoom; i++) {\n scale = Math.pow(2, _this.maxNativeZoom - i);\n width_ = Math.ceil(_this.x / scale);\n height_ = Math.ceil(_this.y / scale);\n tilesX_ = Math.ceil(width_ / _this.options.tileSize);\n tilesY_ = Math.ceil(height_ / _this.options.tileSize);\n tierSizes.push([tilesX_, tilesY_]);\n imageSizes.push(L.point(width_,height_));\n }\n\n _this._tierSizes = tierSizes;\n _this._imageSizes = imageSizes;\n })\n .catch(function(err){\n console.error(err);\n });\n\n },\n\n _setQuality: function() {\n var _this = this;\n var profileToCheck = _this.profile;\n\n if (_this._explicitQuality) {\n return;\n }\n\n // If profile is an object\n if (typeof(profileToCheck) === 'object') {\n profileToCheck = profileToCheck['@id'];\n }\n\n // Set the quality based on the IIIF compliance level\n switch (true) {\n case /^http:\\/\\/library.stanford.edu\\/iiif\\/image-api\\/1.1\\/compliance.html.*$/.test(profileToCheck):\n _this.options.quality = 'native';\n break;\n // Assume later profiles and set to default\n default:\n _this.options.quality = 'default';\n break;\n }\n },\n\n _infoToBaseUrl: function() {\n return this._infoUrl.replace('info.json', '');\n },\n _templateUrl: function() {\n return this._infoToBaseUrl() + '{region}/{size}/{rotation}/{quality}.{format}';\n },\n _isValidTile: function(coords) {\n var _this = this;\n var zoom = _this._getZoomForUrl();\n var sizes = _this._tierSizes[zoom];\n var x = coords.x;\n var y = coords.y;\n if (zoom < 0 && x >= 0 && y >= 0) {\n return true;\n }\n\n if (!sizes) return false;\n if (x < 0 || sizes[0] <= x || y < 0 || sizes[1] <= y) {\n return false;\n }else {\n return true;\n }\n },\n _tileShouldBeLoaded: function(coords) {\n return this._isValidTile(coords);\n },\n _getInitialZoom: function (mapSize) {\n var _this = this;\n var tolerance = 0.8;\n var imageSize;\n // Calculate an offset between the zoom levels and the array accessors\n var offset = _this._imageSizes.length - 1 - _this.options.maxNativeZoom;\n for (var i = _this._imageSizes.length - 1; i >= 0; i--) {\n imageSize = _this._imageSizes[i];\n if (imageSize.x * tolerance < mapSize.x && imageSize.y * tolerance < mapSize.y) {\n return i - offset;\n }\n }\n // return a default zoom\n return 2;\n }\n});\n\nL.tileLayer.iiif = function(url, options) {\n return new L.TileLayer.Iiif(url, options);\n};\n","'use strict';\n(function (factory, window) {\n /*globals define, module, require*/\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === 'function' && define.amd) {\n define(['leaflet'], factory);\n\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === 'object') {\n module.exports = factory(require('leaflet'));\n }\n\n // attach your plugin to the global 'L' variable\n if(typeof window !== 'undefined' && window.L){\n factory(window.L);\n }\n\n}(function (L) {\n // 🍂miniclass CancelableEvent (Event objects)\n // 🍂method cancel()\n // Cancel any subsequent action.\n\n // 🍂miniclass VertexEvent (Event objects)\n // 🍂property vertex: VertexMarker\n // The vertex that fires the event.\n\n // 🍂miniclass ShapeEvent (Event objects)\n // 🍂property shape: Array\n // The shape (LatLngs array) subject of the action.\n\n // 🍂miniclass CancelableVertexEvent (Event objects)\n // 🍂inherits VertexEvent\n // 🍂inherits CancelableEvent\n\n // 🍂miniclass CancelableShapeEvent (Event objects)\n // 🍂inherits ShapeEvent\n // 🍂inherits CancelableEvent\n\n // 🍂miniclass LayerEvent (Event objects)\n // 🍂property layer: object\n // The Layer (Marker, Polyline…) subject of the action.\n\n // 🍂namespace Editable; 🍂class Editable; 🍂aka L.Editable\n // Main edition handler. By default, it is attached to the map\n // as `map.editTools` property.\n // Leaflet.Editable is made to be fully extendable. You have three ways to customize\n // the behaviour: using options, listening to events, or extending.\n L.Editable = L.Evented.extend({\n\n statics: {\n FORWARD: 1,\n BACKWARD: -1\n },\n\n options: {\n\n // You can pass them when creating a map using the `editOptions` key.\n // 🍂option zIndex: int = 1000\n // The default zIndex of the editing tools.\n zIndex: 1000,\n\n // 🍂option polygonClass: class = L.Polygon\n // Class to be used when creating a new Polygon.\n polygonClass: L.Polygon,\n\n // 🍂option polylineClass: class = L.Polyline\n // Class to be used when creating a new Polyline.\n polylineClass: L.Polyline,\n\n // 🍂option markerClass: class = L.Marker\n // Class to be used when creating a new Marker.\n markerClass: L.Marker,\n\n // 🍂option rectangleClass: class = L.Rectangle\n // Class to be used when creating a new Rectangle.\n rectangleClass: L.Rectangle,\n\n // 🍂option circleClass: class = L.Circle\n // Class to be used when creating a new Circle.\n circleClass: L.Circle,\n\n // 🍂option drawingCSSClass: string = 'leaflet-editable-drawing'\n // CSS class to be added to the map container while drawing.\n drawingCSSClass: 'leaflet-editable-drawing',\n\n // 🍂option drawingCursor: const = 'crosshair'\n // Cursor mode set to the map while drawing.\n drawingCursor: 'crosshair',\n\n // 🍂option editLayer: Layer = new L.LayerGroup()\n // Layer used to store edit tools (vertex, line guide…).\n editLayer: undefined,\n\n // 🍂option featuresLayer: Layer = new L.LayerGroup()\n // Default layer used to store drawn features (Marker, Polyline…).\n featuresLayer: undefined,\n\n // 🍂option polylineEditorClass: class = PolylineEditor\n // Class to be used as Polyline editor.\n polylineEditorClass: undefined,\n\n // 🍂option polygonEditorClass: class = PolygonEditor\n // Class to be used as Polygon editor.\n polygonEditorClass: undefined,\n\n // 🍂option markerEditorClass: class = MarkerEditor\n // Class to be used as Marker editor.\n markerEditorClass: undefined,\n\n // 🍂option rectangleEditorClass: class = RectangleEditor\n // Class to be used as Rectangle editor.\n rectangleEditorClass: undefined,\n\n // 🍂option circleEditorClass: class = CircleEditor\n // Class to be used as Circle editor.\n circleEditorClass: undefined,\n\n // 🍂option lineGuideOptions: hash = {}\n // Options to be passed to the line guides.\n lineGuideOptions: {},\n\n // 🍂option skipMiddleMarkers: boolean = false\n // Set this to true if you don't want middle markers.\n skipMiddleMarkers: false\n\n },\n\n initialize: function (map, options) {\n L.setOptions(this, options);\n this._lastZIndex = this.options.zIndex;\n this.map = map;\n this.editLayer = this.createEditLayer();\n this.featuresLayer = this.createFeaturesLayer();\n this.forwardLineGuide = this.createLineGuide();\n this.backwardLineGuide = this.createLineGuide();\n },\n\n fireAndForward: function (type, e) {\n e = e || {};\n e.editTools = this;\n this.fire(type, e);\n this.map.fire(type, e);\n },\n\n createLineGuide: function () {\n var options = L.extend({dashArray: '5,10', weight: 1, interactive: false}, this.options.lineGuideOptions);\n return L.polyline([], options);\n },\n\n createVertexIcon: function (options) {\n return L.Browser.touch ? new L.Editable.TouchVertexIcon(options) : new L.Editable.VertexIcon(options);\n },\n\n createEditLayer: function () {\n return this.options.editLayer || new L.LayerGroup().addTo(this.map);\n },\n\n createFeaturesLayer: function () {\n return this.options.featuresLayer || new L.LayerGroup().addTo(this.map);\n },\n\n moveForwardLineGuide: function (latlng) {\n if (this.forwardLineGuide._latlngs.length) {\n this.forwardLineGuide._latlngs[1] = latlng;\n this.forwardLineGuide._bounds.extend(latlng);\n this.forwardLineGuide.redraw();\n }\n },\n\n moveBackwardLineGuide: function (latlng) {\n if (this.backwardLineGuide._latlngs.length) {\n this.backwardLineGuide._latlngs[1] = latlng;\n this.backwardLineGuide._bounds.extend(latlng);\n this.backwardLineGuide.redraw();\n }\n },\n\n anchorForwardLineGuide: function (latlng) {\n this.forwardLineGuide._latlngs[0] = latlng;\n this.forwardLineGuide._bounds.extend(latlng);\n this.forwardLineGuide.redraw();\n },\n\n anchorBackwardLineGuide: function (latlng) {\n this.backwardLineGuide._latlngs[0] = latlng;\n this.backwardLineGuide._bounds.extend(latlng);\n this.backwardLineGuide.redraw();\n },\n\n attachForwardLineGuide: function () {\n this.editLayer.addLayer(this.forwardLineGuide);\n },\n\n attachBackwardLineGuide: function () {\n this.editLayer.addLayer(this.backwardLineGuide);\n },\n\n detachForwardLineGuide: function () {\n this.forwardLineGuide.setLatLngs([]);\n this.editLayer.removeLayer(this.forwardLineGuide);\n },\n\n detachBackwardLineGuide: function () {\n this.backwardLineGuide.setLatLngs([]);\n this.editLayer.removeLayer(this.backwardLineGuide);\n },\n\n blockEvents: function () {\n // Hack: force map not to listen to other layers events while drawing.\n if (!this._oldTargets) {\n this._oldTargets = this.map._targets;\n this.map._targets = {};\n }\n },\n\n unblockEvents: function () {\n if (this._oldTargets) {\n // Reset, but keep targets created while drawing.\n this.map._targets = L.extend(this.map._targets, this._oldTargets);\n delete this._oldTargets;\n }\n },\n\n registerForDrawing: function (editor) {\n if (this._drawingEditor) this.unregisterForDrawing(this._drawingEditor);\n this.blockEvents();\n editor.reset(); // Make sure editor tools still receive events.\n this._drawingEditor = editor;\n this.map.on('mousemove touchmove', editor.onDrawingMouseMove, editor);\n this.map.on('mousedown', this.onMousedown, this);\n this.map.on('mouseup', this.onMouseup, this);\n L.DomUtil.addClass(this.map._container, this.options.drawingCSSClass);\n this.defaultMapCursor = this.map._container.style.cursor;\n this.map._container.style.cursor = this.options.drawingCursor;\n },\n\n unregisterForDrawing: function (editor) {\n this.unblockEvents();\n L.DomUtil.removeClass(this.map._container, this.options.drawingCSSClass);\n this.map._container.style.cursor = this.defaultMapCursor;\n editor = editor || this._drawingEditor;\n if (!editor) return;\n this.map.off('mousemove touchmove', editor.onDrawingMouseMove, editor);\n this.map.off('mousedown', this.onMousedown, this);\n this.map.off('mouseup', this.onMouseup, this);\n if (editor !== this._drawingEditor) return;\n delete this._drawingEditor;\n if (editor._drawing) editor.cancelDrawing();\n },\n\n onMousedown: function (e) {\n this._mouseDown = e;\n this._drawingEditor.onDrawingMouseDown(e);\n },\n\n onMouseup: function (e) {\n if (this._mouseDown) {\n var editor = this._drawingEditor,\n mouseDown = this._mouseDown;\n this._mouseDown = null;\n editor.onDrawingMouseUp(e);\n if (this._drawingEditor !== editor) return; // onDrawingMouseUp may call unregisterFromDrawing.\n var origin = L.point(mouseDown.originalEvent.clientX, mouseDown.originalEvent.clientY);\n var distance = L.point(e.originalEvent.clientX, e.originalEvent.clientY).distanceTo(origin);\n if (Math.abs(distance) < 9 * (window.devicePixelRatio || 1)) this._drawingEditor.onDrawingClick(e);\n }\n },\n\n // 🍂section Public methods\n // You will generally access them by the `map.editTools`\n // instance:\n //\n // `map.editTools.startPolyline();`\n\n // 🍂method drawing(): boolean\n // Return true if any drawing action is ongoing.\n drawing: function () {\n return this._drawingEditor && this._drawingEditor.drawing();\n },\n\n // 🍂method stopDrawing()\n // When you need to stop any ongoing drawing, without needing to know which editor is active.\n stopDrawing: function () {\n this.unregisterForDrawing();\n },\n\n // 🍂method commitDrawing()\n // When you need to commit any ongoing drawing, without needing to know which editor is active.\n commitDrawing: function (e) {\n if (!this._drawingEditor) return;\n this._drawingEditor.commitDrawing(e);\n },\n\n connectCreatedToMap: function (layer) {\n return this.featuresLayer.addLayer(layer);\n },\n\n // 🍂method startPolyline(latlng: L.LatLng, options: hash): L.Polyline\n // Start drawing a Polyline. If `latlng` is given, a first point will be added. In any case, continuing on user click.\n // If `options` is given, it will be passed to the Polyline class constructor.\n startPolyline: function (latlng, options) {\n var line = this.createPolyline([], options);\n line.enableEdit(this.map).newShape(latlng);\n return line;\n },\n\n // 🍂method startPolygon(latlng: L.LatLng, options: hash): L.Polygon\n // Start drawing a Polygon. If `latlng` is given, a first point will be added. In any case, continuing on user click.\n // If `options` is given, it will be passed to the Polygon class constructor.\n startPolygon: function (latlng, options) {\n var polygon = this.createPolygon([], options);\n polygon.enableEdit(this.map).newShape(latlng);\n return polygon;\n },\n\n // 🍂method startMarker(latlng: L.LatLng, options: hash): L.Marker\n // Start adding a Marker. If `latlng` is given, the Marker will be shown first at this point.\n // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch).\n // If `options` is given, it will be passed to the Marker class constructor.\n startMarker: function (latlng, options) {\n latlng = latlng || this.map.getCenter().clone();\n var marker = this.createMarker(latlng, options);\n marker.enableEdit(this.map).startDrawing();\n return marker;\n },\n\n // 🍂method startRectangle(latlng: L.LatLng, options: hash): L.Rectangle\n // Start drawing a Rectangle. If `latlng` is given, the Rectangle anchor will be added. In any case, continuing on user drag.\n // If `options` is given, it will be passed to the Rectangle class constructor.\n startRectangle: function(latlng, options) {\n var corner = latlng || L.latLng([0, 0]);\n var bounds = new L.LatLngBounds(corner, corner);\n var rectangle = this.createRectangle(bounds, options);\n rectangle.enableEdit(this.map).startDrawing();\n return rectangle;\n },\n\n // 🍂method startCircle(latlng: L.LatLng, options: hash): L.Circle\n // Start drawing a Circle. If `latlng` is given, the Circle anchor will be added. In any case, continuing on user drag.\n // If `options` is given, it will be passed to the Circle class constructor.\n startCircle: function (latlng, options) {\n latlng = latlng || this.map.getCenter().clone();\n var circle = this.createCircle(latlng, options);\n circle.enableEdit(this.map).startDrawing();\n return circle;\n },\n\n startHole: function (editor, latlng) {\n editor.newHole(latlng);\n },\n\n createLayer: function (klass, latlngs, options) {\n options = L.Util.extend({editOptions: {editTools: this}}, options);\n var layer = new klass(latlngs, options);\n // 🍂namespace Editable\n // 🍂event editable:created: LayerEvent\n // Fired when a new feature (Marker, Polyline…) is created.\n this.fireAndForward('editable:created', {layer: layer});\n return layer;\n },\n\n createPolyline: function (latlngs, options) {\n return this.createLayer(options && options.polylineClass || this.options.polylineClass, latlngs, options);\n },\n\n createPolygon: function (latlngs, options) {\n return this.createLayer(options && options.polygonClass || this.options.polygonClass, latlngs, options);\n },\n\n createMarker: function (latlng, options) {\n return this.createLayer(options && options.markerClass || this.options.markerClass, latlng, options);\n },\n\n createRectangle: function (bounds, options) {\n return this.createLayer(options && options.rectangleClass || this.options.rectangleClass, bounds, options);\n },\n\n createCircle: function (latlng, options) {\n return this.createLayer(options && options.circleClass || this.options.circleClass, latlng, options);\n }\n\n });\n\n L.extend(L.Editable, {\n\n makeCancellable: function (e) {\n e.cancel = function () {\n e._cancelled = true;\n };\n }\n\n });\n\n // 🍂namespace Map; 🍂class Map\n // Leaflet.Editable add options and events to the `L.Map` object.\n // See `Editable` events for the list of events fired on the Map.\n // 🍂example\n //\n // ```js\n // var map = L.map('map', {\n // editable: true,\n // editOptions: {\n // …\n // }\n // });\n // ```\n // 🍂section Editable Map Options\n L.Map.mergeOptions({\n\n // 🍂namespace Map\n // 🍂section Map Options\n // 🍂option editToolsClass: class = L.Editable\n // Class to be used as vertex, for path editing.\n editToolsClass: L.Editable,\n\n // 🍂option editable: boolean = false\n // Whether to create a L.Editable instance at map init.\n editable: false,\n\n // 🍂option editOptions: hash = {}\n // Options to pass to L.Editable when instanciating.\n editOptions: {}\n\n });\n\n L.Map.addInitHook(function () {\n\n this.whenReady(function () {\n if (this.options.editable) {\n this.editTools = new this.options.editToolsClass(this, this.options.editOptions);\n }\n });\n\n });\n\n L.Editable.VertexIcon = L.DivIcon.extend({\n\n options: {\n iconSize: new L.Point(8, 8)\n }\n\n });\n\n L.Editable.TouchVertexIcon = L.Editable.VertexIcon.extend({\n\n options: {\n iconSize: new L.Point(20, 20)\n }\n\n });\n\n\n // 🍂namespace Editable; 🍂class VertexMarker; Handler for dragging path vertices.\n L.Editable.VertexMarker = L.Marker.extend({\n\n options: {\n draggable: true,\n className: 'leaflet-div-icon leaflet-vertex-icon'\n },\n\n\n // 🍂section Public methods\n // The marker used to handle path vertex. You will usually interact with a `VertexMarker`\n // instance when listening for events like `editable:vertex:ctrlclick`.\n\n initialize: function (latlng, latlngs, editor, options) {\n // We don't use this._latlng, because on drag Leaflet replace it while\n // we want to keep reference.\n this.latlng = latlng;\n this.latlngs = latlngs;\n this.editor = editor;\n L.Marker.prototype.initialize.call(this, latlng, options);\n this.options.icon = this.editor.tools.createVertexIcon({className: this.options.className});\n this.latlng.__vertex = this;\n this.editor.editLayer.addLayer(this);\n this.setZIndexOffset(editor.tools._lastZIndex + 1);\n },\n\n onAdd: function (map) {\n L.Marker.prototype.onAdd.call(this, map);\n this.on('drag', this.onDrag);\n this.on('dragstart', this.onDragStart);\n this.on('dragend', this.onDragEnd);\n this.on('mouseup', this.onMouseup);\n this.on('click', this.onClick);\n this.on('contextmenu', this.onContextMenu);\n this.on('mousedown touchstart', this.onMouseDown);\n this.addMiddleMarkers();\n },\n\n onRemove: function (map) {\n if (this.middleMarker) this.middleMarker.delete();\n delete this.latlng.__vertex;\n this.off('drag', this.onDrag);\n this.off('dragstart', this.onDragStart);\n this.off('dragend', this.onDragEnd);\n this.off('mouseup', this.onMouseup);\n this.off('click', this.onClick);\n this.off('contextmenu', this.onContextMenu);\n this.off('mousedown touchstart', this.onMouseDown);\n L.Marker.prototype.onRemove.call(this, map);\n },\n\n onDrag: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerDrag(e);\n var iconPos = L.DomUtil.getPosition(this._icon),\n latlng = this._map.layerPointToLatLng(iconPos);\n this.latlng.update(latlng);\n this._latlng = this.latlng; // Push back to Leaflet our reference.\n this.editor.refresh();\n if (this.middleMarker) this.middleMarker.updateLatLng();\n var next = this.getNext();\n if (next && next.middleMarker) next.middleMarker.updateLatLng();\n },\n\n onDragStart: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerDragStart(e);\n },\n\n onDragEnd: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerDragEnd(e);\n },\n\n onClick: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerClick(e);\n },\n\n onMouseup: function (e) {\n L.DomEvent.stop(e);\n e.vertex = this;\n this.editor.map.fire('mouseup', e);\n },\n\n onContextMenu: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerContextMenu(e);\n },\n\n onMouseDown: function (e) {\n e.vertex = this;\n this.editor.onVertexMarkerMouseDown(e);\n },\n\n // 🍂method delete()\n // Delete a vertex and the related LatLng.\n delete: function () {\n var next = this.getNext(); // Compute before changing latlng\n this.latlngs.splice(this.getIndex(), 1);\n this.editor.editLayer.removeLayer(this);\n this.editor.onVertexDeleted({latlng: this.latlng, vertex: this});\n if (!this.latlngs.length) this.editor.deleteShape(this.latlngs);\n if (next) next.resetMiddleMarker();\n this.editor.refresh();\n },\n\n // 🍂method getIndex(): int\n // Get the index of the current vertex among others of the same LatLngs group.\n getIndex: function () {\n return this.latlngs.indexOf(this.latlng);\n },\n\n // 🍂method getLastIndex(): int\n // Get last vertex index of the LatLngs group of the current vertex.\n getLastIndex: function () {\n return this.latlngs.length - 1;\n },\n\n // 🍂method getPrevious(): VertexMarker\n // Get the previous VertexMarker in the same LatLngs group.\n getPrevious: function () {\n if (this.latlngs.length < 2) return;\n var index = this.getIndex(),\n previousIndex = index - 1;\n if (index === 0 && this.editor.CLOSED) previousIndex = this.getLastIndex();\n var previous = this.latlngs[previousIndex];\n if (previous) return previous.__vertex;\n },\n\n // 🍂method getNext(): VertexMarker\n // Get the next VertexMarker in the same LatLngs group.\n getNext: function () {\n if (this.latlngs.length < 2) return;\n var index = this.getIndex(),\n nextIndex = index + 1;\n if (index === this.getLastIndex() && this.editor.CLOSED) nextIndex = 0;\n var next = this.latlngs[nextIndex];\n if (next) return next.__vertex;\n },\n\n addMiddleMarker: function (previous) {\n if (!this.editor.hasMiddleMarkers()) return;\n previous = previous || this.getPrevious();\n if (previous && !this.middleMarker) this.middleMarker = this.editor.addMiddleMarker(previous, this, this.latlngs, this.editor);\n },\n\n addMiddleMarkers: function () {\n if (!this.editor.hasMiddleMarkers()) return;\n var previous = this.getPrevious();\n if (previous) this.addMiddleMarker(previous);\n var next = this.getNext();\n if (next) next.resetMiddleMarker();\n },\n\n resetMiddleMarker: function () {\n if (this.middleMarker) this.middleMarker.delete();\n this.addMiddleMarker();\n },\n\n // 🍂method split()\n // Split the vertex LatLngs group at its index, if possible.\n split: function () {\n if (!this.editor.splitShape) return; // Only for PolylineEditor\n this.editor.splitShape(this.latlngs, this.getIndex());\n },\n\n // 🍂method continue()\n // Continue the vertex LatLngs from this vertex. Only active for first and last vertices of a Polyline.\n continue: function () {\n if (!this.editor.continueBackward) return; // Only for PolylineEditor\n var index = this.getIndex();\n if (index === 0) this.editor.continueBackward(this.latlngs);\n else if (index === this.getLastIndex()) this.editor.continueForward(this.latlngs);\n }\n\n });\n\n L.Editable.mergeOptions({\n\n // 🍂namespace Editable\n // 🍂option vertexMarkerClass: class = VertexMarker\n // Class to be used as vertex, for path editing.\n vertexMarkerClass: L.Editable.VertexMarker\n\n });\n\n L.Editable.MiddleMarker = L.Marker.extend({\n\n options: {\n opacity: 0.5,\n className: 'leaflet-div-icon leaflet-middle-icon',\n draggable: true\n },\n\n initialize: function (left, right, latlngs, editor, options) {\n this.left = left;\n this.right = right;\n this.editor = editor;\n this.latlngs = latlngs;\n L.Marker.prototype.initialize.call(this, this.computeLatLng(), options);\n this._opacity = this.options.opacity;\n this.options.icon = this.editor.tools.createVertexIcon({className: this.options.className});\n this.editor.editLayer.addLayer(this);\n this.setVisibility();\n },\n\n setVisibility: function () {\n var leftPoint = this._map.latLngToContainerPoint(this.left.latlng),\n rightPoint = this._map.latLngToContainerPoint(this.right.latlng),\n size = L.point(this.options.icon.options.iconSize);\n if (leftPoint.distanceTo(rightPoint) < size.x * 3) this.hide();\n else this.show();\n },\n\n show: function () {\n this.setOpacity(this._opacity);\n },\n\n hide: function () {\n this.setOpacity(0);\n },\n\n updateLatLng: function () {\n this.setLatLng(this.computeLatLng());\n this.setVisibility();\n },\n\n computeLatLng: function () {\n var leftPoint = this.editor.map.latLngToContainerPoint(this.left.latlng),\n rightPoint = this.editor.map.latLngToContainerPoint(this.right.latlng),\n y = (leftPoint.y + rightPoint.y) / 2,\n x = (leftPoint.x + rightPoint.x) / 2;\n return this.editor.map.containerPointToLatLng([x, y]);\n },\n\n onAdd: function (map) {\n L.Marker.prototype.onAdd.call(this, map);\n L.DomEvent.on(this._icon, 'mousedown touchstart', this.onMouseDown, this);\n map.on('zoomend', this.setVisibility, this);\n },\n\n onRemove: function (map) {\n delete this.right.middleMarker;\n L.DomEvent.off(this._icon, 'mousedown touchstart', this.onMouseDown, this);\n map.off('zoomend', this.setVisibility, this);\n L.Marker.prototype.onRemove.call(this, map);\n },\n\n onMouseDown: function (e) {\n var iconPos = L.DomUtil.getPosition(this._icon),\n latlng = this.editor.map.layerPointToLatLng(iconPos);\n e = {\n originalEvent: e,\n latlng: latlng\n };\n if (this.options.opacity === 0) return;\n L.Editable.makeCancellable(e);\n this.editor.onMiddleMarkerMouseDown(e);\n if (e._cancelled) return;\n this.latlngs.splice(this.index(), 0, e.latlng);\n this.editor.refresh();\n var icon = this._icon;\n var marker = this.editor.addVertexMarker(e.latlng, this.latlngs);\n this.editor.onNewVertex(marker);\n /* Hack to workaround browser not firing touchend when element is no more on DOM */\n var parent = marker._icon.parentNode;\n parent.removeChild(marker._icon);\n marker._icon = icon;\n parent.appendChild(marker._icon);\n marker._initIcon();\n marker._initInteraction();\n marker.setOpacity(1);\n /* End hack */\n // Transfer ongoing dragging to real marker\n L.Draggable._dragging = false;\n marker.dragging._draggable._onDown(e.originalEvent);\n this.delete();\n },\n\n delete: function () {\n this.editor.editLayer.removeLayer(this);\n },\n\n index: function () {\n return this.latlngs.indexOf(this.right.latlng);\n }\n\n });\n\n L.Editable.mergeOptions({\n\n // 🍂namespace Editable\n // 🍂option middleMarkerClass: class = VertexMarker\n // Class to be used as middle vertex, pulled by the user to create a new point in the middle of a path.\n middleMarkerClass: L.Editable.MiddleMarker\n\n });\n\n // 🍂namespace Editable; 🍂class BaseEditor; 🍂aka L.Editable.BaseEditor\n // When editing a feature (Marker, Polyline…), an editor is attached to it. This\n // editor basically knows how to handle the edition.\n L.Editable.BaseEditor = L.Handler.extend({\n\n initialize: function (map, feature, options) {\n L.setOptions(this, options);\n this.map = map;\n this.feature = feature;\n this.feature.editor = this;\n this.editLayer = new L.LayerGroup();\n this.tools = this.options.editTools || map.editTools;\n },\n\n // 🍂method enable(): this\n // Set up the drawing tools for the feature to be editable.\n addHooks: function () {\n if (this.isConnected()) this.onFeatureAdd();\n else this.feature.once('add', this.onFeatureAdd, this);\n this.onEnable();\n this.feature.on(this._getEvents(), this);\n return;\n },\n\n // 🍂method disable(): this\n // Remove the drawing tools for the feature.\n removeHooks: function () {\n this.feature.off(this._getEvents(), this);\n if (this.feature.dragging) this.feature.dragging.disable();\n this.editLayer.clearLayers();\n this.tools.editLayer.removeLayer(this.editLayer);\n this.onDisable();\n if (this._drawing) this.cancelDrawing();\n return;\n },\n\n // 🍂method drawing(): boolean\n // Return true if any drawing action is ongoing with this editor.\n drawing: function () {\n return !!this._drawing;\n },\n\n reset: function () {},\n\n onFeatureAdd: function () {\n this.tools.editLayer.addLayer(this.editLayer);\n if (this.feature.dragging) this.feature.dragging.enable();\n },\n\n hasMiddleMarkers: function () {\n return !this.options.skipMiddleMarkers && !this.tools.options.skipMiddleMarkers;\n },\n\n fireAndForward: function (type, e) {\n e = e || {};\n e.layer = this.feature;\n this.feature.fire(type, e);\n this.tools.fireAndForward(type, e);\n },\n\n onEnable: function () {\n // 🍂namespace Editable\n // 🍂event editable:enable: Event\n // Fired when an existing feature is ready to be edited.\n this.fireAndForward('editable:enable');\n },\n\n onDisable: function () {\n // 🍂namespace Editable\n // 🍂event editable:disable: Event\n // Fired when an existing feature is not ready anymore to be edited.\n this.fireAndForward('editable:disable');\n },\n\n onEditing: function () {\n // 🍂namespace Editable\n // 🍂event editable:editing: Event\n // Fired as soon as any change is made to the feature geometry.\n this.fireAndForward('editable:editing');\n },\n\n onStartDrawing: function () {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:start: Event\n // Fired when a feature is to be drawn.\n this.fireAndForward('editable:drawing:start');\n },\n\n onEndDrawing: function () {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:end: Event\n // Fired when a feature is not drawn anymore.\n this.fireAndForward('editable:drawing:end');\n },\n\n onCancelDrawing: function () {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:cancel: Event\n // Fired when user cancel drawing while a feature is being drawn.\n this.fireAndForward('editable:drawing:cancel');\n },\n\n onCommitDrawing: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:commit: Event\n // Fired when user finish drawing a feature.\n this.fireAndForward('editable:drawing:commit', e);\n },\n\n onDrawingMouseDown: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:mousedown: Event\n // Fired when user `mousedown` while drawing.\n this.fireAndForward('editable:drawing:mousedown', e);\n },\n\n onDrawingMouseUp: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:mouseup: Event\n // Fired when user `mouseup` while drawing.\n this.fireAndForward('editable:drawing:mouseup', e);\n },\n\n startDrawing: function () {\n if (!this._drawing) this._drawing = L.Editable.FORWARD;\n this.tools.registerForDrawing(this);\n this.onStartDrawing();\n },\n\n commitDrawing: function (e) {\n this.onCommitDrawing(e);\n this.endDrawing();\n },\n\n cancelDrawing: function () {\n // If called during a vertex drag, the vertex will be removed before\n // the mouseup fires on it. This is a workaround. Maybe better fix is\n // To have L.Draggable reset it's status on disable (Leaflet side).\n L.Draggable._dragging = false;\n this.onCancelDrawing();\n this.endDrawing();\n },\n\n endDrawing: function () {\n this._drawing = false;\n this.tools.unregisterForDrawing(this);\n this.onEndDrawing();\n },\n\n onDrawingClick: function (e) {\n if (!this.drawing()) return;\n L.Editable.makeCancellable(e);\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:click: CancelableEvent\n // Fired when user `click` while drawing, before any internal action is being processed.\n this.fireAndForward('editable:drawing:click', e);\n if (e._cancelled) return;\n if (!this.isConnected()) this.connect(e);\n this.processDrawingClick(e);\n },\n\n isConnected: function () {\n return this.map.hasLayer(this.feature);\n },\n\n connect: function (e) {\n this.tools.connectCreatedToMap(this.feature);\n this.tools.editLayer.addLayer(this.editLayer);\n },\n\n onMove: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:move: Event\n // Fired when `move` mouse while drawing, while dragging a marker, and while dragging a vertex.\n this.fireAndForward('editable:drawing:move', e);\n },\n\n onDrawingMouseMove: function (e) {\n this.onMove(e);\n },\n\n _getEvents: function () {\n return {\n dragstart: this.onDragStart,\n drag: this.onDrag,\n dragend: this.onDragEnd,\n remove: this.disable\n };\n },\n\n onDragStart: function (e) {\n this.onEditing();\n // 🍂namespace Editable\n // 🍂event editable:dragstart: Event\n // Fired before a path feature is dragged.\n this.fireAndForward('editable:dragstart', e);\n },\n\n onDrag: function (e) {\n this.onMove(e);\n // 🍂namespace Editable\n // 🍂event editable:drag: Event\n // Fired when a path feature is being dragged.\n this.fireAndForward('editable:drag', e);\n },\n\n onDragEnd: function (e) {\n // 🍂namespace Editable\n // 🍂event editable:dragend: Event\n // Fired after a path feature has been dragged.\n this.fireAndForward('editable:dragend', e);\n }\n\n });\n\n // 🍂namespace Editable; 🍂class MarkerEditor; 🍂aka L.Editable.MarkerEditor\n // 🍂inherits BaseEditor\n // Editor for Marker.\n L.Editable.MarkerEditor = L.Editable.BaseEditor.extend({\n\n onDrawingMouseMove: function (e) {\n L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e);\n if (this._drawing) this.feature.setLatLng(e.latlng);\n },\n\n processDrawingClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Drawing events\n // 🍂event editable:drawing:clicked: Event\n // Fired when user `click` while drawing, after all internal actions.\n this.fireAndForward('editable:drawing:clicked', e);\n this.commitDrawing(e);\n },\n\n connect: function (e) {\n // On touch, the latlng has not been updated because there is\n // no mousemove.\n if (e) this.feature._latlng = e.latlng;\n L.Editable.BaseEditor.prototype.connect.call(this, e);\n }\n\n });\n\n // 🍂namespace Editable; 🍂class PathEditor; 🍂aka L.Editable.PathEditor\n // 🍂inherits BaseEditor\n // Base class for all path editors.\n L.Editable.PathEditor = L.Editable.BaseEditor.extend({\n\n CLOSED: false,\n MIN_VERTEX: 2,\n\n addHooks: function () {\n L.Editable.BaseEditor.prototype.addHooks.call(this);\n if (this.feature) this.initVertexMarkers();\n return this;\n },\n\n initVertexMarkers: function (latlngs) {\n if (!this.enabled()) return;\n latlngs = latlngs || this.getLatLngs();\n if (isFlat(latlngs)) this.addVertexMarkers(latlngs);\n else for (var i = 0; i < latlngs.length; i++) this.initVertexMarkers(latlngs[i]);\n },\n\n getLatLngs: function () {\n return this.feature.getLatLngs();\n },\n\n // 🍂method reset()\n // Rebuild edit elements (Vertex, MiddleMarker, etc.).\n reset: function () {\n this.editLayer.clearLayers();\n this.initVertexMarkers();\n },\n\n addVertexMarker: function (latlng, latlngs) {\n return new this.tools.options.vertexMarkerClass(latlng, latlngs, this);\n },\n\n onNewVertex: function (vertex) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:new: VertexEvent\n // Fired when a new vertex is created.\n this.fireAndForward('editable:vertex:new', {latlng: vertex.latlng, vertex: vertex});\n },\n\n addVertexMarkers: function (latlngs) {\n for (var i = 0; i < latlngs.length; i++) {\n this.addVertexMarker(latlngs[i], latlngs);\n }\n },\n\n refreshVertexMarkers: function (latlngs) {\n latlngs = latlngs || this.getDefaultLatLngs();\n for (var i = 0; i < latlngs.length; i++) {\n latlngs[i].__vertex.update();\n }\n },\n\n addMiddleMarker: function (left, right, latlngs) {\n return new this.tools.options.middleMarkerClass(left, right, latlngs, this);\n },\n\n onVertexMarkerClick: function (e) {\n L.Editable.makeCancellable(e);\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:click: CancelableVertexEvent\n // Fired when a `click` is issued on a vertex, before any internal action is being processed.\n this.fireAndForward('editable:vertex:click', e);\n if (e._cancelled) return;\n if (this.tools.drawing() && this.tools._drawingEditor !== this) return;\n var index = e.vertex.getIndex(), commit;\n if (e.originalEvent.ctrlKey) {\n this.onVertexMarkerCtrlClick(e);\n } else if (e.originalEvent.altKey) {\n this.onVertexMarkerAltClick(e);\n } else if (e.originalEvent.shiftKey) {\n this.onVertexMarkerShiftClick(e);\n } else if (e.originalEvent.metaKey) {\n this.onVertexMarkerMetaKeyClick(e);\n } else if (index === e.vertex.getLastIndex() && this._drawing === L.Editable.FORWARD) {\n if (index >= this.MIN_VERTEX - 1) commit = true;\n } else if (index === 0 && this._drawing === L.Editable.BACKWARD && this._drawnLatLngs.length >= this.MIN_VERTEX) {\n commit = true;\n } else if (index === 0 && this._drawing === L.Editable.FORWARD && this._drawnLatLngs.length >= this.MIN_VERTEX && this.CLOSED) {\n commit = true; // Allow to close on first point also for polygons\n } else {\n this.onVertexRawMarkerClick(e);\n }\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:clicked: VertexEvent\n // Fired when a `click` is issued on a vertex, after all internal actions.\n this.fireAndForward('editable:vertex:clicked', e);\n if (commit) this.commitDrawing(e);\n },\n\n onVertexRawMarkerClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:rawclick: CancelableVertexEvent\n // Fired when a `click` is issued on a vertex without any special key and without being in drawing mode.\n this.fireAndForward('editable:vertex:rawclick', e);\n if (e._cancelled) return;\n if (!this.vertexCanBeDeleted(e.vertex)) return;\n e.vertex.delete();\n },\n\n vertexCanBeDeleted: function (vertex) {\n return vertex.latlngs.length > this.MIN_VERTEX;\n },\n\n onVertexDeleted: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:deleted: VertexEvent\n // Fired after a vertex has been deleted by user.\n this.fireAndForward('editable:vertex:deleted', e);\n },\n\n onVertexMarkerCtrlClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:ctrlclick: VertexEvent\n // Fired when a `click` with `ctrlKey` is issued on a vertex.\n this.fireAndForward('editable:vertex:ctrlclick', e);\n },\n\n onVertexMarkerShiftClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:shiftclick: VertexEvent\n // Fired when a `click` with `shiftKey` is issued on a vertex.\n this.fireAndForward('editable:vertex:shiftclick', e);\n },\n\n onVertexMarkerMetaKeyClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:metakeyclick: VertexEvent\n // Fired when a `click` with `metaKey` is issued on a vertex.\n this.fireAndForward('editable:vertex:metakeyclick', e);\n },\n\n onVertexMarkerAltClick: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:altclick: VertexEvent\n // Fired when a `click` with `altKey` is issued on a vertex.\n this.fireAndForward('editable:vertex:altclick', e);\n },\n\n onVertexMarkerContextMenu: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:contextmenu: VertexEvent\n // Fired when a `contextmenu` is issued on a vertex.\n this.fireAndForward('editable:vertex:contextmenu', e);\n },\n\n onVertexMarkerMouseDown: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:mousedown: VertexEvent\n // Fired when user `mousedown` a vertex.\n this.fireAndForward('editable:vertex:mousedown', e);\n },\n\n onMiddleMarkerMouseDown: function (e) {\n // 🍂namespace Editable\n // 🍂section MiddleMarker events\n // 🍂event editable:middlemarker:mousedown: VertexEvent\n // Fired when user `mousedown` a middle marker.\n this.fireAndForward('editable:middlemarker:mousedown', e);\n },\n\n onVertexMarkerDrag: function (e) {\n this.onMove(e);\n if (this.feature._bounds) this.extendBounds(e);\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:drag: VertexEvent\n // Fired when a vertex is dragged by user.\n this.fireAndForward('editable:vertex:drag', e);\n },\n\n onVertexMarkerDragStart: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:dragstart: VertexEvent\n // Fired before a vertex is dragged by user.\n this.fireAndForward('editable:vertex:dragstart', e);\n },\n\n onVertexMarkerDragEnd: function (e) {\n // 🍂namespace Editable\n // 🍂section Vertex events\n // 🍂event editable:vertex:dragend: VertexEvent\n // Fired after a vertex is dragged by user.\n this.fireAndForward('editable:vertex:dragend', e);\n },\n\n setDrawnLatLngs: function (latlngs) {\n this._drawnLatLngs = latlngs || this.getDefaultLatLngs();\n },\n\n startDrawing: function () {\n if (!this._drawnLatLngs) this.setDrawnLatLngs();\n L.Editable.BaseEditor.prototype.startDrawing.call(this);\n },\n\n startDrawingForward: function () {\n this.startDrawing();\n },\n\n endDrawing: function () {\n this.tools.detachForwardLineGuide();\n this.tools.detachBackwardLineGuide();\n if (this._drawnLatLngs && this._drawnLatLngs.length < this.MIN_VERTEX) this.deleteShape(this._drawnLatLngs);\n L.Editable.BaseEditor.prototype.endDrawing.call(this);\n delete this._drawnLatLngs;\n },\n\n addLatLng: function (latlng) {\n if (this._drawing === L.Editable.FORWARD) this._drawnLatLngs.push(latlng);\n else this._drawnLatLngs.unshift(latlng);\n this.feature._bounds.extend(latlng);\n var vertex = this.addVertexMarker(latlng, this._drawnLatLngs);\n this.onNewVertex(vertex);\n this.refresh();\n },\n\n newPointForward: function (latlng) {\n this.addLatLng(latlng);\n this.tools.attachForwardLineGuide();\n this.tools.anchorForwardLineGuide(latlng);\n },\n\n newPointBackward: function (latlng) {\n this.addLatLng(latlng);\n this.tools.anchorBackwardLineGuide(latlng);\n },\n\n // 🍂namespace PathEditor\n // 🍂method push()\n // Programmatically add a point while drawing.\n push: function (latlng) {\n if (!latlng) return console.error('L.Editable.PathEditor.push expect a vaild latlng as parameter');\n if (this._drawing === L.Editable.FORWARD) this.newPointForward(latlng);\n else this.newPointBackward(latlng);\n },\n\n removeLatLng: function (latlng) {\n latlng.__vertex.delete();\n this.refresh();\n },\n\n // 🍂method pop(): L.LatLng or null\n // Programmatically remove last point (if any) while drawing.\n pop: function () {\n if (this._drawnLatLngs.length <= 1) return;\n var latlng;\n if (this._drawing === L.Editable.FORWARD) latlng = this._drawnLatLngs[this._drawnLatLngs.length - 1];\n else latlng = this._drawnLatLngs[0];\n this.removeLatLng(latlng);\n if (this._drawing === L.Editable.FORWARD) this.tools.anchorForwardLineGuide(this._drawnLatLngs[this._drawnLatLngs.length - 1]);\n else this.tools.anchorForwardLineGuide(this._drawnLatLngs[0]);\n return latlng;\n },\n\n processDrawingClick: function (e) {\n if (e.vertex && e.vertex.editor === this) return;\n if (this._drawing === L.Editable.FORWARD) this.newPointForward(e.latlng);\n else this.newPointBackward(e.latlng);\n this.fireAndForward('editable:drawing:clicked', e);\n },\n\n onDrawingMouseMove: function (e) {\n L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e);\n if (this._drawing) {\n this.tools.moveForwardLineGuide(e.latlng);\n this.tools.moveBackwardLineGuide(e.latlng);\n }\n },\n\n refresh: function () {\n this.feature.redraw();\n this.onEditing();\n },\n\n // 🍂namespace PathEditor\n // 🍂method newShape(latlng?: L.LatLng)\n // Add a new shape (Polyline, Polygon) in a multi, and setup up drawing tools to draw it;\n // if optional `latlng` is given, start a path at this point.\n newShape: function (latlng) {\n var shape = this.addNewEmptyShape();\n if (!shape) return;\n this.setDrawnLatLngs(shape[0] || shape); // Polygon or polyline\n this.startDrawingForward();\n // 🍂namespace Editable\n // 🍂section Shape events\n // 🍂event editable:shape:new: ShapeEvent\n // Fired when a new shape is created in a multi (Polygon or Polyline).\n this.fireAndForward('editable:shape:new', {shape: shape});\n if (latlng) this.newPointForward(latlng);\n },\n\n deleteShape: function (shape, latlngs) {\n var e = {shape: shape};\n L.Editable.makeCancellable(e);\n // 🍂namespace Editable\n // 🍂section Shape events\n // 🍂event editable:shape:delete: CancelableShapeEvent\n // Fired before a new shape is deleted in a multi (Polygon or Polyline).\n this.fireAndForward('editable:shape:delete', e);\n if (e._cancelled) return;\n shape = this._deleteShape(shape, latlngs);\n if (this.ensureNotFlat) this.ensureNotFlat(); // Polygon.\n this.feature.setLatLngs(this.getLatLngs()); // Force bounds reset.\n this.refresh();\n this.reset();\n // 🍂namespace Editable\n // 🍂section Shape events\n // 🍂event editable:shape:deleted: ShapeEvent\n // Fired after a new shape is deleted in a multi (Polygon or Polyline).\n this.fireAndForward('editable:shape:deleted', {shape: shape});\n return shape;\n },\n\n _deleteShape: function (shape, latlngs) {\n latlngs = latlngs || this.getLatLngs();\n if (!latlngs.length) return;\n var self = this,\n inplaceDelete = function (latlngs, shape) {\n // Called when deleting a flat latlngs\n shape = latlngs.splice(0, Number.MAX_VALUE);\n return shape;\n },\n spliceDelete = function (latlngs, shape) {\n // Called when removing a latlngs inside an array\n latlngs.splice(latlngs.indexOf(shape), 1);\n if (!latlngs.length) self._deleteShape(latlngs);\n return shape;\n };\n if (latlngs === shape) return inplaceDelete(latlngs, shape);\n for (var i = 0; i < latlngs.length; i++) {\n if (latlngs[i] === shape) return spliceDelete(latlngs, shape);\n else if (latlngs[i].indexOf(shape) !== -1) return spliceDelete(latlngs[i], shape);\n }\n },\n\n // 🍂namespace PathEditor\n // 🍂method deleteShapeAt(latlng: L.LatLng): Array\n // Remove a path shape at the given `latlng`.\n deleteShapeAt: function (latlng) {\n var shape = this.feature.shapeAt(latlng);\n if (shape) return this.deleteShape(shape);\n },\n\n // 🍂method appendShape(shape: Array)\n // Append a new shape to the Polygon or Polyline.\n appendShape: function (shape) {\n this.insertShape(shape);\n },\n\n // 🍂method prependShape(shape: Array)\n // Prepend a new shape to the Polygon or Polyline.\n prependShape: function (shape) {\n this.insertShape(shape, 0);\n },\n\n // 🍂method insertShape(shape: Array, index: int)\n // Insert a new shape to the Polygon or Polyline at given index (default is to append).\n insertShape: function (shape, index) {\n this.ensureMulti();\n shape = this.formatShape(shape);\n if (typeof index === 'undefined') index = this.feature._latlngs.length;\n this.feature._latlngs.splice(index, 0, shape);\n this.feature.redraw();\n if (this._enabled) this.reset();\n },\n\n extendBounds: function (e) {\n this.feature._bounds.extend(e.vertex.latlng);\n },\n\n onDragStart: function (e) {\n this.editLayer.clearLayers();\n L.Editable.BaseEditor.prototype.onDragStart.call(this, e);\n },\n\n onDragEnd: function (e) {\n this.initVertexMarkers();\n L.Editable.BaseEditor.prototype.onDragEnd.call(this, e);\n }\n\n });\n\n // 🍂namespace Editable; 🍂class PolylineEditor; 🍂aka L.Editable.PolylineEditor\n // 🍂inherits PathEditor\n L.Editable.PolylineEditor = L.Editable.PathEditor.extend({\n\n startDrawingBackward: function () {\n this._drawing = L.Editable.BACKWARD;\n this.startDrawing();\n },\n\n // 🍂method continueBackward(latlngs?: Array)\n // Set up drawing tools to continue the line backward.\n continueBackward: function (latlngs) {\n if (this.drawing()) return;\n latlngs = latlngs || this.getDefaultLatLngs();\n this.setDrawnLatLngs(latlngs);\n if (latlngs.length > 0) {\n this.tools.attachBackwardLineGuide();\n this.tools.anchorBackwardLineGuide(latlngs[0]);\n }\n this.startDrawingBackward();\n },\n\n // 🍂method continueForward(latlngs?: Array)\n // Set up drawing tools to continue the line forward.\n continueForward: function (latlngs) {\n if (this.drawing()) return;\n latlngs = latlngs || this.getDefaultLatLngs();\n this.setDrawnLatLngs(latlngs);\n if (latlngs.length > 0) {\n this.tools.attachForwardLineGuide();\n this.tools.anchorForwardLineGuide(latlngs[latlngs.length - 1]);\n }\n this.startDrawingForward();\n },\n\n getDefaultLatLngs: function (latlngs) {\n latlngs = latlngs || this.feature._latlngs;\n if (!latlngs.length || latlngs[0] instanceof L.LatLng) return latlngs;\n else return this.getDefaultLatLngs(latlngs[0]);\n },\n\n ensureMulti: function () {\n if (this.feature._latlngs.length && isFlat(this.feature._latlngs)) {\n this.feature._latlngs = [this.feature._latlngs];\n }\n },\n\n addNewEmptyShape: function () {\n if (this.feature._latlngs.length) {\n var shape = [];\n this.appendShape(shape);\n return shape;\n } else {\n return this.feature._latlngs;\n }\n },\n\n formatShape: function (shape) {\n if (isFlat(shape)) return shape;\n else if (shape[0]) return this.formatShape(shape[0]);\n },\n\n // 🍂method splitShape(latlngs?: Array, index: int)\n // Split the given `latlngs` shape at index `index` and integrate new shape in instance `latlngs`.\n splitShape: function (shape, index) {\n if (!index || index >= shape.length - 1) return;\n this.ensureMulti();\n var shapeIndex = this.feature._latlngs.indexOf(shape);\n if (shapeIndex === -1) return;\n var first = shape.slice(0, index + 1),\n second = shape.slice(index);\n // We deal with reference, we don't want twice the same latlng around.\n second[0] = L.latLng(second[0].lat, second[0].lng, second[0].alt);\n this.feature._latlngs.splice(shapeIndex, 1, first, second);\n this.refresh();\n this.reset();\n }\n\n });\n\n // 🍂namespace Editable; 🍂class PolygonEditor; 🍂aka L.Editable.PolygonEditor\n // 🍂inherits PathEditor\n L.Editable.PolygonEditor = L.Editable.PathEditor.extend({\n\n CLOSED: true,\n MIN_VERTEX: 3,\n\n newPointForward: function (latlng) {\n L.Editable.PathEditor.prototype.newPointForward.call(this, latlng);\n if (!this.tools.backwardLineGuide._latlngs.length) this.tools.anchorBackwardLineGuide(latlng);\n if (this._drawnLatLngs.length === 2) this.tools.attachBackwardLineGuide();\n },\n\n addNewEmptyHole: function (latlng) {\n this.ensureNotFlat();\n var latlngs = this.feature.shapeAt(latlng);\n if (!latlngs) return;\n var holes = [];\n latlngs.push(holes);\n return holes;\n },\n\n // 🍂method newHole(latlng?: L.LatLng, index: int)\n // Set up drawing tools for creating a new hole on the Polygon. If the `latlng` param is given, a first point is created.\n newHole: function (latlng) {\n var holes = this.addNewEmptyHole(latlng);\n if (!holes) return;\n this.setDrawnLatLngs(holes);\n this.startDrawingForward();\n if (latlng) this.newPointForward(latlng);\n },\n\n addNewEmptyShape: function () {\n if (this.feature._latlngs.length && this.feature._latlngs[0].length) {\n var shape = [];\n this.appendShape(shape);\n return shape;\n } else {\n return this.feature._latlngs;\n }\n },\n\n ensureMulti: function () {\n if (this.feature._latlngs.length && isFlat(this.feature._latlngs[0])) {\n this.feature._latlngs = [this.feature._latlngs];\n }\n },\n\n ensureNotFlat: function () {\n if (!this.feature._latlngs.length || isFlat(this.feature._latlngs)) this.feature._latlngs = [this.feature._latlngs];\n },\n\n vertexCanBeDeleted: function (vertex) {\n var parent = this.feature.parentShape(vertex.latlngs),\n idx = L.Util.indexOf(parent, vertex.latlngs);\n if (idx > 0) return true; // Holes can be totally deleted without removing the layer itself.\n return L.Editable.PathEditor.prototype.vertexCanBeDeleted.call(this, vertex);\n },\n\n getDefaultLatLngs: function () {\n if (!this.feature._latlngs.length) this.feature._latlngs.push([]);\n return this.feature._latlngs[0];\n },\n\n formatShape: function (shape) {\n // [[1, 2], [3, 4]] => must be nested\n // [] => must be nested\n // [[]] => is already nested\n if (isFlat(shape) && (!shape[0] || shape[0].length !== 0)) return [shape];\n else return shape;\n }\n\n });\n\n // 🍂namespace Editable; 🍂class RectangleEditor; 🍂aka L.Editable.RectangleEditor\n // 🍂inherits PathEditor\n L.Editable.RectangleEditor = L.Editable.PathEditor.extend({\n\n CLOSED: true,\n MIN_VERTEX: 4,\n\n options: {\n skipMiddleMarkers: true\n },\n\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 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 onDrawingMouseDown: function (e) {\n L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e);\n this.connect();\n var latlngs = this.getDefaultLatLngs();\n // L.Polygon._convertLatLngs removes last latlng if it equals first point,\n // which is the case here as all latlngs are [0, 0]\n if (latlngs.length === 3) latlngs.push(e.latlng);\n var bounds = new L.LatLngBounds(e.latlng, e.latlng);\n this.updateBounds(bounds);\n this.updateLatLngs(bounds);\n this.refresh();\n this.reset();\n // Stop dragging map.\n // L.Draggable has two workflows:\n // - mousedown => mousemove => mouseup\n // - touchstart => touchmove => touchend\n // Problem: L.Map.Tap does not allow us to listen to touchstart, so we only\n // can deal with mousedown, but then when in a touch device, we are dealing with\n // simulated events (actually simulated by L.Map.Tap), which are no more taken\n // into account by L.Draggable.\n // Ref.: https://github.com/Leaflet/Leaflet.Editable/issues/103\n e.originalEvent._simulated = false;\n this.map.dragging._draggable._onUp(e.originalEvent);\n // Now transfer ongoing drag action to the bottom right corner.\n // Should we refine which corne will handle the drag according to\n // drag direction?\n latlngs[3].__vertex.dragging._draggable._onDown(e.originalEvent);\n },\n\n onDrawingMouseUp: function (e) {\n this.commitDrawing(e);\n e.originalEvent._simulated = false;\n L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e);\n },\n\n onDrawingMouseMove: function (e) {\n e.originalEvent._simulated = false;\n L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e);\n },\n\n\n getDefaultLatLngs: function (latlngs) {\n return latlngs || this.feature._latlngs[0];\n },\n\n updateBounds: function (bounds) {\n this.feature._bounds = bounds;\n },\n\n updateLatLngs: function (bounds) {\n var latlngs = this.getDefaultLatLngs(),\n newLatlngs = this.feature._boundsToLatLngs(bounds);\n // Keep references.\n for (var i = 0; i < latlngs.length; i++) {\n latlngs[i].update(newLatlngs[i]);\n };\n }\n\n });\n\n // 🍂namespace Editable; 🍂class CircleEditor; 🍂aka L.Editable.CircleEditor\n // 🍂inherits PathEditor\n L.Editable.CircleEditor = L.Editable.PathEditor.extend({\n\n MIN_VERTEX: 2,\n\n options: {\n skipMiddleMarkers: true\n },\n\n initialize: function (map, feature, options) {\n L.Editable.PathEditor.prototype.initialize.call(this, map, feature, options);\n this._resizeLatLng = this.computeResizeLatLng();\n },\n\n computeResizeLatLng: function () {\n // While circle is not added to the map, _radius is not set.\n var delta = (this.feature._radius || this.feature._mRadius) * Math.cos(Math.PI / 4),\n point = this.map.project(this.feature._latlng);\n return this.map.unproject([point.x + delta, point.y - delta]);\n },\n\n updateResizeLatLng: function () {\n this._resizeLatLng.update(this.computeResizeLatLng());\n this._resizeLatLng.__vertex.update();\n },\n\n getLatLngs: function () {\n return [this.feature._latlng, this._resizeLatLng];\n },\n\n getDefaultLatLngs: function () {\n return this.getLatLngs();\n },\n\n onVertexMarkerDrag: function (e) {\n if (e.vertex.getIndex() === 1) this.resize(e);\n else this.updateResizeLatLng(e);\n L.Editable.PathEditor.prototype.onVertexMarkerDrag.call(this, e);\n },\n\n resize: function (e) {\n var radius = this.feature._latlng.distanceTo(e.latlng)\n this.feature.setRadius(radius);\n },\n\n onDrawingMouseDown: function (e) {\n L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e);\n this._resizeLatLng.update(e.latlng);\n this.feature._latlng.update(e.latlng);\n this.connect();\n // Stop dragging map.\n e.originalEvent._simulated = false;\n this.map.dragging._draggable._onUp(e.originalEvent);\n // Now transfer ongoing drag action to the radius handler.\n this._resizeLatLng.__vertex.dragging._draggable._onDown(e.originalEvent);\n },\n\n onDrawingMouseUp: function (e) {\n this.commitDrawing(e);\n e.originalEvent._simulated = false;\n L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e);\n },\n\n onDrawingMouseMove: function (e) {\n e.originalEvent._simulated = false;\n L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e);\n },\n\n onDrag: function (e) {\n L.Editable.PathEditor.prototype.onDrag.call(this, e);\n this.feature.dragging.updateLatLng(this._resizeLatLng);\n }\n\n });\n\n // 🍂namespace Editable; 🍂class EditableMixin\n // `EditableMixin` is included to `L.Polyline`, `L.Polygon`, `L.Rectangle`, `L.Circle`\n // and `L.Marker`. It adds some methods to them.\n // *When editing is enabled, the editor is accessible on the instance with the\n // `editor` property.*\n var EditableMixin = {\n\n createEditor: function (map) {\n map = map || this._map;\n var tools = (this.options.editOptions || {}).editTools || map.editTools;\n if (!tools) throw Error('Unable to detect Editable instance.')\n var Klass = this.options.editorClass || this.getEditorClass(tools);\n return new Klass(map, this, this.options.editOptions);\n },\n\n // 🍂method enableEdit(map?: L.Map): this.editor\n // Enable editing, by creating an editor if not existing, and then calling `enable` on it.\n enableEdit: function (map) {\n if (!this.editor) this.createEditor(map);\n this.editor.enable();\n return this.editor;\n },\n\n // 🍂method editEnabled(): boolean\n // Return true if current instance has an editor attached, and this editor is enabled.\n editEnabled: function () {\n return this.editor && this.editor.enabled();\n },\n\n // 🍂method disableEdit()\n // Disable editing, also remove the editor property reference.\n disableEdit: function () {\n if (this.editor) {\n this.editor.disable();\n delete this.editor;\n }\n },\n\n // 🍂method toggleEdit()\n // Enable or disable editing, according to current status.\n toggleEdit: function () {\n if (this.editEnabled()) this.disableEdit();\n else this.enableEdit();\n },\n\n _onEditableAdd: function () {\n if (this.editor) this.enableEdit();\n }\n\n };\n\n var PolylineMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.polylineEditorClass) ? tools.options.polylineEditorClass : L.Editable.PolylineEditor;\n },\n\n shapeAt: function (latlng, latlngs) {\n // We can have those cases:\n // - latlngs are just a flat array of latlngs, use this\n // - latlngs is an array of arrays of latlngs, loop over\n var shape = null;\n latlngs = latlngs || this._latlngs;\n if (!latlngs.length) return shape;\n else if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs;\n else for (var i = 0; i < latlngs.length; i++) if (this.isInLatLngs(latlng, latlngs[i])) return latlngs[i];\n return shape;\n },\n\n isInLatLngs: function (l, latlngs) {\n if (!latlngs) return false;\n var i, k, len, part = [], p,\n w = this._clickTolerance();\n this._projectLatlngs(latlngs, part, this._pxBounds);\n part = part[0];\n p = this._map.latLngToLayerPoint(l);\n\n if (!this._pxBounds.contains(p)) { return false; }\n for (i = 1, len = part.length, k = 0; i < len; k = i++) {\n\n if (L.LineUtil.pointToSegmentDistance(p, part[k], part[i]) <= w) {\n return true;\n }\n }\n return false;\n }\n\n };\n\n var PolygonMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.polygonEditorClass) ? tools.options.polygonEditorClass : L.Editable.PolygonEditor;\n },\n\n shapeAt: function (latlng, latlngs) {\n // We can have those cases:\n // - latlngs are just a flat array of latlngs, use this\n // - latlngs is an array of arrays of latlngs, this is a simple polygon (maybe with holes), use the first\n // - latlngs is an array of arrays of arrays, this is a multi, loop over\n var shape = null;\n latlngs = latlngs || this._latlngs;\n if (!latlngs.length) return shape;\n else if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs;\n else if (isFlat(latlngs[0]) && this.isInLatLngs(latlng, latlngs[0])) shape = latlngs;\n else for (var i = 0; i < latlngs.length; i++) if (this.isInLatLngs(latlng, latlngs[i][0])) return latlngs[i];\n return shape;\n },\n\n isInLatLngs: function (l, latlngs) {\n var inside = false, l1, l2, j, k, len2;\n\n for (j = 0, len2 = latlngs.length, k = len2 - 1; j < len2; k = j++) {\n l1 = latlngs[j];\n l2 = latlngs[k];\n\n if (((l1.lat > l.lat) !== (l2.lat > l.lat)) &&\n (l.lng < (l2.lng - l1.lng) * (l.lat - l1.lat) / (l2.lat - l1.lat) + l1.lng)) {\n inside = !inside;\n }\n }\n\n return inside;\n },\n\n parentShape: function (shape, latlngs) {\n latlngs = latlngs || this._latlngs;\n if (!latlngs) return;\n var idx = L.Util.indexOf(latlngs, shape);\n if (idx !== -1) return latlngs;\n for (var i = 0; i < latlngs.length; i++) {\n idx = L.Util.indexOf(latlngs[i], shape);\n if (idx !== -1) return latlngs[i];\n }\n }\n\n };\n\n\n var MarkerMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.markerEditorClass) ? tools.options.markerEditorClass : L.Editable.MarkerEditor;\n }\n\n };\n\n var RectangleMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.rectangleEditorClass) ? tools.options.rectangleEditorClass : L.Editable.RectangleEditor;\n }\n\n };\n\n var CircleMixin = {\n\n getEditorClass: function (tools) {\n return (tools && tools.options.circleEditorClass) ? tools.options.circleEditorClass : L.Editable.CircleEditor;\n }\n\n };\n\n var keepEditable = function () {\n // Make sure you can remove/readd an editable layer.\n this.on('add', this._onEditableAdd);\n };\n\n var isFlat = L.LineUtil.isFlat || L.LineUtil._flat || L.Polyline._flat; // <=> 1.1 compat.\n\n\n if (L.Polyline) {\n L.Polyline.include(EditableMixin);\n L.Polyline.include(PolylineMixin);\n L.Polyline.addInitHook(keepEditable);\n }\n if (L.Polygon) {\n L.Polygon.include(EditableMixin);\n L.Polygon.include(PolygonMixin);\n }\n if (L.Marker) {\n L.Marker.include(EditableMixin);\n L.Marker.include(MarkerMixin);\n L.Marker.addInitHook(keepEditable);\n }\n if (L.Rectangle) {\n L.Rectangle.include(EditableMixin);\n L.Rectangle.include(RectangleMixin);\n }\n if (L.Circle) {\n L.Circle.include(EditableMixin);\n L.Circle.include(CircleMixin);\n }\n\n L.LatLng.prototype.update = function (latlng) {\n latlng = L.latLng(latlng);\n this.lat = latlng.lat;\n this.lng = latlng.lng;\n }\n\n}, window));\n","'use strict';\n\n/* A Draggable that does not update the element position\nand takes care of only bubbling to targetted path in Canvas mode. */\nL.PathDraggable = L.Draggable.extend({\n\n initialize: function (path) {\n this._path = path;\n this._canvas = (path._map.getRenderer(path) instanceof L.Canvas);\n var element = this._canvas ? this._path._map.getRenderer(this._path)._container : this._path._path;\n L.Draggable.prototype.initialize.call(this, element, element, true);\n },\n\n _updatePosition: function () {\n var e = {originalEvent: this._lastEvent};\n this.fire('drag', e);\n },\n\n _onDown: function (e) {\n var first = e.touches ? e.touches[0] : e;\n this._startPoint = new L.Point(first.clientX, first.clientY);\n if (this._canvas && !this._path._containsPoint(this._path._map.mouseEventToLayerPoint(first))) { return; }\n L.Draggable.prototype._onDown.call(this, e);\n }\n\n});\n\n\nL.Handler.PathDrag = L.Handler.extend({\n\n initialize: function (path) {\n this._path = path;\n },\n\n getEvents: function () {\n return {\n dragstart: this._onDragStart,\n drag: this._onDrag,\n dragend: this._onDragEnd\n };\n },\n\n addHooks: function () {\n if (!this._draggable) { this._draggable = new L.PathDraggable(this._path); }\n this._draggable.on(this.getEvents(), this).enable();\n L.DomUtil.addClass(this._draggable._element, 'leaflet-path-draggable');\n },\n\n removeHooks: function () {\n this._draggable.off(this.getEvents(), this).disable();\n L.DomUtil.removeClass(this._draggable._element, 'leaflet-path-draggable');\n },\n\n moved: function () {\n return this._draggable && this._draggable._moved;\n },\n\n _onDragStart: function () {\n this._startPoint = this._draggable._startPoint;\n this._path\n .closePopup()\n .fire('movestart')\n .fire('dragstart');\n },\n\n _onDrag: function (e) {\n var path = this._path,\n event = (e.originalEvent.touches && e.originalEvent.touches.length === 1 ? e.originalEvent.touches[0] : e.originalEvent),\n newPoint = L.point(event.clientX, event.clientY),\n latlng = path._map.layerPointToLatLng(newPoint);\n\n this._offset = newPoint.subtract(this._startPoint);\n this._startPoint = newPoint;\n\n this._path.eachLatLng(this.updateLatLng, this);\n path.redraw();\n\n e.latlng = latlng;\n e.offset = this._offset;\n path.fire('move', e)\n .fire('drag', e);\n },\n\n _onDragEnd: function (e) {\n if (this._path._bounds) this.resetBounds();\n this._path.fire('moveend')\n .fire('dragend', e);\n },\n\n latLngToLayerPoint: function (latlng) {\n // Same as map.latLngToLayerPoint, but without the round().\n var projectedPoint = this._path._map.project(L.latLng(latlng));\n return projectedPoint._subtract(this._path._map.getPixelOrigin());\n },\n\n updateLatLng: function (latlng) {\n var oldPoint = this.latLngToLayerPoint(latlng);\n oldPoint._add(this._offset);\n var newLatLng = this._path._map.layerPointToLatLng(oldPoint);\n latlng.lat = newLatLng.lat;\n latlng.lng = newLatLng.lng;\n },\n\n resetBounds: function () {\n this._path._bounds = new L.LatLngBounds();\n this._path.eachLatLng(function (latlng) {\n this._bounds.extend(latlng);\n });\n }\n\n});\n\nL.Path.include({\n\n eachLatLng: function (callback, context) {\n context = context || this;\n var loop = function (latlngs) {\n for (var i = 0; i < latlngs.length; i++) {\n if (L.Util.isArray(latlngs[i])) loop(latlngs[i]);\n else callback.call(context, latlngs[i]);\n }\n };\n loop(this.getLatLngs ? this.getLatLngs() : [this.getLatLng()]);\n }\n\n});\n\nL.Path.addInitHook(function () {\n\n this.dragging = new L.Handler.PathDrag(this);\n if (this.options.draggable) {\n this.once('add', function () {\n this.dragging.enable();\n });\n }\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 button behavior\n this.addCheckboxToggleBehavior();\n this.addEnableToggleBehavior();\n }\n \n // Add Select/Deselect all button behavior\n addCheckboxToggleBehavior() {\n $(\"[data-behavior='metadata-select']\").each(function(){\n var button = $(this)\n var parentCell = button.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 swapSelectAllButtonText(button, columnRows);\n // Add the check/uncheck behavior to the button\n // and swap the button text if necessary\n button.on('click', function(e){\n e.preventDefault();\n var allChecked = allCheckboxesChecked(columnRows);\n columnRows.each(function(){\n $(\"input[type='checkbox']\", $(this)).prop('checked', !allChecked);\n swapSelectAllButtonText(button, columnRows);\n });\n });\n // Swap button text when a checkbox value changes\n checkboxes.each(function(){\n $(this).on('change', function(){\n swapSelectAllButtonText(button, columnRows);\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 // Swap the button text to \"Deselect all\"\n // when all the checkboxes are checked and\n // \"Select all\" when any are unchecked\n function swapSelectAllButtonText(button, elements) {\n if ( allCheckboxesChecked(elements) ) {\n button.text(button.data('deselect-text'));\n } else {\n button.text(button.data('select-text'));\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}","export 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}","const Spotlight = function() {\n var buffer = [];\n return {\n onLoad: function(func) {\n buffer.push(func);\n },\n\n activate: function() {\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\n\nexport default Spotlight\n\nBlacklight.onLoad(function() {\n Spotlight.activate();\n});\n\n","import { addImageSelector } from 'spotlight/admin/add_image_selector'\nimport Core from 'spotlight/core'\n\nexport default class Crop {\n constructor(cropArea) {\n this.cropArea = cropArea;\n this.cropArea.data('iiifCropper', this);\n this.cropSelector = '[data-cropper=\"' + cropArea.data('cropperKey') + '\"]';\n this.cropTool = $(this.cropSelector);\n this.formPrefix = this.cropTool.data('form-prefix');\n this.iiifUrlField = $('#' + this.formPrefix + '_iiif_tilesource');\n this.iiifRegionField = $('#' + this.formPrefix + '_iiif_region');\n this.iiifManifestField = $('#' + this.formPrefix + '_iiif_manifest_url');\n this.iiifCanvasField = $('#' + this.formPrefix + '_iiif_canvas_id');\n this.iiifImageField = $('#' + this.formPrefix + '_iiif_image_id');\n\n this.form = cropArea.closest('form');\n this.tileSource = null;\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 this.cropperMap = L.map(this.cropArea.attr('id'), {\n editable: true,\n center: [0, 0],\n crs: L.CRS.Simple,\n zoom: 0,\n editOptions: {\n rectangleEditorClass: this.aspectRatioPreservingRectangleEditor(this.aspectRatio())\n }\n });\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 var panel = $(input.data('target-panel'));\n\n addImageSelector(input, panel, this.iiifManifestField.val(), !this.iiifImageField.val());\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.formPrefix + \"_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 {\n connect() {\n $('[data-behavior=\"iiif-cropper\"]').each(function() {\n var cropElement = $(this)\n new Crop(cropElement).render()\n })\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","export default class {\n connect() {\n $('[data-autocomplete-tag=\"true\"]').each(function(_i, el) {\n var $el = $(el);\n // By default tags input binds on page ready to [data-role=tagsinput],\n // however, that doesn't work with Turbolinks. So we init manually:\n $el.tagsinput();\n\n var tags = new Bloodhound({\n datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },\n queryTokenizer: Bloodhound.tokenizers.whitespace,\n limit: 100,\n prefetch: {\n url: $el.data('autocomplete-url'),\n ttl: 1,\n filter: function(list) {\n // Let the dom know that the response has been returned\n $el.attr('data-autocomplete-fetched', true);\n return $.map(list, function(tag) { return { name: tag }; });\n }\n }\n });\n\n tags.initialize();\n\n $el.tagsinput('input').typeahead({highlight: true, hint: false}, {\n name: 'tags',\n displayKey: 'name',\n source: tags.ttAdapter()\n }).bind('typeahead:selected', $.proxy(function (obj, datum) {\n $el.tagsinput('add', datum.name);\n $el.tagsinput('input').typeahead('val', '');\n })).bind('blur', function() {\n $el.tagsinput('add', $el.tagsinput('input').typeahead('val'));\n $el.tagsinput('input').typeahead('val', '');\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 $('.contact-email-delete').on('ajax:success', function() {\n $(this).closest('.contact').fadeOut(250, function() { $(this).remove(); });\n });\n\n $('.contact-email-delete').on('ajax:error', function(event, _xhr, _status, error) {\n var errSpan = $(this).closest('.contact').find('.contact-email-delete-error');\n errSpan.show();\n errSpan.find('.error-msg').first().text(error || event.detail[1]);\n });\n\n $('.btn-with-tooltip').tooltip();\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(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', 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 $.ajax({ url: $(el).data('lock'), type: 'POST', data: { _method: \"delete\" }, async: false});\n $(el).removeAttr('data-lock');\n }\n\n connect() {\n $('[data-lock]').on('click', (e) => {\n this.delete_lock(e.target);\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\n(function($){\n $.fn.spotlightSearchTypeAhead = function( options ) {\n $.each(this, function(){\n addAutocompleteBehavior($(this));\n });\n\n function addAutocompleteBehavior( typeAheadInput, _ ) {\n var settings = $.extend({\n displayKey: 'title',\n minLength: 0,\n highlight: (typeAheadInput.data('autocomplete-highlight') || true),\n hint: (typeAheadInput.data('autocomplete-hint') || false),\n autoselect: (typeAheadInput.data('autocomplete-autoselect') || true)\n }, options);\n typeAheadInput.typeahead(settings, {\n displayKey: settings.displayKey,\n source: settings.bloodhound.ttAdapter(),\n templates: {\n suggestion: settings.template\n }\n })\n }\n return this;\n }\n})( jQuery );\n\nfunction itemsBloodhound() {\n var results = new Bloodhound({\n datumTokenizer: function(d) {\n return Bloodhound.tokenizers.whitespace(d.title);\n },\n queryTokenizer: Bloodhound.tokenizers.whitespace,\n limit: 100,\n remote: {\n url: $('form[data-autocomplete-exhibit-catalog-path]').data('autocomplete-exhibit-catalog-path').replace(\"%25QUERY\", \"%QUERY\"),\n filter: function(response) {\n return $.map(response['docs'], function(doc) {\n return doc;\n })\n }\n }\n });\n results.initialize();\n return results;\n};\n\nfunction templateFunc(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\">${obj.title}</span><br/><small> ${obj.description}</small></div>`)\n}\n\nexport function addAutocompletetoFeaturedImage(){\n if($('[data-featured-image-typeahead]').length > 0) {\n $('[data-featured-image-typeahead]').spotlightSearchTypeAhead({bloodhound: itemsBloodhound(), template: templateFunc}).on('click', function() {\n $(this).select();\n }).on('typeahead:selected typeahead:autocompleted', function(e, data) {\n var panel = $($(this).data('target-panel'));\n addImageSelector($(this), panel, data.iiif_manifest, true);\n $($(this).data('id-field')).val(data['global_id']);\n $(this).attr('type', 'text');\n });\n }\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","const Module = (function() {\n var nestableSelector = '[data-behavior=\"nestable\"]';\n return {\n init: function(selector){\n\n $(selector || nestableSelector).each(function(){\n // Because the Rails helper will not maintain the case that Nestable\n // expects, we just need to do this manual conversion. :(\n var data = $(this).data();\n data.expandBtnHTML = data.expandBtnHtml;\n data.collapseBtnHTML = data.collapseBtnHtml;\n $(this).nestable(data);\n updateWeightsAndRelationships($(this));\n });\n }\n };\n function updateWeightsAndRelationships(nestedList){\n nestedList.on('change', function(event){\n var container = $(event.currentTarget);\n var data = $(this).nestable('serialize');\n var weight = 0;\n for(var i in data){\n var parent_id = data[i]['id'];\n const parent_node = findNode(parent_id, container);\n setWeight(parent_node, weight++);\n if(data[i]['children']){\n var children = data[i]['children'];\n for(var child in children){\n var id = children[child]['id']\n var child_node = findNode(id, container);\n setWeight(child_node, weight++);\n setParent(child_node, parent_id);\n }\n } else {\n setParent(parent_node, \"\");\n }\n }\n });\n\n }\n function findNode(id, container) {\n return container.find(\"[data-id=\"+id+\"]\");\n }\n\n function setWeight(node, weight) {\n weight_field(node).val(weight);\n }\n\n function setParent(node, parent_id) {\n parent_page_field(node).val(parent_id);\n }\n\n /* find the input element with data-property=\"weight\" that is nested under the given node */\n function weight_field(node) {\n return find_property(node, \"weight\");\n }\n\n /* find the input element with data-property=\"parent_page\" that is nested under the given node */\n function parent_page_field(node){\n return find_property(node, \"parent_page\");\n }\n\n function find_property(node, property) {\n return node.find(\"input[data-property=\" + property + \"]\");\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}","/*\nNOTE: this is copied & adapted from BL8's checkbox_submit.js in order to have\nit accessible in a BL7-based spotlight. Once we drop support for BL7, this file\ncan be deleted and we can change visibility_toggle.es6 to import CheckboxSubmit\nfrom Blacklight.\n\nSee https://github.com/projectblacklight/blacklight/blob/main/app/javascript/blacklight/checkbox_submit.js\n*/\nexport default class CheckboxSubmit {\n constructor(form) {\n this.form = form\n }\n\n async clicked(evt) {\n this.spanTarget.innerHTML = this.form.getAttribute('data-inprogress')\n this.labelTarget.setAttribute('disabled', 'disabled');\n this.checkboxTarget.setAttribute('disabled', 'disabled');\n const csrfMeta = document.querySelector('meta[name=csrf-token]')\n const response = await fetch(this.formTarget.getAttribute('action'), {\n body: new FormData(this.formTarget),\n method: this.formTarget.getAttribute('method').toUpperCase(),\n headers: {\n 'Accept': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-Token': csrfMeta ? csrfMeta.content : ''\n }\n })\n this.labelTarget.removeAttribute('disabled')\n this.checkboxTarget.removeAttribute('disabled')\n if (response.ok) {\n this.updateStateFor(!this.checked)\n // Not used for our case in Spotlight (visibility toggle)\n // const json = await response.json()\n // document.querySelector('[data-role=bookmark-counter]').innerHTML = json.bookmarks.count\n } else {\n alert('Error')\n }\n }\n\n get checked() {\n return (this.form.querySelectorAll('input[name=_method][value=delete]').length != 0)\n }\n\n get formTarget() {\n return this.form\n }\n\n get labelTarget() {\n return this.form.querySelector('[data-checkboxsubmit-target=\"label\"]')\n }\n\n get checkboxTarget() {\n return this.form.querySelector('[data-checkboxsubmit-target=\"checkbox\"]')\n }\n\n get spanTarget() {\n return this.form.querySelector('[data-checkboxsubmit-target=\"span\"]')\n }\n\n updateStateFor(state) {\n this.checkboxTarget.checked = state\n\n if (state) {\n this.labelTarget.classList.add('checked')\n //Set the Rails hidden field that fakes an HTTP verb\n //properly for current state action.\n this.formTarget.querySelector('input[name=_method]').value = 'delete'\n this.spanTarget.innerHTML = this.form.getAttribute('data-present')\n } else {\n this.labelTarget.classList.remove('checked')\n this.formTarget.querySelector('input[name=_method]').value = 'put'\n this.spanTarget.innerHTML = this.form.getAttribute('data-absent')\n }\n }\n}\n","// Visibility toggle for items in an exhibit, based on Blacklight's bookmark toggle\n// See: https://github.com/projectblacklight/blacklight/blob/main/app/javascript/blacklight/bookmark_toggle.js\n\nimport CheckboxSubmit from 'spotlight/admin/checkbox_submit'\n\nconst VisibilityToggle = (e) => {\n if (e.target.matches('[data-checkboxsubmit-target=\"checkbox\"]')) {\n const form = e.target.closest('form')\n if (form) {\n if (!Blacklight.BookmarkToggle) new CheckboxSubmit(form).clicked(e)\n\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}\n\nVisibilityToggle.selector = 'form.visibility-toggle'\n\ndocument.addEventListener('click', VisibilityToggle)\n\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","(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').replace(\"%25QUERY\", \"%QUERY\"); };\n }\n\n if (this['transform_autocomplete_results'] === undefined) {\n this.transform_autocomplete_results = (val) => val\n }\n\n if (this['autocomplete_control'] === undefined) {\n this.autocomplete_control = function() { return `<input type=\"text\" class=\"st-input-string form-control item-input-field\" data-twitter-typeahead=\"true\" placeholder=\"${i18n.t(\"blocks:autocompleteable:placeholder\")}\"/>` };\n }\n\n if (this['bloodhoundOptions'] === undefined) {\n this.bloodhoundOptions = function() {\n return {\n remote: {\n url: this.autocomplete_url(),\n filter: this.transform_autocomplete_results\n }\n };\n };\n }\n },\n\n addAutocompletetoSirTrevorForm: function() {\n $('[data-twitter-typeahead]', this.inner).spotlightSearchTypeAhead({bloodhound: this.bloodhound(), template: this.autocomplete_template}).on('typeahead:selected typeahead:autocompleted', this.autocompletedHandler()).on( 'focus', function() {\n if($(this).val() === '') {\n $(this).data().ttTypeahead.input.trigger('queryChanged', '');\n }\n });\n },\n\n autocompletedHandler: function(e, data) {\n var context = this;\n\n return function(e, data) {\n $(this).typeahead(\"val\", \"\");\n $(this).val(\"\");\n\n context.createItemPanel($.extend(data, {display: \"true\"}));\n }\n },\n\n bloodhound: function() {\n var block = this;\n var results = new Bloodhound(Object.assign({\n datumTokenizer: function(d) {\n return Bloodhound.tokenizers.whitespace(d.title);\n },\n queryTokenizer: Bloodhound.tokenizers.whitespace,\n limit: 100,\n }, block.bloodhoundOptions()));\n results.initialize();\n return results;\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(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 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\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 form-inline dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(\"item_\" + data.id)}\">\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=\"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.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\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","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 $(this.inner).closest('form[data-autocomplete-exhibit-searches-path]').data('autocomplete-exhibit-searches-path').replace(\"%25QUERY\", \"%QUERY\");\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 return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${obj.full_title}</span><br/><small> ${obj.description}</small></div>`\n },\n\n bloodhoundOptions: function() {\n return {\n prefetch: {\n url: this.autocomplete_url(),\n ttl: 0\n }\n };\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 form-inline dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(\"item_\" + data.id)}\">\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 bloodhoundOptions: function() {\n var that = this;\n return {\n prefetch: {\n url: this.autocomplete_url(),\n ttl: 0,\n filter: function(response) {\n // Let the dom know that the response has been returned\n $(that.inner).attr('data-browse-groups-fetched', true);\n return response;\n }\n }\n };\n },\n\n autocomplete_control: function() {\n return `<input type=\"text\" class=\"st-input-string form-control item-input-field\" data-twitter-typeahead=\"true\" placeholder=\"${i18n.t(\"blocks:browse_group_categories:autocomplete\")}\"/>`\n },\n autocomplete_template: function(obj) {\n return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">\n <span class=\"autocomplete-title\">${obj.title}</span><br/></div>`\n },\n\n autocomplete_url: function() { return $(this.inner).closest('form[data-autocomplete-exhibit-browse-groups-path]').data('autocomplete-exhibit-browse-groups-path').replace(\"%25QUERY\", \"%QUERY\"); },\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 form-inline dd-item dd3-item\" data-resource-id=\"${resource_id}\" data-id=\"${index}\" id=\"${this.formId(\"item_\" + data.id)}\">\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 $(this.inner).closest('form[data-autocomplete-exhibit-pages-path]').data('autocomplete-exhibit-pages-path').replace(\"%25QUERY\", \"%QUERY\"); },\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 return `<div class=\"autocomplete-item${!obj.published ? ' blacklight-private' : ''}\">${thumbnail}\n <span class=\"autocomplete-title\">${obj.title}</span><br/><small> ${obj.description}</small></div>`\n },\n bloodhoundOptions: function() {\n return {\n prefetch: {\n url: this.autocomplete_url(),\n ttl: 0\n }\n };\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').replace(\"%25QUERY\", \"%QUERY\"); },\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\">${obj.title}</span><br/><small> ${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 return [\n // '<input type=\"hidden\" name=\"item[' + index + '][iiif_region]\" value=\"' + (data.iiif_region) + '\"/>',\n // for legacy compatiblity:\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 ].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\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\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 form-inline dd-item dd3-item\" data-id=\"${index}\" id=\"${this.formId(\"item_\" + dataId)}\">\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","// These scripts are in the vendor directory\nimport 'nestable'\nimport 'bootstrap-tagsinput'\nimport 'jquery.serializejson'\nimport 'leaflet-iiif'\nimport 'Leaflet.Editable'\nimport 'Path.Drag'\n\nimport 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 ExhibitTagAutocomplete from 'spotlight/admin/exhibit_tag_autocomplete'\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 ExhibitTagAutocomplete().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 UserIndex from 'spotlight/user'\nimport AdminIndex from 'spotlight/admin'\nimport Core from 'spotlight/core'\n\nCore.onLoad(() => {\n new UserIndex().connect()\n new AdminIndex().connect()\n})\n\nexport default Core\n"],"names":["undefined","Spotlight","Core","SpotlightNestable"],"mappings":"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"}
|