geoblacklight 5.3.0 → 6.0.0.pre.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. checksums.yaml +4 -4
  2. data/.engine_cart.yml +14 -0
  3. data/.github/workflows/ruby.yml +24 -25
  4. data/.gitignore +0 -9
  5. data/.prettierignore +4 -0
  6. data/.prettierrc +5 -0
  7. data/CONTRIBUTING.md +2 -4
  8. data/Gemfile +4 -2
  9. data/README.md +4 -4
  10. data/Rakefile +0 -22
  11. data/app/assets/stylesheets/geoblacklight/global.css +7 -0
  12. data/app/assets/stylesheets/geoblacklight/home.css +22 -0
  13. data/app/assets/stylesheets/geoblacklight/index_maps.css +36 -0
  14. data/app/assets/stylesheets/geoblacklight/record.css +39 -0
  15. data/app/assets/stylesheets/geoblacklight/search.css +56 -0
  16. data/app/assets/stylesheets/geoblacklight/viewers.css +50 -0
  17. data/app/assets/stylesheets/geoblacklight.css +14 -0
  18. data/app/components/blacklight/icons/web_services_component.rb +3 -3
  19. data/app/components/geoblacklight/accordion_component.html.erb +3 -3
  20. data/app/components/geoblacklight/accordion_component.rb +4 -0
  21. data/app/components/geoblacklight/arcgis_component.html.erb +1 -1
  22. data/app/components/geoblacklight/arcgis_component.rb +1 -1
  23. data/app/components/geoblacklight/attribute_table_component.html.erb +3 -3
  24. data/app/components/geoblacklight/data_dictionary_download_component.html.erb +1 -1
  25. data/app/components/geoblacklight/display_note_component.html.erb +1 -1
  26. data/app/components/geoblacklight/display_note_component.rb +2 -1
  27. data/app/components/geoblacklight/document/citation_component.html.erb +1 -1
  28. data/app/components/geoblacklight/document/sidebar_component.html.erb +1 -1
  29. data/app/components/geoblacklight/document/sidebar_component.rb +0 -1
  30. data/app/components/geoblacklight/document_component.html.erb +1 -2
  31. data/app/components/geoblacklight/header_component.html.erb +4 -4
  32. data/app/components/geoblacklight/header_icons_component.rb +4 -2
  33. data/app/components/geoblacklight/homepage_feature_facet_component.html.erb +3 -7
  34. data/app/components/geoblacklight/homepage_feature_facet_component.rb +12 -3
  35. data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +2 -2
  36. data/app/components/geoblacklight/iiif_drag_drop_component.rb +2 -2
  37. data/app/components/geoblacklight/index_map_inspect_component.html.erb +3 -3
  38. data/app/components/geoblacklight/index_map_legend_component.html.erb +7 -7
  39. data/app/components/geoblacklight/index_map_legend_component.rb +7 -0
  40. data/app/components/geoblacklight/item_map_viewer_component.rb +8 -4
  41. data/app/components/geoblacklight/location_leaflet_map_component.rb +28 -15
  42. data/app/components/geoblacklight/relations_component.html.erb +2 -2
  43. data/app/components/geoblacklight/search_result_component.html.erb +28 -26
  44. data/app/components/geoblacklight/search_result_component.rb +2 -2
  45. data/app/components/geoblacklight/static_map_component.rb +5 -4
  46. data/app/components/geoblacklight/viewer_help_text_component.html.erb +1 -1
  47. data/app/components/geoblacklight/viewer_help_text_component.rb +1 -1
  48. data/app/components/geoblacklight/web_services_component.html.erb +1 -1
  49. data/app/components/geoblacklight/web_services_component.rb +1 -1
  50. data/app/components/geoblacklight/web_services_default_component.html.erb +6 -6
  51. data/app/components/geoblacklight/web_services_link_component.rb +12 -9
  52. data/app/components/geoblacklight/web_services_wfs_component.html.erb +4 -4
  53. data/app/components/geoblacklight/web_services_wms_component.html.erb +4 -4
  54. data/app/controllers/download_controller.rb +0 -1
  55. data/app/controllers/wms_controller.rb +1 -1
  56. data/app/helpers/geoblacklight_helper.rb +0 -15
  57. data/app/javascript/geoblacklight/controllers/clipboard_controller.js +6 -6
  58. data/app/javascript/geoblacklight/controllers/downloads_controller.js +37 -29
  59. data/app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js +108 -117
  60. data/app/javascript/geoblacklight/controllers/oembed_viewer_controller.js +5 -5
  61. data/app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js +27 -30
  62. data/app/javascript/geoblacklight/controllers/search_results_controller.js +18 -18
  63. data/app/javascript/geoblacklight/core.js +35 -36
  64. data/app/javascript/geoblacklight/index.js +10 -10
  65. data/app/javascript/geoblacklight/initializers/metadata_download.js +23 -25
  66. data/app/javascript/geoblacklight/initializers/popovers.js +4 -4
  67. data/app/javascript/geoblacklight/initializers/relations.js +20 -20
  68. data/app/javascript/geoblacklight/initializers/tooltips.js +19 -23
  69. data/app/javascript/geoblacklight/initializers/truncation.js +18 -18
  70. data/app/javascript/geoblacklight/leaflet/basemaps.js +2 -3
  71. data/app/javascript/geoblacklight/leaflet/constants.js +7 -7
  72. data/app/javascript/geoblacklight/leaflet/controls/geosearch.js +80 -74
  73. data/app/javascript/geoblacklight/leaflet/controls/layer_opacity.js +74 -73
  74. data/app/javascript/geoblacklight/leaflet/controls/sidebar.js +31 -29
  75. data/app/javascript/geoblacklight/leaflet/controls/sleep.js +54 -51
  76. data/app/javascript/geoblacklight/leaflet/inspection.js +77 -68
  77. data/app/javascript/geoblacklight/leaflet/layer_index_map.js +74 -69
  78. data/app/javascript/geoblacklight/leaflet/layer_wmts.js +14 -16
  79. data/app/javascript/geoblacklight/leaflet/layers.js +59 -66
  80. data/app/javascript/geoblacklight/leaflet/utils.js +37 -43
  81. data/app/javascript/geoblacklight/openlayers/basemaps.js +35 -27
  82. data/app/javascript/geoblacklight/openlayers/inspection.js +23 -23
  83. data/app/javascript/geoblacklight/openlayers/layers.js +11 -11
  84. data/app/models/concerns/geoblacklight/bbox_filter_query.rb +7 -9
  85. data/app/models/concerns/geoblacklight/solr_document.rb +16 -39
  86. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +3 -3
  87. data/app/views/catalog/_document_split.html.erb +3 -3
  88. data/app/views/catalog/_home_text.html.erb +22 -14
  89. data/app/views/catalog/_metadata.html.erb +1 -1
  90. data/app/views/catalog/_relations_container.html.erb +1 -1
  91. data/app/views/catalog/index.html.erb +0 -1
  92. data/app/views/catalog/metadata/_markup.html.erb +1 -2
  93. data/app/views/catalog/metadata/_missing.html.erb +2 -2
  94. data/app/views/catalog/web_services.html.erb +1 -1
  95. data/app/views/relation/index.html.erb +1 -1
  96. data/app/views/relation/index.json.jbuilder +1 -1
  97. data/config/initializers/rails_config.rb +0 -3
  98. data/config/locales/geoblacklight.en.yml +79 -78
  99. data/geoblacklight.gemspec +1 -2
  100. data/lib/generators/geoblacklight/assets_generator.rb +35 -26
  101. data/lib/generators/geoblacklight/install_generator.rb +6 -11
  102. data/lib/generators/geoblacklight/templates/assets/customizations.css +6 -0
  103. data/lib/generators/geoblacklight/templates/catalog_controller.rb +97 -73
  104. data/lib/generators/geoblacklight/templates/settings.yml +97 -113
  105. data/lib/geoblacklight/configuration/default_settings_builder.rb +18 -0
  106. data/lib/geoblacklight/configuration/display_note_shown_config.rb +13 -0
  107. data/lib/geoblacklight/configuration/fields_config.rb +51 -0
  108. data/lib/geoblacklight/configuration/leaflet_config.rb +73 -0
  109. data/lib/geoblacklight/configuration/leaflet_layers_config.rb +21 -0
  110. data/lib/geoblacklight/configuration/leaflet_sleep_config.rb +20 -0
  111. data/lib/geoblacklight/configuration/legacy_settings_builder.rb +94 -0
  112. data/lib/geoblacklight/configuration.rb +148 -0
  113. data/lib/geoblacklight/download.rb +2 -2
  114. data/lib/geoblacklight/engine.rb +7 -5
  115. data/lib/geoblacklight/metadata/base.rb +0 -2
  116. data/lib/geoblacklight/metadata_transformer.rb +0 -2
  117. data/lib/geoblacklight/references.rb +5 -4
  118. data/lib/geoblacklight/relation/ancestors.rb +3 -2
  119. data/lib/geoblacklight/relation/descendants.rb +2 -1
  120. data/lib/geoblacklight/relation/relation_response.rb +4 -4
  121. data/lib/geoblacklight/version.rb +1 -1
  122. data/lib/geoblacklight/wms_layer.rb +3 -3
  123. data/lib/geoblacklight.rb +7 -1
  124. data/package.json +10 -31
  125. data/schema/geoblacklight-schema-aardvark.json +1 -9
  126. data/schema/readme.md +3 -4
  127. data/solr/conf/_rest_managed.json +3 -2
  128. data/solr/conf/schema.xml +1 -1
  129. data/spec/components/geoblacklight/arcgis_component_spec.rb +6 -6
  130. data/spec/components/geoblacklight/attribute_table_component_spec.rb +6 -7
  131. data/spec/components/geoblacklight/citation_component_spec.rb +7 -4
  132. data/spec/components/geoblacklight/display_note_component_spec.rb +8 -8
  133. data/spec/components/geoblacklight/document_component_spec.rb +13 -13
  134. data/spec/components/geoblacklight/download_links_component_spec.rb +17 -14
  135. data/spec/components/geoblacklight/header_icons_component_spec.rb +6 -11
  136. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +22 -30
  137. data/spec/components/geoblacklight/iiif_drag_drop_component_spec.rb +3 -3
  138. data/spec/components/geoblacklight/index_map_legend_component_spec.rb +5 -18
  139. data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +5 -5
  140. data/spec/components/geoblacklight/login_link_component_spec.rb +4 -5
  141. data/spec/components/geoblacklight/search_result_component_spec.rb +2 -6
  142. data/spec/components/geoblacklight/static_map_component_spec.rb +2 -2
  143. data/spec/components/geoblacklight/viewer_help_text_component_spec.rb +4 -6
  144. data/spec/components/geoblacklight/web_services_component_spec.rb +11 -10
  145. data/spec/controllers/catalog_controller_spec.rb +7 -7
  146. data/spec/controllers/download_controller_spec.rb +1 -1
  147. data/spec/controllers/relation_controller_spec.rb +1 -1
  148. data/spec/controllers/wms_controller_spec.rb +1 -1
  149. data/spec/features/axe_spec.rb +4 -4
  150. data/spec/features/bookmarks_spec.rb +1 -1
  151. data/spec/features/citations_spec.rb +1 -1
  152. data/spec/features/configurable_basemap_spec.rb +1 -1
  153. data/spec/features/data_dictionary_download_spec.rb +1 -1
  154. data/spec/features/download_layer_spec.rb +1 -1
  155. data/spec/features/empty_search_spec.rb +1 -1
  156. data/spec/features/esri_viewer_spec.rb +1 -1
  157. data/spec/features/exports_spec.rb +1 -1
  158. data/spec/features/full_screen_control_spec.rb +3 -10
  159. data/spec/features/help_text_spec.rb +1 -1
  160. data/spec/features/home_page_spec.rb +1 -1
  161. data/spec/features/index_map_spec.rb +3 -3
  162. data/spec/features/index_view_spec.rb +7 -7
  163. data/spec/features/layer_inspection_spec.rb +1 -1
  164. data/spec/features/layer_opacity_spec.rb +1 -1
  165. data/spec/features/layer_preview_spec.rb +1 -1
  166. data/spec/features/layer_with_no_references_spec.rb +1 -1
  167. data/spec/features/linkified_attribute_table_spec.rb +1 -1
  168. data/spec/features/metadata_panel_spec.rb +1 -1
  169. data/spec/features/missing_metadata_spec.rb +1 -1
  170. data/spec/features/multiple_downloads_spec.rb +1 -1
  171. data/spec/features/oembed_spec.rb +1 -1
  172. data/spec/features/relations_spec.rb +2 -2
  173. data/spec/features/saved_searches_spec.rb +1 -1
  174. data/spec/features/search_bar_spec.rb +1 -1
  175. data/spec/features/search_results_complex_geometry_spec.rb +1 -1
  176. data/spec/features/search_results_icons_spec.rb +3 -4
  177. data/spec/features/search_results_map_spec.rb +1 -1
  178. data/spec/features/search_results_overlap_ratio_spec.rb +3 -3
  179. data/spec/features/search_spec.rb +1 -1
  180. data/spec/features/show_page_download_spec.rb +1 -1
  181. data/spec/features/show_page_metadata_spec.rb +2 -2
  182. data/spec/features/show_page_sidebar_static_map_spec.rb +1 -1
  183. data/spec/features/sms_spec.rb +1 -1
  184. data/spec/features/suppressed_records_spec.rb +1 -1
  185. data/spec/features/tilejson_spec.rb +1 -1
  186. data/spec/features/tms_spec.rb +1 -1
  187. data/spec/features/web_services_modal_spec.rb +1 -1
  188. data/spec/features/wmts_spec.rb +1 -1
  189. data/spec/features/xyz_spec.rb +1 -1
  190. data/spec/fixtures/manifests/tilejson.json +10 -19
  191. data/spec/fixtures/metadata/fgdc.html +1 -1
  192. data/spec/fixtures/metadata/iso.html +1 -1
  193. data/spec/fixtures/solr_documents/README.md +0 -1
  194. data/spec/fixtures/solr_documents/actual-papermap1.json +9 -28
  195. data/spec/fixtures/solr_documents/actual-point1.json +12 -39
  196. data/spec/fixtures/solr_documents/actual-polygon1.json +10 -30
  197. data/spec/fixtures/solr_documents/actual-raster1.json +14 -46
  198. data/spec/fixtures/solr_documents/all-relationships.json +12 -36
  199. data/spec/fixtures/solr_documents/b1g_iiif_manifest.json +33 -62
  200. data/spec/fixtures/solr_documents/b1g_wabash_child_15.json +13 -40
  201. data/spec/fixtures/solr_documents/b1g_wabash_child_16.json +13 -40
  202. data/spec/fixtures/solr_documents/b1g_wabash_child_17.json +13 -40
  203. data/spec/fixtures/solr_documents/b1g_wabash_child_18.json +13 -40
  204. data/spec/fixtures/solr_documents/b1g_wabash_parent.json +13 -40
  205. data/spec/fixtures/solr_documents/baruch_ancestor1.json +13 -40
  206. data/spec/fixtures/solr_documents/baruch_ancestor2.json +13 -40
  207. data/spec/fixtures/solr_documents/baruch_documentation_download.json +14 -46
  208. data/spec/fixtures/solr_documents/bbox-spans-180.json +7 -21
  209. data/spec/fixtures/solr_documents/complex-geom.json +11 -37
  210. data/spec/fixtures/solr_documents/cornell_html_metadata.json +12 -37
  211. data/spec/fixtures/solr_documents/display-note.json +11 -33
  212. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +13 -39
  213. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +13 -40
  214. data/spec/fixtures/solr_documents/esri-feature-layer.json +13 -39
  215. data/spec/fixtures/solr_documents/esri-image-map-layer.json +13 -40
  216. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +16 -54
  217. data/spec/fixtures/solr_documents/esri-wms-layer.json +12 -36
  218. data/spec/fixtures/solr_documents/harvard_raster.json +12 -37
  219. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +9 -27
  220. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +12 -41
  221. data/spec/fixtures/solr_documents/index-map-polygon.json +12 -41
  222. data/spec/fixtures/solr_documents/index-map-stanford.json +14 -45
  223. data/spec/fixtures/solr_documents/index-map-v1-complex.json +13 -38
  224. data/spec/fixtures/solr_documents/index_map_point.json +13 -42
  225. data/spec/fixtures/solr_documents/metadata_no_geom.json +4 -14
  226. data/spec/fixtures/solr_documents/metadata_no_provider.json +8 -25
  227. data/spec/fixtures/solr_documents/multiple-downloads.json +6 -18
  228. data/spec/fixtures/solr_documents/no_locn_geometry.json +4 -12
  229. data/spec/fixtures/solr_documents/no_spatial.json +4 -12
  230. data/spec/fixtures/solr_documents/oembed.json +8 -25
  231. data/spec/fixtures/solr_documents/princeton-child1.json +9 -29
  232. data/spec/fixtures/solr_documents/princeton-child2.json +9 -29
  233. data/spec/fixtures/solr_documents/princeton-child3.json +9 -29
  234. data/spec/fixtures/solr_documents/princeton-child4.json +9 -29
  235. data/spec/fixtures/solr_documents/princeton-parent.json +10 -33
  236. data/spec/fixtures/solr_documents/public_cog_princeton.json +9 -27
  237. data/spec/fixtures/solr_documents/public_iiif_princeton.json +13 -43
  238. data/spec/fixtures/solr_documents/public_pmtiles_princeton.json +29 -39
  239. data/spec/fixtures/solr_documents/public_polygon_mit.json +9 -30
  240. data/spec/fixtures/solr_documents/restricted-line.json +14 -47
  241. data/spec/fixtures/solr_documents/the-related-record.json +4 -12
  242. data/spec/fixtures/solr_documents/tilejson.json +23 -46
  243. data/spec/fixtures/solr_documents/tms.json +7 -21
  244. data/spec/fixtures/solr_documents/umn_metro_result1.json +13 -41
  245. data/spec/fixtures/solr_documents/umn_state_result1.json +13 -39
  246. data/spec/fixtures/solr_documents/umn_state_result2.json +13 -39
  247. data/spec/fixtures/solr_documents/uva_slug_colon.json +10 -30
  248. data/spec/fixtures/solr_documents/wmts-multiple.json +23 -39
  249. data/spec/fixtures/solr_documents/wmts-single-layer.json +23 -46
  250. data/spec/fixtures/solr_documents/xyz.json +10 -33
  251. data/spec/helpers/geoblacklight_helper_spec.rb +5 -50
  252. data/spec/javascripts/geoblacklight_spec.js +10 -10
  253. data/spec/javascripts/metadata_download_button_spec.js +14 -13
  254. data/spec/lib/geoblacklight/bounding_box_spec.rb +1 -1
  255. data/spec/lib/geoblacklight/configuration/default_settings_builder_spec.rb +9 -0
  256. data/spec/lib/geoblacklight/configuration_spec.rb +13 -0
  257. data/spec/lib/geoblacklight/download/csv_download_spec.rb +2 -2
  258. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +2 -2
  259. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +5 -2
  260. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +2 -2
  261. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +2 -2
  262. data/spec/lib/geoblacklight/download_spec.rb +15 -6
  263. data/spec/lib/geoblacklight/geometry_spec.rb +1 -1
  264. data/spec/lib/geoblacklight/item_viewer_spec.rb +2 -2
  265. data/spec/lib/geoblacklight/metadata/base_spec.rb +1 -1
  266. data/spec/lib/geoblacklight/metadata/html_spec.rb +1 -1
  267. data/spec/lib/geoblacklight/metadata_spec.rb +1 -1
  268. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +1 -1
  269. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +1 -1
  270. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +1 -1
  271. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +1 -1
  272. data/spec/lib/geoblacklight/reference_spec.rb +1 -1
  273. data/spec/lib/geoblacklight/references_spec.rb +6 -4
  274. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +10 -4
  275. data/spec/lib/geoblacklight/relation/descendants_spec.rb +9 -4
  276. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +12 -15
  277. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +1 -1
  278. data/spec/lib/geoblacklight/wms_layer_spec.rb +1 -1
  279. data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +20 -11
  280. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +1 -1
  281. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +1 -1
  282. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +1 -1
  283. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +4 -39
  284. data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +2 -2
  285. data/spec/routing/catalog_routing_spec.rb +1 -1
  286. data/spec/spec_helper.rb +21 -10
  287. data/spec/tasks/geoblacklight_spec.rb +1 -1
  288. data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -3
  289. metadata +33 -184
  290. data/Procfile.dev +0 -3
  291. data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +0 -2
  292. data/app/assets/stylesheets/geoblacklight/modules/_base.scss +0 -31
  293. data/app/assets/stylesheets/geoblacklight/modules/_blacklight_overrides.scss +0 -40
  294. data/app/assets/stylesheets/geoblacklight/modules/_styles.scss +0 -9
  295. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +0 -62
  296. data/app/assets/stylesheets/geoblacklight/modules/geosearch.scss +0 -23
  297. data/app/assets/stylesheets/geoblacklight/modules/home.scss +0 -13
  298. data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +0 -116
  299. data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +0 -61
  300. data/app/assets/stylesheets/geoblacklight/modules/item.scss +0 -78
  301. data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +0 -87
  302. data/app/assets/stylesheets/geoblacklight/modules/leaflet.scss +0 -4
  303. data/app/assets/stylesheets/geoblacklight/modules/metadata.scss +0 -31
  304. data/app/assets/stylesheets/geoblacklight/modules/metadata_content.scss +0 -43
  305. data/app/assets/stylesheets/geoblacklight/modules/metadata_markup.scss +0 -9
  306. data/app/assets/stylesheets/geoblacklight/modules/metadata_missing.scss +0 -7
  307. data/app/assets/stylesheets/geoblacklight/modules/modal.scss +0 -5
  308. data/app/assets/stylesheets/geoblacklight/modules/results.scss +0 -60
  309. data/app/assets/stylesheets/geoblacklight/modules/search_widgets.scss +0 -5
  310. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +0 -42
  311. data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +0 -34
  312. data/app/assets/stylesheets/geoblacklight/modules/web_services.scss +0 -5
  313. data/app/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component.rb +0 -46
  314. data/app/components/blacklight/icons/arizona_component.rb +0 -24
  315. data/app/components/blacklight/icons/baruch_cuny_component.rb +0 -23
  316. data/app/components/blacklight/icons/bookmark_component.rb +0 -23
  317. data/app/components/blacklight/icons/circle_info_solid_component.rb +0 -23
  318. data/app/components/blacklight/icons/columbia_component.rb +0 -23
  319. data/app/components/blacklight/icons/cornell_component.rb +0 -25
  320. data/app/components/blacklight/icons/george_mason_component.rb +0 -24
  321. data/app/components/blacklight/icons/harvard_component.rb +0 -23
  322. data/app/components/blacklight/icons/indiana_component.rb +0 -23
  323. data/app/components/blacklight/icons/lewis_clark_component.rb +0 -25
  324. data/app/components/blacklight/icons/massgis_component.rb +0 -23
  325. data/app/components/blacklight/icons/michigan_state_university_component.rb +0 -25
  326. data/app/components/blacklight/icons/mit_component.rb +0 -23
  327. data/app/components/blacklight/icons/northwestern_university_component.rb +0 -24
  328. data/app/components/blacklight/icons/nyu_component.rb +0 -26
  329. data/app/components/blacklight/icons/pennsylvania_state_university_component.rb +0 -25
  330. data/app/components/blacklight/icons/princeton_component.rb +0 -23
  331. data/app/components/blacklight/icons/purdue_university_component.rb +0 -25
  332. data/app/components/blacklight/icons/rutgers_component.rb +0 -25
  333. data/app/components/blacklight/icons/sms_component.rb +0 -23
  334. data/app/components/blacklight/icons/stanford_component.rb +0 -23
  335. data/app/components/blacklight/icons/texas_component.rb +0 -23
  336. data/app/components/blacklight/icons/the_ohio_state_university_component.rb +0 -26
  337. data/app/components/blacklight/icons/tufts_component.rb +0 -23
  338. data/app/components/blacklight/icons/ucla_component.rb +0 -23
  339. data/app/components/blacklight/icons/university_of_california_berkeley_component.rb +0 -24
  340. data/app/components/blacklight/icons/university_of_chicago_component.rb +0 -25
  341. data/app/components/blacklight/icons/university_of_colorado_boulder_component.rb +0 -26
  342. data/app/components/blacklight/icons/university_of_illinois_urbana_champaign_component.rb +0 -25
  343. data/app/components/blacklight/icons/university_of_iowa_component.rb +0 -24
  344. data/app/components/blacklight/icons/university_of_maryland_component.rb +0 -24
  345. data/app/components/blacklight/icons/university_of_michigan_component.rb +0 -24
  346. data/app/components/blacklight/icons/university_of_minnesota_component.rb +0 -24
  347. data/app/components/blacklight/icons/university_of_nebraska_lincoln_component.rb +0 -27
  348. data/app/components/blacklight/icons/university_of_wisconsin_madison_component.rb +0 -24
  349. data/app/components/blacklight/icons/uva_component.rb +0 -23
  350. data/app/components/geoblacklight/icon_facet_item_component.rb +0 -33
  351. data/app/components/geoblacklight/web_services_link_component.html.erb +0 -3
  352. data/bin/vite +0 -29
  353. data/config/initializers/new_gbl_settings_defaults_4.1.yml +0 -104
  354. data/lib/generators/geoblacklight/assets/importmap_generator.rb +0 -73
  355. data/lib/generators/geoblacklight/assets/vite_generator.rb +0 -89
  356. data/lib/generators/geoblacklight/templates/assets/_customizations.scss +0 -23
  357. data/lib/generators/geoblacklight/templates/assets/application.js +0 -17
  358. data/lib/generators/geoblacklight/templates/assets/application.scss +0 -9
  359. data/lib/generators/geoblacklight/templates/assets/geoblacklight.scss +0 -11
  360. data/lib/generators/geoblacklight/templates/base.html.erb +0 -46
  361. data/lib/generators/geoblacklight/templates/vite.config.ts +0 -23
  362. data/lib/generators/geoblacklight/templates/vite.json +0 -16
  363. data/schema/geoblacklight-schema-1.0.json +0 -214
  364. data/solr/conf/xslt/example.xsl +0 -132
  365. data/solr/conf/xslt/example_atom.xsl +0 -67
  366. data/solr/conf/xslt/example_rss.xsl +0 -66
  367. data/solr/conf/xslt/luke.xsl +0 -337
  368. data/spec/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component_spec.rb +0 -15
  369. data/spec/components/blacklight/icons/arizona_component_spec.rb +0 -15
  370. data/spec/components/blacklight/icons/arrow_circle_down_component_spec.rb +0 -15
  371. data/spec/components/blacklight/icons/baruch_cuny_component_spec.rb +0 -15
  372. data/spec/components/blacklight/icons/book_component_spec.rb +0 -15
  373. data/spec/components/blacklight/icons/bookmark_component_spec.rb +0 -15
  374. data/spec/components/blacklight/icons/cd_rom_component_spec.rb +0 -15
  375. data/spec/components/blacklight/icons/child_item_component_spec.rb +0 -15
  376. data/spec/components/blacklight/icons/circle_info_solid_component_spec.rb +0 -15
  377. data/spec/components/blacklight/icons/citation_component_spec.rb +0 -15
  378. data/spec/components/blacklight/icons/collection_component_spec.rb +0 -15
  379. data/spec/components/blacklight/icons/collections_component_spec.rb +0 -15
  380. data/spec/components/blacklight/icons/columbia_component_spec.rb +0 -15
  381. data/spec/components/blacklight/icons/cornell_component_spec.rb +0 -15
  382. data/spec/components/blacklight/icons/datasets_component_spec.rb +0 -15
  383. data/spec/components/blacklight/icons/dvd_rom_component_spec.rb +0 -15
  384. data/spec/components/blacklight/icons/email_component_spec.rb +0 -15
  385. data/spec/components/blacklight/icons/esri_globe_component_spec.rb +0 -15
  386. data/spec/components/blacklight/icons/fire_solid_component_spec.rb +0 -15
  387. data/spec/components/blacklight/icons/george_mason_component_spec.rb +0 -15
  388. data/spec/components/blacklight/icons/globe_component_spec.rb +0 -15
  389. data/spec/components/blacklight/icons/harvard_component_spec.rb +0 -15
  390. data/spec/components/blacklight/icons/home_component_spec.rb +0 -15
  391. data/spec/components/blacklight/icons/iiif_drag_drop_component_spec.rb +0 -15
  392. data/spec/components/blacklight/icons/image_component_spec.rb +0 -15
  393. data/spec/components/blacklight/icons/imagery_component_spec.rb +0 -15
  394. data/spec/components/blacklight/icons/indiana_component_spec.rb +0 -15
  395. data/spec/components/blacklight/icons/leaf_component_spec.rb +0 -15
  396. data/spec/components/blacklight/icons/lewis_clark_component_spec.rb +0 -15
  397. data/spec/components/blacklight/icons/lightbulb_solid_component_spec.rb +0 -15
  398. data/spec/components/blacklight/icons/line_component_spec.rb +0 -15
  399. data/spec/components/blacklight/icons/map_component_spec.rb +0 -15
  400. data/spec/components/blacklight/icons/map_marker_component_spec.rb +0 -15
  401. data/spec/components/blacklight/icons/maps_component_spec.rb +0 -15
  402. data/spec/components/blacklight/icons/massgis_component_spec.rb +0 -15
  403. data/spec/components/blacklight/icons/metadata_component_spec.rb +0 -15
  404. data/spec/components/blacklight/icons/michigan_state_university_component_spec.rb +0 -15
  405. data/spec/components/blacklight/icons/mit_component_spec.rb +0 -15
  406. data/spec/components/blacklight/icons/mixed_component_spec.rb +0 -15
  407. data/spec/components/blacklight/icons/multilinestring_component_spec.rb +0 -15
  408. data/spec/components/blacklight/icons/multipoint_component_spec.rb +0 -15
  409. data/spec/components/blacklight/icons/multipolygon_component_spec.rb +0 -15
  410. data/spec/components/blacklight/icons/northwestern_university_component_spec.rb +0 -15
  411. data/spec/components/blacklight/icons/nyu_component_spec.rb +0 -15
  412. data/spec/components/blacklight/icons/pagelines_brands_component_spec.rb +0 -15
  413. data/spec/components/blacklight/icons/paper_map_component_spec.rb +0 -15
  414. data/spec/components/blacklight/icons/parent_item_component_spec.rb +0 -15
  415. data/spec/components/blacklight/icons/pennsylvania_state_university_component_spec.rb +0 -15
  416. data/spec/components/blacklight/icons/point_component_spec.rb +0 -15
  417. data/spec/components/blacklight/icons/polygon_component_spec.rb +0 -15
  418. data/spec/components/blacklight/icons/polyline_component_spec.rb +0 -15
  419. data/spec/components/blacklight/icons/princeton_component_spec.rb +0 -15
  420. data/spec/components/blacklight/icons/public_component_spec.rb +0 -15
  421. data/spec/components/blacklight/icons/purdue_university_component_spec.rb +0 -15
  422. data/spec/components/blacklight/icons/raster_component_spec.rb +0 -15
  423. data/spec/components/blacklight/icons/restricted_component_spec.rb +0 -15
  424. data/spec/components/blacklight/icons/rutgers_component_spec.rb +0 -15
  425. data/spec/components/blacklight/icons/sms_component_spec.rb +0 -15
  426. data/spec/components/blacklight/icons/stanford_component_spec.rb +0 -15
  427. data/spec/components/blacklight/icons/table_component_spec.rb +0 -15
  428. data/spec/components/blacklight/icons/tags_component_spec.rb +0 -15
  429. data/spec/components/blacklight/icons/texas_component_spec.rb +0 -15
  430. data/spec/components/blacklight/icons/the_ohio_state_university_component_spec.rb +0 -15
  431. data/spec/components/blacklight/icons/triangle_exclamation_solid_component_spec.rb +0 -15
  432. data/spec/components/blacklight/icons/tufts_component_spec.rb +0 -15
  433. data/spec/components/blacklight/icons/ucla_component_spec.rb +0 -15
  434. data/spec/components/blacklight/icons/university_of_california_berkeley_component_spec.rb +0 -15
  435. data/spec/components/blacklight/icons/university_of_chicago_component_spec.rb +0 -15
  436. data/spec/components/blacklight/icons/university_of_colorado_boulder_component_spec.rb +0 -15
  437. data/spec/components/blacklight/icons/university_of_illinois_urbana_champaign_component_spec.rb +0 -15
  438. data/spec/components/blacklight/icons/university_of_iowa_component_spec.rb +0 -15
  439. data/spec/components/blacklight/icons/university_of_maryland_component_spec.rb +0 -15
  440. data/spec/components/blacklight/icons/university_of_michigan_component_spec.rb +0 -15
  441. data/spec/components/blacklight/icons/university_of_minnesota_component_spec.rb +0 -15
  442. data/spec/components/blacklight/icons/university_of_nebraska_lincoln_component_spec.rb +0 -15
  443. data/spec/components/blacklight/icons/university_of_wisconsin_madison_component_spec.rb +0 -15
  444. data/spec/components/blacklight/icons/uva_component_spec.rb +0 -15
  445. data/spec/components/blacklight/icons/web_services_component_spec.rb +0 -15
  446. data/spec/components/blacklight/icons/websites_component_spec.rb +0 -15
  447. data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +0 -18
  448. data/spec/config/initializers/rails_config_spec.rb +0 -16
  449. data/spec/fixtures/solr_documents/public_direct_download.json +0 -62
  450. data/spec/support/backport_test_helpers.rb +0 -47
  451. data/spec/support/view_component_capybara_test_helpers.rb +0 -8
  452. data/vite.config.ts +0 -32
  453. /data/app/assets/images/{blacklight → geoblacklight}/logo.svg +0 -0
@@ -0,0 +1,73 @@
1
+ module Geoblacklight
2
+ class Configuration
3
+ class LeafletConfig
4
+ include ActiveModel::Model
5
+ include ActiveModel::Attributes
6
+
7
+ attr_accessor :bounds_overlay, :controls
8
+
9
+ attr_reader :sleep, :layers
10
+ # set to true to display attribute table as sidebar on map
11
+ attribute :sidebar, :boolean, default: false
12
+ attribute :selected_color, :string, default: "#2C7FB8"
13
+
14
+ DEFAULT_LAYERS_CONFIG = {
15
+ index: {
16
+ DEFAULT: {
17
+ color: "#7FCDBB",
18
+ weight: 1,
19
+ radius: 4,
20
+ sr_color_name: "Green"
21
+ },
22
+ UNAVAILABLE: {
23
+ weight: 1,
24
+ radius: 4,
25
+ color: "#EDF8B1",
26
+ sr_color_name: "Yellow"
27
+ },
28
+ SELECTED: {
29
+ weight: 1,
30
+ radius: 4,
31
+ color: "#2C7FB8",
32
+ sr_color_name: "Blue"
33
+ }
34
+ }
35
+ }.freeze
36
+
37
+ DEFAULT_SLEEP_CONFIG = {
38
+ sleep: true, # set to false to disable
39
+ margin_distance: 100, # set to zero / false if you want to disable this check
40
+ sleeptime: 750,
41
+ waketime: 750,
42
+ hovertowake: false,
43
+ message: "Click to Wake",
44
+ background: "rgba(214, 214, 214, .7)"
45
+ }.freeze
46
+
47
+ def initialize
48
+ super
49
+ @sleep = LeafletSleepConfig.new(DEFAULT_SLEEP_CONFIG)
50
+ @layers = LeafletLayersConfig.new(DEFAULT_LAYERS_CONFIG)
51
+ end
52
+
53
+ def sleep=(attributes)
54
+ @sleep = LeafletSleepConfig.new(attributes)
55
+ end
56
+
57
+ def layers=(attributes)
58
+ @layers = LeafletLayersConfig.new(attributes)
59
+ end
60
+
61
+ def to_h
62
+ {
63
+ bounds_overlay: bounds_overlay,
64
+ selected_color: selected_color,
65
+ sleep: sleep.to_h,
66
+ sidebar: sidebar,
67
+ layers: layers.to_h,
68
+ controls: controls
69
+ }.compact
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,21 @@
1
+ module Geoblacklight
2
+ class Configuration
3
+ class LeafletLayersConfig
4
+ include ActiveModel::Model
5
+ include ActiveModel::Attributes
6
+
7
+ attribute :detect_retina, :boolean, default: true
8
+
9
+ attr_accessor :index
10
+
11
+ def initialize(attributes = {})
12
+ super
13
+ @index = attributes[:index]
14
+ end
15
+
16
+ def to_h
17
+ attributes.merge({"index" => index})
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ module Geoblacklight
2
+ class Configuration
3
+ class LeafletSleepConfig
4
+ include ActiveModel::Model
5
+ include ActiveModel::Attributes
6
+
7
+ attribute :sleep, :boolean, default: true # set to false to disable
8
+ attribute :margin_distance, :integer, default: 100 # set to zero / false if you want to disable this check
9
+ attribute :sleeptime, :integer, default: 750
10
+ attribute :waketime, :integer, default: 750
11
+ attribute :hovertowake, :boolean, default: false
12
+ attribute :message, :string, default: "Click to Wake"
13
+ attribute :background, :string, default: "rgba(214, 214, 214, .7)"
14
+
15
+ def to_h
16
+ attributes
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,94 @@
1
+ module Geoblacklight
2
+ class Configuration
3
+ # Builds a configuration from legacy (uppercase) settings
4
+ class LegacySettingsBuilder
5
+ def self.build
6
+ new.build
7
+ end
8
+
9
+ def initialize
10
+ @configuration = Configuration.new
11
+ end
12
+
13
+ def build
14
+ @configuration.tap do |config|
15
+ config.arcgis_base_url = Settings.ARCGIS_BASE_URL
16
+ config.bbox_within_boost = Settings.BBOX_WITHIN_BOOST
17
+ config.overlap_ratio_boost = Settings.OVERLAP_RATIO_BOOST
18
+ config.display_notes_shown = Settings.DISPLAY_NOTES_SHOWN
19
+ config.institution = Settings.INSTITUTION
20
+ config.help_text = Settings.HELP_TEXT.to_h
21
+ config.sidebar_static_map = Settings.SIDEBAR_STATIC_MAP
22
+ config.iiif_drag_drop_link = Settings.IIIF_DRAG_DROP_LINK
23
+ config.homepage_map_geom = Settings.HOMEPAGE_MAP_GEOM
24
+ config.vector_download_formats = Settings.DOWNLOAD_FORMATS&.VECTOR
25
+ config.metadata_shown = Settings.METADATA_SHOWN
26
+ config.webservices_shown = Settings.WEBSERVICES_SHOWN
27
+ config.relationships_shown = Settings.RELATIONSHIPS_SHOWN
28
+ config.download_path = Settings.DOWNLOAD_PATH if Settings.DOWNLOAD_PATH
29
+ config.gbl_params = Settings.GBL_PARAMS
30
+ config.wms_params = Settings.WMS_PARAMS.to_h
31
+ config.timeout_wms = Settings.TIMEOUT_WMS
32
+
33
+ build_fields(config)
34
+ build_leaflet_options(config)
35
+ end
36
+ end
37
+
38
+ private
39
+
40
+ def build_leaflet_options(config)
41
+ config.leaflet_options.bounds_overlay = Settings.LEAFLET.BOUNDSOVERLAY.to_h
42
+ config.leaflet_options.selected_color = Settings.LEAFLET.SELECTED_COLOR
43
+ config.leaflet_options.sleep = Settings.LEAFLET.SLEEP.to_h.transform_keys(&:downcase)
44
+ config.leaflet_options.sidebar = Settings.LEAFLET.SIDEBAR
45
+ config.leaflet_options.layers = Settings.LEAFLET.LAYERS.to_h.transform_keys(&:downcase)
46
+ end
47
+
48
+ def build_fields(config)
49
+ config.fields.access_rights = Settings.FIELDS.ACCESS_RIGHTS
50
+ config.fields.alternative_title = Settings.FIELDS.ALTERNATIVE_TITLE
51
+ config.fields.centroid = Settings.FIELDS.CENTROID
52
+ config.fields.creator = Settings.FIELDS.CREATOR
53
+ config.fields.date_issued = Settings.FIELDS.DATE_ISSUED
54
+ config.fields.date_range = Settings.FIELDS.DATE_RANGE
55
+ config.fields.description = Settings.FIELDS.DESCRIPTION
56
+ config.fields.display_note = Settings.FIELDS.DISPLAY_NOTE
57
+ config.fields.format = Settings.FIELDS.FORMAT
58
+ config.fields.file_size = Settings.FIELDS.FILE_SIZE
59
+ config.fields.georeferenced = Settings.FIELDS.GEOREFERENCED
60
+ config.fields.id = Settings.FIELDS.ID
61
+ config.fields.identifier = Settings.FIELDS.IDENTIFIER
62
+ config.fields.index_year = Settings.FIELDS.INDEX_YEAR
63
+ config.fields.is_part_of = Settings.FIELDS.IS_PART_OF
64
+ config.fields.is_replaced_by = Settings.FIELDS.IS_REPLACED_BY
65
+ config.fields.theme = Settings.FIELDS.THEME
66
+ config.fields.keyword = Settings.FIELDS.KEYWORD
67
+ config.fields.language = Settings.FIELDS.LANGUAGE
68
+ config.fields.license = Settings.FIELDS.LICENSE
69
+ config.fields.member_of = Settings.FIELDS.MEMBER_OF
70
+ config.fields.metadata_version = Settings.FIELDS.METADATA_VERSION
71
+ config.fields.modified = Settings.FIELDS.MODIFIED
72
+ config.fields.overlap_field = Settings.FIELDS.OVERLAP_FIELD
73
+ config.fields.publisher = Settings.FIELDS.PUBLISHER
74
+ config.fields.provider = Settings.FIELDS.PROVIDER
75
+ config.fields.references = Settings.FIELDS.REFERENCES
76
+ config.fields.relation = Settings.FIELDS.RELATION
77
+ config.fields.replaces = Settings.FIELDS.REPLACES
78
+ config.fields.resource_class = Settings.FIELDS.RESOURCE_CLASS
79
+ config.fields.resource_type = Settings.FIELDS.RESOURCE_TYPE
80
+ config.fields.rights = Settings.FIELDS.RIGHTS
81
+ config.fields.rights_holder = Settings.FIELDS.RIGHTS_HOLDER
82
+ config.fields.source = Settings.FIELDS.SOURCE
83
+ config.fields.spatial_coverage = Settings.FIELDS.SPATIAL_COVERAGE
84
+ config.fields.geometry = Settings.FIELDS.GEOMETRY
85
+ config.fields.subject = Settings.FIELDS.SUBJECT
86
+ config.fields.suppressed = Settings.FIELDS.SUPPRESSED
87
+ config.fields.temporal_coverage = Settings.FIELDS.TEMPORAL_COVERAGE
88
+ config.fields.title = Settings.FIELDS.TITLE
89
+ config.fields.version = Settings.FIELDS.VERSION
90
+ config.fields.wxs_identifier = Settings.FIELDS.WXS_IDENTIFIER
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,148 @@
1
+ module Geoblacklight
2
+ # Configuration for Geoblacklight
3
+ class Configuration
4
+ include ActiveModel::Attributes
5
+
6
+ # ArcGIS Online Base URL
7
+ attribute :arcgis_base_url, :string, default: "https://www.arcgis.com/apps/mapviewer/index.html"
8
+
9
+ # The bq boost value for spatial search matches within a bounding box
10
+ attribute :bbox_within_boost, :string, default: "10"
11
+
12
+ # The bf boost value for overlap ratio
13
+ attribute :overlap_ratio_boost, :string, default: "2"
14
+
15
+ # Institution deployed at
16
+ attribute :institution, :string, default: "Stanford"
17
+
18
+ # (For external Download) timeout and open_timeout parameters for Faraday
19
+ attribute :timeout_download, :integer, default: 180
20
+
21
+ # (For WMS inspection) timeout and open_timeout parameters for Faraday
22
+ attribute :timeout_wms, :integer, default: 4
23
+
24
+ # Display Notes to display / Non-prefixed default bootstrap class is alert-secondary
25
+ attr_accessor :display_notes_shown # typed as Hash
26
+
27
+ # Toggle the help text feature that offers users context
28
+ attr_accessor :help_text # typed as Hash
29
+
30
+ # Non-search-field GeoBlacklight application permitted params
31
+ attr_accessor :gbl_params # typed as Array
32
+
33
+ # WMS Parameters
34
+ attr_accessor :wms_params # typed as Hash
35
+
36
+ # Enable catalog#show sidebar static map for items with the following viewer protocols
37
+ attr_accessor :sidebar_static_map # typed as Array
38
+
39
+ attribute :iiif_drag_drop_link, :string, default: "@manifest?manifest=@manifest"
40
+
41
+ # Homepage Map Geometry
42
+ # Leave null to default to entire world
43
+ # Add a stringified GeoJSON object to scope initial render (example from UMass)
44
+ # config.homepage_map_geom = '{"type":"Polygon","coordinates":[[[-73.58,42.93],[-73.58,41.20],[-69.90,41.20],[-69.90,42.93]]]}'
45
+ attribute :homepage_map_geom, :string
46
+
47
+ # Vector data download formats to be displayed
48
+ attr_accessor :vector_download_formats # typed as Array
49
+
50
+ # Metadata shown in tool panel
51
+ attr_accessor :metadata_shown # typed as Array
52
+
53
+ # Web services shown in tool panel
54
+ attr_accessor :webservices_shown # typed as Array
55
+
56
+ # Relationships to display
57
+ attr_accessor :relationships_shown # typed as Hash
58
+
59
+ attribute :download_path, :string
60
+
61
+ def initialize
62
+ super
63
+ self.download_path ||= Rails.root.join("tmp", "cache", "downloads")
64
+ @gbl_params = [
65
+ :bbox, :email, :file, :format, :id, :logo, :provider, :type,
66
+ :BBOX, :HEIGHT, :LAYERS, :QUERY_LAYERS, :URL, :WIDTH, :X, :Y
67
+ ]
68
+ @wms_params = {
69
+ SERVICE: "WMS",
70
+ VERSION: "1.1.1",
71
+ REQUEST: "GetFeatureInfo",
72
+ STYLES: "",
73
+ SRS: "EPSG:4326",
74
+ EXCEPTIONS: "application/json",
75
+ INFO_FORMAT: "application/json"
76
+ }
77
+ @help_text = {
78
+ viewer_protocol: %w[
79
+ cog
80
+ dynamic_map_layer
81
+ feature_layer
82
+ iiif
83
+ iiif_manifest
84
+ image_map_layer
85
+ index_map
86
+ oembed
87
+ pmtiles
88
+ tiled_map_layer
89
+ tilejson
90
+ tms
91
+ wms
92
+ wmts
93
+ xyz
94
+ ]
95
+ }
96
+
97
+ @webservices_shown = %w[
98
+ wms
99
+ tms
100
+ wfs
101
+ xyz
102
+ wmts
103
+ tilejson
104
+ iiif
105
+ feature_layer
106
+ tiled_map_layer
107
+ dynamic_map_layer
108
+ image_map_layer
109
+ cog
110
+ pmtile
111
+ ]
112
+
113
+ @display_notes_shown = {
114
+ danger: DisplayNoteShownConfig.new(
115
+ bootstrap_alert_class: "alert-danger",
116
+ icon: "fire-solid",
117
+ note_prefix: "Danger: "
118
+ ),
119
+ info: DisplayNoteShownConfig.new(
120
+ bootstrap_alert_class: "alert-info",
121
+ icon: "circle-info-solid",
122
+ note_prefix: "Info: "
123
+ ),
124
+ tip: DisplayNoteShownConfig.new(
125
+ bootstrap_alert_class: "alert-success",
126
+ icon: "lightbulb-solid",
127
+ note_prefix: "Tip: "
128
+ ),
129
+ warning: DisplayNoteShownConfig.new(
130
+ bootstrap_alert_class: "alert-warning",
131
+ icon: "triangle-exclamation-solid",
132
+ note_prefix: "Warning: "
133
+ )
134
+ }
135
+ end
136
+
137
+ def fields
138
+ @fields ||= FieldsConfig.new
139
+ end
140
+
141
+ ##
142
+ # Returns Leaflet plugin settings to pass to the viewer.
143
+ # @return[Geoblacklight::Configuration::LeafletConfig]
144
+ def leaflet_options
145
+ @leaflet_options ||= Geoblacklight::Configuration::LeafletConfig.new
146
+ end
147
+ end
148
+ end
@@ -16,7 +16,7 @@ module Geoblacklight
16
16
  end
17
17
 
18
18
  def self.file_path
19
- Settings.DOWNLOAD_PATH || Rails.root.join("tmp", "cache", "downloads")
19
+ Geoblacklight.configuration.download_path
20
20
  end
21
21
 
22
22
  def file_path_and_name
@@ -95,7 +95,7 @@ module Geoblacklight
95
95
  # the Geoblacklight::Download class
96
96
  # @return [Fixnum] download timeout in seconds
97
97
  def timeout
98
- @options[:timeout] || Settings.TIMEOUT_DOWNLOAD || 20
98
+ @options[:timeout] || Geoblacklight.configuration.timeout_download
99
99
  end
100
100
 
101
101
  ##
@@ -7,6 +7,7 @@ require "faraday"
7
7
  require "geoblacklight/version"
8
8
  require "nokogiri"
9
9
  require "mime/types"
10
+ require "geo_combine"
10
11
 
11
12
  module Geoblacklight
12
13
  class Engine < ::Rails::Engine
@@ -18,21 +19,22 @@ module Geoblacklight
18
19
  end
19
20
  end
20
21
 
21
- PRECOMPILE_ASSETS = %w[favicon.ico geoblacklight/geoblacklight.umd.cjs geoblacklight/geoblacklight.umd.cjs.map geoblacklight/geoblacklight.js geoblacklight/geoblacklight.js.map].freeze
22
+ PRECOMPILE_ASSETS = %w[favicon.ico].freeze
22
23
 
23
24
  # Make the source JS and CSS available to built apps
24
25
  initializer "geoblacklight.assets" do |app|
25
26
  app.config.assets.paths << Geoblacklight::Engine.root.join("app/javascript")
26
- app.config.assets.paths << Geoblacklight::Engine.root.join("app/assets")
27
+ app.config.assets.paths << Geoblacklight::Engine.root.join("app/assets/images")
28
+ app.config.assets.paths << Geoblacklight::Engine.root.join("app/assets/stylesheets")
27
29
  app.config.assets.precompile += Geoblacklight::Engine::PRECOMPILE_ASSETS
28
30
  end
29
31
 
30
32
  # Add the Geoblacklight importmap to the built app's importmap
31
33
  initializer "geoblacklight.importmap", before: "importmap" do |app|
32
- next unless app.config.respond_to?(:importmap) # skip for Vite
34
+ next unless app.config.respond_to?(:importmap)
33
35
 
34
- app.config.importmap.paths << Engine.root.join("config/importmap.rb")
35
- app.config.importmap.cache_sweepers << Engine.root.join("app/javascript")
36
+ app.config.importmap.paths << Geoblacklight::Engine.root.join("config/importmap.rb")
37
+ app.config.importmap.cache_sweepers << Geoblacklight::Engine.root.join("app/javascript")
36
38
  end
37
39
  end
38
40
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "geo_combine"
4
-
5
3
  module Geoblacklight
6
4
  module Metadata
7
5
  ##
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "geo_combine"
4
-
5
3
  module Geoblacklight
6
4
  module MetadataTransformer
7
5
  ##
@@ -5,7 +5,7 @@ module Geoblacklight
5
5
  class References
6
6
  attr_reader :refs, :reference_field
7
7
 
8
- def initialize(document, reference_field = Settings.FIELDS.REFERENCES)
8
+ def initialize(document, reference_field = Geoblacklight.configuration.fields.references)
9
9
  @document = document
10
10
  @reference_field = reference_field
11
11
  @refs = parse_references.map { |ref| Reference.new(ref) }
@@ -15,9 +15,10 @@ module Geoblacklight
15
15
  # Return only those metadata references which are exposed within the configuration
16
16
  # @return [Geoblacklight::Reference]
17
17
  def shown_metadata_refs
18
- metadata = @refs.select { |ref| Settings.METADATA_SHOWN.include?(ref.type.to_s) }
18
+ metadata_shown = Geoblacklight.configuration.metadata_shown
19
+ metadata = @refs.select { |ref| metadata_shown.include?(ref.type.to_s) }
19
20
  metadata.sort do |u, v|
20
- Settings.METADATA_SHOWN.index(u.type.to_s) <=> Settings.METADATA_SHOWN.index(v.type.to_s)
21
+ metadata_shown.index(u.type.to_s) <=> metadata_shown.index(v.type.to_s)
21
22
  end
22
23
  end
23
24
 
@@ -111,7 +112,7 @@ module Geoblacklight
111
112
  end
112
113
 
113
114
  def format_list
114
- Settings.DOWNLOAD_FORMATS&.VECTOR
115
+ Geoblacklight.configuration.vector_download_formats || []
115
116
  end
116
117
 
117
118
  def web_service_hash(format)
@@ -10,8 +10,9 @@ module Geoblacklight
10
10
  end
11
11
 
12
12
  def create_search_params
13
- {fq: ["{!join from=#{@field} to=#{Settings.FIELDS.ID}}#{Settings.FIELDS.ID}:#{@search_id}"],
14
- fl: [Settings.FIELDS.TITLE, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE]}
13
+ {fq: ["{!join from=#{@field} to=#{Geoblacklight.configuration.fields.id}}#{Geoblacklight.configuration.fields.id}:#{@search_id}"],
14
+ fl: [Geoblacklight.configuration.fields.title, Geoblacklight.configuration.fields.id,
15
+ Geoblacklight.configuration.fields.resource_type]}
15
16
  end
16
17
 
17
18
  def execute_query
@@ -11,7 +11,8 @@ module Geoblacklight
11
11
 
12
12
  def create_search_params
13
13
  {fq: "#{@field}:#{@search_id}",
14
- fl: [Settings.FIELDS.TITLE, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE]}
14
+ fl: [Geoblacklight.configuration.fields.title, Geoblacklight.configuration.fields.id,
15
+ Geoblacklight.configuration.fields.resource_type]}
15
16
  end
16
17
 
17
18
  def execute_query
@@ -11,9 +11,9 @@ module Geoblacklight
11
11
  end
12
12
 
13
13
  def method_missing(method, *args, &block)
14
- if Settings.RELATIONSHIPS_SHOWN.key?(method)
15
- field = Settings.RELATIONSHIPS_SHOWN[method].field
16
- query_type = query_type(Settings.RELATIONSHIPS_SHOWN[method])
14
+ if Geoblacklight.configuration.relationships_shown.key?(method)
15
+ field = Geoblacklight.configuration.relationships_shown[method].field
16
+ query_type = query_type(Geoblacklight.configuration.relationships_shown[method])
17
17
  @results = query_type.new(@search_id, field, @repository).results
18
18
  else
19
19
  super
@@ -21,7 +21,7 @@ module Geoblacklight
21
21
  end
22
22
 
23
23
  def respond_to_missing?(method_name, *args)
24
- Settings.RELATIONSHIPS_SHOWN.key?(method_name) or super
24
+ Geoblacklight.configuration.relationships_shown.key?(method_name) or super
25
25
  end
26
26
 
27
27
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Geoblacklight
4
- VERSION = "5.3.0"
4
+ VERSION = "6.0.0-alpha.1"
5
5
  end
@@ -3,7 +3,7 @@
3
3
  module Geoblacklight
4
4
  class WmsLayer
5
5
  def initialize(params)
6
- @params = params.to_h.merge(Settings.WMS_PARAMS)
6
+ @params = params.to_h.merge(Geoblacklight.configuration.wms_params)
7
7
  @response = Geoblacklight::FeatureInfoResponse.new(request_response)
8
8
  end
9
9
 
@@ -23,8 +23,8 @@ module Geoblacklight
23
23
  conn = Faraday.new(url: url)
24
24
  conn.get do |request|
25
25
  request.params = search_params
26
- request.options.timeout = Settings.TIMEOUT_WMS
27
- request.options.open_timeout = Settings.TIMEOUT_WMS
26
+ request.options.timeout = Geoblacklight.configuration.timeout_wms
27
+ request.options.open_timeout = Geoblacklight.configuration.timeout_wms
28
28
  end
29
29
  rescue Faraday::ConnectionFailed, Faraday::TimeoutError => error
30
30
  Geoblacklight.logger.error error.inspect
data/lib/geoblacklight.rb CHANGED
@@ -1,16 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "active_support/dependencies"
4
- require "geoblacklight/engine"
5
4
  require "zeitwerk"
6
5
  loader = Zeitwerk::Loader.for_gem
7
6
  loader.ignore("#{__dir__}/generators")
8
7
  loader.collapse("#{__dir__}/geoblacklight/download")
9
8
  loader.collapse("#{__dir__}/geoblacklight/wms_layer")
10
9
  loader.setup
10
+ require "geoblacklight/engine"
11
11
 
12
12
  module Geoblacklight
13
13
  def self.logger
14
14
  ::Rails.logger
15
15
  end
16
+
17
+ mattr_accessor :configuration_builder, default: Geoblacklight::Configuration::LegacySettingsBuilder
18
+
19
+ def self.configuration
20
+ @configuration ||= configuration_builder.build
21
+ end
16
22
  end
data/package.json CHANGED
@@ -1,37 +1,16 @@
1
1
  {
2
- "name": "@geoblacklight/frontend",
3
- "type": "module",
4
- "version": "5.3.0",
2
+ "name": "geoblacklight",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "repository": "https://github.com/geoblacklight/geoblacklight.git",
6
+ "author": "Justin Coyne <jcoyne@justincoyne.com>",
5
7
  "license": "Apache-2.0",
6
- "publishConfig": {
7
- "access": "public"
8
+ "devDependencies": {
9
+ "prettier": "^3.8.3"
8
10
  },
9
11
  "scripts": {
10
- "dev": "vite",
11
- "build": "vite build",
12
- "watch": "vite build --watch"
13
- },
14
- "files": [
15
- "app/assets",
16
- "app/javascript"
17
- ],
18
- "module": "app/assets/javascripts/geoblacklight/geoblacklight.js",
19
- "main": "app/assets/javascripts/geoblacklight/geoblacklight.umd.cjs",
20
- "dependencies": {
21
- "@github/auto-complete-element": "^3.6.2",
22
- "@hotwired/stimulus": "^3.2.2",
23
- "@popperjs/core": "^2.11.8",
24
- "blacklight-frontend": "8",
25
- "bootstrap": "^5.3.3",
26
- "esri-leaflet": "^3.0.12",
27
- "leaflet": "^1.9.4",
28
- "leaflet.fullscreen": "^5.3.0",
29
- "ol": "10.7.0",
30
- "ol-pmtiles": "^2.0.2"
12
+ "lint": "prettier --check \"**/*.{js,json,yml,yaml}\"",
13
+ "format": "prettier --write \"**/*.{js,json,yml,yaml}\""
31
14
  },
32
- "devDependencies": {
33
- "jsdom": "^27.3.0",
34
- "rollup-plugin-includepaths": "^0.2.4",
35
- "vite": "^7.2.2"
36
- }
15
+ "private": true
37
16
  }
@@ -47,15 +47,7 @@
47
47
  "type": "array",
48
48
  "items": {
49
49
  "type": "string",
50
- "enum": [
51
- "Datasets",
52
- "Maps",
53
- "Imagery",
54
- "Collections",
55
- "Websites",
56
- "Web services",
57
- "Other"
58
- ]
50
+ "enum": ["Datasets", "Maps", "Imagery", "Collections", "Websites", "Web services", "Other"]
59
51
  }
60
52
  },
61
53
  "gbl_resourceType_sm": {
data/schema/readme.md CHANGED
@@ -1,8 +1,7 @@
1
1
  #about the schema directory
2
2
 
3
- This directory contains two [JSON schema vocabulary](http://json-schema.org) files. These are provided for documentation and testing purposes.
3
+ This directory contains a [JSON schema vocabulary](http://json-schema.org) file. It is provided for documentation and testing purposes.
4
4
 
5
- * geoblacklight-schema-1.0.json : This document is formatted in the [GeoBlacklight 1.0 Metadata version schema](https://opengeometadata.org/docs/gbl-1.0), compatible with Geoblacklight versions 2.0 to 3.7.
6
- * geoblacklight-schema-aardvark.json : This document is formatted in the [OpenGeoMetadata, version Aardvark schema](https://opengeometadata.org/docs/ogm-aardvark), compatible with Geoblacklight version 4.0.
5
+ * geoblacklight-schema-aardvark.json : This document is formatted in the [OpenGeoMetadata, version Aardvark schema](https://opengeometadata.org/docs/ogm-aardvark), compatible with Geoblacklight version 4.0+.
7
6
 
8
- For more information on the metadata schemas for GeoBlacklight, see [opengeometadata.org](https://opengeometadata.org)
7
+ For more information on the metadata schema for GeoBlacklight, see [opengeometadata.org](https://opengeometadata.org)
@@ -1,3 +1,4 @@
1
1
  {
2
- "initArgs":{},
3
- "managedList":[]}
2
+ "initArgs": {},
3
+ "managedList": []
4
+ }
data/solr/conf/schema.xml CHANGED
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <schema name="geoblacklight-schema" version="4.0">
2
+ <schema name="geoblacklight-schema" version="1.6">
3
3
  <uniqueKey>id</uniqueKey>
4
4
  <fields>
5
5
  <field name="_version_" type="long" stored="true" indexed="true"/>