From 0f48e600b948988b41d006fed3e4f4cc457555e8 Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Thu, 16 Jul 2020 15:59:05 +0200 Subject: [PATCH] added search type dropdown with vue-select --- assets/css/app.scss | 124 ++++++++++++++++++++++------- package-lock.json | 10 +++ package.json | 2 + src/components/nav/Search.vue | 145 ++++++++++++++++++++++++++-------- src/index.js | 4 +- 5 files changed, 223 insertions(+), 62 deletions(-) diff --git a/assets/css/app.scss b/assets/css/app.scss index 764e8ee..ed9cec6 100644 --- a/assets/css/app.scss +++ b/assets/css/app.scss @@ -552,35 +552,90 @@ footer[role="tools"]{ background-color: $bleuroi; form{ padding: 0.7em; - label[for="keys"]{ - display: none; + fieldset{ + padding:1em; + border: none; + &:not(:first-of-type){ + border-left: 1px solid $grisclair; + } } - input[type="text"]{ - padding:0.3em; - font-size: 0.756em; - line-height: 1; - height:1em; - border:none; - border-radius: 2px; - } - // input[type="submit"]{ - // #submit-search{ - // border:none; - // - // } - // } - span.mdi{ - display: inline-block; - font-size: 1.2em; - line-height:1.1; - vertical-align:middle; - width:1.2em; height:1.2em; - border-radius: 0.6em; - background-color: #fff; - color: $bleuroi; - text-align: center; - font-weight: 700; - cursor: pointer; + fieldset.search{ + >div{ + display: inline-block; + width:80%; + vertical-align: middle; + } + label[for="keys"]{ + display: none; + } + input[type="text"]{ + padding:0.3em; + box-sizing: border-box; + font-size: 0.756em; + line-height: 1; + width:100%; + height:1.2em; + border:none; + border-radius: 2px; + } + #search-type{ + padding:0.2em 0 0 0; + div[role="combobox"]{ + background-color: #fff; + padding:0; + border-radius: 2px; + border: none; + } + input[type="search"]{ + margin:0; + padding:0; + } + .vs__search{ + &, &:focus{ + font-size: 0.756em; + line-height: 1; + height:1.2em; + border:none; + box-sizing: border-box; + } + } + .vs__actions{ + padding:1px 3px; + svg[role="presentation"]{ + transform: scale(0.8); + path{ + fill: $bleuroi; + } + } + } + .vs__selected{ + margin:0; + padding:0; + line-height:1; + font-size: 0.756em; + } + // border-radius: 2px; + // border: none; + } + // input[type="submit"]{ + // #submit-search{ + // border:none; + // + // } + // } + span.mdi{ + display: inline-block; + font-size: 1.2em; + line-height:1.1; + vertical-align:middle; + width:1.2em; height:1.2em; + border-radius: 0.6em; + background-color: #fff; + color: $bleuroi; + text-align: center; + font-weight: 700; + cursor: pointer; + } } } } @@ -594,6 +649,19 @@ footer[role="tools"]{ } } +// vue-select +ul[role="listbox"]{ + @include fontsans; + padding:0; + margin:0; + border:none; + li{ + padding:0.3em; + margin:0; + font-size: 0.756em; + line-height: 1; + } +} // ___ // |_ _|__ ___ _ _ ___ diff --git a/package-lock.json b/package-lock.json index d64210e..2384eb3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1063,6 +1063,11 @@ "@types/yargs": "^13.0.0" } }, + "@popperjs/core": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.4.4.tgz", + "integrity": "sha512-1oO6+dN5kdIA3sKPZhRGJTfGVP4SWV6KqlMOwry4J3HfyD68sl/3KmG7DeYUzvN+RbhXDnv/D8vNNB8168tAMg==" + }, "@types/babel__core": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", @@ -12066,6 +12071,11 @@ "bezier-easing": "2.1.0" } }, + "vue-select": { + "version": "3.10.7", + "resolved": "https://registry.npmjs.org/vue-select/-/vue-select-3.10.7.tgz", + "integrity": "sha512-6rvIYBNEp9y0xK/sq2ZzDCxKA2BoVNliyctOeMtzarQzvpLlab7l8zvqr2jhGZOxozp7jd2AvZxpF3Ivems2wQ==" + }, "vue-server-renderer": { "version": "2.6.10", "resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.10.tgz", diff --git a/package.json b/package.json index 072415f..5aae563 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,14 @@ "author": "Daniel Cook", "license": "MIT", "dependencies": { + "@popperjs/core": "^2.4.4", "axios": "^0.18.1", "vue": "^2.6.10", "vue-infinite-loading": "^2.4.5", "vue-meta": "^1.6.0", "vue-router": "^3.1.3", "vue-scrollto": "^2.18.1", + "vue-select": "^3.10.7", "vuex": "^3.1.1", "vuex-router-sync": "^5.0.0" }, diff --git a/src/components/nav/Search.vue b/src/components/nav/Search.vue index 78f9fd0..d7f9bf7 100644 --- a/src/components/nav/Search.vue +++ b/src/components/nav/Search.vue @@ -1,48 +1,81 @@