geoblacklight 5.4.0 → 6.0.0.pre.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. checksums.yaml +4 -4
  2. data/.engine_cart.yml +14 -0
  3. data/.github/workflows/ruby.yml +24 -25
  4. data/.gitignore +0 -9
  5. data/.prettierignore +4 -0
  6. data/.prettierrc +5 -0
  7. data/CONTRIBUTING.md +2 -4
  8. data/Gemfile +4 -2
  9. data/README.md +4 -4
  10. data/Rakefile +0 -22
  11. data/app/assets/stylesheets/geoblacklight/global.css +7 -0
  12. data/app/assets/stylesheets/geoblacklight/home.css +22 -0
  13. data/app/assets/stylesheets/geoblacklight/index_maps.css +36 -0
  14. data/app/assets/stylesheets/geoblacklight/record.css +39 -0
  15. data/app/assets/stylesheets/geoblacklight/search.css +56 -0
  16. data/app/assets/stylesheets/geoblacklight/viewers.css +50 -0
  17. data/app/assets/stylesheets/geoblacklight.css +14 -0
  18. data/app/components/blacklight/icons/web_services_component.rb +3 -3
  19. data/app/components/geoblacklight/accordion_component.html.erb +3 -3
  20. data/app/components/geoblacklight/accordion_component.rb +4 -0
  21. data/app/components/geoblacklight/arcgis_component.html.erb +1 -1
  22. data/app/components/geoblacklight/arcgis_component.rb +1 -1
  23. data/app/components/geoblacklight/attribute_table_component.html.erb +3 -3
  24. data/app/components/geoblacklight/data_dictionary_download_component.html.erb +1 -1
  25. data/app/components/geoblacklight/display_note_component.html.erb +1 -1
  26. data/app/components/geoblacklight/display_note_component.rb +2 -1
  27. data/app/components/geoblacklight/document/citation_component.html.erb +1 -1
  28. data/app/components/geoblacklight/document/sidebar_component.html.erb +1 -4
  29. data/app/components/geoblacklight/document/sidebar_component.rb +0 -8
  30. data/app/components/geoblacklight/document_component.html.erb +1 -2
  31. data/app/components/geoblacklight/download_links_component.html.erb +0 -3
  32. data/app/components/geoblacklight/download_links_component.rb +1 -1
  33. data/app/components/geoblacklight/header_component.html.erb +4 -4
  34. data/app/components/geoblacklight/header_icons_component.rb +4 -2
  35. data/app/components/geoblacklight/homepage_feature_facet_component.html.erb +3 -7
  36. data/app/components/geoblacklight/homepage_feature_facet_component.rb +12 -3
  37. data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +2 -2
  38. data/app/components/geoblacklight/iiif_drag_drop_component.rb +2 -2
  39. data/app/components/geoblacklight/index_map_inspect_component.html.erb +3 -3
  40. data/app/components/geoblacklight/index_map_legend_component.html.erb +7 -7
  41. data/app/components/geoblacklight/index_map_legend_component.rb +7 -0
  42. data/app/components/geoblacklight/item_map_viewer_component.rb +9 -5
  43. data/app/components/geoblacklight/location_leaflet_map_component.rb +28 -15
  44. data/app/components/geoblacklight/relations_component.html.erb +2 -2
  45. data/app/components/geoblacklight/search_result_component.html.erb +28 -26
  46. data/app/components/geoblacklight/search_result_component.rb +2 -2
  47. data/app/components/geoblacklight/static_map_component.rb +6 -5
  48. data/app/components/geoblacklight/viewer_help_text_component.html.erb +1 -1
  49. data/app/components/geoblacklight/viewer_help_text_component.rb +1 -1
  50. data/app/components/geoblacklight/web_services_component.html.erb +1 -1
  51. data/app/components/geoblacklight/web_services_component.rb +1 -1
  52. data/app/components/geoblacklight/web_services_default_component.html.erb +6 -6
  53. data/app/components/geoblacklight/web_services_link_component.rb +12 -9
  54. data/app/components/geoblacklight/web_services_wfs_component.html.erb +4 -4
  55. data/app/components/geoblacklight/web_services_wms_component.html.erb +4 -4
  56. data/app/controllers/download_controller.rb +0 -7
  57. data/app/controllers/relation_controller.rb +1 -1
  58. data/app/controllers/wms_controller.rb +1 -1
  59. data/app/helpers/geoblacklight_helper.rb +0 -43
  60. data/app/javascript/geoblacklight/controllers/clipboard_controller.js +6 -6
  61. data/app/javascript/geoblacklight/controllers/downloads_controller.js +37 -29
  62. data/app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js +110 -134
  63. data/app/javascript/geoblacklight/controllers/oembed_viewer_controller.js +5 -5
  64. data/app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js +27 -61
  65. data/app/javascript/geoblacklight/controllers/search_results_controller.js +18 -18
  66. data/app/javascript/geoblacklight/core.js +35 -36
  67. data/app/javascript/geoblacklight/index.js +10 -10
  68. data/app/javascript/geoblacklight/initializers/metadata_download.js +23 -25
  69. data/app/javascript/geoblacklight/initializers/popovers.js +4 -4
  70. data/app/javascript/geoblacklight/initializers/relations.js +20 -20
  71. data/app/javascript/geoblacklight/initializers/tooltips.js +19 -23
  72. data/app/javascript/geoblacklight/initializers/truncation.js +18 -18
  73. data/app/javascript/geoblacklight/leaflet/basemaps.js +34 -3
  74. data/app/javascript/geoblacklight/leaflet/constants.js +7 -7
  75. data/app/javascript/geoblacklight/leaflet/controls/geosearch.js +80 -74
  76. data/app/javascript/geoblacklight/leaflet/controls/layer_opacity.js +74 -73
  77. data/app/javascript/geoblacklight/leaflet/controls/sidebar.js +31 -29
  78. data/app/javascript/geoblacklight/leaflet/controls/sleep.js +54 -51
  79. data/app/javascript/geoblacklight/leaflet/inspection.js +79 -71
  80. data/app/javascript/geoblacklight/leaflet/layer_index_map.js +74 -69
  81. data/app/javascript/geoblacklight/leaflet/layer_wmts.js +14 -16
  82. data/app/javascript/geoblacklight/leaflet/layers.js +59 -66
  83. data/app/javascript/geoblacklight/leaflet/utils.js +37 -43
  84. data/app/javascript/geoblacklight/openlayers/basemaps.js +43 -15
  85. data/app/javascript/geoblacklight/openlayers/inspection.js +23 -23
  86. data/app/javascript/geoblacklight/openlayers/layers.js +12 -12
  87. data/app/models/concerns/geoblacklight/bbox_filter_query.rb +7 -9
  88. data/app/models/concerns/geoblacklight/solr_document.rb +17 -57
  89. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +3 -3
  90. data/app/views/catalog/_document_split.html.erb +3 -3
  91. data/app/views/catalog/_home_text.html.erb +22 -14
  92. data/app/views/catalog/_metadata.html.erb +1 -4
  93. data/app/views/catalog/_relations_container.html.erb +1 -1
  94. data/app/views/catalog/index.html.erb +0 -1
  95. data/app/views/catalog/metadata/_markup.html.erb +1 -2
  96. data/app/views/catalog/metadata/_missing.html.erb +2 -2
  97. data/app/views/catalog/web_services.html.erb +1 -1
  98. data/app/views/relation/index.html.erb +1 -1
  99. data/app/views/relation/index.json.jbuilder +1 -1
  100. data/config/initializers/rails_config.rb +0 -3
  101. data/config/locales/geoblacklight.en.yml +79 -78
  102. data/geoblacklight.gemspec +3 -4
  103. data/lib/generators/geoblacklight/assets_generator.rb +35 -26
  104. data/lib/generators/geoblacklight/install_generator.rb +6 -11
  105. data/lib/generators/geoblacklight/templates/assets/customizations.css +6 -0
  106. data/lib/generators/geoblacklight/templates/catalog_controller.rb +102 -77
  107. data/lib/generators/geoblacklight/templates/settings.yml +97 -132
  108. data/lib/geoblacklight/configuration/default_settings_builder.rb +18 -0
  109. data/lib/geoblacklight/configuration/display_note_shown_config.rb +13 -0
  110. data/lib/geoblacklight/configuration/fields_config.rb +51 -0
  111. data/lib/geoblacklight/configuration/leaflet_config.rb +73 -0
  112. data/lib/geoblacklight/configuration/leaflet_layers_config.rb +21 -0
  113. data/lib/geoblacklight/configuration/leaflet_sleep_config.rb +20 -0
  114. data/lib/geoblacklight/configuration/legacy_settings_builder.rb +94 -0
  115. data/lib/geoblacklight/configuration.rb +148 -0
  116. data/lib/geoblacklight/download.rb +2 -5
  117. data/lib/geoblacklight/engine.rb +7 -18
  118. data/lib/geoblacklight/metadata/base.rb +0 -2
  119. data/lib/geoblacklight/metadata_transformer.rb +0 -2
  120. data/lib/geoblacklight/references.rb +6 -10
  121. data/lib/geoblacklight/relation/ancestors.rb +3 -5
  122. data/lib/geoblacklight/relation/descendants.rb +2 -4
  123. data/lib/geoblacklight/relation/relation_response.rb +5 -8
  124. data/lib/geoblacklight/version.rb +1 -1
  125. data/lib/geoblacklight/wms_layer.rb +3 -3
  126. data/lib/geoblacklight.rb +5 -15
  127. data/lib/tasks/geoblacklight.rake +0 -9
  128. data/package.json +10 -31
  129. data/schema/geoblacklight-schema-aardvark.json +1 -9
  130. data/schema/readme.md +3 -4
  131. data/solr/conf/_rest_managed.json +3 -2
  132. data/solr/conf/schema.xml +1 -1
  133. data/solr/conf/solrconfig.xml +10 -10
  134. data/spec/components/geoblacklight/arcgis_component_spec.rb +6 -6
  135. data/spec/components/geoblacklight/attribute_table_component_spec.rb +6 -7
  136. data/spec/components/geoblacklight/citation_component_spec.rb +7 -4
  137. data/spec/components/geoblacklight/display_note_component_spec.rb +8 -8
  138. data/spec/components/geoblacklight/document_component_spec.rb +13 -13
  139. data/spec/components/geoblacklight/download_links_component_spec.rb +17 -14
  140. data/spec/components/geoblacklight/header_icons_component_spec.rb +6 -11
  141. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +22 -30
  142. data/spec/components/geoblacklight/iiif_drag_drop_component_spec.rb +3 -3
  143. data/spec/components/geoblacklight/index_map_legend_component_spec.rb +5 -18
  144. data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +5 -5
  145. data/spec/components/geoblacklight/login_link_component_spec.rb +4 -5
  146. data/spec/components/geoblacklight/search_result_component_spec.rb +2 -6
  147. data/spec/components/geoblacklight/static_map_component_spec.rb +2 -2
  148. data/spec/components/geoblacklight/viewer_help_text_component_spec.rb +4 -6
  149. data/spec/components/geoblacklight/web_services_component_spec.rb +11 -10
  150. data/spec/controllers/catalog_controller_spec.rb +7 -7
  151. data/spec/controllers/download_controller_spec.rb +1 -1
  152. data/spec/controllers/relation_controller_spec.rb +1 -1
  153. data/spec/controllers/wms_controller_spec.rb +1 -1
  154. data/spec/features/axe_spec.rb +4 -4
  155. data/spec/features/bookmarks_spec.rb +1 -1
  156. data/spec/features/citations_spec.rb +1 -1
  157. data/spec/features/configurable_basemap_spec.rb +1 -69
  158. data/spec/features/data_dictionary_download_spec.rb +1 -1
  159. data/spec/features/download_layer_spec.rb +1 -1
  160. data/spec/features/empty_search_spec.rb +1 -1
  161. data/spec/features/esri_viewer_spec.rb +1 -1
  162. data/spec/features/exports_spec.rb +1 -1
  163. data/spec/features/full_screen_control_spec.rb +3 -10
  164. data/spec/features/help_text_spec.rb +1 -1
  165. data/spec/features/home_page_spec.rb +1 -1
  166. data/spec/features/index_map_spec.rb +3 -3
  167. data/spec/features/index_view_spec.rb +7 -7
  168. data/spec/features/layer_inspection_spec.rb +1 -1
  169. data/spec/features/layer_opacity_spec.rb +1 -1
  170. data/spec/features/layer_preview_spec.rb +1 -1
  171. data/spec/features/layer_with_no_references_spec.rb +1 -1
  172. data/spec/features/linkified_attribute_table_spec.rb +1 -1
  173. data/spec/features/metadata_panel_spec.rb +1 -1
  174. data/spec/features/missing_metadata_spec.rb +1 -1
  175. data/spec/features/multiple_downloads_spec.rb +1 -1
  176. data/spec/features/oembed_spec.rb +1 -1
  177. data/spec/features/relations_spec.rb +5 -4
  178. data/spec/features/saved_searches_spec.rb +1 -1
  179. data/spec/features/search_bar_spec.rb +1 -1
  180. data/spec/features/search_results_complex_geometry_spec.rb +1 -1
  181. data/spec/features/search_results_icons_spec.rb +3 -4
  182. data/spec/features/search_results_map_spec.rb +1 -1
  183. data/spec/features/search_results_overlap_ratio_spec.rb +3 -3
  184. data/spec/features/search_spec.rb +1 -1
  185. data/spec/features/show_page_download_spec.rb +1 -1
  186. data/spec/features/show_page_metadata_spec.rb +2 -2
  187. data/spec/features/show_page_sidebar_static_map_spec.rb +1 -1
  188. data/spec/features/sms_spec.rb +1 -1
  189. data/spec/features/suppressed_records_spec.rb +1 -1
  190. data/spec/features/tilejson_spec.rb +1 -1
  191. data/spec/features/tms_spec.rb +1 -1
  192. data/spec/features/web_services_modal_spec.rb +1 -1
  193. data/spec/features/wmts_spec.rb +1 -1
  194. data/spec/features/xyz_spec.rb +1 -1
  195. data/spec/fixtures/manifests/tilejson.json +10 -19
  196. data/spec/fixtures/metadata/fgdc.html +1 -1
  197. data/spec/fixtures/metadata/iso.html +1 -1
  198. data/spec/fixtures/solr_documents/README.md +0 -1
  199. data/spec/fixtures/solr_documents/actual-papermap1.json +9 -28
  200. data/spec/fixtures/solr_documents/actual-point1.json +12 -39
  201. data/spec/fixtures/solr_documents/actual-polygon1.json +10 -30
  202. data/spec/fixtures/solr_documents/actual-raster1.json +14 -46
  203. data/spec/fixtures/solr_documents/all-relationships.json +12 -36
  204. data/spec/fixtures/solr_documents/b1g_iiif_manifest.json +33 -62
  205. data/spec/fixtures/solr_documents/b1g_wabash_child_15.json +13 -40
  206. data/spec/fixtures/solr_documents/b1g_wabash_child_16.json +13 -40
  207. data/spec/fixtures/solr_documents/b1g_wabash_child_17.json +13 -40
  208. data/spec/fixtures/solr_documents/b1g_wabash_child_18.json +13 -40
  209. data/spec/fixtures/solr_documents/b1g_wabash_parent.json +13 -40
  210. data/spec/fixtures/solr_documents/baruch_ancestor1.json +13 -40
  211. data/spec/fixtures/solr_documents/baruch_ancestor2.json +13 -40
  212. data/spec/fixtures/solr_documents/baruch_documentation_download.json +14 -46
  213. data/spec/fixtures/solr_documents/bbox-spans-180.json +7 -21
  214. data/spec/fixtures/solr_documents/complex-geom.json +11 -37
  215. data/spec/fixtures/solr_documents/cornell_html_metadata.json +12 -37
  216. data/spec/fixtures/solr_documents/display-note.json +11 -33
  217. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +13 -39
  218. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +13 -40
  219. data/spec/fixtures/solr_documents/esri-feature-layer.json +13 -39
  220. data/spec/fixtures/solr_documents/esri-image-map-layer.json +13 -40
  221. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +16 -54
  222. data/spec/fixtures/solr_documents/esri-wms-layer.json +12 -36
  223. data/spec/fixtures/solr_documents/harvard_raster.json +12 -37
  224. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +9 -27
  225. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +12 -41
  226. data/spec/fixtures/solr_documents/index-map-polygon.json +12 -41
  227. data/spec/fixtures/solr_documents/index-map-stanford.json +14 -45
  228. data/spec/fixtures/solr_documents/index-map-v1-complex.json +13 -38
  229. data/spec/fixtures/solr_documents/index_map_point.json +13 -42
  230. data/spec/fixtures/solr_documents/metadata_no_geom.json +4 -14
  231. data/spec/fixtures/solr_documents/metadata_no_provider.json +8 -25
  232. data/spec/fixtures/solr_documents/multiple-downloads.json +6 -18
  233. data/spec/fixtures/solr_documents/no_locn_geometry.json +4 -12
  234. data/spec/fixtures/solr_documents/no_spatial.json +4 -12
  235. data/spec/fixtures/solr_documents/oembed.json +8 -25
  236. data/spec/fixtures/solr_documents/princeton-child1.json +9 -29
  237. data/spec/fixtures/solr_documents/princeton-child2.json +9 -29
  238. data/spec/fixtures/solr_documents/princeton-child3.json +9 -29
  239. data/spec/fixtures/solr_documents/princeton-child4.json +9 -29
  240. data/spec/fixtures/solr_documents/princeton-parent.json +10 -33
  241. data/spec/fixtures/solr_documents/public_cog_princeton.json +9 -27
  242. data/spec/fixtures/solr_documents/public_iiif_princeton.json +13 -43
  243. data/spec/fixtures/solr_documents/public_pmtiles_princeton.json +29 -39
  244. data/spec/fixtures/solr_documents/public_polygon_mit.json +9 -30
  245. data/spec/fixtures/solr_documents/restricted-line.json +14 -47
  246. data/spec/fixtures/solr_documents/the-related-record.json +4 -12
  247. data/spec/fixtures/solr_documents/tilejson.json +23 -46
  248. data/spec/fixtures/solr_documents/tms.json +7 -21
  249. data/spec/fixtures/solr_documents/umn_metro_result1.json +13 -41
  250. data/spec/fixtures/solr_documents/umn_state_result1.json +13 -39
  251. data/spec/fixtures/solr_documents/umn_state_result2.json +13 -39
  252. data/spec/fixtures/solr_documents/uva_slug_colon.json +10 -30
  253. data/spec/fixtures/solr_documents/wmts-multiple.json +23 -39
  254. data/spec/fixtures/solr_documents/wmts-single-layer.json +23 -46
  255. data/spec/fixtures/solr_documents/xyz.json +10 -33
  256. data/spec/helpers/geoblacklight_helper_spec.rb +5 -50
  257. data/spec/javascripts/geoblacklight_spec.js +10 -10
  258. data/spec/javascripts/metadata_download_button_spec.js +14 -13
  259. data/spec/lib/geoblacklight/bounding_box_spec.rb +1 -1
  260. data/spec/lib/geoblacklight/configuration/default_settings_builder_spec.rb +9 -0
  261. data/spec/lib/geoblacklight/configuration_spec.rb +13 -0
  262. data/spec/lib/geoblacklight/download/csv_download_spec.rb +2 -2
  263. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +2 -2
  264. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +5 -2
  265. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +2 -2
  266. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +2 -2
  267. data/spec/lib/geoblacklight/download_spec.rb +15 -6
  268. data/spec/lib/geoblacklight/geometry_spec.rb +1 -1
  269. data/spec/lib/geoblacklight/item_viewer_spec.rb +2 -2
  270. data/spec/lib/geoblacklight/metadata/base_spec.rb +1 -1
  271. data/spec/lib/geoblacklight/metadata/html_spec.rb +1 -1
  272. data/spec/lib/geoblacklight/metadata_spec.rb +1 -1
  273. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +1 -1
  274. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +1 -1
  275. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +1 -1
  276. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +1 -1
  277. data/spec/lib/geoblacklight/reference_spec.rb +1 -1
  278. data/spec/lib/geoblacklight/references_spec.rb +6 -4
  279. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +10 -4
  280. data/spec/lib/geoblacklight/relation/descendants_spec.rb +9 -4
  281. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +12 -15
  282. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +1 -1
  283. data/spec/lib/geoblacklight/wms_layer_spec.rb +1 -1
  284. data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +20 -11
  285. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +1 -1
  286. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +1 -1
  287. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +1 -1
  288. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +4 -39
  289. data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +2 -2
  290. data/spec/routing/catalog_routing_spec.rb +1 -1
  291. data/spec/spec_helper.rb +4 -16
  292. data/spec/tasks/geoblacklight_spec.rb +1 -1
  293. data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -3
  294. metadata +40 -194
  295. data/Procfile.dev +0 -3
  296. data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +0 -2
  297. data/app/assets/stylesheets/geoblacklight/modules/_base.scss +0 -31
  298. data/app/assets/stylesheets/geoblacklight/modules/_blacklight_overrides.scss +0 -40
  299. data/app/assets/stylesheets/geoblacklight/modules/_styles.scss +0 -9
  300. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +0 -62
  301. data/app/assets/stylesheets/geoblacklight/modules/geosearch.scss +0 -23
  302. data/app/assets/stylesheets/geoblacklight/modules/home.scss +0 -13
  303. data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +0 -116
  304. data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +0 -61
  305. data/app/assets/stylesheets/geoblacklight/modules/item.scss +0 -78
  306. data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +0 -87
  307. data/app/assets/stylesheets/geoblacklight/modules/leaflet.scss +0 -4
  308. data/app/assets/stylesheets/geoblacklight/modules/metadata.scss +0 -31
  309. data/app/assets/stylesheets/geoblacklight/modules/metadata_content.scss +0 -43
  310. data/app/assets/stylesheets/geoblacklight/modules/metadata_markup.scss +0 -9
  311. data/app/assets/stylesheets/geoblacklight/modules/metadata_missing.scss +0 -7
  312. data/app/assets/stylesheets/geoblacklight/modules/modal.scss +0 -5
  313. data/app/assets/stylesheets/geoblacklight/modules/results.scss +0 -60
  314. data/app/assets/stylesheets/geoblacklight/modules/search_widgets.scss +0 -5
  315. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +0 -42
  316. data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +0 -34
  317. data/app/assets/stylesheets/geoblacklight/modules/web_services.scss +0 -5
  318. data/app/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component.rb +0 -46
  319. data/app/components/blacklight/icons/arizona_component.rb +0 -24
  320. data/app/components/blacklight/icons/baruch_cuny_component.rb +0 -23
  321. data/app/components/blacklight/icons/bookmark_component.rb +0 -23
  322. data/app/components/blacklight/icons/circle_info_solid_component.rb +0 -23
  323. data/app/components/blacklight/icons/columbia_component.rb +0 -23
  324. data/app/components/blacklight/icons/cornell_component.rb +0 -25
  325. data/app/components/blacklight/icons/george_mason_component.rb +0 -24
  326. data/app/components/blacklight/icons/harvard_component.rb +0 -23
  327. data/app/components/blacklight/icons/indiana_component.rb +0 -23
  328. data/app/components/blacklight/icons/lewis_clark_component.rb +0 -25
  329. data/app/components/blacklight/icons/massgis_component.rb +0 -23
  330. data/app/components/blacklight/icons/michigan_state_university_component.rb +0 -25
  331. data/app/components/blacklight/icons/mit_component.rb +0 -23
  332. data/app/components/blacklight/icons/northwestern_university_component.rb +0 -24
  333. data/app/components/blacklight/icons/nyu_component.rb +0 -26
  334. data/app/components/blacklight/icons/pennsylvania_state_university_component.rb +0 -25
  335. data/app/components/blacklight/icons/princeton_component.rb +0 -23
  336. data/app/components/blacklight/icons/purdue_university_component.rb +0 -25
  337. data/app/components/blacklight/icons/rutgers_component.rb +0 -25
  338. data/app/components/blacklight/icons/sms_component.rb +0 -23
  339. data/app/components/blacklight/icons/stanford_component.rb +0 -23
  340. data/app/components/blacklight/icons/texas_component.rb +0 -23
  341. data/app/components/blacklight/icons/the_ohio_state_university_component.rb +0 -26
  342. data/app/components/blacklight/icons/tufts_component.rb +0 -23
  343. data/app/components/blacklight/icons/ucla_component.rb +0 -23
  344. data/app/components/blacklight/icons/university_of_california_berkeley_component.rb +0 -24
  345. data/app/components/blacklight/icons/university_of_chicago_component.rb +0 -25
  346. data/app/components/blacklight/icons/university_of_colorado_boulder_component.rb +0 -26
  347. data/app/components/blacklight/icons/university_of_illinois_urbana_champaign_component.rb +0 -25
  348. data/app/components/blacklight/icons/university_of_iowa_component.rb +0 -24
  349. data/app/components/blacklight/icons/university_of_maryland_component.rb +0 -24
  350. data/app/components/blacklight/icons/university_of_michigan_component.rb +0 -24
  351. data/app/components/blacklight/icons/university_of_minnesota_component.rb +0 -24
  352. data/app/components/blacklight/icons/university_of_nebraska_lincoln_component.rb +0 -27
  353. data/app/components/blacklight/icons/university_of_wisconsin_madison_component.rb +0 -24
  354. data/app/components/blacklight/icons/uva_component.rb +0 -23
  355. data/app/components/geoblacklight/icon_facet_item_component.rb +0 -33
  356. data/app/components/geoblacklight/web_services_link_component.html.erb +0 -3
  357. data/bin/vite +0 -29
  358. data/config/initializers/new_gbl_settings_defaults_4.1.yml +0 -104
  359. data/lib/generators/geoblacklight/assets/importmap_generator.rb +0 -73
  360. data/lib/generators/geoblacklight/assets/vite_generator.rb +0 -89
  361. data/lib/generators/geoblacklight/templates/assets/_customizations.scss +0 -23
  362. data/lib/generators/geoblacklight/templates/assets/application.js +0 -17
  363. data/lib/generators/geoblacklight/templates/assets/application.scss +0 -9
  364. data/lib/generators/geoblacklight/templates/assets/geoblacklight.scss +0 -11
  365. data/lib/generators/geoblacklight/templates/base.html.erb +0 -46
  366. data/lib/generators/geoblacklight/templates/vite.config.ts +0 -23
  367. data/lib/generators/geoblacklight/templates/vite.json +0 -16
  368. data/lib/geoblacklight/deprecated_configuration.rb +0 -665
  369. data/schema/geoblacklight-schema-1.0.json +0 -214
  370. data/solr/conf/xslt/example.xsl +0 -132
  371. data/solr/conf/xslt/example_atom.xsl +0 -67
  372. data/solr/conf/xslt/example_rss.xsl +0 -66
  373. data/solr/conf/xslt/luke.xsl +0 -337
  374. data/spec/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component_spec.rb +0 -15
  375. data/spec/components/blacklight/icons/arizona_component_spec.rb +0 -15
  376. data/spec/components/blacklight/icons/arrow_circle_down_component_spec.rb +0 -15
  377. data/spec/components/blacklight/icons/baruch_cuny_component_spec.rb +0 -15
  378. data/spec/components/blacklight/icons/book_component_spec.rb +0 -15
  379. data/spec/components/blacklight/icons/bookmark_component_spec.rb +0 -15
  380. data/spec/components/blacklight/icons/cd_rom_component_spec.rb +0 -15
  381. data/spec/components/blacklight/icons/child_item_component_spec.rb +0 -15
  382. data/spec/components/blacklight/icons/circle_info_solid_component_spec.rb +0 -15
  383. data/spec/components/blacklight/icons/citation_component_spec.rb +0 -15
  384. data/spec/components/blacklight/icons/collection_component_spec.rb +0 -15
  385. data/spec/components/blacklight/icons/collections_component_spec.rb +0 -15
  386. data/spec/components/blacklight/icons/columbia_component_spec.rb +0 -15
  387. data/spec/components/blacklight/icons/cornell_component_spec.rb +0 -15
  388. data/spec/components/blacklight/icons/datasets_component_spec.rb +0 -15
  389. data/spec/components/blacklight/icons/dvd_rom_component_spec.rb +0 -15
  390. data/spec/components/blacklight/icons/email_component_spec.rb +0 -15
  391. data/spec/components/blacklight/icons/esri_globe_component_spec.rb +0 -15
  392. data/spec/components/blacklight/icons/fire_solid_component_spec.rb +0 -15
  393. data/spec/components/blacklight/icons/george_mason_component_spec.rb +0 -15
  394. data/spec/components/blacklight/icons/globe_component_spec.rb +0 -15
  395. data/spec/components/blacklight/icons/harvard_component_spec.rb +0 -15
  396. data/spec/components/blacklight/icons/home_component_spec.rb +0 -15
  397. data/spec/components/blacklight/icons/iiif_drag_drop_component_spec.rb +0 -15
  398. data/spec/components/blacklight/icons/image_component_spec.rb +0 -15
  399. data/spec/components/blacklight/icons/imagery_component_spec.rb +0 -15
  400. data/spec/components/blacklight/icons/indiana_component_spec.rb +0 -15
  401. data/spec/components/blacklight/icons/leaf_component_spec.rb +0 -15
  402. data/spec/components/blacklight/icons/lewis_clark_component_spec.rb +0 -15
  403. data/spec/components/blacklight/icons/lightbulb_solid_component_spec.rb +0 -15
  404. data/spec/components/blacklight/icons/line_component_spec.rb +0 -15
  405. data/spec/components/blacklight/icons/map_component_spec.rb +0 -15
  406. data/spec/components/blacklight/icons/map_marker_component_spec.rb +0 -15
  407. data/spec/components/blacklight/icons/maps_component_spec.rb +0 -15
  408. data/spec/components/blacklight/icons/massgis_component_spec.rb +0 -15
  409. data/spec/components/blacklight/icons/metadata_component_spec.rb +0 -15
  410. data/spec/components/blacklight/icons/michigan_state_university_component_spec.rb +0 -15
  411. data/spec/components/blacklight/icons/mit_component_spec.rb +0 -15
  412. data/spec/components/blacklight/icons/mixed_component_spec.rb +0 -15
  413. data/spec/components/blacklight/icons/multilinestring_component_spec.rb +0 -15
  414. data/spec/components/blacklight/icons/multipoint_component_spec.rb +0 -15
  415. data/spec/components/blacklight/icons/multipolygon_component_spec.rb +0 -15
  416. data/spec/components/blacklight/icons/northwestern_university_component_spec.rb +0 -15
  417. data/spec/components/blacklight/icons/nyu_component_spec.rb +0 -15
  418. data/spec/components/blacklight/icons/pagelines_brands_component_spec.rb +0 -15
  419. data/spec/components/blacklight/icons/paper_map_component_spec.rb +0 -15
  420. data/spec/components/blacklight/icons/parent_item_component_spec.rb +0 -15
  421. data/spec/components/blacklight/icons/pennsylvania_state_university_component_spec.rb +0 -15
  422. data/spec/components/blacklight/icons/point_component_spec.rb +0 -15
  423. data/spec/components/blacklight/icons/polygon_component_spec.rb +0 -15
  424. data/spec/components/blacklight/icons/polyline_component_spec.rb +0 -15
  425. data/spec/components/blacklight/icons/princeton_component_spec.rb +0 -15
  426. data/spec/components/blacklight/icons/public_component_spec.rb +0 -15
  427. data/spec/components/blacklight/icons/purdue_university_component_spec.rb +0 -15
  428. data/spec/components/blacklight/icons/raster_component_spec.rb +0 -15
  429. data/spec/components/blacklight/icons/restricted_component_spec.rb +0 -15
  430. data/spec/components/blacklight/icons/rutgers_component_spec.rb +0 -15
  431. data/spec/components/blacklight/icons/sms_component_spec.rb +0 -15
  432. data/spec/components/blacklight/icons/stanford_component_spec.rb +0 -15
  433. data/spec/components/blacklight/icons/table_component_spec.rb +0 -15
  434. data/spec/components/blacklight/icons/tags_component_spec.rb +0 -15
  435. data/spec/components/blacklight/icons/texas_component_spec.rb +0 -15
  436. data/spec/components/blacklight/icons/the_ohio_state_university_component_spec.rb +0 -15
  437. data/spec/components/blacklight/icons/triangle_exclamation_solid_component_spec.rb +0 -15
  438. data/spec/components/blacklight/icons/tufts_component_spec.rb +0 -15
  439. data/spec/components/blacklight/icons/ucla_component_spec.rb +0 -15
  440. data/spec/components/blacklight/icons/university_of_california_berkeley_component_spec.rb +0 -15
  441. data/spec/components/blacklight/icons/university_of_chicago_component_spec.rb +0 -15
  442. data/spec/components/blacklight/icons/university_of_colorado_boulder_component_spec.rb +0 -15
  443. data/spec/components/blacklight/icons/university_of_illinois_urbana_champaign_component_spec.rb +0 -15
  444. data/spec/components/blacklight/icons/university_of_iowa_component_spec.rb +0 -15
  445. data/spec/components/blacklight/icons/university_of_maryland_component_spec.rb +0 -15
  446. data/spec/components/blacklight/icons/university_of_michigan_component_spec.rb +0 -15
  447. data/spec/components/blacklight/icons/university_of_minnesota_component_spec.rb +0 -15
  448. data/spec/components/blacklight/icons/university_of_nebraska_lincoln_component_spec.rb +0 -15
  449. data/spec/components/blacklight/icons/university_of_wisconsin_madison_component_spec.rb +0 -15
  450. data/spec/components/blacklight/icons/uva_component_spec.rb +0 -15
  451. data/spec/components/blacklight/icons/web_services_component_spec.rb +0 -15
  452. data/spec/components/blacklight/icons/websites_component_spec.rb +0 -15
  453. data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +0 -18
  454. data/spec/config/initializers/rails_config_spec.rb +0 -16
  455. data/spec/fixtures/solr_documents/public_direct_download.json +0 -62
  456. data/spec/lib/geoblacklight/deprecated_configuration_spec.rb +0 -680
  457. data/spec/solr_config_spec.rb +0 -41
  458. data/spec/support/backport_test_helpers.rb +0 -47
  459. data/spec/support/view_component_capybara_test_helpers.rb +0 -8
  460. data/vite.config.ts +0 -32
  461. /data/app/assets/images/{blacklight → geoblacklight}/logo.svg +0 -0
@@ -1,98 +1,101 @@
1
- import { DomUtil, DomEvent, Handler } from "leaflet";
1
+ import { DomUtil, DomEvent, Handler } from "leaflet"
2
2
 
3
3
  export default class Sleep extends Handler {
4
4
  addHooks() {
5
- const container = DomUtil.create("div", "wake-overlay w-100 h-100 position-absolute align-items-center justify-content-center", this._map._container);
5
+ const container = DomUtil.create(
6
+ "div",
7
+ "wake-overlay w-100 h-100 position-absolute align-items-center justify-content-center",
8
+ this._map._container,
9
+ )
6
10
  const button = DomUtil.create("button", "btn btn-primary wake-button", container)
7
11
 
8
- button.innerHTML = this._map.options.MESSAGE;
9
- button.setAttribute("tabindex", "0");
10
- button.style.zIndex = 2000;
11
- container.style.zIndex = 1999;
12
- const background = String(this._map.options.BACKGROUND);
13
- container.style.background = background;
14
- this.container = container;
15
- if (this._map.options.MARGIN_DISTANCE) {
12
+ button.innerHTML = this._map.options.message
13
+ button.setAttribute("tabindex", "0")
14
+ button.style.zIndex = 2000
15
+ container.style.zIndex = 1999
16
+ const background = String(this._map.options.background)
17
+ container.style.background = background
18
+ this.container = container
19
+ if (this._map.options.margin_distance) {
16
20
  this.updateBasedOnSize()
17
21
  } else {
18
- this.sleepMap();
22
+ this.sleepMap()
19
23
  }
20
24
  this.setListeners()
21
25
  }
22
26
 
23
27
  sleepMap() {
24
- this._map.dragging.disable();
25
- this._map.touchZoom.disable();
26
- this._map.scrollWheelZoom.disable();
27
- this._map.doubleClickZoom.disable();
28
- this._map.boxZoom.disable();
29
- this._map.keyboard.disable();
30
- this.container.classList.add('d-flex');
31
- this.container.classList.remove('d-none');
28
+ this._map.dragging.disable()
29
+ this._map.touchZoom.disable()
30
+ this._map.scrollWheelZoom.disable()
31
+ this._map.doubleClickZoom.disable()
32
+ this._map.boxZoom.disable()
33
+ this._map.keyboard.disable()
34
+ this.container.classList.add("d-flex")
35
+ this.container.classList.remove("d-none")
32
36
  }
33
37
 
34
38
  wakeMap() {
35
- this._map.dragging.enable();
36
- this._map.touchZoom.enable();
37
- this._map.scrollWheelZoom.enable();
38
- this._map.doubleClickZoom.enable();
39
- this._map.boxZoom.enable();
40
- this._map.keyboard.enable();
41
- this.container.classList.remove('d-flex');
42
- this.container.classList.add('d-none');
39
+ this._map.dragging.enable()
40
+ this._map.touchZoom.enable()
41
+ this._map.scrollWheelZoom.enable()
42
+ this._map.doubleClickZoom.enable()
43
+ this._map.boxZoom.enable()
44
+ this._map.keyboard.enable()
45
+ this.container.classList.remove("d-flex")
46
+ this.container.classList.add("d-none")
43
47
  }
44
48
 
45
49
  updateBasedOnSize() {
46
- const rect = this._map._container.getBoundingClientRect();
50
+ const rect = this._map._container.getBoundingClientRect()
47
51
  // sometimes the left/right side has larger margin, so we take an average
48
- const calculation = ((window.innerWidth - rect.right) + rect.left) / 2;
49
- if (calculation < this._map.options.MARGIN_DISTANCE) {
50
- this.sleepMap();
52
+ const calculation = (window.innerWidth - rect.right + rect.left) / 2
53
+ if (calculation < this._map.options.margin_distance) {
54
+ this.sleepMap()
51
55
  } else {
52
- this.wakeMap();
56
+ this.wakeMap()
53
57
  }
54
58
  }
55
59
 
56
60
  setListeners() {
57
- const _this = this;
58
- let timer;
59
- let sleeptimer;
61
+ const _this = this
62
+ let timer
63
+ let sleeptimer
60
64
 
61
- if (_this._map.options.MARGIN_DISTANCE){
65
+ if (_this._map.options.margin_distance) {
62
66
  window.addEventListener("resize", (event) => {
63
- _this.updateBasedOnSize();
67
+ _this.updateBasedOnSize()
64
68
  })
65
69
  }
66
70
 
67
71
  DomEvent.on(_this.container, "click", (e) => {
68
72
  _this.wakeMap()
69
- });
73
+ })
70
74
 
71
75
  DomEvent.on(_this.container, "focus", (e) => {
72
76
  _this.wakeMap()
73
- });
77
+ })
74
78
 
75
- if (this._map.options.HOVERTOWAKE) {
79
+ if (this._map.options.hovertowake) {
76
80
  DomEvent.on(this._map._container, "mouseenter", (e) => {
77
- clearTimeout(sleeptimer);
81
+ clearTimeout(sleeptimer)
78
82
 
79
- timer = setTimeout(function() {
83
+ timer = setTimeout(function () {
80
84
  _this.wakeMap()
81
- }, _this._map.options.WAKETIME);
82
-
83
- });
85
+ }, _this._map.options.waketime)
86
+ })
84
87
 
85
88
  DomEvent.on(this._map._container, "mouseleave", (e) => {
86
- clearTimeout(timer);
87
-
88
- sleeptimer = setTimeout(function() {
89
+ clearTimeout(timer)
90
+
91
+ sleeptimer = setTimeout(function () {
89
92
  _this.sleepMap()
90
- }, _this._map.options.SLEEPTIME);
91
- });
93
+ }, _this._map.options.sleeptime)
94
+ })
92
95
  }
93
96
 
94
97
  DomEvent.on(this.container, "touchstart", (e) => {
95
98
  _this.wakeMap()
96
- });
99
+ })
97
100
  }
98
101
  }
@@ -1,18 +1,17 @@
1
- import { identifyFeatures } from "esri-leaflet";
2
- import { polygon, geoJSON, circleMarker, layerGroup } from "leaflet";
3
- import { appendErrorMessage, appendLoadingMessage, getLayerOpacity, linkify } from "geoblacklight/leaflet/utils";
1
+ import { identifyFeatures } from "esri-leaflet"
2
+ import { appendErrorMessage, appendLoadingMessage, getLayerOpacity, linkify } from "geoblacklight/leaflet/utils"
4
3
 
5
4
  export const wmsInspection = (map, url, layerId, layer) => {
6
5
  // add crosshair class for map items
7
- map.getContainer().classList.add('leaflet-clickable');
6
+ map.getContainer().classList.add("leaflet-clickable")
8
7
 
9
8
  // Inspect on click
10
9
  map.on("click", async (e) => {
11
- const spinner = document.createElement("tbody");
12
- spinner.className = "attribute-table-body";
10
+ const spinner = document.createElement("tbody")
11
+ spinner.className = "attribute-table-body"
13
12
  spinner.innerHTML =
14
- '<tr><td colspan="2"><div class="spinner-border" role="status"><span class="visually-hidden">Inspecting</span></div></td></tr>';
15
- document.querySelector(".attribute-table-body").replaceWith(spinner);
13
+ '<tr><td colspan="2"><div class="spinner-border" role="status"><span class="visually-hidden">Inspecting</span></div></td></tr>'
14
+ document.querySelector(".attribute-table-body").replaceWith(spinner)
16
15
 
17
16
  const wmsoptions = {
18
17
  URL: url,
@@ -23,75 +22,84 @@ export const wmsInspection = (map, url, layerId, layer) => {
23
22
  QUERY_LAYERS: layerId,
24
23
  X: Math.round(e.containerPoint.x),
25
24
  Y: Math.round(e.containerPoint.y),
26
- };
25
+ }
27
26
 
28
27
  try {
29
28
  const response = await fetch("/wms/handle", {
30
29
  method: "POST",
31
30
  headers: {
32
31
  "Content-Type": "application/json",
33
- "X-CSRF-Token": document
34
- .querySelector('meta[name="csrf-token"]')
35
- .getAttribute("content"),
32
+ "X-CSRF-Token": document.querySelector('meta[name="csrf-token"]').getAttribute("content"),
36
33
  },
37
34
  body: JSON.stringify(wmsoptions),
38
- });
35
+ })
39
36
 
40
- if (!response.ok) throw new Error("Network response was not ok.");
37
+ if (!response.ok) throw new Error("Network response was not ok.")
41
38
 
42
- const response_data = await response.json();
39
+ const response_data = await response.json()
43
40
 
44
- if (response_data.hasOwnProperty("error") || response_data.hasOwnProperty('exceptions') || response_data.features.length === 0) {
41
+ if (
42
+ response_data.hasOwnProperty("error") ||
43
+ response_data.hasOwnProperty("exceptions") ||
44
+ response_data.features.length === 0
45
+ ) {
45
46
  document.querySelector(".attribute-table-body").innerHTML =
46
- '<tr><td colspan="2">Could not find that feature</td></tr>';
47
- return;
47
+ '<tr><td colspan="2">Could not find that feature</td></tr>'
48
+ return
48
49
  }
49
- const data = response_data.features[0];
50
- if (!data.isHTML) overlayLayer(map, data, layer);
50
+ const data = response_data.features[0]
51
+ if (!data.isHTML) overlayLayer(map, data, layer)
51
52
 
52
- populateAttributeTable(data);
53
+ populateAttributeTable(data)
53
54
  } catch (error) {
54
- console.error("Fetch error: ", error);
55
+ console.error("Fetch error: ", error)
55
56
  }
56
- });
57
+ })
57
58
  }
58
59
 
59
60
  export const overlayLayer = (map, data, layer) => {
60
- const highlightLayerOld = Object.values(map._layers).filter(layer => layer.options.highlightLayer);
61
- if (highlightLayerOld[0]) highlightLayerOld.map(layer => map.removeLayer(layer));
62
- if (!data) return;
61
+ const highlightLayerOld = Object.values(map._layers).filter((layer) => layer.options.highlightLayer)
62
+ if (highlightLayerOld[0]) highlightLayerOld.map((layer) => map.removeLayer(layer))
63
+ if (!data) return
63
64
 
64
- let overlayLayer;
65
+ let overlayLayer
65
66
 
66
- const opacity = getLayerOpacity(layer);
67
- const color = map.options.selected_color;
67
+ const opacity = getLayerOpacity(layer)
68
+ const color = map.options.selected_color
68
69
 
69
70
  if (data._latlngs) {
70
- overlayLayer = polygon(data._latlngs, {color: color, weight: 2, layer: true, fillOpacity: opacity, addToOpacitySlider: true, highlightLayer: true });
71
+ overlayLayer = L.polygon(data._latlngs, {
72
+ color: color,
73
+ weight: 2,
74
+ layer: true,
75
+ fillOpacity: opacity,
76
+ addToOpacitySlider: true,
77
+ highlightLayer: true,
78
+ })
71
79
  } else {
72
- overlayLayer = geoJSON(data, {
80
+ overlayLayer = L.geoJSON(data, {
73
81
  color: color,
74
82
  opacity: opacity,
75
83
  addToOpacitySlider: true,
76
84
  highlightLayer: true,
77
- pointToLayer: function(feature, latlng) {
78
- return circleMarker(latlng, {
85
+ pointToLayer: function (feature, latlng) {
86
+ return L.circleMarker(latlng, {
79
87
  radius: 8,
80
88
  fillColor: color,
81
89
  color: color,
82
90
  weight: 1,
83
91
  opacity: opacity,
84
- fillOpacity: opacity
85
- });
86
- }
87
- });
92
+ fillOpacity: opacity,
93
+ })
94
+ },
95
+ })
88
96
  }
89
- layerGroup([overlayLayer]).addTo(map);
97
+ L.layerGroup([overlayLayer]).addTo(map)
90
98
  }
91
99
 
92
100
  export const tiledMapLayerInspection = (map, layer) => {
93
101
  this.map.on("click", (e) => {
94
- this.appendLoadingMessage();
102
+ this.appendLoadingMessage()
95
103
 
96
104
  // Query layer at click location
97
105
  identifyFeatures({
@@ -104,21 +112,21 @@ export const tiledMapLayerInspection = (map, layer) => {
104
112
  .at(e.latlng)
105
113
  .run((error, featureCollection) => {
106
114
  if (error) {
107
- this.appendErrorMessage();
115
+ this.appendErrorMessage()
108
116
  } else {
109
- this.populateAttributeTable(featureCollection.features[0]);
117
+ this.populateAttributeTable(featureCollection.features[0])
110
118
  }
111
- });
112
- });
119
+ })
120
+ })
113
121
  }
114
122
 
115
123
  export const dynamicMapLayerInspection = (map, layer, layerId) => {
116
124
  // add crosshair class for map items
117
- map.getContainer().classList.add('leaflet-clickable');
125
+ map.getContainer().classList.add("leaflet-clickable")
118
126
 
119
127
  // Inspect on click
120
128
  map.on("click", (e) => {
121
- appendLoadingMessage();
129
+ appendLoadingMessage()
122
130
 
123
131
  // Query layer at click location
124
132
  const identify = identifyFeatures({
@@ -128,40 +136,40 @@ export const dynamicMapLayerInspection = (map, layer, layerId) => {
128
136
  .tolerance(2)
129
137
  .returnGeometry(true)
130
138
  .on(map)
131
- .at(e.latlng);
139
+ .at(e.latlng)
132
140
 
133
141
  // Query specific layer if dynamicLayerId is set
134
142
  if (layerId) {
135
- identify.layers("all: " + layerId);
143
+ identify.layers("all: " + layerId)
136
144
  }
137
145
 
138
146
  identify.run((error, featureCollection, response) => {
139
147
  if (error || response.results < 1) {
140
- appendErrorMessage();
148
+ appendErrorMessage()
141
149
  } else {
142
- overlayLayer(map, featureCollection.features[0], layer);
143
- populateAttributeTable(featureCollection.features[0]);
150
+ overlayLayer(map, featureCollection.features[0], layer)
151
+ populateAttributeTable(featureCollection.features[0])
144
152
  }
145
- });
146
- });
153
+ })
154
+ })
147
155
  }
148
156
 
149
157
  export const featureLayerInspection = (map, layer) => {
150
158
  // add crosshair class for map items
151
- layer.on('load', function() {
152
- this.eachFeature(function(layer) {
153
- var overlay = layer._path ? layer._path : layer._icon;
159
+ layer.on("load", function () {
160
+ this.eachFeature(function (layer) {
161
+ var overlay = layer._path ? layer._path : layer._icon
154
162
  if (overlay) {
155
- overlay.classList.add('leaflet-clickable');
163
+ overlay.classList.add("leaflet-clickable")
156
164
  }
157
- });
158
- });
165
+ })
166
+ })
159
167
 
160
168
  // Inspect on click
161
169
  layer.on("click", (e) => {
162
- const distance = 3000 / (1 + map.getZoom());
170
+ const distance = 3000 / (1 + map.getZoom())
163
171
 
164
- appendLoadingMessage();
172
+ appendLoadingMessage()
165
173
 
166
174
  // Query layer at click location
167
175
  layer
@@ -170,27 +178,27 @@ export const featureLayerInspection = (map, layer) => {
170
178
  .nearby(e.latlng, distance)
171
179
  .run((error, featureCollection) => {
172
180
  if (error || !featureCollection.features.length) {
173
- appendErrorMessage();
181
+ appendErrorMessage()
174
182
  } else {
175
- overlayLayer(map, featureCollection.features[0], layer);
176
- populateAttributeTable(featureCollection.features[0]);
183
+ overlayLayer(map, featureCollection.features[0], layer)
184
+ populateAttributeTable(featureCollection.features[0])
177
185
  }
178
- });
179
- });
186
+ })
187
+ })
180
188
  }
181
189
 
182
190
  const populateAttributeTable = (feature) => {
183
- let html = '<tbody class="attribute-table-body">';
191
+ let html = '<tbody class="attribute-table-body">'
184
192
 
185
193
  // Step through properties and append to table
186
194
  Object.keys(feature.properties).forEach((property) => {
187
195
  html += `<tr><td>${property}</td>
188
- <td>${linkify(feature.properties[property])}</td></tr>`;
189
- });
190
- html += "</tbody>";
196
+ <td>${linkify(feature.properties[property])}</td></tr>`
197
+ })
198
+ html += "</tbody>"
191
199
 
192
- const tableBody = document.querySelector(".attribute-table-body");
200
+ const tableBody = document.querySelector(".attribute-table-body")
193
201
  if (tableBody) {
194
- tableBody.outerHTML = html; // Replace existing table body with new content
202
+ tableBody.outerHTML = html // Replace existing table body with new content
195
203
  }
196
204
  }
@@ -1,6 +1,7 @@
1
1
  const indexMapInfoTemplate = (data) => `
2
2
  <div class="index-map-info">
3
- ${data.title
3
+ ${
4
+ data.title
4
5
  ? `
5
6
  <div class="col-sm-12">
6
7
  <h3>${data.title}</h3>
@@ -8,9 +9,11 @@ const indexMapInfoTemplate = (data) => `
8
9
  : ""
9
10
  }
10
11
  <div class="col-sm-12">
11
- ${data.thumbnailUrl
12
- ? `
13
- ${data.websiteUrl
12
+ ${
13
+ data.thumbnailUrl
14
+ ? `
15
+ ${
16
+ data.websiteUrl
14
17
  ? `
15
18
  <a href="${data.websiteUrl}">
16
19
  <img src="${data.thumbnailUrl}" class="img-responsive">
@@ -18,53 +21,57 @@ const indexMapInfoTemplate = (data) => `
18
21
  : `
19
22
  <img src="${data.thumbnailUrl}">`
20
23
  }`
21
- : ""
22
- }
24
+ : ""
25
+ }
23
26
  <dl class="row dl-invert document-metadata">
24
- ${data.websiteUrl
25
- ? `
27
+ ${
28
+ data.websiteUrl
29
+ ? `
26
30
  <dt class="col-sm-3">Website:</dt>
27
31
  <dd class="col-sm-9"><a href="${data.websiteUrl}">${data.websiteUrl}</a></dd>`
28
- : ""
29
- }
30
- ${data.downloadUrl
31
- ? `
32
+ : ""
33
+ }
34
+ ${
35
+ data.downloadUrl
36
+ ? `
32
37
  <dt class="col-sm-3">Download:</dt>
33
38
  <dd class="col-sm-9"><a href="${data.downloadUrl}">${data.downloadUrl}</a></dd>`
34
- : ""
35
- }
36
- ${data.recordIdentifier
37
- ? `
39
+ : ""
40
+ }
41
+ ${
42
+ data.recordIdentifier
43
+ ? `
38
44
  <dt class="col-sm-3">Record Identifier:</dt>
39
45
  <dd class="col-sm-9">${data.recordIdentifier}</dd>`
40
- : ""
41
- }
42
- ${data.label
43
- ? `
46
+ : ""
47
+ }
48
+ ${
49
+ data.label
50
+ ? `
44
51
  <dt class="col-sm-3">Label:</dt>
45
52
  <dd class="col-sm-9">${data.label}</dd>`
46
- : ""
47
- }
48
- ${data.note
49
- ? `
53
+ : ""
54
+ }
55
+ ${
56
+ data.note
57
+ ? `
50
58
  <dt class="col-sm-3">Note:</dt>
51
59
  <dd class="col-sm-9">${data.note}</dd>`
52
- : ""
53
- }
60
+ : ""
61
+ }
54
62
  </dl>
55
63
  </div>
56
- </div>`;
57
-
64
+ </div>`
65
+
58
66
  const indexMapDownloadTemplate = (data) =>
59
- data.downloadUrl
60
- ? `
67
+ data.downloadUrl
68
+ ? `
61
69
  <li class="list-group-item download js-index-map-feature">
62
70
  <h3 class="card-subtitle">Selected feature</h3>
63
71
  <ul class="list-group list-group-flush list-group-nested">
64
72
  <li class="list-group-item download">
65
73
  <div class="download-link-container">
66
- <a class="btn btn-default download download-original" href="${data.downloadUrl
67
- }">
74
+ <a class="btn btn-default download download-original" href="${data.downloadUrl}">
68
75
  ${data.label ? data.label : "Download"}
69
76
  </a>
70
77
  </div>
@@ -72,49 +79,47 @@ const indexMapDownloadTemplate = (data) =>
72
79
  </ul>
73
80
  </li>
74
81
  `
75
- : "";
82
+ : ""
76
83
 
77
84
  const indexMapTemplate = (data) => {
78
- return new Promise((resolve) => {
79
- if (data.iiifUrl && !data.thumbnailUrl) {
80
- fetch(data.iiifUrl)
81
- .then((response) => response.json())
82
- .then((manifestResponse) => {
83
- if (manifestResponse.thumbnail["@id"] !== null) {
84
- data.thumbnailUrl = manifestResponse.thumbnail["@id"];
85
- }
86
- resolve(data); // Resolve the modified data
87
- })
88
- .catch(() => resolve(data)); // In case of error, resolve with original data
89
- } else {
90
- resolve(data); // Immediately resolve if no iiifUrl
91
- }
92
- });
93
- };
85
+ return new Promise((resolve) => {
86
+ if (data.iiifUrl && !data.thumbnailUrl) {
87
+ fetch(data.iiifUrl)
88
+ .then((response) => response.json())
89
+ .then((manifestResponse) => {
90
+ if (manifestResponse.thumbnail["@id"] !== null) {
91
+ data.thumbnailUrl = manifestResponse.thumbnail["@id"]
92
+ }
93
+ resolve(data) // Resolve the modified data
94
+ })
95
+ .catch(() => resolve(data)) // In case of error, resolve with original data
96
+ } else {
97
+ resolve(data) // Immediately resolve if no iiifUrl
98
+ }
99
+ })
100
+ }
94
101
 
95
102
  export const availabilityStyle = (availability, leafletOptions) => {
96
- var style = availability || typeof availability === "undefined"
97
- ? leafletOptions.LAYERS.INDEX.DEFAULT
98
- : leafletOptions.LAYERS.INDEX.UNAVAILABLE;
99
- style['fillOpacity'] = leafletOptions.opacity || .65;
100
- style['opacity'] = leafletOptions.opacity || .65;
101
- return style
103
+ var style =
104
+ availability || typeof availability === "undefined"
105
+ ? leafletOptions.layers.index.DEFAULT
106
+ : leafletOptions.layers.index.UNAVAILABLE
107
+ style["fillOpacity"] = leafletOptions.opacity || 0.65
108
+ style["opacity"] = leafletOptions.opacity || 0.65
109
+ return style
102
110
  }
103
111
 
104
112
  export const updateInformation = (properties) => {
105
- indexMapTemplate(properties).then((updatedProperties) => {
106
- const indexMapHtml = indexMapInfoTemplate(updatedProperties);
107
- document.querySelector(".viewer-information").innerHTML = indexMapHtml;
113
+ indexMapTemplate(properties).then((updatedProperties) => {
114
+ const indexMapHtml = indexMapInfoTemplate(updatedProperties)
115
+ document.querySelector(".viewer-information").innerHTML = indexMapHtml
108
116
 
109
- const indexMapDownloadHtml =
110
- indexMapDownloadTemplate(updatedProperties);
111
- const downloadElement = document.querySelector(".js-download-list");
117
+ const indexMapDownloadHtml = indexMapDownloadTemplate(updatedProperties)
118
+ const downloadElement = document.querySelector(".js-download-list")
112
119
 
113
- if (Boolean(downloadElement)) {
114
- downloadElement.innerHTML += indexMapDownloadHtml; // Appends new download template
115
- downloadElement
116
- .querySelectorAll(".js-index-map-feature")
117
- .forEach((elem) => elem.remove());
118
- }
119
- });
120
- };
120
+ if (Boolean(downloadElement)) {
121
+ downloadElement.innerHTML += indexMapDownloadHtml // Appends new download template
122
+ downloadElement.querySelectorAll(".js-index-map-feature").forEach((elem) => elem.remove())
123
+ }
124
+ })
125
+ }