workarea-search_autocomplete 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.editorconfig +20 -0
- data/.eslintrc.json +35 -0
- data/.github/workflows/ci.yml +60 -0
- data/.gitignore +20 -0
- data/.rubocop.yml +3 -0
- data/.stylelintrc.json +8 -0
- data/CHANGELOG.md +36 -0
- data/Gemfile +17 -0
- data/README.md +17 -0
- data/Rakefile +60 -0
- data/app/assets/javascripts/workarea/storefront/search_autocomplete/config.js +12 -0
- data/app/assets/javascripts/workarea/storefront/search_autocomplete/modules/search_autocomplete.js +76 -0
- data/app/assets/stylesheets/workarea/storefront/search_autocomplete/components/_page_header.scss +9 -0
- data/app/assets/stylesheets/workarea/storefront/search_autocomplete/components/_search_autocomplete.scss +53 -0
- data/app/controllers/workarea/storefront/searches_controller.decorator +10 -0
- data/app/models/workarea/metrics/search_by_week.decorator +37 -0
- data/app/view_models/workarea/storefront/search_autocomplete_products_view_model.rb +13 -0
- data/app/view_models/workarea/storefront/search_autocomplete_view_model.rb +66 -0
- data/app/views/workarea/storefront/searches/_autocomplete_placeholder.html.haml +2 -0
- data/app/views/workarea/storefront/searches/autocomplete.html.haml +34 -0
- data/bin/rails +25 -0
- data/config/initializers/appends.rb +20 -0
- data/config/initializers/content.rb +3 -0
- data/config/initializers/fields.rb +13 -0
- data/config/locales/en.yml +8 -0
- data/config/routes.rb +7 -0
- data/lib/workarea/search_autocomplete.rb +11 -0
- data/lib/workarea/search_autocomplete/engine.rb +8 -0
- data/lib/workarea/search_autocomplete/version.rb +5 -0
- data/package.json +9 -0
- data/script/admin_ci +9 -0
- data/script/ci +11 -0
- data/script/core_ci +9 -0
- data/script/plugins_ci +9 -0
- data/script/storefront_ci +9 -0
- data/test/dummy/.ruby-version +1 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/config/manifest.js +3 -0
- data/test/dummy/app/assets/images/.keep +0 -0
- data/test/dummy/app/assets/javascripts/application.js +14 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +2 -0
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/jobs/application_job.rb +2 -0
- data/test/dummy/app/mailers/application_mailer.rb +4 -0
- data/test/dummy/app/models/concerns/.keep +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +15 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +25 -0
- data/test/dummy/bin/update +25 -0
- data/test/dummy/config.ru +5 -0
- data/test/dummy/config/application.rb +34 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +52 -0
- data/test/dummy/config/environments/production.rb +83 -0
- data/test/dummy/config/environments/test.rb +45 -0
- data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/test/dummy/config/initializers/assets.rb +12 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/content_security_policy.rb +25 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/workarea.rb +5 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +9 -0
- data/test/dummy/config/locales/en.yml +33 -0
- data/test/dummy/config/puma.rb +34 -0
- data/test/dummy/config/routes.rb +5 -0
- data/test/dummy/config/spring.rb +6 -0
- data/test/dummy/db/seeds.rb +2 -0
- data/test/dummy/lib/assets/.keep +0 -0
- data/test/dummy/log/.keep +0 -0
- data/test/integration/workarea/storefront/search_autocomplete_integration_test.rb +29 -0
- data/test/models/workarea/metrics/search_by_week_autocomplete_test.rb +20 -0
- data/test/system/workarea/storefront/search_autocomplete_system_test.rb +171 -0
- data/test/teaspoon_env.rb +6 -0
- data/test/test_helper.rb +10 -0
- data/test/view_models/workarea/storefront/search_autocomplete_view_model_test.rb +125 -0
- data/workarea-search_autocomplete.gemspec +23 -0
- metadata +148 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7cab34311e40d6ee51590272548d7851d97c0d3f460f13874f517f1e93df0b6b
|
4
|
+
data.tar.gz: e300b27a52950b6cecfa00685c20a6a67b8886fcf025ac2c636f61398a61599e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a7868dcbf6741b677bec1fb7b00b5fe459f531a9912bccfa3a2a88e5b4bab570be7d71f6831e93f7e726d5bd55cc8c7b0e7839d5821c9e99624f4c623b6c348e
|
7
|
+
data.tar.gz: 396b33e63da8fba698fb99948a4ccddb134209f8cbf203a348cb0a4bbfe511674e4b6478df2c0f65bf64c0e5cd05a4783a618046fb4768ad44ea24734423fc55
|
data/.editorconfig
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# editorconfig.org
|
2
|
+
root = true
|
3
|
+
|
4
|
+
[*]
|
5
|
+
charset = utf-8
|
6
|
+
indent_style = space
|
7
|
+
end_of_line = lf
|
8
|
+
trim_trailing_whitespace = true
|
9
|
+
insert_final_newline = true
|
10
|
+
|
11
|
+
[{*.rb,*.haml,*.decorator,*.yml,*.yaml,*.jbuilder}]
|
12
|
+
indent_size = 2
|
13
|
+
indent_style = space
|
14
|
+
|
15
|
+
[{*.js,*.jst,*.ejs,*.scss,*.js.erb}]
|
16
|
+
indent_size = 4
|
17
|
+
|
18
|
+
[*.md]
|
19
|
+
indent_size = 4
|
20
|
+
trim_trailing_whitespace = false
|
data/.eslintrc.json
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"extends": "eslint:recommended",
|
3
|
+
"rules": {
|
4
|
+
"semi": ["error", "always"],
|
5
|
+
"eqeqeq": ["error", "always"]
|
6
|
+
},
|
7
|
+
"globals": {
|
8
|
+
"window": true,
|
9
|
+
"document": true,
|
10
|
+
"WORKAREA": true,
|
11
|
+
"$": true,
|
12
|
+
"jQuery": true,
|
13
|
+
"_": true,
|
14
|
+
"feature": true,
|
15
|
+
"JST": true,
|
16
|
+
"Turbolinks": true,
|
17
|
+
"I18n": true,
|
18
|
+
"Chart": true,
|
19
|
+
"Dropzone": true,
|
20
|
+
"strftime": true,
|
21
|
+
"Waypoint": true,
|
22
|
+
"wysihtml": true,
|
23
|
+
"LocalTime": true,
|
24
|
+
"describe": true,
|
25
|
+
"after": true,
|
26
|
+
"afterEach": true,
|
27
|
+
"before": true,
|
28
|
+
"beforeEach": true,
|
29
|
+
"it": true,
|
30
|
+
"expect": true,
|
31
|
+
"sinon": true,
|
32
|
+
"fixture": true,
|
33
|
+
"chai": true
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
name: CI
|
2
|
+
on: [push]
|
3
|
+
|
4
|
+
jobs:
|
5
|
+
static_analysis:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
steps:
|
8
|
+
- uses: actions/checkout@v1
|
9
|
+
- uses: workarea-commerce/ci/bundler-audit@v1
|
10
|
+
- uses: workarea-commerce/ci/rubocop@v1
|
11
|
+
- uses: workarea-commerce/ci/eslint@v1
|
12
|
+
with:
|
13
|
+
args: '**/*.js'
|
14
|
+
- uses: workarea-commerce/ci/stylelint@v1
|
15
|
+
with:
|
16
|
+
args: '**/*.scss'
|
17
|
+
|
18
|
+
admin_tests:
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v1
|
22
|
+
- uses: actions/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: 2.6.x
|
25
|
+
- uses: workarea-commerce/ci/test@v1
|
26
|
+
with:
|
27
|
+
command: bin/rails app:workarea:test:admin
|
28
|
+
|
29
|
+
core_tests:
|
30
|
+
runs-on: ubuntu-latest
|
31
|
+
steps:
|
32
|
+
- uses: actions/checkout@v1
|
33
|
+
- uses: actions/setup-ruby@v1
|
34
|
+
with:
|
35
|
+
ruby-version: 2.6.x
|
36
|
+
- uses: workarea-commerce/ci/test@v1
|
37
|
+
with:
|
38
|
+
command: bin/rails app:workarea:test:core
|
39
|
+
|
40
|
+
storefront_tests:
|
41
|
+
runs-on: ubuntu-latest
|
42
|
+
steps:
|
43
|
+
- uses: actions/checkout@v1
|
44
|
+
- uses: actions/setup-ruby@v1
|
45
|
+
with:
|
46
|
+
ruby-version: 2.6.x
|
47
|
+
- uses: workarea-commerce/ci/test@v1
|
48
|
+
with:
|
49
|
+
command: bin/rails app:workarea:test:storefront
|
50
|
+
|
51
|
+
plugins_tests:
|
52
|
+
runs-on: ubuntu-latest
|
53
|
+
steps:
|
54
|
+
- uses: actions/checkout@v1
|
55
|
+
- uses: actions/setup-ruby@v1
|
56
|
+
with:
|
57
|
+
ruby-version: 2.6.x
|
58
|
+
- uses: workarea-commerce/ci/test@v1
|
59
|
+
with:
|
60
|
+
command: bin/rails app:workarea:test:plugins
|
data/.gitignore
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
.bundle/
|
2
|
+
log/*.log
|
3
|
+
pkg/
|
4
|
+
test/dummy/log/*.log
|
5
|
+
test/dummy/tmp/
|
6
|
+
.DS_Store
|
7
|
+
.byebug_history
|
8
|
+
.bundle/
|
9
|
+
.sass-cache/
|
10
|
+
Gemfile.lock
|
11
|
+
pkg/
|
12
|
+
test/dummy/tmp/
|
13
|
+
test/dummy/public/
|
14
|
+
log/*.log
|
15
|
+
test/dummy/log/*.log
|
16
|
+
test/dummy/db/*.sqlite3
|
17
|
+
test/dummy/db/*.sqlite3-journal
|
18
|
+
node_modules
|
19
|
+
yarn.lock
|
20
|
+
.rubocop-http*
|
data/.rubocop.yml
ADDED
data/.stylelintrc.json
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
Workarea Search Autocomplete 1.0.0 (2019-11-26)
|
2
|
+
--------------------------------------------------------------------------------
|
3
|
+
|
4
|
+
* Fix Name of Append Point
|
5
|
+
|
6
|
+
This append point should be prefixed with `storefront.` in order to
|
7
|
+
notate where it is output on the site.
|
8
|
+
|
9
|
+
SEARCHAUTO-1
|
10
|
+
Tom Scott
|
11
|
+
|
12
|
+
* Improve Search Autocomplete UI
|
13
|
+
|
14
|
+
* Hide UI when input is empty
|
15
|
+
* Add contentable area to UI
|
16
|
+
* Display Trending Products/Searches when no results are available
|
17
|
+
* Add append point for content search
|
18
|
+
|
19
|
+
SEARCHAUTO-1
|
20
|
+
Curt Howard
|
21
|
+
|
22
|
+
* Fix case sensitivity
|
23
|
+
|
24
|
+
Fix #3
|
25
|
+
Ben Crouse
|
26
|
+
|
27
|
+
* Update config fields to be administrable fields
|
28
|
+
|
29
|
+
Matt Duffy
|
30
|
+
|
31
|
+
* Add backend implementation
|
32
|
+
|
33
|
+
Ben Crouse
|
34
|
+
|
35
|
+
|
36
|
+
|
data/Gemfile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
|
+
|
4
|
+
# Declare your gem's dependencies in workarea-search_autocomplete.gemspec.
|
5
|
+
# Bundler will treat runtime dependencies like base dependencies, and
|
6
|
+
# development dependencies will be added by default to the :development group.
|
7
|
+
gemspec
|
8
|
+
|
9
|
+
# Declare any dependencies that are still in development here instead of in
|
10
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
11
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
12
|
+
# your gem to rubygems.org.
|
13
|
+
|
14
|
+
# To use a debugger
|
15
|
+
# gem 'byebug', group: [:development, :test]
|
16
|
+
|
17
|
+
gem 'workarea', github: 'workarea-commerce/workarea'
|
data/README.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
Workarea Search Autocomplete
|
2
|
+
================================================================================
|
3
|
+
|
4
|
+
Search Autocomplete plugin for the Workarea platform.
|
5
|
+
|
6
|
+
|
7
|
+
Workarea Platform Documentation
|
8
|
+
--------------------------------------------------------------------------------
|
9
|
+
|
10
|
+
See [http://developer.workarea.com](http://developer.workarea.com) for Workarea platform documentation.
|
11
|
+
|
12
|
+
Copyright & Licensing
|
13
|
+
--------------------------------------------------------------------------------
|
14
|
+
|
15
|
+
Copyright Workarea 2019. All rights reserved.
|
16
|
+
|
17
|
+
For licensing, contact sales@workarea.com.
|
data/Rakefile
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
9
|
+
rdoc.rdoc_dir = 'rdoc'
|
10
|
+
rdoc.title = 'Workarea Search Autocomplete'
|
11
|
+
rdoc.options << '--line-numbers'
|
12
|
+
rdoc.rdoc_files.include('README.md')
|
13
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
14
|
+
end
|
15
|
+
|
16
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
17
|
+
load 'rails/tasks/engine.rake'
|
18
|
+
load 'rails/tasks/statistics.rake'
|
19
|
+
load 'workarea/changelog.rake'
|
20
|
+
|
21
|
+
require 'rake/testtask'
|
22
|
+
Rake::TestTask.new(:test) do |t|
|
23
|
+
t.libs << 'lib'
|
24
|
+
t.libs << 'test'
|
25
|
+
t.pattern = 'test/**/*_test.rb'
|
26
|
+
t.verbose = false
|
27
|
+
end
|
28
|
+
task default: :test
|
29
|
+
|
30
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
31
|
+
require 'workarea/search_autocomplete/version'
|
32
|
+
|
33
|
+
desc "Release version #{Workarea::SearchAutocomplete::VERSION} of the gem"
|
34
|
+
task :release do
|
35
|
+
host = "https://#{ENV['BUNDLE_GEMS__WEBLINC__COM']}@gems.weblinc.com"
|
36
|
+
|
37
|
+
#Rake::Task['workarea:changelog'].execute
|
38
|
+
#system 'git add CHANGELOG.md'
|
39
|
+
#system 'git commit -m "Update CHANGELOG"'
|
40
|
+
#system 'git push origin HEAD'
|
41
|
+
|
42
|
+
system "git tag -a v#{Workarea::SearchAutocomplete::VERSION} -m 'Tagging #{Workarea::SearchAutocomplete::VERSION}'"
|
43
|
+
system 'git push --tags'
|
44
|
+
|
45
|
+
system "gem build workarea-search_autocomplete.gemspec"
|
46
|
+
system "gem push workarea-search_autocomplete-#{Workarea::SearchAutocomplete::VERSION}.gem"
|
47
|
+
system "gem push workarea-search_autocomplete-#{Workarea::SearchAutocomplete::VERSION}.gem --host #{host}"
|
48
|
+
system "rm workarea-search_autocomplete-#{Workarea::SearchAutocomplete::VERSION}.gem"
|
49
|
+
end
|
50
|
+
|
51
|
+
desc 'Run the JavaScript tests'
|
52
|
+
ENV['TEASPOON_RAILS_ENV'] = File.expand_path('../test/dummy/config/environment', __FILE__)
|
53
|
+
task teaspoon: 'app:teaspoon'
|
54
|
+
|
55
|
+
desc 'Start a server at http://localhost:3000/teaspoon for JavaScript tests'
|
56
|
+
task :teaspoon_server do
|
57
|
+
Dir.chdir("test/dummy")
|
58
|
+
teaspoon_env = File.expand_path('../test/teaspoon_env.rb', __FILE__)
|
59
|
+
system "RAILS_ENV=test TEASPOON_ENV=#{teaspoon_env} rails s"
|
60
|
+
end
|
data/app/assets/javascripts/workarea/storefront/search_autocomplete/modules/search_autocomplete.js
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
/**
|
2
|
+
* @namespace WORKAREA.searchAutocomplete
|
3
|
+
*/
|
4
|
+
|
5
|
+
WORKAREA.registerModule('searchAutocomplete', (function () {
|
6
|
+
'use strict';
|
7
|
+
|
8
|
+
var cache = {},
|
9
|
+
hide = function () {
|
10
|
+
$('#search_autocomplete')
|
11
|
+
.addClass('visually-hidden')
|
12
|
+
.removeClass('search-autocomplete--visible')
|
13
|
+
.closest('.page-header__search-value')
|
14
|
+
.removeClass('page-header__search-value--autocomplete');
|
15
|
+
},
|
16
|
+
|
17
|
+
render = function (response) {
|
18
|
+
$('#search_autocomplete')
|
19
|
+
.removeClass('visually-hidden')
|
20
|
+
.addClass('search-autocomplete--visible')
|
21
|
+
.empty()
|
22
|
+
.append(response)
|
23
|
+
.closest('.page-header__search-value')
|
24
|
+
.addClass('page-header__search-value--autocomplete');
|
25
|
+
},
|
26
|
+
|
27
|
+
handleUserClick = function (event) {
|
28
|
+
if (_.isEmpty($(event.target).closest($('#search_autocomplete')))) {
|
29
|
+
hide();
|
30
|
+
}
|
31
|
+
},
|
32
|
+
|
33
|
+
handleUserInput = function (event) {
|
34
|
+
var endpoint = WORKAREA.routes.storefront.autocompleteSearchPath({
|
35
|
+
q: event.target.value
|
36
|
+
});
|
37
|
+
|
38
|
+
if (cache[endpoint]) {
|
39
|
+
render(cache[endpoint]);
|
40
|
+
} else {
|
41
|
+
$.get(endpoint)
|
42
|
+
.fail(function () { hide(); })
|
43
|
+
.done(function (response) {
|
44
|
+
cache[endpoint] = response;
|
45
|
+
render(response);
|
46
|
+
});
|
47
|
+
}
|
48
|
+
|
49
|
+
},
|
50
|
+
|
51
|
+
getDelay = function (type) {
|
52
|
+
if (WORKAREA.environment.isTest) {
|
53
|
+
return 0;
|
54
|
+
} else {
|
55
|
+
return WORKAREA.config.searchAutocomplete.delays[type];
|
56
|
+
}
|
57
|
+
},
|
58
|
+
|
59
|
+
/**
|
60
|
+
* @method
|
61
|
+
* @name init
|
62
|
+
* @memberof WORKAREA.searchAutocomplete
|
63
|
+
*/
|
64
|
+
init = function ($scope) {
|
65
|
+
$(WORKAREA.config.searchAutocomplete.selector, $scope)
|
66
|
+
.on('focus', _.debounce(handleUserInput, getDelay('focus')))
|
67
|
+
.on('input', _.debounce(handleUserInput, getDelay('input')))
|
68
|
+
.on('change', _.debounce(handleUserInput, getDelay('change')));
|
69
|
+
};
|
70
|
+
|
71
|
+
$(window).on('click', handleUserClick);
|
72
|
+
|
73
|
+
return {
|
74
|
+
init: init
|
75
|
+
};
|
76
|
+
}()));
|
@@ -0,0 +1,53 @@
|
|
1
|
+
/*------------------------------------*\
|
2
|
+
#SEARCH-AUTOCOMPLETE
|
3
|
+
\*------------------------------------*/
|
4
|
+
|
5
|
+
$search-autocomplete-bg-color: $background-color !default;
|
6
|
+
$search-autocomplete-border: 1px solid $black !default;
|
7
|
+
|
8
|
+
$search-autocomplete-z-indexes: ();
|
9
|
+
@each $name in $page-container {
|
10
|
+
$search-autocomplete-z-indexes: append($search-autocomplete-z-indexes, $name);
|
11
|
+
|
12
|
+
@if $name == page-header {
|
13
|
+
$search-autocomplete-z-indexes: append($search-autocomplete-z-indexes, search-autocomplete);
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
.search-autocomplete {
|
18
|
+
display: none;
|
19
|
+
background: $search-autocomplete-bg-color;
|
20
|
+
border: $search-autocomplete-border;
|
21
|
+
padding: $spacing-unit;
|
22
|
+
|
23
|
+
@include respond-to($medium-breakpoint) {
|
24
|
+
display: block;
|
25
|
+
width: 90vw;
|
26
|
+
}
|
27
|
+
|
28
|
+
@include respond-to($x-wide-breakpoint) {
|
29
|
+
width: 1050px;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
.search-autocomplete--visible {
|
34
|
+
position: absolute;
|
35
|
+
top: 100%;
|
36
|
+
right: 0;
|
37
|
+
z-index: index($search-autocomplete-z-indexes, search-autocomplete);
|
38
|
+
}
|
39
|
+
|
40
|
+
|
41
|
+
.search-autocomplete__products {
|
42
|
+
text-align: left;
|
43
|
+
}
|
44
|
+
|
45
|
+
|
46
|
+
.search-autocomplete__searches {
|
47
|
+
@extend %list-reset;
|
48
|
+
text-align: right;
|
49
|
+
}
|
50
|
+
|
51
|
+
.search-autocomplete__searches-item {}
|
52
|
+
|
53
|
+
.search-autocomplete__searches-link {}
|