geoblacklight 4.4.2 → 5.0.0.pre.alpha.11

Sign up to get free protection for your applications and to get access to all the features.
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 +8 -24
  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