diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9fa51ffe..f0bf2663 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# SOE Profile
+11.2.1
+-------------------------------------------------------------------------------
+- Provide items per page for graphql views
+- Expose event image via graphql
+- Added external image url for events content from Localist
+
11.2.1
-------------------------------------------------------------------------------
- Fixed logger syntax during site install.
diff --git a/composer.json b/composer.json
index 777d8c72..f7f0f963 100644
--- a/composer.json
+++ b/composer.json
@@ -87,6 +87,7 @@
"drupal/graphql_compose": "^2.0",
"drupal/hook_event_dispatcher": "^4.0@beta",
"drupal/image_effects": "^3.2",
+ "drupal/imagecache_external": "^3.0",
"drupal/imagemagick": "^3.1",
"drupal/jquery_ui_draggable": "^2.0",
"drupal/jsonapi_extras": "^3.20",
diff --git a/config/sync/core.entity_form_display.node.stanford_event.default.yml b/config/sync/core.entity_form_display.node.stanford_event.default.yml
index 3a78723a..c2f718ec 100644
--- a/config/sync/core.entity_form_display.node.stanford_event.default.yml
+++ b/config/sync/core.entity_form_display.node.stanford_event.default.yml
@@ -383,6 +383,7 @@ hidden:
path: true
promote: true
sticky: true
+ su_event_ext_image: true
uid: true
unpublish_on: true
url_redirects: true
diff --git a/config/sync/core.entity_view_display.node.stanford_event.default.yml b/config/sync/core.entity_view_display.node.stanford_event.default.yml
index 2b08c659..a9a53402 100644
--- a/config/sync/core.entity_view_display.node.stanford_event.default.yml
+++ b/config/sync/core.entity_view_display.node.stanford_event.default.yml
@@ -806,6 +806,7 @@ hidden:
layout_builder__layout: true
search_api_excerpt: true
stanford_intranet__access: true
+ su_event_ext_image: true
su_event_groups: true
su_event_keywords: true
su_event_schedule: true
diff --git a/config/sync/core.entity_view_display.node.stanford_event.search_indexing.yml b/config/sync/core.entity_view_display.node.stanford_event.search_indexing.yml
index d6257642..ca3856db 100644
--- a/config/sync/core.entity_view_display.node.stanford_event.search_indexing.yml
+++ b/config/sync/core.entity_view_display.node.stanford_event.search_indexing.yml
@@ -206,6 +206,7 @@ hidden:
links: true
search_api_excerpt: true
stanford_intranet__access: true
+ su_event_ext_image: true
su_event_groups: true
su_event_keywords: true
su_event_subject: true
diff --git a/config/sync/core.entity_view_display.node.stanford_event.stanford_card.yml b/config/sync/core.entity_view_display.node.stanford_event.stanford_card.yml
index 72a44120..6525e25f 100644
--- a/config/sync/core.entity_view_display.node.stanford_event.stanford_card.yml
+++ b/config/sync/core.entity_view_display.node.stanford_event.stanford_card.yml
@@ -257,6 +257,7 @@ hidden:
su_event_cta: true
su_event_dek: true
su_event_email: true
+ su_event_ext_image: true
su_event_groups: true
su_event_keywords: true
su_event_map_link: true
diff --git a/config/sync/core.entity_view_display.node.stanford_event.teaser.yml b/config/sync/core.entity_view_display.node.stanford_event.teaser.yml
index 5556aed2..fd574dec 100644
--- a/config/sync/core.entity_view_display.node.stanford_event.teaser.yml
+++ b/config/sync/core.entity_view_display.node.stanford_event.teaser.yml
@@ -267,6 +267,7 @@ hidden:
su_event_contact_info: true
su_event_cta: true
su_event_email: true
+ su_event_ext_image: true
su_event_groups: true
su_event_keywords: true
su_event_map_link: true
diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml
index 6ba6681f..9d10797d 100644
--- a/config/sync/core.extension.yml
+++ b/config/sync/core.extension.yml
@@ -89,6 +89,7 @@ module:
hook_event_dispatcher: 0
image: 0
image_effects: 0
+ imagecache_external: 0
imagemagick: 0
inline_entity_form: 0
inline_form_errors: 0
diff --git a/config/sync/field.field.node.stanford_event.su_event_ext_image.yml b/config/sync/field.field.node.stanford_event.su_event_ext_image.yml
new file mode 100644
index 00000000..d3e2a9be
--- /dev/null
+++ b/config/sync/field.field.node.stanford_event.su_event_ext_image.yml
@@ -0,0 +1,19 @@
+uuid: 95b1e2c6-5f15-48c0-acd8-22f2d2b427ee
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.su_event_ext_image
+ - node.type.stanford_event
+id: node.stanford_event.su_event_ext_image
+field_name: su_event_ext_image
+entity_type: node
+bundle: stanford_event
+label: 'External Image'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/sync/field.storage.node.su_event_ext_image.yml b/config/sync/field.storage.node.su_event_ext_image.yml
new file mode 100644
index 00000000..6c137792
--- /dev/null
+++ b/config/sync/field.storage.node.su_event_ext_image.yml
@@ -0,0 +1,25 @@
+uuid: aae7ab5a-9634-43b4-a6b0-eee8a54cc8bd
+langcode: en
+status: true
+dependencies:
+ module:
+ - field_permissions
+ - node
+third_party_settings:
+ field_permissions:
+ permission_type: custom
+id: node.su_event_ext_image
+field_name: su_event_ext_image
+entity_type: node
+type: string
+settings:
+ max_length: 255
+ case_sensitive: false
+ is_ascii: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/graphql_compose.settings.yml b/config/sync/graphql_compose.settings.yml
index da38b01b..1eae9ed8 100644
--- a/config/sync/graphql_compose.settings.yml
+++ b/config/sync/graphql_compose.settings.yml
@@ -459,6 +459,8 @@ field_config:
enabled: true
su_event_email:
enabled: true
+ su_event_ext_image:
+ enabled: true
su_event_groups:
enabled: true
su_event_keywords:
diff --git a/config/sync/imagecache_external.settings.yml b/config/sync/imagecache_external.settings.yml
new file mode 100644
index 00000000..b408cc4a
--- /dev/null
+++ b/config/sync/imagecache_external.settings.yml
@@ -0,0 +1,25 @@
+_core:
+ default_config_hash: epwG9LevfsqBi6thp5KK9oC2bdwklXNQzvouyiLWq2g
+imagecache_directory: externals
+imagecache_subdirectories: false
+imagecache_default_extension: .jpg
+imagecache_external_batch_flush_limit: 1000
+imagecache_external_hosts: "localist-images.azureedge.net\r\nstanford.edu"
+imagecache_external_management: unmanaged
+imagecache_external_use_whitelist: true
+imagecache_fallback_image: 0
+imagecache_external_allowed_mimetypes:
+ - image/jpg
+ - image/jpg;charset=utf-8
+ - image/jpeg
+ - image/jpeg;charset=utf-8
+ - image/png
+ - image/png;charset=utf-8
+ - image/gif
+ - image/gif;charset=utf-8
+ - image/webp
+ - image/webp;charset=utf-8
+ - application/octet-stream
+ - application/octet-stream;charset=utf-8
+ - binary/octet-stream
+imagecache_external_cron_flush_frequency: 7
diff --git a/config/sync/migrate_plus.migration.stanford_localist_importer.yml b/config/sync/migrate_plus.migration.stanford_localist_importer.yml
index dda30ac1..04776793 100644
--- a/config/sync/migrate_plus.migration.stanford_localist_importer.yml
+++ b/config/sync/migrate_plus.migration.stanford_localist_importer.yml
@@ -494,6 +494,7 @@ process:
entity_type: taxonomy_term
ignore_case: true
source: name
+ su_event_ext_image: photo_url
destination:
plugin: 'entity:node'
overwrite_properties:
@@ -511,6 +512,7 @@ destination:
- su_event_date_time/end_value
- su_event_date_time/timezone
- su_event_date_time/value
+ - su_event_ext_image
- su_event_groups
- su_event_keywords
- su_event_map_link/title
diff --git a/config/sync/ultimate_cron.job.imagecache_external_cron.yml b/config/sync/ultimate_cron.job.imagecache_external_cron.yml
new file mode 100644
index 00000000..0976672a
--- /dev/null
+++ b/config/sync/ultimate_cron.job.imagecache_external_cron.yml
@@ -0,0 +1,17 @@
+uuid: 32036a98-2245-430e-a74f-cccaa050c552
+langcode: en
+status: true
+dependencies:
+ module:
+ - imagecache_external
+title: 'Default cron handler'
+id: imagecache_external_cron
+weight: 0
+module: imagecache_external
+callback: imagecache_external_cron
+scheduler:
+ id: simple
+launcher:
+ id: serial
+logger:
+ id: database
diff --git a/config/sync/user.role.anonymous.yml b/config/sync/user.role.anonymous.yml
index bc765967..24da0339 100644
--- a/config/sync/user.role.anonymous.yml
+++ b/config/sync/user.role.anonymous.yml
@@ -48,6 +48,7 @@ permissions:
- 'view stanford_global_message config page entity'
- 'view stanford_local_footer config page entity'
- 'view stanford_super_footer config page entity'
+ - 'view su_event_ext_image'
- 'view su_metatags'
- 'view su_policy_auto_prefix'
- 'view su_policy_chapter'
diff --git a/config/sync/user.role.authenticated.yml b/config/sync/user.role.authenticated.yml
index 6bb48026..f5dbf86f 100644
--- a/config/sync/user.role.authenticated.yml
+++ b/config/sync/user.role.authenticated.yml
@@ -45,6 +45,7 @@ permissions:
- 'view own su_site_url'
- 'view policy log'
- 'view printer friendly versions'
+ - 'view su_event_ext_image'
- 'view su_metatags'
- 'view su_policy_auto_prefix'
- 'view su_policy_chapter'
diff --git a/config/sync/views.view.stanford_basic_pages.yml b/config/sync/views.view.stanford_basic_pages.yml
index b7415bf8..ebd7e257 100644
--- a/config/sync/views.view.stanford_basic_pages.yml
+++ b/config/sync/views.view.stanford_basic_pages.yml
@@ -615,10 +615,26 @@ display:
position: 99
display_options:
pager:
- type: some
+ type: full
options:
offset: 0
- items_per_page: 20
+ items_per_page: 21
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
display_description: ''
display_extenders: { }
graphql_query_name: stanfordBasicPages
@@ -628,6 +644,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
@@ -680,10 +697,26 @@ display:
position: 99
display_options:
pager:
- type: some
+ type: full
options:
offset: 0
items_per_page: 3
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
style:
type: graphql
options:
@@ -704,6 +737,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
diff --git a/config/sync/views.view.stanford_courses.yml b/config/sync/views.view.stanford_courses.yml
index ce2432cb..e59ea69c 100644
--- a/config/sync/views.view.stanford_courses.yml
+++ b/config/sync/views.view.stanford_courses.yml
@@ -1981,10 +1981,26 @@ display:
output_url_as_text: false
absolute: false
pager:
- type: some
+ type: full
options:
offset: 0
- items_per_page: 20
+ items_per_page: 21
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
arguments:
term_node_taxonomy_name_depth:
id: term_node_taxonomy_name_depth
@@ -2039,6 +2055,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
@@ -3796,10 +3813,26 @@ display:
separator: ', '
field_api_classes: false
pager:
- type: some
+ type: full
options:
offset: 0
items_per_page: 3
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
style:
type: graphql
options: null
@@ -3820,6 +3853,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
diff --git a/config/sync/views.view.stanford_events.yml b/config/sync/views.view.stanford_events.yml
index d4ead218..c64b3222 100644
--- a/config/sync/views.view.stanford_events.yml
+++ b/config/sync/views.view.stanford_events.yml
@@ -1030,10 +1030,26 @@ display:
separator: ', '
field_api_classes: false
pager:
- type: some
+ type: full
options:
offset: 0
items_per_page: 3
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
arguments:
term_node_taxonomy_name_depth:
id: term_node_taxonomy_name_depth
@@ -1211,6 +1227,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags: { }
@@ -4166,10 +4183,26 @@ display:
output_url_as_text: false
absolute: false
pager:
- type: some
+ type: full
options:
offset: 0
- items_per_page: 20
+ items_per_page: 21
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
arguments:
term_node_taxonomy_name_depth:
id: term_node_taxonomy_name_depth
@@ -4344,6 +4377,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
diff --git a/config/sync/views.view.stanford_news.yml b/config/sync/views.view.stanford_news.yml
index e9fa6547..c883efd0 100644
--- a/config/sync/views.view.stanford_news.yml
+++ b/config/sync/views.view.stanford_news.yml
@@ -928,10 +928,26 @@ display:
position: 9
display_options:
pager:
- type: some
+ type: full
options:
offset: 0
- items_per_page: 20
+ items_per_page: 21
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
exposed_form:
type: basic
options:
@@ -1083,6 +1099,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
@@ -1626,10 +1643,26 @@ display:
position: 99
display_options:
pager:
- type: some
+ type: full
options:
offset: 0
items_per_page: 3
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
arguments:
term_node_taxonomy_name_depth:
id: term_node_taxonomy_name_depth
@@ -1736,6 +1769,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
diff --git a/config/sync/views.view.stanford_person.yml b/config/sync/views.view.stanford_person.yml
index 95b2641e..03db28bd 100644
--- a/config/sync/views.view.stanford_person.yml
+++ b/config/sync/views.view.stanford_person.yml
@@ -1254,6 +1254,27 @@ display:
text: 'edit this item'
output_url_as_text: false
absolute: false
+ pager:
+ type: full
+ options:
+ offset: 0
+ items_per_page: 60
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
arguments:
term_node_taxonomy_name_depth:
id: term_node_taxonomy_name_depth
@@ -1307,6 +1328,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
diff --git a/config/sync/views.view.stanford_publications.yml b/config/sync/views.view.stanford_publications.yml
index 3476003b..57b7e950 100644
--- a/config/sync/views.view.stanford_publications.yml
+++ b/config/sync/views.view.stanford_publications.yml
@@ -701,10 +701,26 @@ display:
output_url_as_text: true
absolute: true
pager:
- type: some
+ type: full
options:
offset: 0
- items_per_page: 20
+ items_per_page: 21
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
defaults:
fields: false
display_description: ''
@@ -716,6 +732,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags:
diff --git a/config/sync/views.view.stanford_shared_tags.yml b/config/sync/views.view.stanford_shared_tags.yml
index a785cd83..0cbd8952 100644
--- a/config/sync/views.view.stanford_shared_tags.yml
+++ b/config/sync/views.view.stanford_shared_tags.yml
@@ -300,10 +300,26 @@ display:
position: 99
display_options:
pager:
- type: some
+ type: full
options:
offset: 0
items_per_page: 3
+ total_pages: null
+ id: 0
+ tags:
+ next: 'Next ›'
+ previous: '‹ Previous'
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: true
+ items_per_page_label: items
+ items_per_page_options: '3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99'
+ items_per_page_options_all: true
+ items_per_page_options_all_label: all
+ offset: true
+ offset_label: offset
+ quantity: 9
display_description: ''
display_extenders: { }
graphql_query_name: stanfordSharedTags
@@ -313,6 +329,7 @@ display:
- 'languages:language_content'
- 'languages:language_interface'
- url
+ - url.query_args
- 'user.node_grants:view'
- user.permissions
tags: { }
diff --git a/soe_profile.info.yml b/soe_profile.info.yml
index 6e819679..cb000f0e 100644
--- a/soe_profile.info.yml
+++ b/soe_profile.info.yml
@@ -1,6 +1,6 @@
name: 'SOE Profile'
description: 'Jumpstart Website Profile'
-version: 11.2.1
+version: 11.2.2
type: profile
project: Stanford
core_version_requirement: ^9 || ^10
diff --git a/themes/stanford_basic/algolia-search/dist/islands/algolia-search.island.js b/themes/stanford_basic/algolia-search/dist/islands/algolia-search.island.js
index f9a2f7d1..212d7d1f 100644
--- a/themes/stanford_basic/algolia-search/dist/islands/algolia-search.island.js
+++ b/themes/stanford_basic/algolia-search/dist/islands/algolia-search.island.js
@@ -1,5 +1,5 @@
/*! For license information please see algolia-search.island.js.LICENSE.txt */
-!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(self,(()=>(()=>{var e={331:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,o,a,s,c,u;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(i(o=this._events[e]))return!1;if(r(o))switch(arguments.length){case 1:o.call(this);break;case 2:o.call(this,arguments[1]);break;case 3:o.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),o.apply(this,s)}else if(n(o))for(s=Array.prototype.slice.call(arguments,1),a=(u=o.slice()).length,c=0;c0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},t.prototype.removeListener=function(e,t){var i,o,a,s;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(i=this._events[e]).length,o=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(i)){for(s=a;s-- >0;)if(i[s]===t||i[s].listener&&i[s].listener===t){o=s;break}if(o<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},766:(e,t,r)=>{"use strict";var n=r(374),i=r(775),o=r(76);function a(e,t,r){return new n(e,t,r)}a.version=r(336),a.AlgoliaSearchHelper=n,a.SearchParameters=i,a.SearchResults=o,e.exports=a},78:(e,t,r)=>{"use strict";var n=r(331);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(853)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=i},437:(e,t,r)=>{"use strict";var n=r(344),i=r(116),o=r(803),a={addRefinement:function(e,t,r){if(a.isRefined(e,t,r))return e;var i=""+r,o=e[t]?e[t].concat(i):[i],s={};return s[t]=o,n({},s,e)},removeRefinement:function(e,t,r){if(void 0===r)return a.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return a.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return a.isRefined(e,t,r)?a.removeRefinement(e,t,r):a.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return i(e)?{}:e;if("string"==typeof t)return o(e,[t]);if("function"==typeof t){var n=!1,a=Object.keys(e).reduce((function(i,o){var a=e[o]||[],s=a.filter((function(e){return!t(e,o,r)}));return s.length!==a.length&&(n=!0),i[o]=s,i}),{});return n?a:e}},isRefined:function(e,t,r){var n=Boolean(e[t])&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=a},775:(e,t,r)=>{"use strict";var n=r(344),i=r(888),o=r(686),a=r(185),s=r(116),c=r(803),u=r(23),l=r(801),f=r(437);function h(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return h(t[r],e)})):e===t}function p(e){var t=e?p._parseNumbers(e):{};void 0===t.userToken||l(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==p.PARAMETERS.indexOf(e),i=void 0!==t[e];!n&&i&&(r[e]=t[e])}))}p.PARAMETERS=Object.keys(new p),p._parseNumbers=function(e){if(e instanceof p)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var i=parseFloat(n);t[r]=isNaN(i)?n:i}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var i=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=i}))})),t.numericRefinements=r}return a({},e,t)},p.make=function(e){var t=new p(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},p.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&s(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):s(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},p.prototype={constructor:p,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:f.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:f.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:f.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:f.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var n=u(r);if(this.isNumericRefined(e,t,n))return this;var i=a({},this.numericRefinements);return i[e]=a({},i[e]),i[e][t]?(i[e][t]=i[e][t].slice(),i[e][t].push(n)):i[e][t]=[n],this.setQueryParameters({numericRefinements:i})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){var n=r;return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,i){return i===e&&r.op===t&&h(r.val,u(n))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return s(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return c(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,i){var o=r[i],a={};return o=o||{},Object.keys(o).forEach((function(r){var n=o[r]||[],s=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||s.push(t)})),s.length!==n.length&&(t=!0),a[r]=s})),n[i]=a,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:f.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:f.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:f.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:f.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:f.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:f.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:f.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:f.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:f.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),i={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?i[e]=[]:i[e]=[t.slice(0,t.lastIndexOf(r))]:i[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},i,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:n({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&f.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return Boolean(this.numericRefinements[e]);var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var o,a,s=u(r),c=void 0!==(o=this.numericRefinements[e][t],a=s,i(o,(function(e){return h(e,a)})));return n&&c},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=o(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets()).sort()},getRefinedHierarchicalFacets:function(){var e=this;return o(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0}))).sort()},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var i=r[n];-1===e.indexOf(n)&&void 0!==i&&(t[n]=i)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=p.validate(this,e);if(t)throw t;var r=this,n=p._parseNumbers(e),i=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),o=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],i=void 0!==n[t];return r&&!i?c(e,[t]):(i&&(e[t]=n[t]),e)}),i);return new this.constructor(o)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return i(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=p},210:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var n=e.hierarchicalFacets[r],u=e.hierarchicalFacetsRefinements[n.name]&&e.hierarchicalFacetsRefinements[n.name][0]||"",l=e._getHierarchicalFacetSeparator(n),f=e._getHierarchicalRootPath(n),h=e._getHierarchicalShowParentLevel(n),p=o(e._getHierarchicalFacetSortBy(n)),d=t.every((function(e){return e.exhaustive})),m=function(e,t,r,n,o){return function(u,l,f){var h=u;if(f>0){var p=0;for(h=u;p No results for your search. Please try another search.
- {hit.summary &&
+ {hit.summary &&
+
+ {hits.map(hit =>
+
+ )
+}
+
const Search = () => {
const currentUrl = new URL(window.location.href);
const initialSearch = currentUrl.searchParams.get('key');
@@ -46,8 +64,8 @@ const Search = () => {
}}
>
+