@fmidev/smartmet-alert-client 4.2.7 → 4.4.19

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.
Files changed (54) hide show
  1. package/dist/index.dark.html +1 -1
  2. package/dist/index.en.html +1 -1
  3. package/dist/index.fi.html +1 -1
  4. package/dist/index.js +20 -20
  5. package/dist/index.mjs +20 -20
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/index.relative.html +1 -1
  8. package/dist/index.start.html +1 -1
  9. package/dist/index.sv.html +1 -1
  10. package/package.json +2 -2
  11. package/public/index.dark.html +1 -1
  12. package/public/index.en.html +1 -1
  13. package/public/index.fi.html +1 -1
  14. package/public/index.relative.html +1 -1
  15. package/public/index.start.html +1 -1
  16. package/public/index.sv.html +1 -1
  17. package/src/App.vue +32 -0
  18. package/src/assets/img/ui/arrow-down.svg +1 -4
  19. package/src/assets/img/ui/arrow-up.svg +1 -4
  20. package/src/assets/img/ui/toggle-selected.svg +13 -0
  21. package/src/assets/img/ui/toggle-unselected.svg +13 -0
  22. package/src/assets/img/warning/several.svg +1 -1
  23. package/src/components/AlertClient.vue +1 -1
  24. package/src/components/DayLarge.vue +34 -31
  25. package/src/components/DaySmall.vue +1 -1
  26. package/src/components/Days.vue +1 -1
  27. package/src/components/DescriptionWarning.vue +12 -1
  28. package/src/components/GrayScaleToggle.vue +36 -34
  29. package/src/components/Legend.vue +21 -13
  30. package/src/components/MapLarge.vue +17 -11
  31. package/src/components/MapSmall.vue +6 -3
  32. package/src/components/Region.vue +146 -52
  33. package/src/components/RegionWarning.vue +30 -9
  34. package/src/components/Regions.vue +21 -22
  35. package/src/components/Warning.vue +43 -47
  36. package/src/components/Warnings.vue +33 -10
  37. package/src/locales/en.json +21 -4
  38. package/src/locales/fi.json +23 -6
  39. package/src/locales/sv.json +20 -3
  40. package/src/mixins/config.js +2 -2
  41. package/src/mixins/utils.js +20 -3
  42. package/src/scss/backgrounds.scss +2 -0
  43. package/src/scss/colors.scss +5 -3
  44. package/src/scss/constants.scss +1 -1
  45. package/src/scss/themes/dark-gray.scss +3 -3
  46. package/src/scss/themes/dark.scss +1 -1
  47. package/src/scss/themes/light-gray.scss +5 -5
  48. package/src/scss/themes/light.scss +3 -3
  49. package/src/scss/warningImages.scss +1 -2
  50. package/src/assets/img/ui/toggle-selected-blue.svg +0 -4
  51. package/src/assets/img/ui/toggle-selected-dark.svg +0 -4
  52. package/src/assets/img/ui/toggle-selected-light.svg +0 -4
  53. package/src/assets/img/ui/toggle-unselected-dark.svg +0 -4
  54. package/src/assets/img/ui/toggle-unselected-light.svg +0 -4
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  </head>
10
10
 
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  </head>
10
10
 
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  </head>
10
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fmidev/smartmet-alert-client",
3
- "version": "4.2.7",
3
+ "version": "4.4.19",
4
4
  "description": "Web application for viewing weather and flood alerts",
5
5
  "author": "Finnish Meteorological Institute",
6
6
  "license": "MIT",
@@ -22,7 +22,7 @@
22
22
  "bootstrap": "5.3.3",
23
23
  "bootstrap-vue-next": "0.14.10",
24
24
  "cross-fetch": "3.1.8",
25
- "dompurify": "3.2.3",
25
+ "dompurify": "3.2.7",
26
26
  "flatbush": "3.2.1",
27
27
  "focus-visible": "5.2.1",
28
28
  "he": "1.2.0",
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  <style>
10
10
  body {
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  </head>
10
10
 
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  </head>
10
10
 
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  </head>
10
10
 
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  </head>
10
10
 
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta
6
6
  name="viewport"
7
- content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
7
+ content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0, user-scalable=yes" />
8
8
  <title>SmartMet Alert Client</title>
9
9
  </head>
10
10
 
package/src/App.vue CHANGED
@@ -94,6 +94,10 @@ export default {
94
94
  type: String,
95
95
  default: 'light',
96
96
  },
97
+ fontScale: {
98
+ type: String,
99
+ default: '1',
100
+ },
97
101
  sleep: {
98
102
  type: String,
99
103
  default: 'true',
@@ -210,6 +214,31 @@ export default {
210
214
  this.warningsData = JSON.parse(this.warnings)
211
215
  }
212
216
  },
217
+ mounted() {
218
+ if (this.fontScale != null && this.fontScale.trim() !== ''
219
+ && Number(this.fontScale) !== 1) {
220
+ const newFontScale = Number(this.fontScale)
221
+ if (!Number.isNaN(newFontScale)) {
222
+ let originalFontSize
223
+ if (
224
+ typeof window !== 'undefined' &&
225
+ typeof document !== 'undefined' &&
226
+ document.documentElement &&
227
+ window.getComputedStyle
228
+ ) {
229
+ const htmlElement = document.documentElement
230
+ const computedStyle = window.getComputedStyle(htmlElement)
231
+ originalFontSize = parseFloat(computedStyle.fontSize)
232
+ }
233
+ if (originalFontSize == null || Number.isNaN(originalFontSize)) {
234
+ originalFontSize = 16 // Fallback
235
+ }
236
+ const scaledFontSize = newFontScale * originalFontSize
237
+ const newFontSize = Math.round(scaledFontSize * 100) / 100
238
+ document.documentElement.style.fontSize = `${newFontSize}px`
239
+ }
240
+ }
241
+ },
213
242
  serverPrefetch() {
214
243
  if (!this.warnings) {
215
244
  return this.fetchWarnings()
@@ -227,6 +256,9 @@ export default {
227
256
  }-theme`
228
257
  },
229
258
  fetchWarnings() {
259
+ if (this.warnings) {
260
+ return
261
+ }
230
262
  this.loading = 1
231
263
  if (this.debugMode.toLowerCase() !== 'false') {
232
264
  console.log(`Updating warnings at ${new Date()}`)
@@ -1,11 +1,8 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <svg width="15px" height="8px" viewBox="0 0 15 8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <!-- Generator: Sketch 3.7.1 (28215) - http://www.bohemiancoding.com/sketch -->
4
3
  <title>arrow-down-symbol</title>
5
- <desc>Created with Sketch.</desc>
6
- <defs></defs>
7
4
  <g id="icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
8
- <g id="Symbols" transform="translate(-732.000000, -738.000000)" stroke="#979797" stroke-width="1.5">
5
+ <g id="Symbols" transform="translate(-732.000000, -738.000000)" stroke="#ffffff" stroke-width="1.5">
9
6
  <g id="arrow-down-symbol" transform="translate(733.000000, 739.000000)">
10
7
  <polyline id="fill-1" transform="translate(6.500000, 3.000000) rotate(-270.000000) translate(-6.500000, -3.000000) " points="3.5 -3.5 9.5 3 3.5 9.5"></polyline>
11
8
  </g>
@@ -1,11 +1,8 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <svg width="15px" height="8px" viewBox="0 0 15 8" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <!-- Generator: Sketch 3.7.1 (28215) - http://www.bohemiancoding.com/sketch -->
4
3
  <title>arrow-up-symbol</title>
5
- <desc>Created with Sketch.</desc>
6
- <defs></defs>
7
4
  <g id="icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
8
- <g id="Symbols" transform="translate(-670.000000, -738.000000)" stroke="#979797" stroke-width="1.5">
5
+ <g id="Symbols" transform="translate(-670.000000, -738.000000)" stroke="#ffffff" stroke-width="1.5">
9
6
  <g id="arrow-up-symbol" transform="translate(671.000000, 739.000000)">
10
7
  <polyline id="fill-1" transform="translate(6.500000, 3.000000) scale(1, -1) rotate(-270.000000) translate(-6.500000, -3.000000) " points="3.5 -3.5 9.5 3 3.5 9.5"></polyline>
11
8
  </g>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="55" height="30" viewBox="0 0 55 30" xmlns="http://www.w3.org/2000/svg">
3
+ <defs>
4
+ <clipPath id="outer-clip">
5
+ <rect x="0" y="5" width="55" height="20" rx="4" ry="4"/>
6
+ </clipPath>
7
+ <clipPath id="inner-clip">
8
+ <path d="M 35 5 L 51 5 A 4 4 0 0 1 55 9 L 55 21 A 4 4 0 0 1 51 25 L 35 25 Z"/>
9
+ </clipPath>
10
+ </defs>
11
+ <rect x="0" y="5" width="55" height="20" rx="4" ry="4" fill="#767676" stroke="#767676" stroke-width="1" clip-path="url(#outer-clip)"/>
12
+ <path d="M 35 5 L 51 5 A 4 4 0 0 1 55 9 L 55 21 A 4 4 0 0 1 51 25 L 35 25 Z" fill="#ffffff" stroke="#767676" stroke-width="1" clip-path="url(#inner-clip)"/>
13
+ </svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg width="55" height="30" viewBox="0 0 55 30" xmlns="http://www.w3.org/2000/svg">
3
+ <defs>
4
+ <clipPath id="outer-clip">
5
+ <rect x="0" y="5" width="55" height="20" rx="4" ry="4"/>
6
+ </clipPath>
7
+ <clipPath id="inner-clip">
8
+ <path d="M 4 5 L 20 5 L 20 25 L 4 25 A 4 4 0 0 1 0 21 L 0 9 A 4 4 0 0 1 4 5 Z"/>
9
+ </clipPath>
10
+ </defs>
11
+ <rect x="0" y="5" width="55" height="20" rx="4" ry="4" fill="#ebebeb" stroke="#767676" stroke-width="1" clip-path="url(#outer-clip)"/>
12
+ <path d="M 4 5 L 20 5 L 20 25 L 4 25 A 4 4 0 0 1 0 21 L 0 9 A 4 4 0 0 1 4 5 Z" fill="#ffffff" stroke="#767676" stroke-width="1" clip-path="url(#inner-clip)"/>
13
+ </svg>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28px" height="28px" viewBox="0 0 28 28" version="1.1">
3
3
  <g id="surface1">
4
- <path style="stroke:rgba(255, 255, 255, 1.0);stroke-width: 2.5px;paint-order: stroke;fill-rule:evenodd;fill:rgb(13.333333%,12.156863%,12.54902%);fill-opacity:1;" d="M 13.605469 18.632812 L 14.984375 18.632812 L 14.984375 14.984375 L 18.632812 14.984375 L 18.632812 13.605469 L 14.984375 13.605469 L 14.984375 9.957031 L 13.605469 9.957031 L 13.605469 13.605469 L 9.957031 13.605469 L 9.957031 14.984375 L 13.605469 14.984375 Z M 13.605469 18.632812 "/>
4
+ <path style="fill:rgb(255, 255, 255, 1.0);fill-opacity:1;" d="M 13.605469 18.632812 L 14.984375 18.632812 L 14.984375 14.984375 L 18.632812 14.984375 L 18.632812 13.605469 L 14.984375 13.605469 L 14.984375 9.957031 L 13.605469 9.957031 L 13.605469 13.605469 L 9.957031 13.605469 L 9.957031 14.984375 L 13.605469 14.984375 Z M 13.605469 18.632812 "/>
5
5
  </g>
6
6
  </svg>
@@ -394,7 +394,7 @@ export default {
394
394
  }
395
395
 
396
396
  div#fmi-warnings {
397
- width: 690px;
397
+ width: 700px;
398
398
  padding: 0;
399
399
  margin-bottom: 20px;
400
400
 
@@ -1,34 +1,36 @@
1
1
  <template>
2
- <div class="map-container">
3
- <div class="warning-map-status" aria-hidden="true">
4
- <p>
5
- <span class="bold-text">{{ warningsTitle }}</span
6
- ><br />
7
- <span v-html="warningsDate"></span>
8
- </p>
9
- <p>
10
- <span class="bold-text">{{ updatedTitle }}</span
11
- ><br />
12
- {{ updatedDate }}<br />
13
- {{ atTime }} {{ updatedTime }}
14
- </p>
2
+ <div>
3
+ <div class="map-container">
4
+ <div class="warning-map-status" aria-hidden="true">
5
+ <p>
6
+ <span class="bold-text">{{ warningsTitle }}</span
7
+ ><br />
8
+ <span v-html="warningsDate"></span>
9
+ </p>
10
+ <p>
11
+ <span class="bold-text">{{ updatedTitle }}</span
12
+ ><br />
13
+ {{ updatedDate }}<br />
14
+ {{ atTime }} {{ updatedTime }}
15
+ </p>
16
+ </div>
17
+ <MapLarge
18
+ :index="index"
19
+ :input="regions"
20
+ :visible-warnings="visibleWarnings"
21
+ :warnings="warnings"
22
+ :geometry-id="geometryId"
23
+ :loading="loading"
24
+ :theme="theme"
25
+ :language="language"
26
+ :spinner-enabled="spinnerEnabled"
27
+ @loaded="onLoaded" />
15
28
  </div>
16
29
  <div class="data-providers noselect" aria-hidden="true">
17
- <span>{{ dataProviderFirst }}</span
18
- ><br />
30
+ <span>{{ dataProviderFirst }}</span>
31
+ <br />
19
32
  <span>{{ dataProviderSecond }}</span>
20
33
  </div>
21
- <MapLarge
22
- :index="index"
23
- :input="regions"
24
- :visible-warnings="visibleWarnings"
25
- :warnings="warnings"
26
- :geometry-id="geometryId"
27
- :loading="loading"
28
- :theme="theme"
29
- :language="language"
30
- :spinner-enabled="spinnerEnabled"
31
- @loaded="onLoaded" />
32
34
  </div>
33
35
  </template>
34
36
 
@@ -187,12 +189,13 @@ div.warning-map-status {
187
189
  }
188
190
 
189
191
  div.data-providers {
190
- position: absolute;
191
- bottom: 4px;
192
- right: 16px;
193
- text-align: left;
194
- z-index: 5;
192
+ position: relative;
193
+ text-align: right;
194
+ z-index: 15;
195
195
  pointer-events: none;
196
+ padding-left: 50%;
197
+ margin-top: -50px;
198
+ margin-right: 15px;
196
199
  }
197
200
 
198
201
  @media screen and (orientation: landscape) {
@@ -217,7 +217,7 @@ div.date-selector-cell {
217
217
  }
218
218
  }
219
219
 
220
- @media (max-width: 575px) {
220
+ @media (width < 576px) {
221
221
  .map-small,
222
222
  .map-container {
223
223
  display: none;
@@ -307,7 +307,7 @@ div#fmi-warnings-date-selector.tabs {
307
307
  }
308
308
  }
309
309
 
310
- @media (max-width: 575px) {
310
+ @media (width < 576px) {
311
311
  :deep(div.fmi-warnings-date-wrapper li.nav-item button.day) {
312
312
  border-bottom: 0;
313
313
  border-radius: 0;
@@ -2,7 +2,9 @@
2
2
  <div class="current-description-row" :class="theme">
3
3
  <div class="current-description-image-cell" aria-hidden="true">
4
4
  <div
5
- :class="`current-description-image warning-image symbol-image transform-rotate-${rotation} level-${input.severity} ${typeClass}`">
5
+ :class="`current-description-image warning-image symbol-image transform-rotate-${rotation} level-${input.severity} ${typeClass}`"
6
+ :aria-label="`${warningLevel} ${warningTitle.toLowerCase()}${warningDetails}`"
7
+ >
6
8
  <span
7
9
  :class="`symbol-text transform-rotate-${invertedRotation} region-warning-symbol-text`"
8
10
  >{{ input.text }}</span
@@ -49,6 +51,15 @@ export default {
49
51
  warningTitle() {
50
52
  return this.t(this.input.type)
51
53
  },
54
+ warningLevel() {
55
+ return this.t(`warningLevel${this.input.severity}`)
56
+ },
57
+ warningDetails() {
58
+ if (this.input.text == null || this.input.direction == null) {
59
+ return ''
60
+ }
61
+ return ` (${this.input.text} m/s ${this.t("fromDirection")} ${this.input.direction + 180}°)`
62
+ },
52
63
  info() {
53
64
  return this.input.info[this.language]
54
65
  },
@@ -8,11 +8,18 @@
8
8
  'focus-ring',
9
9
  grayScale ? 'gray-scale-selected' : 'gray-scale-unselected',
10
10
  ]"
11
+ role="button"
11
12
  tabindex="0"
13
+ :aria-pressed="grayScale ? 'true' : 'false'"
14
+ :aria-label="grayScaleText"
12
15
  @mousedown="preventEvents"
13
16
  @click="toggleGrayScale"
14
17
  @keydown.enter="toggleGrayScale"
15
- @keydown.space="toggleGrayScale" />
18
+ @keydown.space="toggleGrayScale">
19
+ <span>
20
+ {{ toggleText }}
21
+ </span>
22
+ </div>
16
23
  </div>
17
24
  </div>
18
25
  </template>
@@ -48,6 +55,9 @@ export default {
48
55
  grayScaleText() {
49
56
  return this.t('grayScale')
50
57
  },
58
+ toggleText() {
59
+ return this.grayScale ? this.t('toggleOn') : this.t('toggleOff')
60
+ },
51
61
  },
52
62
  methods: {
53
63
  toggleGrayScale(event) {
@@ -89,54 +99,46 @@ div#gray-scale-select-text {
89
99
  padding-right: 5px;
90
100
  vertical-align: middle;
91
101
  line-height: normal;
102
+ word-break: break-word;
103
+ hyphens: auto;
92
104
  }
93
105
 
94
106
  div#gray-scale-select-container {
95
107
  display: table-cell;
96
- width: 30px;
108
+ width: 55px;
97
109
  height: $symbol-list-line-height;
98
110
  vertical-align: middle;
99
111
  }
100
112
 
101
113
  div#gray-scale-select {
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
102
117
  width: 100%;
103
118
  height: $symbol-list-select-height;
104
119
  margin: 0;
105
120
  background-repeat: no-repeat;
106
121
  background-position: center;
107
122
  cursor: pointer;
108
- }
109
-
110
- .light-theme .gray-scale-selected {
111
- background-image: url($ui-image-path + 'toggle-selected-blue' + $image-extension);
112
- }
113
-
114
- .dark-theme .gray-scale-selected {
115
- background-image: url($ui-image-path + 'toggle-selected-light' + $image-extension);
116
- }
117
-
118
- .light-gray-theme .gray-scale-selected {
119
- background-image: url($ui-image-path + 'toggle-selected-dark' + $image-extension);
120
- }
121
-
122
- .dark-gray-theme .gray-scale-selected {
123
- background-image: url($ui-image-path + 'toggle-selected-light' + $image-extension);
124
- }
125
-
126
- .light-theme .gray-scale-unselected {
127
- background-image: url($ui-image-path + 'toggle-unselected-light' + $image-extension);
128
- }
129
-
130
- .dark-theme .gray-scale-unselected {
131
- background-image: url($ui-image-path + 'toggle-unselected-dark' + $image-extension);
132
- }
133
-
134
- .light-gray-theme .gray-scale-unselected {
135
- background-image: url($ui-image-path + 'toggle-unselected-light' + $image-extension);
136
- }
137
-
138
- .dark-gray-theme .gray-scale-unselected {
139
- background-image: url($ui-image-path + 'toggle-unselected-dark' + $image-extension);
123
+ &.gray-scale-selected {
124
+ padding-right: 18px;
125
+ background-image: url($ui-image-path + 'toggle-selected' + $image-extension);
126
+ span {
127
+ color: $toggle-on-text;
128
+ }
129
+ }
130
+ &.gray-scale-unselected {
131
+ padding-left: 18px;
132
+ background-image: url($ui-image-path + 'toggle-unselected' + $image-extension);
133
+ span {
134
+ color: $toggle-off-text;
135
+ }
136
+ }
137
+ span {
138
+ font-family: $symbol-font-family;
139
+ font-size: $font-size;
140
+ forced-color-adjust: none;
141
+ }
140
142
  }
141
143
 
142
144
  @media (max-width: 767px) {
@@ -22,6 +22,7 @@
22
22
  <b-button
23
23
  block
24
24
  :class="['legends-toggle', visible ? '' : 'collapsed']"
25
+ :aria-label="toggleLegendsText"
25
26
  @click="onLegendToggle" />
26
27
  </b-card-header>
27
28
  <b-collapse
@@ -167,25 +168,25 @@ div.symbol-list-header-row {
167
168
  }
168
169
 
169
170
  .legends-panel {
170
- border-radius: 0;
171
171
  margin-left: 0;
172
172
  margin-right: 0;
173
+ border-radius: 0;
173
174
  }
174
175
 
175
176
  .light-theme .legends-panel {
176
- border: 2px solid $light-legend-background-color;
177
+ border: 0.5px solid $light-legend-background-color;
177
178
  }
178
179
 
179
180
  .dark-theme .legends-panel {
180
- border: 2px solid $dark-legend-background-color;
181
+ border: 0.5px solid $dark-legend-background-color;
181
182
  }
182
183
 
183
184
  .light-gray-theme .legends-panel {
184
- border: 2px solid $light-gray-legend-background-color;
185
+ border: 0.5px solid $light-gray-legend-background-color;
185
186
  }
186
187
 
187
188
  .dark-gray-theme .legends-panel {
188
- border: 2px solid $dark-gray-legend-background-color;
189
+ border: 0.5px solid $dark-gray-legend-background-color;
189
190
  }
190
191
 
191
192
  .legends-heading {
@@ -193,7 +194,8 @@ div.symbol-list-header-row {
193
194
  padding: 0 0 0 15px !important;
194
195
  line-height: $current-warning-height;
195
196
  border: none;
196
- border-bottom: 1px solid rgba(0, 0, 0, 0.125);
197
+ border-bottom: 0.5px solid rgba(0, 0, 0, 0.125);
198
+ border-radius: 0 !important;
197
199
  }
198
200
 
199
201
  .light-theme .legends-heading {
@@ -216,6 +218,11 @@ div.symbol-list-header-row {
216
218
  position: absolute;
217
219
  left: 0;
218
220
  right: 38px;
221
+ border-radius: 0;
222
+ display: flex;
223
+ align-items: center;
224
+ justify-content: start;
225
+ height: $current-warning-height;
219
226
  }
220
227
 
221
228
  .light-theme .legends-header {
@@ -237,7 +244,6 @@ div.symbol-list-header-row {
237
244
  .legends-text {
238
245
  display: block;
239
246
  text-align: left;
240
- line-height: $current-warning-height;
241
247
  white-space: nowrap;
242
248
  overflow: hidden;
243
249
  text-overflow: ellipsis;
@@ -260,7 +266,7 @@ div.symbol-list-header-row {
260
266
  background-color: $dark-gray-legend-heading-background-color;
261
267
  }
262
268
 
263
- .legends-toggle {
269
+ button.legends-toggle {
264
270
  position: relative;
265
271
  height: $current-warning-height;
266
272
  width: $current-warning-height;
@@ -268,7 +274,7 @@ div.symbol-list-header-row {
268
274
  background-image: url($ui-image-path + 'arrow-up.svg');
269
275
  background-repeat: no-repeat;
270
276
  background-position: center;
271
- border-radius: 0;
277
+ border-radius: 0 !important;
272
278
  border-style: none;
273
279
  float: right;
274
280
  padding: $image-padding;
@@ -276,6 +282,7 @@ div.symbol-list-header-row {
276
282
 
277
283
  &.collapsed {
278
284
  background-image: url($ui-image-path + 'arrow-down.svg');
285
+ border-radius: 0 3px 3px 0;
279
286
  }
280
287
  }
281
288
 
@@ -345,26 +352,27 @@ div.symbol-list-header-row {
345
352
 
346
353
  .legends-container {
347
354
  padding: 15px;
355
+ border-radius: 0;
348
356
  }
349
357
 
350
358
  .light-theme .legends-container {
351
359
  background-color: $light-legend-container-background-color;
352
- border-top: 2px solid $light-legend-background-color;
360
+ border-top: 0.5px solid $light-legend-background-color;
353
361
  }
354
362
 
355
363
  .dark-theme .legends-container {
356
364
  background-color: $dark-legend-container-background-color;
357
- border-top: 2px solid $dark-legend-background-color;
365
+ border-top: 0.5px solid $dark-legend-background-color;
358
366
  }
359
367
 
360
368
  .light-gray-theme .legends-container {
361
369
  background-color: $light-gray-legend-container-background-color;
362
- border-top: 2px solid $light-gray-legend-background-color;
370
+ border-top: 0.5px solid $light-gray-legend-background-color;
363
371
  }
364
372
 
365
373
  .dark-gray-theme .legends-container {
366
374
  background-color: $dark-gray-legend-container-background-color;
367
- border-top: 2px solid $dark-gray-legend-background-color;
375
+ border-top: 0.5px solid $dark-gray-legend-background-color;
368
376
  }
369
377
 
370
378
  div#legends-collapse div.card-body {