blacklight 8.0.0.beta5 → 8.0.0.beta6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +0 -4
- data/README.md +1 -1
- data/Rakefile +18 -0
- data/VERSION +1 -1
- data/app/assets/config/blacklight/manifest.js +3 -0
- data/app/assets/stylesheets/blacklight/_facets.scss +32 -5
- data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +1 -1
- data/app/components/blacklight/document_component.rb +21 -2
- data/app/components/blacklight/response/facet_group_component.html.erb +2 -1
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +0 -5
- data/app/javascript/blacklight/bookmark_toggle.js +8 -15
- data/app/javascript/blacklight/button_focus.js +10 -10
- data/app/javascript/blacklight/index.js +5 -5
- data/app/javascript/blacklight/modal.js +6 -11
- data/app/javascript/blacklight/search_context.js +51 -57
- data/app/models/concerns/blacklight/document.rb +11 -0
- data/app/views/catalog/_document.html.erb +2 -2
- data/app/views/layouts/blacklight/base.html.erb +4 -4
- data/blacklight.gemspec +1 -1
- data/config/importmap.rb +1 -1
- data/config/locales/blacklight.ar.yml +209 -226
- data/config/locales/blacklight.de.yml +197 -209
- data/config/locales/blacklight.en.yml +2 -0
- data/config/locales/blacklight.es.yml +196 -209
- data/config/locales/blacklight.fr.yml +196 -213
- data/config/locales/blacklight.hu.yml +193 -206
- data/config/locales/blacklight.it.yml +197 -209
- data/config/locales/blacklight.nl.yml +193 -206
- data/config/locales/blacklight.pt-BR.yml +195 -209
- data/config/locales/blacklight.sq.yml +193 -206
- data/config/locales/blacklight.zh.yml +194 -207
- data/lib/blacklight/configuration/view_config.rb +0 -4
- data/lib/blacklight/engine.rb +6 -7
- data/lib/generators/blacklight/assets/importmap_generator.rb +9 -2
- data/lib/generators/blacklight/assets/propshaft_generator.rb +11 -2
- data/lib/generators/blacklight/assets/sprockets_generator.rb +2 -0
- data/package.json +7 -4
- data/rollup.config.js +11 -1
- data/spec/features/sitelinks_search_box_spec.rb +13 -0
- data/spec/models/blacklight/icon_spec.rb +0 -2
- data/spec/spec_helper.rb +1 -1
- data/spec/support/view_component_test_helpers.rb +21 -0
- data/spec/test_app_templates/Gemfile.extra +4 -0
- data/spec/views/catalog/_document.html.erb_spec.rb +21 -0
- data/tasks/blacklight.rake +1 -1
- metadata +7 -10
- data/app/assets/javascripts/blacklight/blacklight.esm.js +0 -390
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +0 -1
- data/app/assets/javascripts/blacklight/blacklight.js +0 -398
- data/app/assets/javascripts/blacklight/blacklight.js.map +0 -1
- data/spec/features/sitelinks_search_box.rb +0 -13
- data/spec/support/view_component_capybara_test_helpers.rb +0 -8
@@ -1,234 +1,221 @@
|
|
1
|
+
---
|
1
2
|
zh:
|
2
|
-
views:
|
3
|
-
pagination:
|
4
|
-
first: '« 首页'
|
5
|
-
last: '末页 »'
|
6
|
-
previous: '« 上一页'
|
7
|
-
next: '下一页 »'
|
8
|
-
truncate: '…'
|
9
|
-
aria:
|
10
|
-
container_label: 分页链接
|
11
|
-
current_page: 当前页面,页面%{page}
|
12
|
-
go_to_page: 前往页面%{page}
|
13
|
-
go_to_previous_page: 转到上一页
|
14
|
-
go_to_next_page: 转到下一页
|
15
|
-
go_to_first_page: 转到第一页
|
16
|
-
go_to_last_page: 转到最后一页
|
17
|
-
|
18
|
-
pagination_compact:
|
19
|
-
previous: '« 上一页'
|
20
|
-
next: '下一页 »'
|
21
|
-
|
22
3
|
blacklight:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
search_field: '转到搜索'
|
28
|
-
first_result: '转到第一个搜索结果'
|
29
|
-
header_links:
|
30
|
-
login: '登陆'
|
31
|
-
logout: '注销'
|
32
|
-
bookmarks: '书签'
|
33
|
-
search_history: '搜索历史'
|
34
|
-
|
35
|
-
welcome: '欢迎!'
|
36
|
-
and: '和'
|
37
|
-
or: '或'
|
38
|
-
|
39
|
-
modal:
|
40
|
-
close: "关闭"
|
41
|
-
|
4
|
+
and: 和
|
5
|
+
application_name: Blacklight
|
6
|
+
back_to_bookmarks: 返回书签页面
|
7
|
+
back_to_search: 返回搜索页面
|
42
8
|
bookmarks:
|
43
|
-
title: '书签'
|
44
|
-
page_title: '书签 - %{application_name}'
|
45
|
-
no_bookmarks: '你还没有任何书签'
|
46
9
|
add:
|
47
|
-
button:
|
10
|
+
button: 书签
|
11
|
+
failure: 抱歉,保存书签时出错。
|
48
12
|
success:
|
49
|
-
one:
|
50
|
-
other:
|
51
|
-
failure: '抱歉,保存书签时出错。'
|
52
|
-
remove:
|
53
|
-
button: '删除书签'
|
54
|
-
success: '成功删除书签。'
|
55
|
-
failure: '抱歉,删除书签时出错。'
|
56
|
-
action_confirm: '删除这个书签?'
|
57
|
-
clear:
|
58
|
-
action_title: '清除书签'
|
59
|
-
action_confirm: '清除所有书签?'
|
60
|
-
success: '已经清除了所有书签。'
|
61
|
-
failure: '抱歉,清除书签时出错。'
|
62
|
-
need_login: '登陆后才能访问你的书签功能。'
|
63
|
-
list_title: '你的书签'
|
64
|
-
delete: '删除'
|
65
|
-
|
66
|
-
search_history:
|
13
|
+
one: 成功添加书签。
|
14
|
+
other: 成功添加书签。
|
67
15
|
clear:
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
sms: '发送短信'
|
84
|
-
clear: '清除'
|
85
|
-
|
16
|
+
action_confirm: 清除所有书签?
|
17
|
+
action_title: 清除书签
|
18
|
+
failure: 抱歉,清除书签时出错。
|
19
|
+
success: 已经清除了所有书签。
|
20
|
+
delete: 删除
|
21
|
+
list_title: 你的书签
|
22
|
+
need_login: 登陆后才能访问你的书签功能。
|
23
|
+
no_bookmarks: 你还没有任何书签
|
24
|
+
page_title: 书签 - %{application_name}
|
25
|
+
remove:
|
26
|
+
action_confirm: 删除这个书签?
|
27
|
+
button: 删除书签
|
28
|
+
failure: 抱歉,删除书签时出错。
|
29
|
+
success: 成功删除书签。
|
30
|
+
title: 书签
|
86
31
|
citation:
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
32
|
+
apa: APA
|
33
|
+
chicago: Chicago
|
34
|
+
mla: MLA
|
35
|
+
did_you_mean: 你是要输入: %{options} 吗?
|
91
36
|
email:
|
37
|
+
errors:
|
38
|
+
to:
|
39
|
+
blank: 请输入电子邮件接收人才能发送
|
40
|
+
invalid: 请输入合法电子邮件地址
|
92
41
|
form:
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
42
|
+
message: 正文:
|
43
|
+
submit: 发送
|
44
|
+
title: 通过电子邮件发送
|
45
|
+
to: 电子邮件:
|
46
|
+
success: 已发送电子邮件
|
97
47
|
text:
|
98
|
-
default_title:
|
48
|
+
default_title: 无
|
49
|
+
message: 正文: %{message}
|
99
50
|
subject:
|
100
51
|
one: '记录: %{title}'
|
101
|
-
other:
|
52
|
+
other: 记录
|
102
53
|
url: '网址: %{url}'
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
text:
|
119
|
-
url: '链接: %{url}'
|
120
|
-
success: "已发送短信"
|
121
|
-
errors:
|
122
|
-
to:
|
123
|
-
invalid: '请输入10位正确电话号码'
|
124
|
-
blank: "请输入接收人电话号码才能发送短信"
|
125
|
-
carrier:
|
126
|
-
blank: '你必须选择一个运营商'
|
127
|
-
invalid: "你必须输入一个运营商"
|
128
|
-
|
129
|
-
back_to_search: '返回搜索页面'
|
130
|
-
back_to_bookmarks: '返回书签页面'
|
131
|
-
|
54
|
+
entry_name:
|
55
|
+
default: 条目
|
56
|
+
grouped:
|
57
|
+
default: 分组结果
|
58
|
+
header_links:
|
59
|
+
bookmarks: 书签
|
60
|
+
login: 登陆
|
61
|
+
logout: 注销
|
62
|
+
search_history: 搜索历史
|
63
|
+
main:
|
64
|
+
aria:
|
65
|
+
main_container: 主要内容
|
66
|
+
modal:
|
67
|
+
close: 关闭
|
68
|
+
or: 或
|
132
69
|
search:
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
search_constraints_header: '搜索条件'
|
139
|
-
search_results: '搜索结果'
|
140
|
-
errors:
|
141
|
-
invalid_solr_id: "抱歉,你要找的结果不存在。"
|
142
|
-
per_page:
|
143
|
-
label: '%{count}<span class="sr-only visually-hidden"> 每页</span>'
|
144
|
-
button_label: '%{count} 每页' # TODO: Remove during major release
|
145
|
-
button_label_html: '%{count}<span class="d-none d-sm-inline"> 每页</span>'
|
146
|
-
title: '每页显示结果数'
|
147
|
-
submit: '更新'
|
148
|
-
aria_label: '结果导航'
|
149
|
-
sort:
|
150
|
-
label: '按 %{field} 排序' # TODO: Remove during major release
|
151
|
-
label_html: '<span class="d-none d-sm-inline">按 %{field} </span>排序'
|
152
|
-
submit: '排序'
|
153
|
-
form:
|
154
|
-
search_field:
|
155
|
-
label: '搜索字段'
|
156
|
-
title: '设定的搜索选项'
|
157
|
-
post_label: '为'
|
158
|
-
search:
|
159
|
-
label: '搜索'
|
160
|
-
placeholder: '搜索...'
|
161
|
-
submit: '搜索'
|
162
|
-
pagination:
|
163
|
-
title: '搜索结果导航'
|
164
|
-
pagination_info:
|
165
|
-
no_items_found: '没有找到 %{entry_name} '
|
166
|
-
single_item_found: '找到 <strong>1</strong> %{entry_name}'
|
167
|
-
pages:
|
168
|
-
one: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>'
|
169
|
-
other: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>'
|
170
|
-
entry_pagination_info:
|
171
|
-
one: '<strong>1 / 1</strong>'
|
172
|
-
other: '<strong>%{current}</strong> / <strong>%{total}</strong>'
|
70
|
+
atom_feed: 搜索结果Atom
|
71
|
+
bookmarks:
|
72
|
+
absent: 加入书签
|
73
|
+
inprogress: 保存...
|
74
|
+
present: 在书签中
|
173
75
|
documents:
|
174
76
|
aria:
|
175
|
-
|
176
|
-
|
177
|
-
counter:
|
77
|
+
limit_search: 限定搜索
|
78
|
+
search_results: 搜索结果
|
79
|
+
counter: "%{counter}. "
|
80
|
+
entry_pagination_info:
|
81
|
+
one: "<strong>1 / 1</strong>"
|
82
|
+
other: "<strong>%{current}</strong> / <strong>%{total}</strong>"
|
83
|
+
errors:
|
84
|
+
invalid_solr_id: 抱歉,你要找的结果不存在。
|
178
85
|
facets:
|
179
|
-
|
180
|
-
clear:
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
more_html: '更多 <span class="sr-only visually-hidden">%{field_name}</span> »'
|
187
|
-
selected:
|
188
|
-
remove: '[删除]'
|
86
|
+
all: 皆
|
87
|
+
clear: 清除搜索条件
|
88
|
+
count: "%{number}"
|
89
|
+
group:
|
90
|
+
close: 隐藏方面
|
91
|
+
open: 显示方面
|
92
|
+
toggle: 更多 »
|
189
93
|
missing: "[未找到]"
|
94
|
+
more_html: 更多 <span class="sr-only visually-hidden">%{field_name}</span> »
|
190
95
|
pivot:
|
191
|
-
show: 打开
|
192
96
|
hide: 关
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
97
|
+
show: 打开
|
98
|
+
selected:
|
99
|
+
remove: "[删除]"
|
100
|
+
sort:
|
101
|
+
count: 按数量排序
|
102
|
+
index: 按字母排序
|
103
|
+
title: 限定搜索
|
197
104
|
filters:
|
198
|
-
|
199
|
-
label: '%{label}:'
|
105
|
+
label: "%{label}:"
|
200
106
|
remove:
|
201
|
-
value: '删除限定条件 %{value}'
|
202
107
|
label_value: '删除限定条件 %{label}: %{value}'
|
203
|
-
|
108
|
+
value: 删除限定条件 %{value}
|
109
|
+
title: 你在搜索:
|
110
|
+
form:
|
111
|
+
search:
|
112
|
+
label: 搜索
|
113
|
+
placeholder: 搜索...
|
114
|
+
search_field:
|
115
|
+
label: 搜索字段
|
116
|
+
post_label: 为
|
117
|
+
title: 设定的搜索选项
|
118
|
+
submit: 搜索
|
119
|
+
group:
|
120
|
+
more: 更多 »
|
121
|
+
header: 搜
|
204
122
|
index:
|
205
|
-
label:
|
123
|
+
label: "%{label}:"
|
124
|
+
page_title:
|
125
|
+
constraint: "%{label}: %{value}"
|
126
|
+
many_constraint_values: "%{values} 已选"
|
127
|
+
title: "%{constraints} - %{application_name} 搜索结果"
|
128
|
+
pagination:
|
129
|
+
title: 搜索结果导航
|
130
|
+
pagination_info:
|
131
|
+
no_items_found: '没有找到 %{entry_name} '
|
132
|
+
pages:
|
133
|
+
one: "<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>"
|
134
|
+
other: "<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>"
|
135
|
+
single_item_found: 找到 <strong>1</strong> %{entry_name}
|
136
|
+
per_page:
|
137
|
+
aria_label: 结果导航
|
138
|
+
button_label: "%{count} 每页"
|
139
|
+
button_label_html: '%{count}<span class="d-none d-sm-inline"> 每页</span>'
|
140
|
+
label: '%{count}<span class="sr-only visually-hidden"> 每页</span>'
|
141
|
+
submit: 更新
|
142
|
+
title: 每页显示结果数
|
143
|
+
rss_feed: 搜索结果RSS
|
144
|
+
search_constraints_header: 搜索条件
|
145
|
+
search_results: 搜索结果
|
206
146
|
show:
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
inprogress: "保存..."
|
215
|
-
zero_results:
|
216
|
-
title: "未找到任何结果"
|
217
|
-
modify_search: "请更改你的搜索条件"
|
218
|
-
use_fewer_keywords: "使用更少的搜索条件,使用左边的链接来筛选搜索结果。"
|
219
|
-
search_fields: "你在搜索如下字段 %{search_fields}"
|
220
|
-
search_everything: "试一试搜索所有记录"
|
221
|
-
view_title: "以如下方式察看搜索结果: "
|
147
|
+
label: "%{label}:"
|
148
|
+
title: "%{document_title} - %{application_name}"
|
149
|
+
sort:
|
150
|
+
label: 按 %{field} 排序
|
151
|
+
label_html: <span class="d-none d-sm-inline">按 %{field} </span>排序
|
152
|
+
submit: 排序
|
153
|
+
start_over: 重新开始
|
222
154
|
view:
|
223
|
-
list:
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
155
|
+
list: 列表
|
156
|
+
view_title: '以如下方式察看搜索结果: '
|
157
|
+
zero_results:
|
158
|
+
modify_search: 请更改你的搜索条件
|
159
|
+
search_everything: 试一试搜索所有记录
|
160
|
+
search_fields: 你在搜索如下字段 %{search_fields}
|
161
|
+
title: 未找到任何结果
|
162
|
+
use_fewer_keywords: 使用更少的搜索条件,使用左边的链接来筛选搜索结果。
|
163
|
+
search_history:
|
164
|
+
clear:
|
165
|
+
action_confirm: 清除搜索历史?
|
166
|
+
action_title: 清除搜索历史
|
167
|
+
failure: 清除搜索历史时出错。
|
168
|
+
success: 已经清除搜索历史。
|
169
|
+
forget: 去除
|
170
|
+
no_history: 你没有任何搜索历史
|
171
|
+
page_title: 搜索历史 - %{application_name}
|
172
|
+
recent: 你最近搜索历史
|
173
|
+
save: 保存
|
174
|
+
title: ''
|
175
|
+
skip_links:
|
176
|
+
first_result: 转到第一个搜索结果
|
177
|
+
label: 跳过链接
|
178
|
+
main_content: 转到主要内容
|
179
|
+
search_field: 转到搜索
|
180
|
+
sms:
|
181
|
+
errors:
|
182
|
+
carrier:
|
183
|
+
blank: 你必须选择一个运营商
|
184
|
+
invalid: 你必须输入一个运营商
|
185
|
+
to:
|
186
|
+
blank: 请输入接收人电话号码才能发送短信
|
187
|
+
invalid: 请输入10位正确电话号码
|
188
|
+
form:
|
189
|
+
carrier: 运营商
|
190
|
+
carrier_prompt: 请选择运营商
|
191
|
+
submit: 发送
|
192
|
+
title: 通过短信发送
|
193
|
+
to: '电话号码:'
|
194
|
+
success: 已发送短信
|
195
|
+
text:
|
196
|
+
url: '链接: %{url}'
|
197
|
+
tools:
|
198
|
+
citation: 引用
|
199
|
+
clear: 清除
|
200
|
+
email: 电子邮件
|
201
|
+
sms: 发送短信
|
202
|
+
title: 工具
|
203
|
+
welcome: 欢迎!
|
204
|
+
views:
|
205
|
+
pagination:
|
233
206
|
aria:
|
234
|
-
|
207
|
+
container_label: 分页链接
|
208
|
+
current_page: 当前页面,页面%{page}
|
209
|
+
go_to_first_page: 转到第一页
|
210
|
+
go_to_last_page: 转到最后一页
|
211
|
+
go_to_next_page: 转到下一页
|
212
|
+
go_to_page: 前往页面%{page}
|
213
|
+
go_to_previous_page: 转到上一页
|
214
|
+
first: "« 首页"
|
215
|
+
last: 末页 »
|
216
|
+
next: 下一页 »
|
217
|
+
previous: "« 上一页"
|
218
|
+
truncate: "…"
|
219
|
+
pagination_compact:
|
220
|
+
next: 下一页 »
|
221
|
+
previous: "« 上一页"
|
@@ -26,10 +26,6 @@ class Blacklight::Configuration
|
|
26
26
|
# @return [Class] component class used to render the search bar
|
27
27
|
# @!attribute search_header_component
|
28
28
|
# @return [Class] component class used to render the header above the documents
|
29
|
-
def search_bar_presenter_class
|
30
|
-
super || Blacklight::SearchBarPresenter
|
31
|
-
end
|
32
|
-
|
33
29
|
def display_label(**options)
|
34
30
|
I18n.t(
|
35
31
|
:"blacklight.search.view_title.#{key}",
|
data/lib/blacklight/engine.rb
CHANGED
@@ -19,15 +19,14 @@ module Blacklight
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
|
-
# rubocop:disable Lint/ConstantDefinitionInBlock
|
24
|
-
PRECOMPILE_ASSETS = %w(favicon.ico blacklight/blacklight.js blacklight/blacklight.js.map blacklight/blacklight.esm.js blacklight/blacklight.esm.js.map).freeze
|
25
|
-
# rubocop:enable Lint/ConstantDefinitionInBlock
|
22
|
+
PRECOMPILE_ASSETS = %w(favicon.ico blacklight/blacklight.js blacklight/blacklight.js.map blacklight/blacklight.esm.js blacklight/blacklight.esm.js.map).freeze
|
26
23
|
|
24
|
+
initializer "blacklight.assets.precompile" do |app|
|
27
25
|
# When Rails has been generated in API mode, it does not have sprockets available
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
next unless app.config.respond_to?(:assets)
|
27
|
+
|
28
|
+
app.config.assets.paths << Engine.root.join("app/javascript")
|
29
|
+
app.config.assets.precompile += Blacklight::Engine::PRECOMPILE_ASSETS
|
31
30
|
end
|
32
31
|
|
33
32
|
initializer "blacklight.importmap", before: "importmap" do |app|
|
@@ -14,9 +14,15 @@ module Blacklight
|
|
14
14
|
def import_javascript_assets
|
15
15
|
append_to_file 'config/importmap.rb' do
|
16
16
|
<<~CONTENT
|
17
|
+
pin "@github/auto-complete-element", to: "https://cdn.skypack.dev/@github/auto-complete-element"
|
17
18
|
pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.6/dist/umd/popper.min.js"
|
18
19
|
pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@#{(defined?(Bootstrap) && Bootstrap::VERSION) || '5.2.2'}/dist/js/bootstrap.js"
|
19
|
-
|
20
|
+
CONTENT
|
21
|
+
end
|
22
|
+
|
23
|
+
append_to_file 'app/assets/config/manifest.js' do
|
24
|
+
<<~CONTENT
|
25
|
+
//= link blacklight/manifest.js
|
20
26
|
CONTENT
|
21
27
|
end
|
22
28
|
end
|
@@ -25,7 +31,8 @@ module Blacklight
|
|
25
31
|
append_to_file 'app/javascript/application.js' do
|
26
32
|
<<~CONTENT
|
27
33
|
import bootstrap from "bootstrap"
|
28
|
-
import "
|
34
|
+
import githubAutoCompleteElement from "@github/auto-complete-element"
|
35
|
+
import Blacklight from "blacklight"
|
29
36
|
CONTENT
|
30
37
|
end
|
31
38
|
end
|
@@ -4,7 +4,15 @@ module Blacklight
|
|
4
4
|
module Assets
|
5
5
|
class PropshaftGenerator < Rails::Generators::Base
|
6
6
|
def add_package
|
7
|
-
|
7
|
+
if ENV['CI']
|
8
|
+
run "yarn add blacklight-frontend:#{Blacklight::Engine.root}"
|
9
|
+
else
|
10
|
+
run 'yarn add blacklight-frontend'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def add_third_party_packages
|
15
|
+
run 'yarn add @github/auto-complete-element'
|
8
16
|
end
|
9
17
|
|
10
18
|
def add_package_assets
|
@@ -16,7 +24,8 @@ module Blacklight
|
|
16
24
|
|
17
25
|
append_to_file 'app/javascript/application.js' do
|
18
26
|
<<~CONTENT
|
19
|
-
import Blacklight from "blacklight-frontend
|
27
|
+
import Blacklight from "blacklight-frontend";
|
28
|
+
import githubAutoCompleteElement from "@github/auto-complete-element";
|
20
29
|
CONTENT
|
21
30
|
end
|
22
31
|
end
|
@@ -18,6 +18,7 @@ module Blacklight
|
|
18
18
|
return if Rails.version > '7' || Sprockets::VERSION < '4'
|
19
19
|
|
20
20
|
append_to_file 'app/assets/config/manifest.js', "\n//= link application.js"
|
21
|
+
append_to_file 'app/assets/config/manifest.js', "\n//= link blacklight/manifest.js"
|
21
22
|
empty_directory 'app/assets/images'
|
22
23
|
end
|
23
24
|
|
@@ -42,6 +43,7 @@ module Blacklight
|
|
42
43
|
// Required by Blacklight
|
43
44
|
//= require popper
|
44
45
|
//= require bootstrap
|
46
|
+
//= require blacklight/blacklight
|
45
47
|
CONTENT
|
46
48
|
end
|
47
49
|
end
|
data/package.json
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
{
|
2
2
|
"name": "blacklight-frontend",
|
3
|
-
"version": "8.0.0-beta.
|
3
|
+
"version": "8.0.0-beta.6",
|
4
4
|
"description": "[![Build Status](https://travis-ci.com/projectblacklight/blacklight.png?branch=main)](https://travis-ci.com/projectblacklight/blacklight) [![Gem Version](https://badge.fury.io/rb/blacklight.png)](http://badge.fury.io/rb/blacklight) [![Coverage Status](https://coveralls.io/repos/github/projectblacklight/blacklight/badge.svg?branch=main)](https://coveralls.io/github/projectblacklight/blacklight?branch=main)",
|
5
5
|
"main": "app/assets/javascripts/blacklight",
|
6
|
+
"module": "app/assets/javascripts/blacklight/blacklight.esm.js",
|
6
7
|
"scripts": {
|
7
|
-
"
|
8
|
+
"prepare": "rollup --config rollup.config.js --sourcemap && ESM=true rollup --config rollup.config.js --sourcemap"
|
8
9
|
},
|
9
10
|
"repository": {
|
10
11
|
"type": "git",
|
11
12
|
"url": "git+https://github.com/projectblacklight/blacklight.git"
|
12
13
|
},
|
13
14
|
"files": [
|
14
|
-
"app/assets"
|
15
|
+
"app/assets",
|
16
|
+
"app/javascript"
|
15
17
|
],
|
16
18
|
"author": "",
|
17
19
|
"license": "Apache-2.0",
|
@@ -20,7 +22,8 @@
|
|
20
22
|
},
|
21
23
|
"homepage": "https://github.com/projectblacklight/blacklight#readme",
|
22
24
|
"devDependencies": {
|
23
|
-
"rollup": "^2.60.0"
|
25
|
+
"rollup": "^2.60.0",
|
26
|
+
"rollup-plugin-includepaths": "^0.2.4"
|
24
27
|
},
|
25
28
|
"browserslist": [
|
26
29
|
"defaults",
|
data/rollup.config.js
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
'use strict'
|
2
2
|
|
3
|
+
import includePaths from 'rollup-plugin-includepaths';
|
4
|
+
|
3
5
|
const path = require('path')
|
4
6
|
|
5
7
|
const BUNDLE = process.env.BUNDLE === 'true'
|
@@ -9,6 +11,13 @@ const fileDest = `blacklight${ESM ? '.esm' : ''}`
|
|
9
11
|
const external = []
|
10
12
|
const globals = {}
|
11
13
|
|
14
|
+
let includePathOptions = {
|
15
|
+
include: {},
|
16
|
+
paths: ['app/javascript'],
|
17
|
+
external: [],
|
18
|
+
extensions: ['.js']
|
19
|
+
};
|
20
|
+
|
12
21
|
const rollupConfig = {
|
13
22
|
input: path.resolve(__dirname, `app/javascript/blacklight/index.js`),
|
14
23
|
output: {
|
@@ -17,7 +26,8 @@ const rollupConfig = {
|
|
17
26
|
globals,
|
18
27
|
generatedCode: 'es2015'
|
19
28
|
},
|
20
|
-
external
|
29
|
+
external,
|
30
|
+
plugins: [includePaths(includePathOptions)]
|
21
31
|
}
|
22
32
|
|
23
33
|
if (!ESM) {
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe 'Sitelinks search box' do
|
4
|
+
it 'is home page' do
|
5
|
+
visit root_path
|
6
|
+
expect(page).to have_selector 'script[type="application/ld+json"]', visible: :hidden
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'on search page' do
|
10
|
+
visit search_catalog_path q: 'book'
|
11
|
+
expect(page).not_to have_selector 'script[type="application/ld+json"]', visible: :hidden
|
12
|
+
end
|
13
|
+
end
|
@@ -12,8 +12,6 @@ RSpec.describe Blacklight::Icon do
|
|
12
12
|
elsif defined?(Propshaft)
|
13
13
|
allow(Rails.application.assets.load_path).to receive(:find).and_return(asset)
|
14
14
|
end
|
15
|
-
# FileUtils.mkdir_p '.internal_test_app/app/assets/images/blacklight'
|
16
|
-
# File.write '.internal_test_app/app/assets/images/blacklight/test.svg', Blacklight::Icons::SearchComponent.new.svg
|
17
15
|
end
|
18
16
|
|
19
17
|
describe '#svg' do
|
data/spec/spec_helper.rb
CHANGED
@@ -68,7 +68,7 @@ RSpec.configure do |config|
|
|
68
68
|
config.infer_spec_type_from_file_location!
|
69
69
|
config.include PresenterTestHelpers, type: :presenter
|
70
70
|
config.include ViewComponent::TestHelpers, type: :component
|
71
|
-
config.include
|
71
|
+
config.include ViewComponentTestHelpers, type: :component
|
72
72
|
|
73
73
|
config.include(ControllerLevelHelpers, type: :helper)
|
74
74
|
config.before(:each, type: :helper) { initialize_controller_helpers(helper) }
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ViewComponentTestHelpers
|
4
|
+
# Work around for https://github.com/teamcapybara/capybara/issues/2466
|
5
|
+
def render_inline_to_capybara_node(component)
|
6
|
+
Capybara::Node::Simple.new(render_inline(component).to_s)
|
7
|
+
end
|
8
|
+
|
9
|
+
# Work-around for https://github.com/ViewComponent/view_component/pull/1661
|
10
|
+
# which made the component test's controller method (more) private. This makes
|
11
|
+
# it available so we can set up controller-level state for our tests.
|
12
|
+
def controller
|
13
|
+
# ViewComponent 2.x
|
14
|
+
return super if defined?(super)
|
15
|
+
|
16
|
+
# ViewComponent 3.x
|
17
|
+
return __vc_test_helpers_controller if defined?(__vc_test_helpers_controller)
|
18
|
+
|
19
|
+
ApplicationController.new.extend(Rails.application.routes.url_helpers)
|
20
|
+
end
|
21
|
+
end
|