geoblacklight 4.4.1 → 5.0.0.pre.alpha.11

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 (577) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build-demo-app.yml +153 -0
  3. data/.github/workflows/prune-containers.yml +19 -0
  4. data/.github/workflows/ruby.yml +54 -52
  5. data/.gitignore +2 -2
  6. data/CONTRIBUTING.md +62 -44
  7. data/Gemfile +3 -28
  8. data/Rakefile +42 -67
  9. data/app/assets/images/blacklight/logo.svg +31 -1
  10. data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +1 -2
  11. data/app/assets/stylesheets/geoblacklight/modules/_base.scss +1 -1
  12. data/app/assets/stylesheets/geoblacklight/modules/_blacklight_overrides.scss +24 -26
  13. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +13 -0
  14. data/app/assets/stylesheets/geoblacklight/modules/home.scss +2 -17
  15. data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +48 -23
  16. data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +1 -15
  17. data/app/assets/stylesheets/geoblacklight/modules/item.scss +13 -11
  18. data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +3 -3
  19. data/app/assets/stylesheets/geoblacklight/modules/leaflet.scss +4 -0
  20. data/app/assets/stylesheets/geoblacklight/modules/modal.scss +0 -15
  21. data/app/assets/stylesheets/geoblacklight/modules/results.scss +10 -19
  22. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +2 -2
  23. data/app/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component.rb +46 -0
  24. data/app/components/blacklight/icons/arizona_component.rb +24 -0
  25. data/app/components/blacklight/icons/arrow_circle_down_component.rb +23 -0
  26. data/app/components/blacklight/icons/baruch_cuny_component.rb +23 -0
  27. data/app/components/blacklight/icons/book_component.rb +23 -0
  28. data/app/components/blacklight/icons/bookmark_component.rb +23 -0
  29. data/app/components/blacklight/icons/cd_rom_component.rb +23 -0
  30. data/app/components/blacklight/icons/child_item_component.rb +23 -0
  31. data/app/components/blacklight/icons/circle_info_solid_component.rb +23 -0
  32. data/app/components/blacklight/icons/citation_component.rb +23 -0
  33. data/app/components/blacklight/icons/collection_component.rb +23 -0
  34. data/app/components/blacklight/icons/collections_component.rb +24 -0
  35. data/app/components/blacklight/icons/columbia_component.rb +23 -0
  36. data/app/components/blacklight/icons/cornell_component.rb +25 -0
  37. data/app/components/blacklight/icons/datasets_component.rb +27 -0
  38. data/app/components/blacklight/icons/dvd_rom_component.rb +23 -0
  39. data/app/components/blacklight/icons/email_component.rb +23 -0
  40. data/app/components/blacklight/icons/esri_globe_component.rb +51 -0
  41. data/app/components/blacklight/icons/fire_solid_component.rb +23 -0
  42. data/app/components/blacklight/icons/george_mason_component.rb +24 -0
  43. data/app/components/blacklight/icons/globe_component.rb +23 -0
  44. data/app/components/blacklight/icons/harvard_component.rb +23 -0
  45. data/app/components/blacklight/icons/home_component.rb +23 -0
  46. data/app/components/blacklight/icons/iiif_drag_drop_component.rb +31 -0
  47. data/app/components/blacklight/icons/image_component.rb +23 -0
  48. data/app/components/blacklight/icons/imagery_component.rb +24 -0
  49. data/app/components/blacklight/icons/indiana_component.rb +23 -0
  50. data/app/components/blacklight/icons/leaf_component.rb +23 -0
  51. data/app/components/blacklight/icons/lewis_clark_component.rb +25 -0
  52. data/app/components/blacklight/icons/lightbulb_solid_component.rb +23 -0
  53. data/app/components/blacklight/icons/line_component.rb +24 -0
  54. data/app/components/blacklight/icons/map_component.rb +23 -0
  55. data/app/components/blacklight/icons/map_marker_component.rb +23 -0
  56. data/app/components/blacklight/icons/maps_component.rb +24 -0
  57. data/app/components/blacklight/icons/massgis_component.rb +23 -0
  58. data/app/components/blacklight/icons/metadata_component.rb +23 -0
  59. data/app/components/blacklight/icons/michigan_state_university_component.rb +25 -0
  60. data/app/components/blacklight/icons/mit_component.rb +23 -0
  61. data/app/components/blacklight/icons/mixed_component.rb +25 -0
  62. data/app/components/blacklight/icons/multilinestring_component.rb +26 -0
  63. data/app/components/blacklight/icons/multipoint_component.rb +23 -0
  64. data/app/components/blacklight/icons/multipolygon_component.rb +26 -0
  65. data/app/components/blacklight/icons/northwestern_university_component.rb +24 -0
  66. data/app/components/blacklight/icons/nyu_component.rb +26 -0
  67. data/app/components/blacklight/icons/pagelines_brands_component.rb +23 -0
  68. data/app/components/blacklight/icons/paper_map_component.rb +23 -0
  69. data/app/components/blacklight/icons/parent_item_component.rb +23 -0
  70. data/app/components/blacklight/icons/pennsylvania_state_university_component.rb +25 -0
  71. data/app/components/blacklight/icons/point_component.rb +23 -0
  72. data/app/components/blacklight/icons/polygon_component.rb +24 -0
  73. data/app/components/blacklight/icons/polyline_component.rb +26 -0
  74. data/app/components/blacklight/icons/princeton_component.rb +23 -0
  75. data/app/components/blacklight/icons/public_component.rb +23 -0
  76. data/app/components/blacklight/icons/purdue_university_component.rb +25 -0
  77. data/app/components/blacklight/icons/raster_component.rb +23 -0
  78. data/app/components/blacklight/icons/restricted_component.rb +23 -0
  79. data/app/components/blacklight/icons/rutgers_component.rb +25 -0
  80. data/app/components/blacklight/icons/sms_component.rb +23 -0
  81. data/app/components/blacklight/icons/stanford_component.rb +23 -0
  82. data/app/components/blacklight/icons/table_component.rb +23 -0
  83. data/app/components/blacklight/icons/tags_component.rb +23 -0
  84. data/app/components/blacklight/icons/texas_component.rb +23 -0
  85. data/app/components/blacklight/icons/the_ohio_state_university_component.rb +26 -0
  86. data/app/components/blacklight/icons/triangle_exclamation_solid_component.rb +23 -0
  87. data/app/components/blacklight/icons/tufts_component.rb +23 -0
  88. data/app/components/blacklight/icons/ucla_component.rb +23 -0
  89. data/app/components/blacklight/icons/university_of_california_berkeley_component.rb +24 -0
  90. data/app/components/blacklight/icons/university_of_chicago_component.rb +25 -0
  91. data/app/components/blacklight/icons/university_of_colorado_boulder_component.rb +26 -0
  92. data/app/components/blacklight/icons/university_of_illinois_urbana_champaign_component.rb +25 -0
  93. data/app/components/blacklight/icons/university_of_iowa_component.rb +24 -0
  94. data/app/components/blacklight/icons/university_of_maryland_component.rb +24 -0
  95. data/app/components/blacklight/icons/university_of_michigan_component.rb +24 -0
  96. data/app/components/blacklight/icons/university_of_minnesota_component.rb +24 -0
  97. data/app/components/blacklight/icons/university_of_nebraska_lincoln_component.rb +27 -0
  98. data/app/components/blacklight/icons/university_of_wisconsin_madison_component.rb +24 -0
  99. data/app/components/blacklight/icons/uva_component.rb +23 -0
  100. data/app/components/blacklight/icons/web_services_component.rb +23 -0
  101. data/app/components/blacklight/icons/websites_component.rb +24 -0
  102. data/app/components/geoblacklight/arcgis_component.html.erb +3 -0
  103. data/app/components/geoblacklight/arcgis_component.rb +25 -0
  104. data/app/components/geoblacklight/attribute_table_component.html.erb +17 -0
  105. data/app/components/geoblacklight/attribute_table_component.rb +17 -0
  106. data/app/components/geoblacklight/data_dictionary_download_component.html.erb +3 -0
  107. data/app/components/geoblacklight/data_dictionary_download_component.rb +16 -0
  108. data/app/components/geoblacklight/display_note_component.rb +1 -1
  109. data/app/components/geoblacklight/document/citation_component.html.erb +1 -0
  110. data/app/components/geoblacklight/document/citation_component.rb +19 -0
  111. data/app/components/geoblacklight/document/sidebar_component.html.erb +12 -0
  112. data/app/components/geoblacklight/document/sidebar_component.rb +8 -0
  113. data/app/components/geoblacklight/document_component.html.erb +43 -0
  114. data/app/components/geoblacklight/document_component.rb +6 -0
  115. data/app/components/geoblacklight/download_links_component.html.erb +31 -0
  116. data/app/components/geoblacklight/download_links_component.rb +80 -0
  117. data/app/components/geoblacklight/header_component.html.erb +14 -0
  118. data/app/components/geoblacklight/header_component.rb +9 -0
  119. data/app/components/geoblacklight/header_icons_component.html.erb +3 -0
  120. data/app/components/geoblacklight/header_icons_component.rb +29 -0
  121. data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +3 -0
  122. data/app/components/geoblacklight/iiif_drag_drop_component.rb +16 -0
  123. data/app/components/geoblacklight/index_map_inspect_component.rb +15 -0
  124. data/app/components/geoblacklight/index_map_legend_component.html.erb +14 -0
  125. data/app/components/geoblacklight/index_map_legend_component.rb +17 -0
  126. data/app/components/geoblacklight/item_map_viewer_component.html.erb +1 -0
  127. data/app/components/geoblacklight/item_map_viewer_component.rb +87 -0
  128. data/app/components/geoblacklight/location_leaflet_map_component.html.erb +1 -0
  129. data/app/components/geoblacklight/location_leaflet_map_component.rb +49 -0
  130. data/app/components/geoblacklight/login_link_component.html.erb +5 -0
  131. data/app/components/geoblacklight/login_link_component.rb +17 -0
  132. data/app/components/geoblacklight/relations_component.html.erb +23 -0
  133. data/app/components/geoblacklight/relations_component.rb +25 -0
  134. data/app/components/geoblacklight/search_result_component.html.erb +44 -0
  135. data/app/{presenters/geoblacklight/document_presenter.rb → components/geoblacklight/search_result_component.rb} +9 -6
  136. data/app/components/geoblacklight/static_map_component.html.erb +9 -0
  137. data/app/components/geoblacklight/static_map_component.rb +36 -0
  138. data/app/components/geoblacklight/viewer_help_text_component.html.erb +1 -0
  139. data/app/components/geoblacklight/viewer_help_text_component.rb +46 -0
  140. data/app/components/geoblacklight/web_services_component.html.erb +1 -0
  141. data/app/components/geoblacklight/web_services_component.rb +26 -0
  142. data/app/{views/catalog/_web_services_default.html.erb → components/geoblacklight/web_services_default_component.html.erb} +3 -5
  143. data/app/components/geoblacklight/web_services_default_component.rb +11 -0
  144. data/app/components/geoblacklight/web_services_link_component.html.erb +3 -0
  145. data/app/components/geoblacklight/web_services_link_component.rb +22 -0
  146. data/app/{views/catalog/_web_services_wfs.html.erb → components/geoblacklight/web_services_wfs_component.html.erb} +4 -7
  147. data/app/components/geoblacklight/web_services_wfs_component.rb +12 -0
  148. data/app/components/geoblacklight/web_services_wms_component.html.erb +10 -0
  149. data/app/components/geoblacklight/web_services_wms_component.rb +12 -0
  150. data/app/controllers/download_controller.rb +10 -26
  151. data/app/helpers/geoblacklight_helper.rb +10 -194
  152. data/app/javascript/geoblacklight/controllers/clipboard_controller.js +11 -0
  153. data/app/javascript/geoblacklight/controllers/clover_viewer_controller.js +47 -0
  154. data/app/javascript/geoblacklight/controllers/downloads_controller.js +56 -0
  155. data/app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js +217 -0
  156. data/app/javascript/geoblacklight/controllers/oembed_viewer_controller.js +18 -0
  157. data/app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js +63 -0
  158. data/app/javascript/geoblacklight/controllers/search_results_controller.js +50 -0
  159. data/app/javascript/geoblacklight/core.js +69 -0
  160. data/app/javascript/geoblacklight/index.js +29 -0
  161. data/app/javascript/geoblacklight/initializers/metadata_download.js +54 -0
  162. data/app/javascript/geoblacklight/initializers/popovers.js +11 -0
  163. data/app/javascript/geoblacklight/initializers/relations.js +40 -0
  164. data/app/javascript/geoblacklight/initializers/tooltips.js +55 -0
  165. data/app/javascript/geoblacklight/initializers/truncation.js +45 -0
  166. data/app/javascript/geoblacklight/leaflet/basemaps.js +74 -0
  167. data/app/javascript/geoblacklight/leaflet/constants.js +18 -0
  168. data/app/javascript/geoblacklight/leaflet/controls/geosearch.js +160 -0
  169. data/app/javascript/geoblacklight/leaflet/controls/layer_opacity.js +120 -0
  170. data/app/javascript/geoblacklight/leaflet/inspection.js +195 -0
  171. data/app/javascript/geoblacklight/leaflet/layer_index_map.js +120 -0
  172. data/app/javascript/geoblacklight/leaflet/layer_wmts.js +59 -0
  173. data/app/javascript/geoblacklight/leaflet/layers.js +153 -0
  174. data/app/javascript/geoblacklight/leaflet/utils.js +83 -0
  175. data/app/javascript/geoblacklight/openlayers/basemaps.js +47 -0
  176. data/app/javascript/geoblacklight/openlayers/layers.js +44 -0
  177. data/app/models/concerns/geoblacklight/solr_document/citation.rb +20 -8
  178. data/app/models/concerns/geoblacklight/solr_document.rb +22 -30
  179. data/app/presenters/geoblacklight/bbox_item_presenter.rb +1 -1
  180. data/app/views/catalog/_citation.html.erb +16 -33
  181. data/app/views/catalog/_document_split.html.erb +18 -3
  182. data/app/views/catalog/_home_text.html.erb +2 -2
  183. data/app/views/catalog/_metadata.html.erb +1 -1
  184. data/app/views/catalog/index.html.erb +8 -4
  185. data/app/views/catalog/metadata/_markup.html.erb +1 -1
  186. data/app/views/catalog/metadata.html.erb +14 -13
  187. data/app/views/catalog/web_services.html.erb +19 -28
  188. data/app/views/relation/index.html.erb +2 -12
  189. data/app/views/relation/index.json.jbuilder +1 -1
  190. data/compose.yml +14 -0
  191. data/config/importmap.rb +20 -0
  192. data/config/locales/geoblacklight.en.yml +15 -24
  193. data/geoblacklight.gemspec +7 -7
  194. data/lib/generators/geoblacklight/assets/importmap_generator.rb +87 -0
  195. data/lib/generators/geoblacklight/assets/vite_generator.rb +90 -0
  196. data/lib/generators/geoblacklight/assets_generator.rb +12 -37
  197. data/lib/generators/geoblacklight/install_generator.rb +11 -49
  198. data/lib/generators/geoblacklight/templates/assets/_customizations.scss +13 -19
  199. data/lib/generators/geoblacklight/templates/assets/application.js +17 -0
  200. data/lib/generators/geoblacklight/templates/assets/application.scss +9 -4
  201. data/lib/generators/geoblacklight/templates/assets/geoblacklight.scss +11 -0
  202. data/lib/generators/geoblacklight/templates/base.html.erb +9 -12
  203. data/lib/generators/geoblacklight/templates/catalog_controller.rb +7 -15
  204. data/lib/generators/geoblacklight/templates/demo-app/Dockerfile +31 -0
  205. data/lib/generators/geoblacklight/templates/demo-app/compose.yml +26 -0
  206. data/lib/generators/geoblacklight/templates/demo-app/start-server.sh +21 -0
  207. data/lib/generators/geoblacklight/templates/package.json +7 -1
  208. data/lib/generators/geoblacklight/templates/settings.yml +45 -40
  209. data/lib/generators/geoblacklight/templates/vite.config.ts +22 -7
  210. data/lib/geoblacklight/bounding_box.rb +16 -0
  211. data/lib/geoblacklight/constants.rb +0 -1
  212. data/lib/geoblacklight/download/csv_download.rb +22 -0
  213. data/lib/geoblacklight/download/geojson_download.rb +1 -1
  214. data/lib/geoblacklight/download/geotiff_download.rb +1 -1
  215. data/lib/geoblacklight/download/kmz_download.rb +1 -1
  216. data/lib/geoblacklight/download/shapefile_download.rb +1 -1
  217. data/lib/geoblacklight/download.rb +1 -1
  218. data/lib/geoblacklight/engine.rb +15 -6
  219. data/lib/geoblacklight/item_viewer.rb +1 -1
  220. data/lib/geoblacklight/metadata/base.rb +2 -1
  221. data/lib/geoblacklight/references.rb +27 -8
  222. data/lib/geoblacklight/routes/downloadable.rb +0 -1
  223. data/lib/geoblacklight/routes.rb +0 -3
  224. data/lib/geoblacklight/version.rb +1 -1
  225. data/lib/geoblacklight/wms_layer/feature_info_response.rb +9 -6
  226. data/lib/geoblacklight.rb +6 -30
  227. data/lib/tasks/geoblacklight.rake +24 -60
  228. data/package.json +24 -17
  229. data/solr/conf/schema.xml +15 -13
  230. data/solr/conf/solrconfig.xml +6 -4
  231. data/spec/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component_spec.rb +15 -0
  232. data/spec/components/blacklight/icons/arizona_component_spec.rb +15 -0
  233. data/spec/components/blacklight/icons/arrow_circle_down_component_spec.rb +15 -0
  234. data/spec/components/blacklight/icons/baruch_cuny_component_spec.rb +15 -0
  235. data/spec/components/blacklight/icons/book_component_spec.rb +15 -0
  236. data/spec/components/blacklight/icons/bookmark_component_spec.rb +15 -0
  237. data/spec/components/blacklight/icons/cd_rom_component_spec.rb +15 -0
  238. data/spec/components/blacklight/icons/child_item_component_spec.rb +15 -0
  239. data/spec/components/blacklight/icons/circle_info_solid_component_spec.rb +15 -0
  240. data/spec/components/blacklight/icons/citation_component_spec.rb +15 -0
  241. data/spec/components/blacklight/icons/collection_component_spec.rb +15 -0
  242. data/spec/components/blacklight/icons/collections_component_spec.rb +15 -0
  243. data/spec/components/blacklight/icons/columbia_component_spec.rb +15 -0
  244. data/spec/components/blacklight/icons/cornell_component_spec.rb +15 -0
  245. data/spec/components/blacklight/icons/datasets_component_spec.rb +15 -0
  246. data/spec/components/blacklight/icons/dvd_rom_component_spec.rb +15 -0
  247. data/spec/components/blacklight/icons/email_component_spec.rb +15 -0
  248. data/spec/components/blacklight/icons/esri_globe_component_spec.rb +15 -0
  249. data/spec/components/blacklight/icons/fire_solid_component_spec.rb +15 -0
  250. data/spec/components/blacklight/icons/george_mason_component_spec.rb +15 -0
  251. data/spec/components/blacklight/icons/globe_component_spec.rb +15 -0
  252. data/spec/components/blacklight/icons/harvard_component_spec.rb +15 -0
  253. data/spec/components/blacklight/icons/home_component_spec.rb +15 -0
  254. data/spec/components/blacklight/icons/iiif_drag_drop_component_spec.rb +15 -0
  255. data/spec/components/blacklight/icons/image_component_spec.rb +15 -0
  256. data/spec/components/blacklight/icons/imagery_component_spec.rb +15 -0
  257. data/spec/components/blacklight/icons/indiana_component_spec.rb +15 -0
  258. data/spec/components/blacklight/icons/leaf_component_spec.rb +15 -0
  259. data/spec/components/blacklight/icons/lewis_clark_component_spec.rb +15 -0
  260. data/spec/components/blacklight/icons/lightbulb_solid_component_spec.rb +15 -0
  261. data/spec/components/blacklight/icons/line_component_spec.rb +15 -0
  262. data/spec/components/blacklight/icons/map_component_spec.rb +15 -0
  263. data/spec/components/blacklight/icons/map_marker_component_spec.rb +15 -0
  264. data/spec/components/blacklight/icons/maps_component_spec.rb +15 -0
  265. data/spec/components/blacklight/icons/massgis_component_spec.rb +15 -0
  266. data/spec/components/blacklight/icons/metadata_component_spec.rb +15 -0
  267. data/spec/components/blacklight/icons/michigan_state_university_component_spec.rb +15 -0
  268. data/spec/components/blacklight/icons/mit_component_spec.rb +15 -0
  269. data/spec/components/blacklight/icons/mixed_component_spec.rb +15 -0
  270. data/spec/components/blacklight/icons/multilinestring_component_spec.rb +15 -0
  271. data/spec/components/blacklight/icons/multipoint_component_spec.rb +15 -0
  272. data/spec/components/blacklight/icons/multipolygon_component_spec.rb +15 -0
  273. data/spec/components/blacklight/icons/northwestern_university_component_spec.rb +15 -0
  274. data/spec/components/blacklight/icons/nyu_component_spec.rb +15 -0
  275. data/spec/components/blacklight/icons/pagelines_brands_component_spec.rb +15 -0
  276. data/spec/components/blacklight/icons/paper_map_component_spec.rb +15 -0
  277. data/spec/components/blacklight/icons/parent_item_component_spec.rb +15 -0
  278. data/spec/components/blacklight/icons/pennsylvania_state_university_component_spec.rb +15 -0
  279. data/spec/components/blacklight/icons/point_component_spec.rb +15 -0
  280. data/spec/components/blacklight/icons/polygon_component_spec.rb +15 -0
  281. data/spec/components/blacklight/icons/polyline_component_spec.rb +15 -0
  282. data/spec/components/blacklight/icons/princeton_component_spec.rb +15 -0
  283. data/spec/components/blacklight/icons/public_component_spec.rb +15 -0
  284. data/spec/components/blacklight/icons/purdue_university_component_spec.rb +15 -0
  285. data/spec/components/blacklight/icons/raster_component_spec.rb +15 -0
  286. data/spec/components/blacklight/icons/restricted_component_spec.rb +15 -0
  287. data/spec/components/blacklight/icons/rutgers_component_spec.rb +15 -0
  288. data/spec/components/blacklight/icons/sms_component_spec.rb +15 -0
  289. data/spec/components/blacklight/icons/stanford_component_spec.rb +15 -0
  290. data/spec/components/blacklight/icons/table_component_spec.rb +15 -0
  291. data/spec/components/blacklight/icons/tags_component_spec.rb +15 -0
  292. data/spec/components/blacklight/icons/texas_component_spec.rb +15 -0
  293. data/spec/components/blacklight/icons/the_ohio_state_university_component_spec.rb +15 -0
  294. data/spec/components/blacklight/icons/triangle_exclamation_solid_component_spec.rb +15 -0
  295. data/spec/components/blacklight/icons/tufts_component_spec.rb +15 -0
  296. data/spec/components/blacklight/icons/ucla_component_spec.rb +15 -0
  297. data/spec/components/blacklight/icons/university_of_california_berkeley_component_spec.rb +15 -0
  298. data/spec/components/blacklight/icons/university_of_chicago_component_spec.rb +15 -0
  299. data/spec/components/blacklight/icons/university_of_colorado_boulder_component_spec.rb +15 -0
  300. data/spec/components/blacklight/icons/university_of_illinois_urbana_champaign_component_spec.rb +15 -0
  301. data/spec/components/blacklight/icons/university_of_iowa_component_spec.rb +15 -0
  302. data/spec/components/blacklight/icons/university_of_maryland_component_spec.rb +15 -0
  303. data/spec/components/blacklight/icons/university_of_michigan_component_spec.rb +15 -0
  304. data/spec/components/blacklight/icons/university_of_minnesota_component_spec.rb +15 -0
  305. data/spec/components/blacklight/icons/university_of_nebraska_lincoln_component_spec.rb +15 -0
  306. data/spec/components/blacklight/icons/university_of_wisconsin_madison_component_spec.rb +15 -0
  307. data/spec/components/blacklight/icons/uva_component_spec.rb +15 -0
  308. data/spec/components/blacklight/icons/web_services_component_spec.rb +15 -0
  309. data/spec/components/blacklight/icons/websites_component_spec.rb +15 -0
  310. data/spec/components/geoblacklight/arcgis_component_spec.rb +31 -0
  311. data/spec/components/geoblacklight/attribute_table_component_spec.rb +37 -0
  312. data/spec/components/geoblacklight/citation_component_spec.rb +37 -0
  313. data/spec/components/geoblacklight/document_component_spec.rb +92 -0
  314. data/spec/components/geoblacklight/download_links_component_spec.rb +102 -0
  315. data/spec/components/geoblacklight/header_icons_component_spec.rb +56 -0
  316. data/spec/components/geoblacklight/iiif_drag_drop_component_spec.rb +30 -0
  317. data/spec/components/geoblacklight/index_map_legend_component_spec.rb +42 -0
  318. data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +36 -0
  319. data/spec/components/geoblacklight/login_link_component_spec.rb +33 -0
  320. data/spec/{lib/geoblacklight/document_presenter_spec.rb → components/geoblacklight/search_result_component_spec.rb} +19 -11
  321. data/spec/components/geoblacklight/static_map_component_spec.rb +22 -0
  322. data/spec/components/geoblacklight/viewer_help_text_component_spec.rb +28 -0
  323. data/spec/components/geoblacklight/web_services_component_spec.rb +45 -0
  324. data/spec/controllers/download_controller_spec.rb +12 -35
  325. data/spec/features/axe_spec.rb +66 -0
  326. data/spec/features/bookmarks_spec.rb +1 -1
  327. data/spec/features/citations_spec.rb +7 -3
  328. data/spec/features/download_layer_spec.rb +24 -39
  329. data/spec/features/esri_viewer_spec.rb +1 -1
  330. data/spec/features/exports_spec.rb +0 -15
  331. data/spec/features/{full_screen_controll_spec.rb → full_screen_control_spec.rb} +6 -6
  332. data/spec/features/home_page_spec.rb +12 -7
  333. data/spec/features/iiif_viewer_spec.rb +1 -1
  334. data/spec/features/index_map_spec.rb +16 -9
  335. data/spec/features/{split_view.html.erb_spec.rb → index_view_spec.rb} +15 -13
  336. data/spec/features/layer_inspection_spec.rb +2 -2
  337. data/spec/features/layer_preview_spec.rb +1 -1
  338. data/spec/features/missing_metadata_spec.rb +5 -5
  339. data/spec/features/oembed_spec.rb +2 -2
  340. data/spec/features/saved_searches_spec.rb +4 -1
  341. data/spec/features/search_results_complex_geometry_spec.rb +2 -2
  342. data/spec/features/search_results_icons_spec.rb +3 -3
  343. data/spec/features/search_results_map_spec.rb +4 -36
  344. data/spec/features/search_results_overlap_ratio_spec.rb +1 -1
  345. data/spec/features/show_page_download_spec.rb +0 -8
  346. data/spec/features/tilejson_spec.rb +2 -2
  347. data/spec/features/web_services_modal_spec.rb +57 -39
  348. data/spec/features/wmts_spec.rb +4 -4
  349. data/spec/fixtures/solr_documents/README.md +2 -1
  350. data/spec/fixtures/solr_documents/complex-geom.json +61 -0
  351. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +45 -24
  352. data/spec/fixtures/solr_documents/harvard_raster.json +1 -1
  353. data/spec/fixtures/solr_documents/multiple-downloads.json +1 -0
  354. data/spec/helpers/geoblacklight_helper_spec.rb +8 -173
  355. data/spec/lib/geoblacklight/download/csv_download_spec.rb +21 -0
  356. data/spec/lib/geoblacklight/reference_spec.rb +17 -19
  357. data/spec/lib/geoblacklight/references_spec.rb +31 -17
  358. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +8 -6
  359. data/spec/lib/geoblacklight/wms_layer_spec.rb +14 -0
  360. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +1 -1
  361. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +1 -21
  362. data/spec/spec_helper.rb +2 -28
  363. data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -12
  364. data/template.rb +13 -11
  365. data/test/leaflet/layers.test.js +17 -0
  366. data/vite.config.ts +34 -23
  367. metadata +304 -256
  368. data/.hound.yml +0 -8
  369. data/.jshintignore +0 -2
  370. data/.jshintrc +0 -67
  371. data/.solr_wrapper +0 -6
  372. data/app/assets/images/blacklight/american-geographical-society-library-uwm-libraries.svg +0 -26
  373. data/app/assets/images/blacklight/arizona.svg +0 -4
  374. data/app/assets/images/blacklight/arrow-circle-down.svg +0 -3
  375. data/app/assets/images/blacklight/baruch-cuny.svg +0 -3
  376. data/app/assets/images/blacklight/book.svg +0 -3
  377. data/app/assets/images/blacklight/bookmark.svg +0 -3
  378. data/app/assets/images/blacklight/cd-rom.svg +0 -3
  379. data/app/assets/images/blacklight/chicago.svg +0 -4
  380. data/app/assets/images/blacklight/child-item.svg +0 -3
  381. data/app/assets/images/blacklight/circle-info-solid.svg +0 -1
  382. data/app/assets/images/blacklight/citation.svg +0 -3
  383. data/app/assets/images/blacklight/collection.svg +0 -3
  384. data/app/assets/images/blacklight/collections.svg +0 -4
  385. data/app/assets/images/blacklight/columbia.svg +0 -3
  386. data/app/assets/images/blacklight/cornell.svg +0 -5
  387. data/app/assets/images/blacklight/datasets.svg +0 -7
  388. data/app/assets/images/blacklight/dvd-rom.svg +0 -3
  389. data/app/assets/images/blacklight/email.svg +0 -3
  390. data/app/assets/images/blacklight/esri-globe.svg +0 -31
  391. data/app/assets/images/blacklight/fire-solid.svg +0 -1
  392. data/app/assets/images/blacklight/geoblacklight-icons.json +0 -3312
  393. data/app/assets/images/blacklight/george-mason.svg +0 -4
  394. data/app/assets/images/blacklight/globe.svg +0 -3
  395. data/app/assets/images/blacklight/harvard.svg +0 -3
  396. data/app/assets/images/blacklight/home.svg +0 -3
  397. data/app/assets/images/blacklight/illinois.svg +0 -4
  398. data/app/assets/images/blacklight/image.svg +0 -3
  399. data/app/assets/images/blacklight/imagery.svg +0 -4
  400. data/app/assets/images/blacklight/indiana.svg +0 -3
  401. data/app/assets/images/blacklight/iowa.svg +0 -3
  402. data/app/assets/images/blacklight/leaf.svg +0 -3
  403. data/app/assets/images/blacklight/lewis-clark.svg +0 -5
  404. data/app/assets/images/blacklight/lightbulb-solid.svg +0 -1
  405. data/app/assets/images/blacklight/line.svg +0 -4
  406. data/app/assets/images/blacklight/map-marker.svg +0 -3
  407. data/app/assets/images/blacklight/map.svg +0 -3
  408. data/app/assets/images/blacklight/maps.svg +0 -4
  409. data/app/assets/images/blacklight/maryland.svg +0 -3
  410. data/app/assets/images/blacklight/massgis.svg +0 -3
  411. data/app/assets/images/blacklight/metadata.svg +0 -3
  412. data/app/assets/images/blacklight/michigan-state-university.svg +0 -5
  413. data/app/assets/images/blacklight/michigan-state.svg +0 -4
  414. data/app/assets/images/blacklight/michigan.svg +0 -3
  415. data/app/assets/images/blacklight/minnesota.svg +0 -3
  416. data/app/assets/images/blacklight/mit.svg +0 -3
  417. data/app/assets/images/blacklight/mixed.svg +0 -5
  418. data/app/assets/images/blacklight/multilinestring.svg +0 -6
  419. data/app/assets/images/blacklight/multipoint.svg +0 -3
  420. data/app/assets/images/blacklight/multipolygon.svg +0 -6
  421. data/app/assets/images/blacklight/nebraska.svg +0 -4
  422. data/app/assets/images/blacklight/northwestern-university.svg +0 -5
  423. data/app/assets/images/blacklight/nyu.svg +0 -6
  424. data/app/assets/images/blacklight/ohio-state.svg +0 -5
  425. data/app/assets/images/blacklight/pagelines-brands.svg +0 -3
  426. data/app/assets/images/blacklight/paper-map.svg +0 -3
  427. data/app/assets/images/blacklight/parent-item.svg +0 -3
  428. data/app/assets/images/blacklight/penn-state.svg +0 -4
  429. data/app/assets/images/blacklight/pennsylvania-state-university.svg +0 -5
  430. data/app/assets/images/blacklight/point.svg +0 -3
  431. data/app/assets/images/blacklight/polygon.svg +0 -4
  432. data/app/assets/images/blacklight/polyline.svg +0 -6
  433. data/app/assets/images/blacklight/princeton.svg +0 -3
  434. data/app/assets/images/blacklight/public.svg +0 -3
  435. data/app/assets/images/blacklight/purdue-university.svg +0 -5
  436. data/app/assets/images/blacklight/purdue.svg +0 -4
  437. data/app/assets/images/blacklight/raster.svg +0 -3
  438. data/app/assets/images/blacklight/restricted.svg +0 -3
  439. data/app/assets/images/blacklight/rutgers.svg +0 -5
  440. data/app/assets/images/blacklight/sms.svg +0 -3
  441. data/app/assets/images/blacklight/stanford.svg +0 -3
  442. data/app/assets/images/blacklight/table.svg +0 -3
  443. data/app/assets/images/blacklight/tags.svg +0 -3
  444. data/app/assets/images/blacklight/texas.svg +0 -3
  445. data/app/assets/images/blacklight/the-ohio-state-university.svg +0 -6
  446. data/app/assets/images/blacklight/triangle-exclamation-solid.svg +0 -1
  447. data/app/assets/images/blacklight/tufts.svg +0 -3
  448. data/app/assets/images/blacklight/ucla.svg +0 -3
  449. data/app/assets/images/blacklight/university-of-california-berkeley.svg +0 -4
  450. data/app/assets/images/blacklight/university-of-chicago.svg +0 -5
  451. data/app/assets/images/blacklight/university-of-colorado-boulder.svg +0 -6
  452. data/app/assets/images/blacklight/university-of-illinois-urbana-champaign.svg +0 -5
  453. data/app/assets/images/blacklight/university-of-iowa.svg +0 -4
  454. data/app/assets/images/blacklight/university-of-maryland.svg +0 -4
  455. data/app/assets/images/blacklight/university-of-michigan.svg +0 -4
  456. data/app/assets/images/blacklight/university-of-minnesota.svg +0 -4
  457. data/app/assets/images/blacklight/university-of-nebraska-lincoln.svg +0 -7
  458. data/app/assets/images/blacklight/university-of-wisconsin-madison.svg +0 -4
  459. data/app/assets/images/blacklight/uva.svg +0 -3
  460. data/app/assets/images/blacklight/web_services.svg +0 -3
  461. data/app/assets/images/blacklight/websites.svg +0 -4
  462. data/app/assets/images/blacklight/wisconsin.svg +0 -3
  463. data/app/assets/javascripts/geoblacklight/basemaps.js +0 -85
  464. data/app/assets/javascripts/geoblacklight/controls/fullscreen.js +0 -8
  465. data/app/assets/javascripts/geoblacklight/controls/opacity.js +0 -6
  466. data/app/assets/javascripts/geoblacklight/controls.js +0 -1
  467. data/app/assets/javascripts/geoblacklight/downloaders/downloader.js +0 -61
  468. data/app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js +0 -32
  469. data/app/assets/javascripts/geoblacklight/downloaders.js +0 -1
  470. data/app/assets/javascripts/geoblacklight/geoblacklight.js +0 -60
  471. data/app/assets/javascripts/geoblacklight/modules/bookmarks.js +0 -43
  472. data/app/assets/javascripts/geoblacklight/modules/download.js +0 -11
  473. data/app/assets/javascripts/geoblacklight/modules/geosearch.js +0 -133
  474. data/app/assets/javascripts/geoblacklight/modules/help_text.js +0 -7
  475. data/app/assets/javascripts/geoblacklight/modules/home.js +0 -16
  476. data/app/assets/javascripts/geoblacklight/modules/item.js +0 -32
  477. data/app/assets/javascripts/geoblacklight/modules/layer_opacity.js +0 -68
  478. data/app/assets/javascripts/geoblacklight/modules/metadata.js +0 -15
  479. data/app/assets/javascripts/geoblacklight/modules/metadata_download_button.js +0 -58
  480. data/app/assets/javascripts/geoblacklight/modules/relations.js +0 -14
  481. data/app/assets/javascripts/geoblacklight/modules/results.js +0 -81
  482. data/app/assets/javascripts/geoblacklight/modules/svg_tooltips.js +0 -31
  483. data/app/assets/javascripts/geoblacklight/modules/util.js +0 -48
  484. data/app/assets/javascripts/geoblacklight/modules.js +0 -1
  485. data/app/assets/javascripts/geoblacklight/templates/index_map_download.hbs +0 -19
  486. data/app/assets/javascripts/geoblacklight/templates/index_map_info.hbs +0 -61
  487. data/app/assets/javascripts/geoblacklight/viewers/cog.js +0 -5
  488. data/app/assets/javascripts/geoblacklight/viewers/esri/dynamic_map_layer.js +0 -85
  489. data/app/assets/javascripts/geoblacklight/viewers/esri/feature_layer.js +0 -76
  490. data/app/assets/javascripts/geoblacklight/viewers/esri/image_map_layer.js +0 -14
  491. data/app/assets/javascripts/geoblacklight/viewers/esri/tiled_map_layer.js +0 -50
  492. data/app/assets/javascripts/geoblacklight/viewers/esri.js +0 -78
  493. data/app/assets/javascripts/geoblacklight/viewers/iiif.js +0 -25
  494. data/app/assets/javascripts/geoblacklight/viewers/index_map.js +0 -71
  495. data/app/assets/javascripts/geoblacklight/viewers/map.js +0 -77
  496. data/app/assets/javascripts/geoblacklight/viewers/oembed.js +0 -13
  497. data/app/assets/javascripts/geoblacklight/viewers/pmtiles.js +0 -5
  498. data/app/assets/javascripts/geoblacklight/viewers/tilejson.js +0 -33
  499. data/app/assets/javascripts/geoblacklight/viewers/tms.js +0 -10
  500. data/app/assets/javascripts/geoblacklight/viewers/viewer.js +0 -68
  501. data/app/assets/javascripts/geoblacklight/viewers/wms.js +0 -74
  502. data/app/assets/javascripts/geoblacklight/viewers/wmts.js +0 -85
  503. data/app/assets/javascripts/geoblacklight/viewers/xyz.js +0 -10
  504. data/app/assets/javascripts/geoblacklight/viewers.js +0 -1
  505. data/app/assets/stylesheets/geoblacklight/modules/mixins.scss +0 -5
  506. data/app/helpers/arcgis_helper.rb +0 -14
  507. data/app/helpers/blacklight_helper.rb +0 -11
  508. data/app/helpers/carto_helper.rb +0 -31
  509. data/app/helpers/geoblacklight/geoblacklight_helper_behavior.rb +0 -18
  510. data/app/javascript/clover/clover_initializer.js +0 -29
  511. data/app/javascript/index.js +0 -7
  512. data/app/javascript/openlayers/basemaps.js +0 -47
  513. data/app/javascript/openlayers/ol_initializer.js +0 -106
  514. data/app/javascript/stylesheets/openlayers.css +0 -1
  515. data/app/models/concerns/geoblacklight/solr_document/carto.rb +0 -17
  516. data/app/views/catalog/_arcgis.html.erb +0 -4
  517. data/app/views/catalog/_carto.html.erb +0 -4
  518. data/app/views/catalog/_data_dictionary.html.erb +0 -5
  519. data/app/views/catalog/_downloads_collapse.html.erb +0 -27
  520. data/app/views/catalog/_header_icons.html.erb +0 -3
  521. data/app/views/catalog/_index_split_default.html.erb +0 -30
  522. data/app/views/catalog/_results_pagination.html.erb +0 -12
  523. data/app/views/catalog/_show_default_attribute_table.html.erb +0 -19
  524. data/app/views/catalog/_show_default_display_note.html.erb +0 -7
  525. data/app/views/catalog/_show_default_viewer_container.html.erb +0 -28
  526. data/app/views/catalog/_show_downloads.html.erb +0 -23
  527. data/app/views/catalog/_show_header_default.html.erb +0 -4
  528. data/app/views/catalog/_show_sidebar.html.erb +0 -16
  529. data/app/views/catalog/_show_sidebar_static_map.html.erb +0 -10
  530. data/app/views/catalog/_show_web_services.html.erb +0 -11
  531. data/app/views/catalog/_web_services.html.erb +0 -9
  532. data/app/views/catalog/_web_services_wms.html.erb +0 -13
  533. data/app/views/download/hgl.html.erb +0 -27
  534. data/app/views/relation/_relations.html.erb +0 -15
  535. data/app/views/shared/_header_navbar.html.erb +0 -46
  536. data/babel.config.json +0 -4
  537. data/jest.config.js +0 -25
  538. data/lib/generators/geoblacklight/templates/assets/_blacklight.scss +0 -1
  539. data/lib/generators/geoblacklight/templates/assets/_geoblacklight.scss +0 -1
  540. data/lib/generators/geoblacklight/templates/assets/geoblacklight.js +0 -9
  541. data/lib/generators/geoblacklight/templates/clover.js +0 -5
  542. data/lib/generators/geoblacklight/templates/ol.js +0 -6
  543. data/lib/generators/geoblacklight/templates/package-test.json +0 -10
  544. data/lib/generators/geoblacklight/templates/settings.gbl_v1.yml +0 -195
  545. data/lib/geoblacklight/download/hgl_download.rb +0 -20
  546. data/lib/geoblacklight/view_helper_override.rb +0 -16
  547. data/setupJest.js +0 -14
  548. data/spec/helpers/arcgis_helper_spec.rb +0 -16
  549. data/spec/helpers/carto_helper_spec.rb +0 -13
  550. data/spec/helpers/geoblacklight/geoblacklight_helper_behavior_spec.rb +0 -27
  551. data/spec/javascripts/util_spec.js +0 -10
  552. data/spec/lib/geoblacklight/download/hgl_download_spec.rb +0 -62
  553. data/spec/lib/geoblacklight/view_helper_override_spec.rb +0 -29
  554. data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +0 -43
  555. data/spec/test_app_templates/Gemfile.extra +0 -2
  556. data/spec/views/catalog/_document_split.html.erb_spec.rb +0 -7
  557. data/spec/views/catalog/_index_split.html.erb_spec.rb +0 -7
  558. data/spec/views/catalog/_results_pagination.html.erb_spec.rb +0 -11
  559. data/spec/views/catalog/_show_downloads.html.erb_spec.rb +0 -43
  560. data/spec/views/catalog/_show_tools.html.erb_spec.rb +0 -38
  561. data/vendor/assets/images/fullscreen.png +0 -0
  562. data/vendor/assets/images/fullscreen@2x.png +0 -0
  563. data/vendor/assets/images/layers-2x.png +0 -0
  564. data/vendor/assets/images/layers.png +0 -0
  565. data/vendor/assets/images/marker-icon-2x.png +0 -0
  566. data/vendor/assets/images/marker-icon.png +0 -0
  567. data/vendor/assets/images/marker-shadow.png +0 -0
  568. data/vendor/assets/javascripts/Leaflet.fullscreen.js +0 -152
  569. data/vendor/assets/javascripts/esri-leaflet.js +0 -12
  570. data/vendor/assets/javascripts/esri-leaflet.js.map +0 -1
  571. data/vendor/assets/javascripts/leaflet-iiif.js +0 -323
  572. data/vendor/assets/javascripts/leaflet-src.js.erb +0 -14126
  573. data/vendor/assets/javascripts/leaflet-src.js.map +0 -1
  574. data/vendor/assets/javascripts/native.history.js +0 -1
  575. data/vendor/assets/stylesheets/leaflet.css +0 -640
  576. data/vendor/assets/stylesheets/leaflet.fullscreen.css +0 -40
  577. /data/app/{views/catalog/_show_default_viewer_information.html.erb → components/geoblacklight/index_map_inspect_component.html.erb} +0 -0
@@ -2,8 +2,6 @@ en:
2
2
  geoblacklight:
3
3
  bbox_label: 'Bounding Box'
4
4
  location: 'Location'
5
- citation:
6
- retrieved_from: 'Retrieved from %{document_url}'
7
5
  clipboard:
8
6
  citation: Citation copied to clipboard
9
7
  web_service: Web service copied to clipboard
@@ -11,12 +9,6 @@ en:
11
9
  download: 'Download'
12
10
  download_link: 'Original %{download_format}'
13
11
  success: 'Your file %{title} is ready for download'
14
- hgl_success: 'You should receive an email when your download is ready.'
15
- hgl_request: 'Request Layer'
16
- hgl_request_button: 'Request'
17
- hgl_close: 'Close'
18
- hgl_instructions: 'Please enter your email address. You will receive a link to download the layer when it is ready.' ## new variable
19
- hgl_email: 'Email'
20
12
  error: 'Sorry, the requested file could not be downloaded.'
21
13
  export_formats: 'Export Formats'
22
14
  export_link: 'Export %{download_format}'
@@ -24,6 +16,7 @@ en:
24
16
  export_kmz_link: 'KMZ'
25
17
  export_geojson_link: 'GeoJSON'
26
18
  export_geotiff_link: 'GeoTIFF'
19
+ export_csv_link: 'CSV'
27
20
  home:
28
21
  headline: 'Explore and discover...'
29
22
  search_heading: 'Find the maps and data you need'
@@ -36,7 +29,6 @@ en:
36
29
  version: 'GeoBlacklight version %{version}'
37
30
  tools:
38
31
  login_to_view: 'Login to View and Download'
39
- open_carto: 'Open in Carto'
40
32
  open_arcgis: 'Open in ArcGIS Online'
41
33
  formats:
42
34
  arcgrid: 'ArcGRID'
@@ -45,6 +37,7 @@ en:
45
37
  kmz: 'KMZ'
46
38
  shapefile: 'Shapefile'
47
39
  jpg: 'JPG'
40
+ csv: 'CSV'
48
41
  esri_geodatabase: 'ESRI Geodatabase'
49
42
  sqlite_database: 'SQLite Database'
50
43
  map:
@@ -67,7 +60,6 @@ en:
67
60
  image_map_layer: 'ArcGIS Image Map Layer'
68
61
  data_dictionary: 'Documentation'
69
62
  services: 'Web services'
70
- services_close: 'Close'
71
63
  tms: 'Tile Map Service'
72
64
  tilejson: 'TileJSON Document'
73
65
  xyz: 'XYZ Tiles'
@@ -89,7 +81,8 @@ en:
89
81
  version_of_descendants: 'Has version...'
90
82
  browse_all_no_count: "Browse all records..."
91
83
  browse_all: "Browse all %{count} records..."
92
-
84
+ modal:
85
+ copy-citation: "Copy Citation"
93
86
  metadata:
94
87
  toggle_summary: 'Toggle summary'
95
88
  view_metadata: 'View Metadata'
@@ -132,12 +125,21 @@ en:
132
125
  tiled_map_layer:
133
126
  title: ArcGIS Tiled Map Layer
134
127
  content: An ArcGIS Tiled Map Layer Service displays set of web-accessible tiles that reside on a server.
128
+ tilejson:
129
+ title: TileJSON
130
+ content: A JSON format used for describing tilesets.
135
131
  tms:
136
- title: Tile Map Service
132
+ title: Tile Map Service (TMS)
137
133
  content: A Tile Map Service displays georeferenced map tiles as an image on a map.
138
134
  wms:
139
135
  title: Web Map Service (WMS)
140
136
  content: A Web Map Service displays a geospatial dataset as map images.
137
+ wmts:
138
+ title: Web Map Tile Service (WMTS)
139
+ content: A Web Map Tile Service displays maps over the web using cached image tiles.
140
+ xyz:
141
+ title: XYZ Tiles
142
+ content: Also known as slippy map tiles, is a method of expressing map tile mosaics, indexed by (x,y) offsets and zoom levels (z).
141
143
  blacklight:
142
144
  icon:
143
145
  american-geographical-society-library-uwm-libraries: American Geographical Society Library - UWM Libraries
@@ -146,34 +148,24 @@ en:
146
148
  baruch-cuny: Baruch College
147
149
  berkeley: University of California, Berkeley
148
150
  cd-rom: CD-Rom
149
- chicago: The University of Chicago
150
151
  columbia: Columbia University
151
152
  cornell: Cornell University
152
153
  dvd-rom: DVD-Rom
153
154
  esri-globe: Esri Global
154
155
  george-mason: George Mason University
155
156
  harvard: Harvard University
156
- illinois: University of Illinois
157
+ iiif-drag-drop: Drag icon to any IIIF viewer
157
158
  indiana: Indiana University
158
- iowa: University of Iowa
159
159
  lewis-clark: Lewis & Clark
160
- maryland: University of Maryland
161
160
  massgis: MassGIS
162
- michigan-state: Michigan State University
163
- michigan: University of Michigan
164
- minnesota: University of Minnesota
165
161
  mit: Massachusetts Institute of Technology
166
162
  multilinestring: Multi-line string
167
163
  multipoint: Multi-point
168
164
  multipolygon: Multi-polygon
169
- nebraska: University of Nebraska-Lincoln
170
165
  northwestern-university: Northwestern University
171
166
  nyu: New York University
172
- ohio-state: The Ohio State University
173
- penn-state: Penn State University
174
167
  princeton: Princeton University
175
168
  public: Public content
176
- purdue: Purdue University
177
169
  restricted: Restricted content
178
170
  rutgers: Rutgers University
179
171
  sms: SMS
@@ -182,4 +174,3 @@ en:
182
174
  tufts: Tufts University
183
175
  ucla: University of California, Los Angeles
184
176
  uva: University of Virginia
185
- wisconsin: University of Wisconsin
@@ -17,29 +17,29 @@ Gem::Specification.new do |spec|
17
17
  spec.require_paths = ["lib"]
18
18
  spec.required_rubygems_version = ">= 2.5.2"
19
19
 
20
- spec.add_dependency "rails", ">= 6.1", "< 7.3"
21
- spec.add_dependency "blacklight", "~> 7.0"
20
+ spec.add_dependency "rails", ">= 6.1", "< 8"
21
+ spec.add_dependency "blacklight", "~> 8.0"
22
22
  spec.add_dependency "config"
23
23
  spec.add_dependency "faraday", "~> 2.0"
24
24
  spec.add_dependency "coderay"
25
25
  spec.add_dependency "deprecation"
26
26
  spec.add_dependency "geo_combine", "~> 0.9"
27
27
  spec.add_dependency "mime-types"
28
- spec.add_dependency "handlebars_assets"
29
28
  spec.add_dependency "rgeo-geojson"
30
- spec.add_dependency "sprockets-rails", "~> 3.0"
29
+ spec.add_dependency "rsolr"
31
30
  spec.add_dependency "vite_rails", "~> 3.0"
31
+ spec.add_dependency "zeitwerk"
32
32
 
33
- spec.add_development_dependency "solr_wrapper"
34
33
  spec.add_development_dependency "rails-controller-testing"
35
34
  spec.add_development_dependency "rspec-rails"
36
35
  spec.add_development_dependency "engine_cart", "~> 2.0"
37
36
  spec.add_development_dependency "capybara", ">= 2.5.0"
38
- spec.add_development_dependency "webdrivers"
37
+ spec.add_development_dependency "selenium-webdriver"
39
38
  spec.add_development_dependency "factory_bot_rails"
40
- spec.add_development_dependency "database_cleaner", "~> 2.0"
41
39
  spec.add_development_dependency "simplecov", "~> 0.22"
42
40
  spec.add_development_dependency "foreman"
43
41
  spec.add_development_dependency "standardrb", "1.0.1"
44
42
  spec.add_development_dependency "webmock", "~> 3.14"
43
+ spec.add_development_dependency "database_cleaner"
44
+ spec.add_development_dependency "axe-core-rspec"
45
45
  end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+
5
+ module Geoblacklight
6
+ module Assets
7
+ class ImportmapGenerator < Rails::Generators::Base
8
+ source_root Geoblacklight::Engine.root.join("lib", "generators", "geoblacklight", "templates")
9
+
10
+ class_option :test, type: :boolean, default: false, aliases: "-t", desc: "Indicates that app will be installed in a test environment"
11
+
12
+ desc <<-DESCRIPTION
13
+ This generator sets up the app to use Importmaps to manage the javascript,
14
+ and dartsass-rails to manage the styles.
15
+
16
+ SCSS sources from Bootstrap and Blacklight are installed via yarn and
17
+ built into a single CSS stylesheet.
18
+
19
+ JS sources from the Blacklight and Geoblacklight gems are delivered as
20
+ ES modules via importmap, and their dependencies are pinned to versions
21
+ delivered via CDN.
22
+ DESCRIPTION
23
+
24
+ # If this is a local dev/test build, symlink the frontend package so we
25
+ # can reference its stylesheets in development
26
+ def link_frontend
27
+ run "yarn link @geoblacklight/frontend" if options[:test]
28
+ end
29
+
30
+ # Workaround for https://github.com/projectblacklight/blacklight/pull/3285
31
+ def update_blacklight_frontend
32
+ run "yarn add blacklight-frontend@8.3"
33
+ end
34
+
35
+ # Add the customization overrides and insert before bootstrap import
36
+ def add_customizations
37
+ copy_file "assets/_customizations.scss", "app/assets/stylesheets/_customizations.scss"
38
+ gsub_file "app/assets/stylesheets/_customizations.scss", "@geoblacklight/frontend/app/assets/", ""
39
+ insert_into_file "app/assets/stylesheets/application.bootstrap.scss", "@import 'customizations';\n", before: "@import 'bootstrap/scss/bootstrap';"
40
+ end
41
+
42
+ # Add CDN imports for CSS files used by Geoblacklight (leaflet, openlayers)
43
+ def add_leaflet_ol_css_cdn
44
+ insert_into_file "app/assets/stylesheets/application.bootstrap.scss", before: "@import 'customizations';\n" do
45
+ <<~SCSS
46
+ /* GeoBlacklight dependencies CSS */
47
+ @import url("https://cdn.skypack.dev/leaflet@1.9.4/dist/leaflet.css");
48
+ @import url("https://cdn.jsdelivr.net/npm/leaflet-fullscreen@1.0.2/dist/leaflet.fullscreen.css");
49
+ @import url("https://cdn.skypack.dev/ol@8.1.0/ol.css");
50
+
51
+ SCSS
52
+ end
53
+ end
54
+
55
+ # Add an import for Geoblacklight's stylesheet
56
+ def add_geoblacklight_styles
57
+ append_to_file "app/assets/stylesheets/application.bootstrap.scss", "@import '@geoblacklight/frontend/app/assets/stylesheets/geoblacklight/geoblacklight';"
58
+ end
59
+
60
+ # Ensure import of Blacklight's JS uses the name that importmap has pinned
61
+ def update_blacklight_import
62
+ gsub_file "app/javascript/application.js", "blacklight-frontend", "blacklight"
63
+ end
64
+
65
+ # Import Geoblacklight's JS using the name that importmap has pinned
66
+ def add_geoblacklight_js
67
+ append_to_file "app/javascript/application.js", "import Geoblacklight from \"geoblacklight\";"
68
+ end
69
+
70
+ # Add pins for application dependencies to the importmap
71
+ def update_importmap
72
+ gsub_file "config/importmap.rb", "bootstrap.min.js", "https://cdn.skypack.dev/bootstrap@5.3.3"
73
+ append_to_file "config/importmap.rb" do
74
+ <<~CONTENT
75
+ pin "@github/auto-complete-element", to: "https://cdn.skypack.dev/@github/auto-complete-element"
76
+ pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.8/dist/umd/popper.min.js"
77
+ CONTENT
78
+ end
79
+ end
80
+
81
+ # Run the build so styles are available for the first load of the app
82
+ def build_styles
83
+ run "yarn build:css"
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+
5
+ module Geoblacklight
6
+ module Assets
7
+ class ViteGenerator < Rails::Generators::Base
8
+ source_root Geoblacklight::Engine.root.join("lib", "generators", "geoblacklight", "templates")
9
+
10
+ class_option :test, type: :boolean, default: false, aliases: "-t", desc: "Indicates that app will be installed in a test environment"
11
+
12
+ desc <<-DESCRIPTION
13
+ This generator sets up the app to use Vite as the bundler for styles and
14
+ javascript using the vite_rails gem. Existing stylesheets for Blacklight
15
+ are removed and replaced with a single JS entrypoint file and a single
16
+ SCSS entrypoint file, which will be bundled by Vite.
17
+
18
+ Geoblacklight's frontend assets are installed from the npm package. In
19
+ local development they automatically reference the versions from the
20
+ outer directory (the Geoblacklight repository) via a yarn symlink.
21
+ DESCRIPTION
22
+
23
+ # Install Vite
24
+ def install_vite
25
+ gem "vite_rails", "~> 3.0"
26
+ run "bundle install"
27
+ end
28
+
29
+ # Add our version of the Blacklight base layout with Vite helper tags
30
+ def geoblacklight_base_layout
31
+ copy_file "base.html.erb", "app/views/layouts/blacklight/base.html.erb"
32
+ end
33
+
34
+ # Copy Vite config files
35
+ def copy_config_vite_json
36
+ copy_file "vite.json", "config/vite.json"
37
+ copy_file "vite.config.ts", "vite.config.ts"
38
+ end
39
+
40
+ # Add our package.json with non-GBL dependencies (Blacklight, Bootstrap, etc.)
41
+ def install_dependencies
42
+ copy_file "package.json", "package.json"
43
+ run "yarn install"
44
+ end
45
+
46
+ # This will write its own package.json if one doesn't exist, causing a
47
+ # conflict, so it needs to happen after we copy ours
48
+ def bundle_install
49
+ run "bundle exec vite install"
50
+ end
51
+
52
+ # Pick a version of the frontend asset package and install it.
53
+ def add_frontend
54
+ # If in local development or CI, install the version we made linkable in
55
+ # the test app generator. This will make it so changes made in the outer
56
+ # directory are picked up automatically, like a symlink. Note that this
57
+ # does NOT install the dependencies of the package, so we have to make
58
+ # sure to install those separately. See:
59
+ # https://classic.yarnpkg.com/lang/en/docs/cli/link/
60
+ # https://github.com/yarnpkg/yarn/issues/2914
61
+ if options[:test]
62
+ run "yarn link @geoblacklight/frontend"
63
+
64
+ # If a branch was specified (e.g. you are running a template.rb build
65
+ # against a test branch), use the latest version available on npm
66
+ elsif ENV["BRANCH"]
67
+ run "yarn add @geoblacklight/frontend@latest"
68
+
69
+ # Otherwise, pick the version from npm that matches our Geoblacklight
70
+ # gem version
71
+ else
72
+ run "yarn add @geoblacklight/frontend@#{Geoblacklight::VERSION}"
73
+ end
74
+ end
75
+
76
+ # Add our own stylesheets that reference the versions from npm
77
+ def add_stylesheets
78
+ copy_file "assets/_customizations.scss", "app/javascript/stylesheets/_customizations.scss"
79
+ copy_file "assets/geoblacklight.scss", "app/javascript/stylesheets/geoblacklight.scss"
80
+ copy_file "assets/application.scss", "app/javascript/entrypoints/application.scss"
81
+ end
82
+
83
+ # Replace the default generated Vite entrypoint with our own
84
+ def add_javascript
85
+ remove_file "app/javascript/entrypoints/application.js"
86
+ copy_file "assets/application.js", "app/javascript/entrypoints/application.js"
87
+ end
88
+ end
89
+ end
90
+ end
@@ -1,46 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators"
4
-
5
3
  module Geoblacklight
4
+ # Run general asset setup and then delegate to the appropriate generator
5
+ # Based on Blacklight::AssetsGenerator
6
6
  class AssetsGenerator < Rails::Generators::Base
7
- source_root File.expand_path("templates", __dir__)
8
-
9
- desc <<-DESCRIPTION
10
- This generator makes the following changes to your application:
11
- 1. Copies GBL javascript into the application
12
- 2. Removes stock Rails and Blacklight stylesheets from the application
13
- 3. Copies GBL stylesheets into the local application
14
- 4. Sets asset initializer values into the local application
15
- DESCRIPTION
16
-
17
- def add_javascript
18
- copy_file "assets/geoblacklight.js", "app/assets/javascripts/geoblacklight.js"
19
-
20
- if Rails.version.to_i >= 6
21
- append_to_file "app/assets/javascripts/application.js",
22
- "\n// Required by GeoBlacklight\n//= require geoblacklight"
7
+ class_option :"asset-pipeline", type: :string, default: ENV.fetch("ASSET_PIPELINE", "vite"), desc: "Choose the asset pipeline to use (vite or importmap)"
8
+ class_option :test, type: :boolean, default: ENV.fetch("CI", false), aliases: "-t", desc: "Indicates that app will be installed in a test environment"
9
+
10
+ def run_asset_pipeline_specific_generator
11
+ generated_options = "--test=true" if options[:test]
12
+ generator = if options[:"asset-pipeline"]
13
+ "geoblacklight:assets:#{options[:"asset-pipeline"]}"
14
+ else
15
+ "geoblacklight:assets:vite"
23
16
  end
24
- end
25
-
26
- def remove_stylesheets
27
- remove_file "app/assets/stylesheets/application.css"
28
- remove_file "app/assets/stylesheets/blacklight.scss"
29
- end
30
-
31
- def add_stylesheets
32
- copy_file "assets/application.scss", "app/assets/stylesheets/application.scss"
33
- copy_file "assets/_blacklight.scss", "app/assets/stylesheets/_blacklight.scss"
34
- copy_file "assets/_customizations.scss", "app/assets/stylesheets/_customizations.scss"
35
- copy_file "assets/_geoblacklight.scss", "app/assets/stylesheets/_geoblacklight.scss"
36
- end
37
-
38
- def add_initializers
39
- append_to_file "config/initializers/assets.rb",
40
- "\nRails.application.config.assets.precompile += %w( favicon.ico )\n"
41
17
 
42
- append_to_file "config/initializers/assets.rb",
43
- "\nRails.application.config.assets.paths << Rails.root.join('vendor', 'assets', 'images')\n"
18
+ generate generator, generated_options
44
19
  end
45
20
  end
46
21
  end
@@ -50,10 +50,6 @@ module Geoblacklight
50
50
  inject_into_file "config/routes.rb", routes, before: /^end/
51
51
  end
52
52
 
53
- def generate_assets
54
- generate "geoblacklight:assets"
55
- end
56
-
57
53
  def create_blacklight_catalog
58
54
  remove_file "app/controllers/catalog_controller.rb"
59
55
  copy_file "catalog_controller.rb", "app/controllers/catalog_controller.rb"
@@ -67,6 +63,14 @@ module Geoblacklight
67
63
  directory "../../../../solr", "solr"
68
64
  end
69
65
 
66
+ def add_rsolr_gem
67
+ gem "rsolr", ">= 1.0", "< 3"
68
+ end
69
+
70
+ def docker_compose
71
+ copy_file "../../../../compose.yml", "compose.yml"
72
+ end
73
+
70
74
  def include_geoblacklight_solrdocument
71
75
  inject_into_file "app/models/solr_document.rb", after: "include Blacklight::Solr::Document" do
72
76
  "\n include Geoblacklight::SolrDocument"
@@ -85,13 +89,6 @@ module Geoblacklight
85
89
  end
86
90
  end
87
91
 
88
- # Turn off JQuery animations during testing
89
- def inject_disable_jquery_animations
90
- inject_into_file "app/views/layouts/application.html.erb", before: "</head>" do
91
- " <%= javascript_tag '$.fx.off = true;' if Rails.env.test? %>\n"
92
- end
93
- end
94
-
95
92
  def create_downloads_directory
96
93
  FileUtils.mkdir_p("tmp/cache/downloads") unless File.directory?("tmp/cache/downloads")
97
94
  end
@@ -105,47 +102,12 @@ module Geoblacklight
105
102
  FileUtils.mkdir_p("app/assets/images") unless File.directory?("app/assets/images")
106
103
  end
107
104
 
108
- # Vite - Required for successful installation
109
- def install_vite_rails
110
- append_to_file "Gemfile" do
111
- "gem \"vite_rails\", \"~> 3.0\""
112
- end
113
- end
114
-
115
- # Vite - GBL Base Layout with Vite Helper Tags
116
- def geoblacklight_base_layout
117
- copy_file "base.html.erb", "app/views/layouts/blacklight/base.html.erb"
118
- end
119
-
120
- def copy_package_json
105
+ def generate_assets
121
106
  if options[:test]
122
- # If building engine cart test app, use specific package.json so the
123
- # locally built frontend javascript is used instead of the npm package.
124
- copy_file "package-test.json", "package.json"
107
+ generate "geoblacklight:assets", "--test=true"
125
108
  else
126
- copy_file "package.json", "package.json"
109
+ generate "geoblacklight:assets"
127
110
  end
128
111
  end
129
-
130
- # Vite - Config files
131
- def copy_config_vite_json
132
- copy_file "vite.json", "config/vite.json"
133
- copy_file "vite.config.ts", "vite.config.ts"
134
- run "yarn install"
135
- end
136
-
137
- # Run bundle with vite install
138
- def bundle_install
139
- Bundler.with_clean_env do
140
- run "bundle install"
141
- run "bundle exec vite install"
142
- end
143
- end
144
-
145
- # Vite - Copy over the Vite entrypoints
146
- def copy_vite_entrypoints
147
- copy_file "clover.js", "app/javascript/entrypoints/clover.js"
148
- copy_file "ol.js", "app/javascript/entrypoints/ol.js"
149
- end
150
112
  end
151
113
  end
@@ -1,29 +1,23 @@
1
1
  // Local Application Customizations
2
2
 
3
3
  // Set Header Logo
4
- $logo-image: image_url('blacklight/logo.svg') !default;
5
-
6
- .navbar-brand { /* The main logo image for the Blacklight instance */
7
- @if $logo-image {
8
- background: transparent $logo-image no-repeat top left;
9
- }
10
- }
4
+ $logo-image: url("@geoblacklight/frontend/app/assets/images/blacklight/logo.svg");
11
5
 
12
6
  // Optional
13
7
  // Override default Bootstrap variables here
14
8
 
15
9
  // Example: Bootstrap Colors
16
- $blue: #0d6efd !default;
17
- $indigo: #6610f2 !default;
18
- $purple: #6f42c1 !default;
19
- $pink: #d63384 !default;
20
- $red: #dc3545 !default;
21
- $orange: #fd7e14 !default;
22
- $yellow: #ffc107 !default;
23
- $green: #198754 !default;
24
- $teal: #20c997 !default;
25
- $cyan: #0dcaf0 !default;
26
- $dark: #212529 !default; // $gray-900
10
+ // $blue: #0d6efd !default;
11
+ // $indigo: #6610f2 !default;
12
+ // $purple: #6f42c1 !default;
13
+ // $pink: #d63384 !default;
14
+ // $red: #dc3545 !default;
15
+ // $orange: #fd7e14 !default;
16
+ // $yellow: #ffc107 !default;
17
+ // $green: #198754 !default;
18
+ // $teal: #20c997 !default;
19
+ // $cyan: #0dcaf0 !default;
20
+ // $dark: #212529 !default; // $gray-900
27
21
 
28
22
  // Example: Bootstrap Link color
29
- $link-color: $blue;
23
+ // $link-color: $blue;
@@ -0,0 +1,17 @@
1
+ /* Main application javascript entrypoint */
2
+
3
+ // Turbo & Stimulus
4
+ import "@hotwired/turbo-rails";
5
+ import { application } from "~/controllers/application";
6
+
7
+ // Blacklight & Geoblacklight
8
+ import githubAutoCompleteElement from "@github/auto-complete-element";
9
+ import Blacklight from "blacklight-frontend";
10
+ import Geoblacklight from "@geoblacklight/frontend";
11
+
12
+ // Make imports available globally to your code
13
+ window.Blacklight = Blacklight;
14
+ window.Geoblacklight = Geoblacklight;
15
+
16
+ // Your javascript code goes here
17
+ // console.log("Hello Geoblacklight!");
@@ -1,4 +1,9 @@
1
- @import 'customizations';
2
- @import 'bootstrap';
3
- @import 'blacklight';
4
- @import 'geoblacklight';
1
+ /* Main application styles entrypoint */
2
+
3
+ // Leaflet, OpenLayers, GeoBlacklight (includes Blacklight and Bootstrap)
4
+ @import "leaflet/dist/leaflet.css";
5
+ @import "leaflet-fullscreen/dist/leaflet.fullscreen.css";
6
+ @import "ol/ol.css";
7
+ @import "~/stylesheets/geoblacklight.scss";
8
+
9
+ // Your styles here!
@@ -0,0 +1,11 @@
1
+ // Local customizations (import first, so that variables take precedence)
2
+ @import 'customizations.scss';
3
+
4
+ // Bootstrap (will use variables defined in customizations, if present)
5
+ @import 'bootstrap/scss/bootstrap.scss';
6
+
7
+ // Blacklight, imported from blacklight-frontend package
8
+ @import 'blacklight-frontend/app/assets/stylesheets/blacklight/blacklight.scss';
9
+
10
+ // Geoblacklight, imported from @geoblacklight/frontend package
11
+ @import '@geoblacklight/frontend/app/assets/stylesheets/geoblacklight/geoblacklight.scss';
@@ -15,24 +15,21 @@
15
15
  </script>
16
16
  <%= opensearch_description_tag application_name, opensearch_catalog_url(format: 'xml') %>
17
17
  <%= favicon_link_tag %>
18
- <%= stylesheet_link_tag "application", media: "all", "data-turbo-track": "reload" %>
19
- <%= javascript_include_tag "application", "data-turbo-track": "reload" %>
20
-
18
+
21
19
  <%= vite_client_tag %>
22
- <% if openlayers_container? %>
23
- <%= vite_javascript_tag 'ol' %>
24
- <% elsif iiif_manifest_container? %>
25
- <%= vite_javascript_tag 'clover' %>
26
- <% end %>
20
+ <%= vite_stylesheet_tag 'application.scss', media: 'all' %>
21
+ <%= vite_javascript_tag 'application' %>
27
22
 
28
23
  <%= csrf_meta_tags %>
29
24
  <%= content_for(:head) %>
30
25
  </head>
31
26
  <body class="<%= render_body_class %>">
32
- <nav id="skip-link" role="navigation" aria-label="<%= t('blacklight.skip_links.label') %>">
33
- <%= link_to t('blacklight.skip_links.search_field'), '#search_field', class: 'element-invisible element-focusable rounded-bottom py-2 px-3', data: { turbolinks: 'false' } %>
34
- <%= link_to t('blacklight.skip_links.main_content'), '#main-container', class: 'element-invisible element-focusable rounded-bottom py-2 px-3', data: { turbolinks: 'false' } %>
35
- <%= content_for(:skip_links) %>
27
+ <nav id="skip-link" role="navigation" class="visually-hidden-focusable" aria-label="<%= t('blacklight.skip_links.label') %>">
28
+ <div class="container-xl">
29
+ <%= link_to t('blacklight.skip_links.search_field'), '#search_field', class: 'd-inline-flex p-2 m-1', data: { turbolinks: 'false' } %>
30
+ <%= link_to t('blacklight.skip_links.main_content'), '#main-container', class: 'd-inline-flex p-2 m-1', data: { turbolinks: 'false' } %>
31
+ <%= content_for(:skip_links) %>
32
+ </div>
36
33
  </nav>
37
34
  <%= render partial: 'shared/header_navbar' %>
38
35