blacklight-spotlight 3.5.0.2 → 3.6.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -0
  3. data/Rakefile +6 -7
  4. data/app/assets/config/spotlight/manifest.js +1 -0
  5. data/app/assets/javascripts/spotlight/application.js +14 -14
  6. data/app/assets/javascripts/spotlight/spotlight.esm.js +7148 -0
  7. data/app/assets/javascripts/spotlight/spotlight.esm.js.map +1 -0
  8. data/app/assets/javascripts/spotlight/spotlight.js +7148 -15
  9. data/app/assets/javascripts/spotlight/spotlight.js.map +1 -0
  10. data/app/assets/stylesheets/spotlight/_catalog.scss +16 -0
  11. data/app/controllers/concerns/spotlight/base.rb +2 -1
  12. data/app/controllers/concerns/spotlight/controller.rb +10 -0
  13. data/app/controllers/spotlight/admin_users_controller.rb +4 -4
  14. data/app/controllers/spotlight/appearances_controller.rb +6 -6
  15. data/app/controllers/spotlight/browse_controller.rb +1 -1
  16. data/app/controllers/spotlight/catalog_controller.rb +20 -15
  17. data/app/controllers/spotlight/concerns/application_controller.rb +1 -0
  18. data/app/controllers/spotlight/concerns/catalog_search_context.rb +2 -2
  19. data/app/controllers/spotlight/contacts_controller.rb +6 -6
  20. data/app/controllers/spotlight/dashboards_controller.rb +2 -2
  21. data/app/controllers/spotlight/exhibits_controller.rb +19 -19
  22. data/app/controllers/spotlight/featured_images_controller.rb +1 -1
  23. data/app/controllers/spotlight/home_pages_controller.rb +7 -7
  24. data/app/controllers/spotlight/lock_controller.rb +1 -1
  25. data/app/controllers/spotlight/metadata_configurations_controller.rb +2 -2
  26. data/app/controllers/spotlight/pages_controller.rb +4 -3
  27. data/app/controllers/spotlight/search_configurations_controller.rb +6 -6
  28. data/app/controllers/spotlight/searches_controller.rb +22 -22
  29. data/app/controllers/spotlight/solr_controller.rb +1 -1
  30. data/app/controllers/spotlight/translations_controller.rb +8 -10
  31. data/app/controllers/spotlight/versions_controller.rb +2 -1
  32. data/app/helpers/spotlight/application_helper.rb +33 -17
  33. data/app/helpers/spotlight/crud_link_helpers.rb +12 -2
  34. data/app/helpers/spotlight/pages_helper.rb +1 -1
  35. data/app/helpers/spotlight/roles_helper.rb +2 -2
  36. data/app/helpers/spotlight/title_helper.rb +1 -1
  37. data/app/helpers/spotlight/translations_helper.rb +1 -3
  38. data/app/javascript/spotlight/admin/add_another.es6 +24 -0
  39. data/app/javascript/spotlight/admin/add_image_selector.es6 +38 -0
  40. data/app/javascript/spotlight/admin/add_new_button.es6 +77 -0
  41. data/app/javascript/spotlight/admin/appearance.es6 +22 -0
  42. data/app/javascript/spotlight/admin/blacklight_configuration.es6 +65 -0
  43. data/app/{assets/javascripts → javascript}/spotlight/admin/block_mixins/autocompleteable.js +8 -8
  44. data/app/{assets/javascripts → javascript}/spotlight/admin/block_mixins/formable.js +1 -1
  45. data/app/javascript/spotlight/admin/block_mixins/plustextable.js +58 -0
  46. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/block.js +2 -1
  47. data/app/javascript/spotlight/admin/blocks/browse_block.js +86 -0
  48. data/app/javascript/spotlight/admin/blocks/browse_group_categories_block.js +88 -0
  49. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/iframe_block.js +7 -11
  50. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/link_to_search_block.js +0 -2
  51. data/app/javascript/spotlight/admin/blocks/oembed_block.js +41 -0
  52. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/pages_block.js +1 -1
  53. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/resources_block.js +45 -42
  54. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/rule_block.js +2 -4
  55. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/search_result_block.js +7 -9
  56. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/solr_documents_base_block.js +22 -22
  57. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/solr_documents_block.js +7 -7
  58. data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/solr_documents_carousel_block.js +14 -15
  59. data/app/javascript/spotlight/admin/blocks/uploaded_items_block.js +147 -0
  60. data/app/javascript/spotlight/admin/checkbox_submit.es6 +75 -0
  61. data/app/javascript/spotlight/admin/copy_email_addresses.es6 +5 -0
  62. data/app/{assets/javascripts/spotlight/admin/crop.es6 → javascript/spotlight/admin/crop.js} +5 -4
  63. data/app/javascript/spotlight/admin/croppable.es6 +10 -0
  64. data/app/{assets/javascripts/spotlight/admin/edit_in_place.js → javascript/spotlight/admin/edit_in_place.es6} +6 -13
  65. data/app/javascript/spotlight/admin/exhibit_tag_autocomplete.es6 +39 -0
  66. data/app/javascript/spotlight/admin/exhibits.es6 +59 -0
  67. data/app/{assets/javascripts/spotlight/admin/form_observer.js → javascript/spotlight/admin/form_observer.es6} +23 -21
  68. data/app/javascript/spotlight/admin/index.js +85 -0
  69. data/app/javascript/spotlight/admin/locks.es6 +12 -0
  70. data/app/{assets/javascripts → javascript}/spotlight/admin/multi_image_selector.js +2 -1
  71. data/app/javascript/spotlight/admin/pages.es6 +42 -0
  72. data/app/{assets/javascripts/spotlight/admin/progress_monitor.js → javascript/spotlight/admin/progress_monitor.es6} +5 -9
  73. data/app/javascript/spotlight/admin/readonly_checkbox.es6 +8 -0
  74. data/app/{assets/javascripts → javascript}/spotlight/admin/search_typeahead.js +3 -46
  75. data/app/{assets/javascripts/spotlight/admin/select_related_input.js → javascript/spotlight/admin/select_related_input.es6} +6 -3
  76. data/app/{assets/javascripts → javascript}/spotlight/admin/sir-trevor/block_controls.js +6 -4
  77. data/app/{assets/javascripts → javascript}/spotlight/admin/sir-trevor/block_limits.js +2 -0
  78. data/app/{assets/javascripts → javascript}/spotlight/admin/spotlight_nestable.js +4 -8
  79. data/app/javascript/spotlight/admin/tabs.es6 +8 -0
  80. data/app/{assets/javascripts/spotlight/admin/translation_progress.js → javascript/spotlight/admin/translation_progress.es6} +6 -13
  81. data/app/{assets/javascripts/spotlight/admin/users.js → javascript/spotlight/admin/users.es6} +7 -17
  82. data/app/javascript/spotlight/admin/visibility_toggle.es6 +23 -0
  83. data/app/javascript/spotlight/index.js +10 -0
  84. data/app/javascript/spotlight/spotlight.js +32 -0
  85. data/app/{assets/javascripts/spotlight/user/analytics.js → javascript/spotlight/user/analytics.es6} +4 -4
  86. data/app/{assets/javascripts/spotlight/user/browse_group_categories.js → javascript/spotlight/user/browse_group_categories.es6} +4 -13
  87. data/app/javascript/spotlight/user/carousel.es6 +5 -0
  88. data/app/{assets/javascripts/spotlight/user/clear_form_button.js → javascript/spotlight/user/clear_form_button.es6} +5 -9
  89. data/app/javascript/spotlight/user/index.js +17 -0
  90. data/app/{assets/javascripts/spotlight/user/report_a_problem.js → javascript/spotlight/user/report_a_problem.es6} +6 -15
  91. data/app/javascript/spotlight/user/zpr_links.es6 +44 -0
  92. data/app/jobs/spotlight/add_uploads_from_csv.rb +1 -2
  93. data/app/models/concerns/spotlight/browse_category_search_builder.rb +7 -3
  94. data/app/models/concerns/spotlight/exhibit_defaults.rb +1 -1
  95. data/app/models/concerns/spotlight/exhibit_documents.rb +2 -2
  96. data/app/models/concerns/spotlight/resources/web.rb +1 -1
  97. data/app/models/concerns/spotlight/solr_document/atomic_updates.rb +1 -1
  98. data/app/models/concerns/spotlight/solr_document/finder.rb +2 -2
  99. data/app/models/concerns/spotlight/solr_document.rb +2 -2
  100. data/app/models/concerns/spotlight/translatables.rb +1 -1
  101. data/app/models/sir_trevor_rails/blocks/displayable.rb +2 -2
  102. data/app/models/sir_trevor_rails/blocks/solr_documents_block.rb +17 -6
  103. data/app/models/spotlight/analytics/ga.rb +5 -5
  104. data/app/models/spotlight/blacklight_configuration.rb +12 -12
  105. data/app/models/spotlight/bulk_update.rb +1 -0
  106. data/app/models/spotlight/contact_email.rb +1 -1
  107. data/app/models/spotlight/contact_form.rb +1 -1
  108. data/app/models/spotlight/exhibit.rb +1 -1
  109. data/app/models/spotlight/featured_image.rb +1 -2
  110. data/app/models/spotlight/lock.rb +1 -1
  111. data/app/models/spotlight/main_navigation.rb +1 -5
  112. data/app/models/spotlight/page.rb +1 -1
  113. data/app/models/spotlight/resources/iiif_manifest.rb +4 -4
  114. data/app/models/spotlight/resources/iiif_service.rb +1 -1
  115. data/app/models/spotlight/resources/upload.rb +3 -6
  116. data/app/models/spotlight/search.rb +2 -2
  117. data/app/models/translation.rb +2 -0
  118. data/app/presenters/spotlight/iiif_manifest_presenter.rb +2 -1
  119. data/app/services/spotlight/iiif_resource_resolver.rb +10 -10
  120. data/app/uploaders/spotlight/bulk_updates_uploader.rb +1 -0
  121. data/app/views/layouts/spotlight/base.html.erb +1 -0
  122. data/app/views/shared/_exhibit_navbar.html.erb +6 -1
  123. data/app/views/spotlight/admin_users/index.html.erb +9 -3
  124. data/app/views/spotlight/browse/show.html.erb +2 -2
  125. data/app/views/spotlight/catalog/_admin_header.html.erb +3 -1
  126. data/app/views/spotlight/catalog/_document_visibility_control.html.erb +21 -2
  127. data/app/views/spotlight/catalog/_index_compact_default.html.erb +1 -1
  128. data/app/views/spotlight/exhibits/_confirmation_status.html.erb +3 -1
  129. data/app/views/spotlight/exhibits/_contact.html.erb +5 -1
  130. data/app/views/spotlight/shared/_exhibit_sidebar.html.erb +2 -0
  131. data/app/views/spotlight/shared/_report_a_problem.html.erb +1 -1
  132. data/app/views/spotlight/sir_trevor/blocks/_search_results_block.html.erb +2 -2
  133. data/app/views/spotlight/translations/_page.html.erb +6 -1
  134. data/config/locales/spotlight.en.yml +3 -8
  135. data/lib/generators/spotlight/install_generator.rb +15 -23
  136. data/lib/generators/spotlight/scaffold_resource_generator.rb +12 -12
  137. data/lib/generators/spotlight/templates/config/initializers/spotlight_initializer.rb +3 -0
  138. data/lib/generators/spotlight/templates/solr/conf/_rest_managed.json +3 -0
  139. data/lib/generators/spotlight/templates/solr/conf/admin-extra.html +31 -0
  140. data/lib/generators/spotlight/templates/solr/conf/elevate.xml +36 -0
  141. data/lib/generators/spotlight/templates/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  142. data/lib/generators/spotlight/templates/solr/conf/protwords.txt +21 -0
  143. data/lib/generators/spotlight/templates/solr/{config → conf}/schema.xml +17 -0
  144. data/lib/generators/spotlight/templates/solr/conf/scripts.conf +24 -0
  145. data/lib/generators/spotlight/templates/solr/{config → conf}/solrconfig.xml +55 -24
  146. data/lib/generators/spotlight/templates/solr/conf/spellings.txt +2 -0
  147. data/lib/generators/spotlight/templates/solr/conf/stopwords.txt +58 -0
  148. data/lib/generators/spotlight/templates/solr/conf/stopwords_en.txt +58 -0
  149. data/lib/generators/spotlight/templates/solr/conf/synonyms.txt +31 -0
  150. data/lib/generators/spotlight/templates/solr/conf/xslt/example.xsl +132 -0
  151. data/lib/generators/spotlight/templates/solr/conf/xslt/example_atom.xsl +67 -0
  152. data/lib/generators/spotlight/templates/solr/conf/xslt/example_rss.xsl +66 -0
  153. data/lib/generators/spotlight/templates/solr/conf/xslt/luke.xsl +337 -0
  154. data/lib/generators/spotlight/templates/spotlight.js +1 -1
  155. data/lib/migration/iiif.rb +3 -7
  156. data/lib/spotlight/engine.rb +18 -16
  157. data/lib/spotlight/riiif_service.rb +31 -0
  158. data/lib/spotlight/search_state.rb +19 -0
  159. data/lib/spotlight/upload_field_config.rb +1 -1
  160. data/lib/spotlight/version.rb +1 -1
  161. data/lib/tasks/spotlight_tasks.rake +1 -1
  162. data/spec/fixtures/iiif_responses.rb +64 -64
  163. data/vendor/assets/javascripts/nestable.js +1 -1
  164. data/vendor/assets/javascripts/parameterize.js +2 -2
  165. data/vendor/assets/javascripts/sir-trevor.js +22460 -20591
  166. data/vendor/assets/stylesheets/sir-trevor/_icons.scss +0 -0
  167. data/vendor/assets/stylesheets/sir-trevor/_variables.scss +16 -18
  168. data/vendor/assets/stylesheets/sir-trevor/base.scss +11 -0
  169. data/vendor/assets/stylesheets/sir-trevor/block-addition-top.scss +4 -1
  170. data/vendor/assets/stylesheets/sir-trevor/block-addition.scss +3 -2
  171. data/vendor/assets/stylesheets/sir-trevor/block-controls.scss +4 -0
  172. data/vendor/assets/stylesheets/sir-trevor/block-positioner.scss +0 -0
  173. data/vendor/assets/stylesheets/sir-trevor/block-replacer.scss +0 -0
  174. data/vendor/assets/stylesheets/sir-trevor/block-ui.scss +10 -0
  175. data/vendor/assets/stylesheets/sir-trevor/block.scss +19 -5
  176. data/vendor/assets/stylesheets/sir-trevor/errors.scss +0 -0
  177. data/vendor/assets/stylesheets/sir-trevor/format-bar.scss +0 -0
  178. data/vendor/assets/stylesheets/sir-trevor/inputs.scss +0 -0
  179. data/vendor/assets/stylesheets/sir-trevor/main.scss +0 -0
  180. data/vendor/assets/stylesheets/sir-trevor/patterns/ui-popup.scss +0 -0
  181. data/vendor/assets/stylesheets/sir-trevor/utils.scss +0 -0
  182. metadata +104 -117
  183. data/app/assets/javascripts/spotlight/admin/add_another.js +0 -22
  184. data/app/assets/javascripts/spotlight/admin/add_new_button.js +0 -81
  185. data/app/assets/javascripts/spotlight/admin/appearance.js +0 -24
  186. data/app/assets/javascripts/spotlight/admin/attachments.js +0 -2
  187. data/app/assets/javascripts/spotlight/admin/blacklight_configuration.js +0 -63
  188. data/app/assets/javascripts/spotlight/admin/block_mixins/plustextable.js +0 -57
  189. data/app/assets/javascripts/spotlight/admin/blocks/browse_block.js +0 -87
  190. data/app/assets/javascripts/spotlight/admin/blocks/browse_group_categories_block.js +0 -88
  191. data/app/assets/javascripts/spotlight/admin/blocks/oembed_block.js +0 -40
  192. data/app/assets/javascripts/spotlight/admin/blocks/uploaded_items_block.js +0 -145
  193. data/app/assets/javascripts/spotlight/admin/catalog_edit.js +0 -16
  194. data/app/assets/javascripts/spotlight/admin/copy_email_addresses.js +0 -9
  195. data/app/assets/javascripts/spotlight/admin/croppable.js +0 -25
  196. data/app/assets/javascripts/spotlight/admin/exhibit_tag_autocomplete.js +0 -37
  197. data/app/assets/javascripts/spotlight/admin/exhibits.js +0 -58
  198. data/app/assets/javascripts/spotlight/admin/index.js +0 -16
  199. data/app/assets/javascripts/spotlight/admin/locks.js +0 -12
  200. data/app/assets/javascripts/spotlight/admin/pages.js.erb +0 -40
  201. data/app/assets/javascripts/spotlight/admin/readonly_checkbox.js +0 -6
  202. data/app/assets/javascripts/spotlight/admin/tabs.js +0 -6
  203. data/app/assets/javascripts/spotlight/user/carousel.js +0 -3
  204. data/app/assets/javascripts/spotlight/user/index.js +0 -8
  205. data/app/assets/javascripts/spotlight/user/zpr_links.js.erb +0 -45
  206. data/vendor/assets/javascripts/MutationObserver.js +0 -625
  207. data/vendor/assets/javascripts/eventable.js +0 -205
  208. data/vendor/assets/javascripts/polyfill.min.js +0 -4
  209. /data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/solr_documents_embed_block.js +0 -0
  210. /data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/solr_documents_features_block.js +0 -0
  211. /data/app/{assets/javascripts → javascript}/spotlight/admin/blocks/solr_documents_grid_block.js +0 -0
  212. /data/app/{assets/javascripts/spotlight/admin/iiif.es6 → javascript/spotlight/admin/iiif.js} +0 -0
  213. /data/app/{assets/javascripts → javascript}/spotlight/admin/sir-trevor/locales.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotlight.esm.js","sources":["../../../javascript/spotlight/user/analytics.es6","../../../javascript/spotlight/user/browse_group_categories.es6","../../../javascript/spotlight/user/carousel.es6","../../../javascript/spotlight/user/clear_form_button.es6","../../../javascript/spotlight/user/report_a_problem.es6","../../../javascript/spotlight/user/zpr_links.es6","../../../javascript/spotlight/user/index.js","../../../../vendor/assets/javascripts/nestable.js","../../../../vendor/assets/javascripts/parameterize.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.es6","../../../javascript/spotlight/admin/add_new_button.es6","../../../javascript/spotlight/admin/appearance.es6","../../../javascript/spotlight/admin/blacklight_configuration.es6","../../../javascript/spotlight/admin/copy_email_addresses.es6","../../../javascript/spotlight/admin/iiif.js","../../../javascript/spotlight/admin/add_image_selector.es6","../../../javascript/spotlight/spotlight.js","../../../javascript/spotlight/admin/crop.js","../../../javascript/spotlight/admin/croppable.es6","../../../javascript/spotlight/admin/edit_in_place.es6","../../../javascript/spotlight/admin/exhibit_tag_autocomplete.es6","../../../javascript/spotlight/admin/exhibits.es6","../../../javascript/spotlight/admin/form_observer.es6","../../../javascript/spotlight/admin/locks.es6","../../../javascript/spotlight/admin/multi_image_selector.js","../../../javascript/spotlight/admin/pages.es6","../../../javascript/spotlight/admin/progress_monitor.es6","../../../javascript/spotlight/admin/readonly_checkbox.es6","../../../javascript/spotlight/admin/search_typeahead.js","../../../javascript/spotlight/admin/select_related_input.es6","../../../javascript/spotlight/admin/spotlight_nestable.js","../../../javascript/spotlight/admin/tabs.es6","../../../javascript/spotlight/admin/translation_progress.es6","../../../javascript/spotlight/admin/checkbox_submit.es6","../../../javascript/spotlight/admin/visibility_toggle.es6","../../../javascript/spotlight/admin/users.es6","../../../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 if (window._gaq != null) {\n return _gaq.push(['_trackPageview']);\n } else if (window.pageTracker != null) {\n return pageTracker._trackPageview();\n }\n }\n}","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')\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 pt-3\">\n <button type=\"button\" class=\"btn btn-dark\" data-dismiss=\"modal\" aria-hidden=\"true\">${Spotlight.ZprLinks.close}</button>\n </div>\n <div class=\"zoom-controls mb-3 mr-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 Analytics from 'analytics'\nimport BrowseGroupCateogries from 'browse_group_categories'\nimport Carousel from 'carousel'\nimport ClearFormButton from 'clear_form_button'\nimport ReportProblem from 'report_a_problem'\nimport ZprLinks from 'zpr_links'\n\nexport default class {\n connect() {\n new Analytics().connect()\n new BrowseGroupCateogries().connect()\n new Carousel().connect()\n new ClearFormButton().connect()\n new ReportProblem().connect()\n new ZprLinks().connect()\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","/*\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","/* 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';\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 $(\"[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 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 // 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 '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 'add_image_selector'\nimport Spotlight from 'spotlight'\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': Spotlight.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 '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}\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","export 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($, undefined) {\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 Spotlight from 'spotlight'\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': Spotlight.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 = Spotlight.BlockControls.create(editor);\n\n new Spotlight.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 'add_image_selector'\n\n(function($){\n $.fn.spotlightSearchTypeAhead = function( options ) {\n $.each(this, function(){\n addAutocompleteBehavior($(this));\n });\n\n function addAutocompleteBehavior( typeAheadInput, settings ) {\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\n typeAheadInput.typeahead(settings, {\n displayKey: settings.displayKey,\n source: settings.bloodhound.ttAdapter(),\n templates: {\n suggestion: Handlebars.compile(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 itemsTemplate() {\n return '<div class=\"autocomplete-item{{#if private}} blacklight-private{{/if}}\">{{#if thumbnail}}<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"{{thumbnail}}\" /></div>{{/if}}<span class=\"autocomplete-title\">{{title}}</span><br/><small>&nbsp;&nbsp;{{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: itemsTemplate()}).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 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 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","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 '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 id = $(this).attr('data-target')\n 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 id = $(this).closest('tr').attr('data-edit-for');\n 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 id = $(this).attr('data-target')\n $(\"[data-destroy-for='\"+id+\"']\", container).val('1');\n }\n\n function new_user(event) {\n event.preventDefault();\n 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['autocomplete_template'] === undefined) {\n this.autocomplete_url = function() { return '<div class=\"autocomplete-item{{#if private}} blacklight-private{{/if}}\">{{#if thumbnail}}<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"{{thumbnail}}\" /></div>{{/if}}<span class=\"autocomplete-title\">{{title}}</span><br/><small>&nbsp;&nbsp;{{description}}</small></div>' };\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\">\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 Spotlight from 'spotlight'\n(function ($){\n Spotlight.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 Spotlight from 'spotlight'\nimport SpotlightNestable from 'spotlight_nestable'\n\nSpotlight.Block.Resources = (function(){\n\n return Spotlight.Block.extend({\n type: \"resources\",\n formable: true,\n autocompleteable: true,\n show_heading: true,\n\n title: function() { return i18n.t(\"blocks:\" + this.type + \":title\"); },\n description: function() { return i18n.t(\"blocks:\" + this.type + \":description\"); },\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\n globalIndex: 0,\n\n _itemPanelIiifFields: function(index, data) {\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\" 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 </div>\n <div class=\"remove float-right\">\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 $(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\">',\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 </div>\n ${this.content()}\n </div>`\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 Spotlight from 'spotlight'\n\nSirTrevor.Blocks.Browse = (function(){\n\n return Spotlight.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 autocomplete_template: function() { return '<div class=\"autocomplete-item{{#unless published}} blacklight-private{{/unless}}\">{{#if thumbnail_image_url}}<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"{{thumbnail_image_url}}\" /></div>{{/if}}<span class=\"autocomplete-title\">{{full_title}}</span><br/><small>&nbsp;&nbsp;{{description}}</small></div>' },\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\" 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\">\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 Spotlight from 'spotlight'\n\nSirTrevor.Blocks.BrowseGroupCategories = (function(){\n\n return Spotlight.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() { return '<div class=\"autocomplete-item{{#unless published}} blacklight-private{{/unless}}\"><span class=\"autocomplete-title\">{{title}}</span><br/></div>' },\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\" 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 Spotlight from 'spotlight'\n\nSirTrevor.Blocks.Oembed = (function(){\n\n return Spotlight.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 col-md-8\">\n <label for=\"${this.formId(id_key)}\">${i18n.t(\"blocks:oembed:url\")}</label>\n <input name=\"${id_key}\" class=\"form-control col-md-6\" type=\"text\" id=\"${this.formId(id_key)}\" />\n </div>\n </div>\n ${this.text_area()}\n </div>`\n }\n });\n})();","import Spotlight from 'spotlight'\n\nSirTrevor.Blocks.FeaturedPages = (function(){\n\n return Spotlight.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() { return '<div class=\"autocomplete-item{{#unless published}} blacklight-private{{/unless}}\">{{#if thumbnail_image_url}}<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"{{thumbnail_image_url}}\" /></div>{{/if}}<span class=\"autocomplete-title\">{{title}}</span><br/><small>&nbsp;&nbsp;{{description}}</small></div>' },\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 '../iiif'\nimport Spotlight from 'spotlight'\n\nSirTrevor.Blocks.SolrDocumentsBase = (function(){\n\n return Spotlight.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() { return '<div class=\"autocomplete-item{{#if private}} blacklight-private{{/if}}\">{{#if thumbnail}}<div class=\"document-thumbnail\"><img class=\"img-thumbnail\" src=\"{{thumbnail}}\" /></div>{{/if}}<span class=\"autocomplete-title\">{{title}}</span><br/><small>&nbsp;&nbsp;{{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 _itemPanelIiifFields: function(index, 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=\"' + (data.thumbnail_image_url || data.thumbnail || \"\") + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][full_image_url]\" value=\"' + (data.full_image_url || data.thumbnail_image_url || data.thumbnail || \"\") + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_tilesource]\" value=\"' + (data.iiif_tilesource) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_manifest_url]\" value=\"' + (data.iiif_manifest_url) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_canvas_id]\" value=\"' + (data.iiif_canvas_id) + '\"/>',\n '<input type=\"hidden\" name=\"item[' + index + '][iiif_image_id]\" value=\"' + (data.iiif_image_id) + '\"/>',\n ].join(\"\\n\");\n },\n setIiifFields: function(panel, 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(data.imageId);\n $(panel).find('[name$=\"[iiif_tilesource]\"]').val(data.tilesource);\n $(panel).find('[name$=\"[iiif_manifest_url]\"]').val(data.manifest);\n $(panel).find('[name$=\"[iiif_canvas_id]\"]').val(data.canvasId);\n $(panel).find('img.img-thumbnail').attr('src', data.thumbnail_image_url || 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 item_options: function() { return \"\" },\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-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') || (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')\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]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-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\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-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') || (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')\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]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-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_nestable'\nimport Spotlight from 'spotlight'\n\nSirTrevor.Blocks.UploadedItems = (function(){\n return Spotlight.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\" 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\">\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\">\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 </div>\n <div class=\"remove float-right\">\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 </div>\n <div class=\"row\">\n <div class=\"form-group 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 zpr_key: 'zpr_link'\n });\n})();\n","import Spotlight from 'spotlight'\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 Spotlight.BlockControls = function() { };\n Spotlight.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 Spotlight from 'spotlight'\n\nSpotlight.BlockLimits = function(editor) {\n this.editor = editor;\n};\n\nSpotlight.BlockLimits.prototype.enforceLimits = function(editor) {\n this.addEditorCallbacks(editor);\n this.checkGlobalBlockTypeLimit()();\n};\n\nSpotlight.BlockLimits.prototype.addEditorCallbacks = function(editor) {\n SirTrevor.EventBus.on('block:create:new', this.checkBlockTypeLimitOnAdd());\n SirTrevor.EventBus.on('block:remove', this.checkGlobalBlockTypeLimit());\n};\n\nSpotlight.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\nSpotlight.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 },\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","// import '../../../../vendor/assets/javascripts/sir-trevor'\nimport '../../../../vendor/assets/javascripts/nestable'\nimport '../../../../vendor/assets/javascripts/parameterize'\nimport '../../../../vendor/assets/javascripts/bootstrap-tagsinput'\nimport '../../../../vendor/assets/javascripts/jquery.serializejson'\n// import '../../../../vendor/assets/javascripts/clipboard'\n// import '../../../../vendor/assets/javascripts/leaflet'\nimport '../../../../vendor/assets/javascripts/leaflet-iiif'\nimport '../../../../vendor/assets/javascripts/Leaflet.Editable'\nimport '../../../../vendor/assets/javascripts/Path.Drag'\n\nimport AddAnother from 'add_another'\nimport AddNewButton from 'add_new_button'\nimport Appearance from 'appearance'\nimport BlacklightConfiguration from 'blacklight_configuration'\nimport CopyEmailAddress from 'copy_email_addresses'\nimport Croppable from 'croppable'\nimport EditInPlace from 'edit_in_place'\nimport ExhibitTagAutocomplete from 'exhibit_tag_autocomplete'\nimport Exhibits from 'exhibits'\nimport FormObserver from 'form_observer'\nimport Locks from 'locks'\nimport 'multi_image_selector'\nimport Pages from 'pages'\nimport ProgressMonitor from 'progress_monitor'\nimport ReadonlyCheckbox from 'readonly_checkbox'\nimport { addAutocompletetoFeaturedImage } from 'search_typeahead'\nimport SelectRelatedInput from 'select_related_input'\nimport SpotlightNestable from 'spotlight_nestable'\nimport Tabs from 'tabs'\nimport TranslationProgress from 'translation_progress'\nimport 'visibility_toggle'\nimport Users from 'users'\n\nimport 'block_mixins/autocompleteable'\nimport 'block_mixins/formable'\nimport 'block_mixins/plustextable'\n\nimport 'blocks/block'\nimport 'blocks/resources_block' // This is a base class of several other blocks, so must come first\nimport 'blocks/browse_block'\nimport 'blocks/browse_group_categories_block'\nimport 'blocks/iframe_block'\nimport 'blocks/link_to_search_block'\nimport 'blocks/oembed_block'\nimport 'blocks/pages_block'\nimport 'blocks/rule_block'\nimport 'blocks/search_result_block'\nimport 'blocks/solr_documents_base_block'\nimport 'blocks/solr_documents_block'\nimport 'blocks/solr_documents_carousel_block'\nimport 'blocks/solr_documents_embed_block'\nimport 'blocks/solr_documents_features_block'\nimport 'blocks/solr_documents_grid_block'\nimport 'blocks/uploaded_items_block'\n\nimport 'sir-trevor/block_controls'\nimport 'sir-trevor/block_limits'\nimport 'sir-trevor/locales'\n\n\nexport default class {\n connect() {\n new AddAnother().connect()\n new AddNewButton().connect()\n new Appearance().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 'user/index'\nimport AdminIndex from 'admin/index'\nimport Spotlight from 'spotlight'\n\nSpotlight.onLoad(() => {\n new UserIndex().connect()\n new AdminIndex().connect()\n})\n\nexport default Spotlight\n"],"names":["undefined","Spotlight","SpotlightNestable"],"mappings":"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AAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1E,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;AACxE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;AACxE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI;AAC1E,EAAE,GAAG,CAAC,IAAI;AACV,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1E,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;AACxE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;AACxE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI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"}