@abi-software/flatmapvuer 0.4.2 → 0.4.3

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.
@@ -1,405 +1,405 @@
1
- <template>
2
- <div class="tooltip-container">
3
- <el-main v-if="entry" class="main" v-loading="loading">
4
- <div class="block" v-if="entry.title">
5
- <span class="title">{{capitalise(entry.title)}}</span>
6
- </div>
7
- <div class="block" v-else>
8
- <span class="title">{{entry.featureId}}</span>
9
- </div>
10
- <div class="content-container scrollbar">
11
- {{entry.paths}}
12
- <div v-if="entry.origins && entry.origins.length > 0" class="block">
13
- <div>
14
- <span class="attribute-title">Origin</span>
15
- <el-popover
16
- width="250"
17
- trigger="hover"
18
- :append-to-body=false
19
- popper-class="popover-origin-help"
20
- >
21
- <i slot="reference" class="el-icon-warning-outline info"/>
22
- <span style="word-break: keep-all;">
23
- <i>Origin</i> {{originDescription}}
24
- </span>
25
- </el-popover>
26
- </div>
27
- <div v-for="(origin, i) in entry.origins" class="attribute-content" :key="origin">
28
- {{ capitalise(origin) }}
29
- <div v-if="i != entry.origins.length - 1" class="seperator"></div>
30
- </div>
31
- <el-button v-show="entry.originsWithDatasets && entry.originsWithDatasets.length > 0" class="button" @click="openDendrites">
32
- Explore origin data
33
- </el-button>
34
- </div>
35
- <div v-if="entry.components && entry.components.length > 0" class="block">
36
- <div class="attribute-title">Components</div>
37
- <div v-for="(component, i) in entry.components" class="attribute-content" :key="component">
38
- {{ capitalise(component) }}
39
- <div v-if="i != entry.components.length - 1" class="seperator"></div>
40
- </div>
41
- </div>
42
- <div v-if="entry.destinations && entry.destinations.length > 0" class="block">
43
- <div>
44
- <span class="attribute-title">Destination</span>
45
- <el-popover
46
- width="250"
47
- trigger="hover"
48
- :append-to-body=false
49
- popper-class="popover-origin-help"
50
- >
51
- <i slot="reference" class="el-icon-warning-outline info"/>
52
- <span style="word-break: keep-all;">
53
- <i>Destination</i> is where the axons terminate
54
- </span>
55
- </el-popover>
56
- </div>
57
- <div v-for="(destination, i) in entry.destinations" class="attribute-content" :key="destination">
58
- {{ capitalise(destination) }}
59
- <div v-if="i != entry.destinations.length - 1" class="seperator"></div>
60
- </div>
61
- <el-button v-show="entry.destinationsWithDatasets && entry.destinationsWithDatasets.length > 0" class="button" @click="openAxons">
62
- Explore destination data
63
- </el-button>
64
- </div>
65
-
66
- <el-button v-show="entry.componentsWithDatasets && entry.componentsWithDatasets.length > 0" class="button" @click="openAll">
67
- Search for data on components
68
- </el-button>
69
-
70
- <external-resource-card :resources="resources"></external-resource-card>
71
-
72
- </div>
73
- </el-main>
74
- </div>
75
- </template>
76
-
77
-
78
- <script>
79
- /* eslint-disable no-alert, no-console */
80
- import Vue from "vue";
81
- import {
82
- Button,
83
- Container,
84
- Header,
85
- Icon,
86
- Main
87
- } from "element-ui";
88
- import lang from "element-ui/lib/locale/lang/en";
89
- import locale from "element-ui/lib/locale";
90
- locale.use(lang);
91
- Vue.use(Button);
92
- Vue.use(Container);
93
- Vue.use(Header);
94
- Vue.use(Icon);
95
- Vue.use(Main);
96
-
97
- import EventBus from './EventBus'
98
- import ExternalResourceCard from './ExternalResourceCard.vue';
99
-
100
- const titleCase = (str) => {
101
- return str.replace(/\w\S*/g, (t) => { return t.charAt(0).toUpperCase() + t.substr(1).toLowerCase() });
102
- }
103
-
104
- const capitalise = function(str){
105
- if (str)
106
- return str.charAt(0).toUpperCase() + str.slice(1)
107
- return ""
108
- }
109
-
110
- export default {
111
- components: { ExternalResourceCard },
112
- name: "Tooltip",
113
- props: {
114
- visible: {
115
- type: Boolean,
116
- default: false
117
- },
118
- entry: {
119
- type: Object,
120
- default: () => ({
121
- destinations: [],
122
- origins: [],
123
- components: [],
124
- destinationsWithDatasets: [],
125
- originsWithDatasets: [],
126
- componentsWithDatasets: [],
127
- resource: undefined
128
- })
129
- },
130
- },
131
- data: function() {
132
- return {
133
- controller: undefined,
134
- activeSpecies: undefined,
135
- appendToBody: false,
136
- pubmedSearchUrl: '',
137
- loading: false,
138
- showToolip: false,
139
- destinations: [],
140
- origins: [],
141
- components: [],
142
- destinationsWithDatasets: [],
143
- originsWithDatasets: [],
144
- originDescriptions: {
145
- 'motor': 'is the location of the initial cell body of the circuit',
146
- 'sensory': 'is the location of the initial cell body in the PNS circuit'
147
- },
148
- componentsWithDatasets: [],
149
- uberons: [{id: undefined, name: undefined}]
150
- };
151
- },
152
- computed: {
153
- resources: function(){
154
- let resources = []
155
- if(this.entry && this.entry.hyperlinks){
156
- resources = this.entry.hyperlinks
157
- }
158
- return resources
159
- },
160
- originDescription: function(){
161
- if(this.entry && this.entry.title && this.entry.title.toLowerCase().includes('motor')){
162
- return this.originDescriptions.motor
163
- } else {
164
- return this.originDescriptions.sensory
165
- }
166
- }
167
- },
168
- methods: {
169
- resourceSelected: function(action) {
170
- this.$emit("resource-selected", action);
171
- },
172
- titleCase: function(title){
173
- return titleCase(title)
174
- },
175
- capitalise: function(text){
176
- return capitalise(text)
177
- },
178
- onClose: function() {
179
- this.$emit("onClose")
180
- },
181
- openUrl: function(url){
182
- window.open(url, '_blank')
183
- },
184
- openAll: function(){
185
- EventBus.$emit('onActionClick', {type:'Facets', labels: this.componentsWithDatasets.map(a=>a.name)})
186
- },
187
- openAxons: function(){
188
- EventBus.$emit('onActionClick', {type:'Facets', labels: this.destinationsWithDatasets.map(a=>a.name)})
189
- },
190
- openDendrites: function(){
191
- EventBus.$emit('onActionClick', {type:'Facets', labels: this.originsWithDatasets.map(a=>a.name)})
192
- },
193
- pubmedSearchUrlUpdate: function (val){
194
- this.pubmedSearchUrl = val
195
- },
196
- }
197
- };
198
- </script>
199
-
200
- <style scoped lang="scss">
201
- @import "~element-ui/packages/theme-chalk/src/button";
202
- @import "~element-ui/packages/theme-chalk/src/container";
203
- @import "~element-ui/packages/theme-chalk/src/header";
204
- @import "~element-ui/packages/theme-chalk/src/main";
205
-
206
- .tooltip-container {
207
- text-align:justify;
208
- border-radius: 4px;
209
- box-shadow: 0 1px 2px rgba(0,0,0,.1);
210
- pointer-events: auto;
211
- background: #fff;
212
- border: 1px solid $app-primary-color;
213
- display: flex;
214
- justify-content: center;
215
- align-items: center;
216
- }
217
-
218
- .display {
219
- width: 44px;
220
- word-break: normal;
221
- }
222
-
223
- .title {
224
- text-align: left;
225
- width: 16em;
226
- line-height: 1.5em !important;
227
- font-size: 1em;
228
- font-family: Helvetica;
229
- font-weight: 500;
230
- /* font-weight: bold; */
231
- padding-bottom: 8px;
232
- }
233
-
234
- .block {
235
- margin-bottom: 1.5em;
236
- }
237
-
238
- .pub {
239
- width: 16rem;
240
- }
241
-
242
- .icon {
243
- right: 0px;
244
- position: absolute;
245
- top: 10px;
246
- }
247
-
248
- .icon:hover {
249
- cursor: pointer;
250
- }
251
-
252
- .popover-origin-help {
253
- text-transform: none !important; // need to overide the tooltip text transform
254
- }
255
-
256
- .info{
257
- transform: rotate(180deg);
258
- color: #8300bf;
259
- margin-left: 8px;
260
- }
261
-
262
- .seperator {
263
- width:90%;
264
- height:0.5px;
265
- background-color:#bfbec2;
266
- }
267
-
268
- .main {
269
- font-size: 14px;
270
- text-align: left;
271
- line-height: 1.5em;
272
- font-family: Helvetica;
273
- font-weight: 400;
274
- /* outline: thin red solid; */
275
- padding: 1em !important;
276
- overflow: hidden;
277
- min-width: 16rem;
278
- }
279
-
280
- .title{
281
- font-size: 18px;
282
- font-weight: 500;
283
- font-weight: bold;
284
- padding-bottom: 8px;
285
- color: rgb(131, 0, 191);
286
-
287
- }
288
-
289
- .attribute-title{
290
- font-size: 16px;
291
- font-weight: 600;
292
- /* font-weight: bold; */
293
- text-transform: uppercase;
294
- }
295
-
296
- .attribute-content{
297
- font-size: 14px;
298
- font-weight: 500;
299
- }
300
-
301
- .popover-container {
302
- height: 100%;
303
- width: 100%;
304
- }
305
-
306
- .main {
307
- .el-button.is-round{
308
- border-radius: 4px;
309
- padding: 9px 20px 10px 20px;
310
- display: flex;
311
- height: 36px;
312
- }
313
- }
314
-
315
- .button {
316
- margin-left: 0px !important;
317
- margin-top: 0px !important;
318
- font-size: 14px !important;
319
- background-color: $app-primary-color;
320
- color: #fff;
321
- &+.button {
322
- margin-top: 10px !important;
323
- }
324
- &:hover {
325
- color: #fff !important;
326
- background: #ac76c5 !important;
327
- border: 1px solid #ac76c5 !important;
328
- }
329
- }
330
-
331
- .tooltip-container{
332
- &::after, &::before {
333
- content: '';
334
- display: block;
335
- position: absolute;
336
- width: 0;
337
- height: 0;
338
- border-style: solid;
339
- flex-shrink: 0;
340
- }
341
- }
342
-
343
- .mapboxgl-popup-anchor-bottom {
344
- .tooltip-container {
345
- &::after, &::before {
346
- top: 100%;
347
- border-width: 12px;
348
- }
349
- &::after {
350
- margin-top:-1px;
351
- border-color: rgb(255, 255, 255) transparent transparent transparent ;
352
- }
353
- &::before {
354
- margin: 0 auto;
355
- border-color: $app-primary-color transparent transparent transparent ;
356
- }
357
- }
358
- }
359
-
360
- .mapboxgl-popup-anchor-top {
361
- .tooltip-container {
362
- &::after, &::before {
363
- top: -24px;
364
- border-width: 12px;
365
- }
366
- &::after {
367
- margin-top: 1px;
368
- border-color: transparent transparent rgb(255, 255, 255) transparent ;
369
- }
370
- &::before {
371
- margin: 0 auto;
372
- border-color: transparent transparent $app-primary-color transparent ;
373
- }
374
- }
375
- }
376
-
377
- .content-container {
378
- overflow-y: scroll;
379
- scrollbar-width: thin !important;
380
- max-height: 240px;
381
- }
382
-
383
- .scrollbar::-webkit-scrollbar-track {
384
- border-radius: 10px;
385
- background-color: #f5f5f5;
386
- }
387
-
388
- .scrollbar::-webkit-scrollbar {
389
- width: 12px;
390
- right: -12px;
391
- background-color: #f5f5f5;
392
- }
393
-
394
- .scrollbar::-webkit-scrollbar-thumb {
395
- border-radius: 4px;
396
- box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.06);
397
- background-color: #979797;
398
- }
399
-
400
-
401
- /* Fix for chrome bug where under triangle pops up above one on top of it */
402
- .selector:not(*:root), .tooltip-container::after{
403
- top: 99.4%;
404
- }
405
- </style>
1
+ <template>
2
+ <div class="tooltip-container">
3
+ <el-main v-if="entry" class="main" v-loading="loading">
4
+ <div class="block" v-if="entry.title">
5
+ <span class="title">{{capitalise(entry.title)}}</span>
6
+ </div>
7
+ <div class="block" v-else>
8
+ <span class="title">{{entry.featureId}}</span>
9
+ </div>
10
+ <div class="content-container scrollbar">
11
+ {{entry.paths}}
12
+ <div v-if="entry.origins && entry.origins.length > 0" class="block">
13
+ <div>
14
+ <span class="attribute-title">Origin</span>
15
+ <el-popover
16
+ width="250"
17
+ trigger="hover"
18
+ :append-to-body=false
19
+ popper-class="popover-origin-help"
20
+ >
21
+ <i slot="reference" class="el-icon-warning-outline info"/>
22
+ <span style="word-break: keep-all;">
23
+ <i>Origin</i> {{originDescription}}
24
+ </span>
25
+ </el-popover>
26
+ </div>
27
+ <div v-for="(origin, i) in entry.origins" class="attribute-content" :key="origin">
28
+ {{ capitalise(origin) }}
29
+ <div v-if="i != entry.origins.length - 1" class="seperator"></div>
30
+ </div>
31
+ <el-button v-show="entry.originsWithDatasets && entry.originsWithDatasets.length > 0" class="button" @click="openDendrites">
32
+ Explore origin data
33
+ </el-button>
34
+ </div>
35
+ <div v-if="entry.components && entry.components.length > 0" class="block">
36
+ <div class="attribute-title">Components</div>
37
+ <div v-for="(component, i) in entry.components" class="attribute-content" :key="component">
38
+ {{ capitalise(component) }}
39
+ <div v-if="i != entry.components.length - 1" class="seperator"></div>
40
+ </div>
41
+ </div>
42
+ <div v-if="entry.destinations && entry.destinations.length > 0" class="block">
43
+ <div>
44
+ <span class="attribute-title">Destination</span>
45
+ <el-popover
46
+ width="250"
47
+ trigger="hover"
48
+ :append-to-body=false
49
+ popper-class="popover-origin-help"
50
+ >
51
+ <i slot="reference" class="el-icon-warning-outline info"/>
52
+ <span style="word-break: keep-all;">
53
+ <i>Destination</i> is where the axons terminate
54
+ </span>
55
+ </el-popover>
56
+ </div>
57
+ <div v-for="(destination, i) in entry.destinations" class="attribute-content" :key="destination">
58
+ {{ capitalise(destination) }}
59
+ <div v-if="i != entry.destinations.length - 1" class="seperator"></div>
60
+ </div>
61
+ <el-button v-show="entry.destinationsWithDatasets && entry.destinationsWithDatasets.length > 0" class="button" @click="openAxons">
62
+ Explore destination data
63
+ </el-button>
64
+ </div>
65
+
66
+ <el-button v-show="entry.componentsWithDatasets && entry.componentsWithDatasets.length > 0" class="button" @click="openAll">
67
+ Search for data on components
68
+ </el-button>
69
+
70
+ <external-resource-card :resources="resources"></external-resource-card>
71
+
72
+ </div>
73
+ </el-main>
74
+ </div>
75
+ </template>
76
+
77
+
78
+ <script>
79
+ /* eslint-disable no-alert, no-console */
80
+ import Vue from "vue";
81
+ import {
82
+ Button,
83
+ Container,
84
+ Header,
85
+ Icon,
86
+ Main
87
+ } from "element-ui";
88
+ import lang from "element-ui/lib/locale/lang/en";
89
+ import locale from "element-ui/lib/locale";
90
+ locale.use(lang);
91
+ Vue.use(Button);
92
+ Vue.use(Container);
93
+ Vue.use(Header);
94
+ Vue.use(Icon);
95
+ Vue.use(Main);
96
+
97
+ import EventBus from './EventBus'
98
+ import ExternalResourceCard from './ExternalResourceCard.vue';
99
+
100
+ const titleCase = (str) => {
101
+ return str.replace(/\w\S*/g, (t) => { return t.charAt(0).toUpperCase() + t.substr(1).toLowerCase() });
102
+ }
103
+
104
+ const capitalise = function(str){
105
+ if (str)
106
+ return str.charAt(0).toUpperCase() + str.slice(1)
107
+ return ""
108
+ }
109
+
110
+ export default {
111
+ components: { ExternalResourceCard },
112
+ name: "Tooltip",
113
+ props: {
114
+ visible: {
115
+ type: Boolean,
116
+ default: false
117
+ },
118
+ entry: {
119
+ type: Object,
120
+ default: () => ({
121
+ destinations: [],
122
+ origins: [],
123
+ components: [],
124
+ destinationsWithDatasets: [],
125
+ originsWithDatasets: [],
126
+ componentsWithDatasets: [],
127
+ resource: undefined
128
+ })
129
+ },
130
+ },
131
+ data: function() {
132
+ return {
133
+ controller: undefined,
134
+ activeSpecies: undefined,
135
+ appendToBody: false,
136
+ pubmedSearchUrl: '',
137
+ loading: false,
138
+ showToolip: false,
139
+ destinations: [],
140
+ origins: [],
141
+ components: [],
142
+ destinationsWithDatasets: [],
143
+ originsWithDatasets: [],
144
+ originDescriptions: {
145
+ 'motor': 'is the location of the initial cell body of the circuit',
146
+ 'sensory': 'is the location of the initial cell body in the PNS circuit'
147
+ },
148
+ componentsWithDatasets: [],
149
+ uberons: [{id: undefined, name: undefined}]
150
+ };
151
+ },
152
+ computed: {
153
+ resources: function(){
154
+ let resources = []
155
+ if(this.entry && this.entry.hyperlinks){
156
+ resources = this.entry.hyperlinks
157
+ }
158
+ return resources
159
+ },
160
+ originDescription: function(){
161
+ if(this.entry && this.entry.title && this.entry.title.toLowerCase().includes('motor')){
162
+ return this.originDescriptions.motor
163
+ } else {
164
+ return this.originDescriptions.sensory
165
+ }
166
+ }
167
+ },
168
+ methods: {
169
+ resourceSelected: function(action) {
170
+ this.$emit("resource-selected", action);
171
+ },
172
+ titleCase: function(title){
173
+ return titleCase(title)
174
+ },
175
+ capitalise: function(text){
176
+ return capitalise(text)
177
+ },
178
+ onClose: function() {
179
+ this.$emit("onClose")
180
+ },
181
+ openUrl: function(url){
182
+ window.open(url, '_blank')
183
+ },
184
+ openAll: function(){
185
+ EventBus.$emit('onActionClick', {type:'Facets', labels: this.componentsWithDatasets.map(a=>a.name)})
186
+ },
187
+ openAxons: function(){
188
+ EventBus.$emit('onActionClick', {type:'Facets', labels: this.destinationsWithDatasets.map(a=>a.name)})
189
+ },
190
+ openDendrites: function(){
191
+ EventBus.$emit('onActionClick', {type:'Facets', labels: this.originsWithDatasets.map(a=>a.name)})
192
+ },
193
+ pubmedSearchUrlUpdate: function (val){
194
+ this.pubmedSearchUrl = val
195
+ },
196
+ }
197
+ };
198
+ </script>
199
+
200
+ <style scoped lang="scss">
201
+ @import "~element-ui/packages/theme-chalk/src/button";
202
+ @import "~element-ui/packages/theme-chalk/src/container";
203
+ @import "~element-ui/packages/theme-chalk/src/header";
204
+ @import "~element-ui/packages/theme-chalk/src/main";
205
+
206
+ .tooltip-container {
207
+ text-align:justify;
208
+ border-radius: 4px;
209
+ box-shadow: 0 1px 2px rgba(0,0,0,.1);
210
+ pointer-events: auto;
211
+ background: #fff;
212
+ border: 1px solid $app-primary-color;
213
+ display: flex;
214
+ justify-content: center;
215
+ align-items: center;
216
+ }
217
+
218
+ .display {
219
+ width: 44px;
220
+ word-break: normal;
221
+ }
222
+
223
+ .title {
224
+ text-align: left;
225
+ width: 16em;
226
+ line-height: 1.5em !important;
227
+ font-size: 1em;
228
+ font-family: Helvetica;
229
+ font-weight: 500;
230
+ /* font-weight: bold; */
231
+ padding-bottom: 8px;
232
+ }
233
+
234
+ .block {
235
+ margin-bottom: 1.5em;
236
+ }
237
+
238
+ .pub {
239
+ width: 16rem;
240
+ }
241
+
242
+ .icon {
243
+ right: 0px;
244
+ position: absolute;
245
+ top: 10px;
246
+ }
247
+
248
+ .icon:hover {
249
+ cursor: pointer;
250
+ }
251
+
252
+ .popover-origin-help {
253
+ text-transform: none !important; // need to overide the tooltip text transform
254
+ }
255
+
256
+ .info{
257
+ transform: rotate(180deg);
258
+ color: #8300bf;
259
+ margin-left: 8px;
260
+ }
261
+
262
+ .seperator {
263
+ width:90%;
264
+ height:0.5px;
265
+ background-color:#bfbec2;
266
+ }
267
+
268
+ .main {
269
+ font-size: 14px;
270
+ text-align: left;
271
+ line-height: 1.5em;
272
+ font-family: Helvetica;
273
+ font-weight: 400;
274
+ /* outline: thin red solid; */
275
+ padding: 1em !important;
276
+ overflow: hidden;
277
+ min-width: 16rem;
278
+ }
279
+
280
+ .title{
281
+ font-size: 18px;
282
+ font-weight: 500;
283
+ font-weight: bold;
284
+ padding-bottom: 8px;
285
+ color: rgb(131, 0, 191);
286
+
287
+ }
288
+
289
+ .attribute-title{
290
+ font-size: 16px;
291
+ font-weight: 600;
292
+ /* font-weight: bold; */
293
+ text-transform: uppercase;
294
+ }
295
+
296
+ .attribute-content{
297
+ font-size: 14px;
298
+ font-weight: 500;
299
+ }
300
+
301
+ .popover-container {
302
+ height: 100%;
303
+ width: 100%;
304
+ }
305
+
306
+ .main {
307
+ .el-button.is-round{
308
+ border-radius: 4px;
309
+ padding: 9px 20px 10px 20px;
310
+ display: flex;
311
+ height: 36px;
312
+ }
313
+ }
314
+
315
+ .button {
316
+ margin-left: 0px !important;
317
+ margin-top: 0px !important;
318
+ font-size: 14px !important;
319
+ background-color: $app-primary-color;
320
+ color: #fff;
321
+ &+.button {
322
+ margin-top: 10px !important;
323
+ }
324
+ &:hover {
325
+ color: #fff !important;
326
+ background: #ac76c5 !important;
327
+ border: 1px solid #ac76c5 !important;
328
+ }
329
+ }
330
+
331
+ .tooltip-container{
332
+ &::after, &::before {
333
+ content: '';
334
+ display: block;
335
+ position: absolute;
336
+ width: 0;
337
+ height: 0;
338
+ border-style: solid;
339
+ flex-shrink: 0;
340
+ }
341
+ }
342
+
343
+ .mapboxgl-popup-anchor-bottom {
344
+ .tooltip-container {
345
+ &::after, &::before {
346
+ top: 100%;
347
+ border-width: 12px;
348
+ }
349
+ &::after {
350
+ margin-top:-1px;
351
+ border-color: rgb(255, 255, 255) transparent transparent transparent ;
352
+ }
353
+ &::before {
354
+ margin: 0 auto;
355
+ border-color: $app-primary-color transparent transparent transparent ;
356
+ }
357
+ }
358
+ }
359
+
360
+ .mapboxgl-popup-anchor-top {
361
+ .tooltip-container {
362
+ &::after, &::before {
363
+ top: -24px;
364
+ border-width: 12px;
365
+ }
366
+ &::after {
367
+ margin-top: 1px;
368
+ border-color: transparent transparent rgb(255, 255, 255) transparent ;
369
+ }
370
+ &::before {
371
+ margin: 0 auto;
372
+ border-color: transparent transparent $app-primary-color transparent ;
373
+ }
374
+ }
375
+ }
376
+
377
+ .content-container {
378
+ overflow-y: scroll;
379
+ scrollbar-width: thin !important;
380
+ max-height: 240px;
381
+ }
382
+
383
+ .scrollbar::-webkit-scrollbar-track {
384
+ border-radius: 10px;
385
+ background-color: #f5f5f5;
386
+ }
387
+
388
+ .scrollbar::-webkit-scrollbar {
389
+ width: 12px;
390
+ right: -12px;
391
+ background-color: #f5f5f5;
392
+ }
393
+
394
+ .scrollbar::-webkit-scrollbar-thumb {
395
+ border-radius: 4px;
396
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.06);
397
+ background-color: #979797;
398
+ }
399
+
400
+
401
+ /* Fix for chrome bug where under triangle pops up above one on top of it */
402
+ .selector:not(*:root), .tooltip-container::after{
403
+ top: 99.4%;
404
+ }
405
+ </style>