@3cr/viewer-browser 0.0.61 → 0.0.86

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 (59) hide show
  1. package/components.d.ts +0 -1
  2. package/coverage/3cr-viewer-browser/index.html +5 -5
  3. package/coverage/3cr-viewer-browser/index.ts.html +14 -26
  4. package/coverage/3cr-viewer-browser/src/App.vue.html +51 -48
  5. package/coverage/3cr-viewer-browser/src/components/WebGL3DR.vue.html +1 -1
  6. package/coverage/3cr-viewer-browser/src/components/icons/index.html +1 -1
  7. package/coverage/3cr-viewer-browser/src/components/icons/liver.vue.html +1 -1
  8. package/coverage/3cr-viewer-browser/src/components/index.html +1 -1
  9. package/coverage/3cr-viewer-browser/src/components/loading/LoadingSpinner.vue.html +82 -16
  10. package/coverage/3cr-viewer-browser/src/components/loading/index.html +5 -5
  11. package/coverage/3cr-viewer-browser/src/components/modal/MftpWebGL3DRModal.vue.html +238 -1123
  12. package/coverage/3cr-viewer-browser/src/components/modal/index.html +19 -19
  13. package/coverage/3cr-viewer-browser/src/components/selectors/ValueSelector.vue.html +47 -20
  14. package/coverage/3cr-viewer-browser/src/components/selectors/index.html +7 -7
  15. package/coverage/3cr-viewer-browser/src/components/sliders/DoubleSliderSelector.vue.html +62 -20
  16. package/coverage/3cr-viewer-browser/src/components/sliders/VerticalSliderSelector.vue.html +16 -7
  17. package/coverage/3cr-viewer-browser/src/components/sliders/index.html +10 -10
  18. package/coverage/3cr-viewer-browser/src/dataLayer/iconData.ts.html +118 -0
  19. package/coverage/3cr-viewer-browser/src/dataLayer/index.html +146 -0
  20. package/coverage/3cr-viewer-browser/src/dataLayer/payloadHandler.ts.html +352 -0
  21. package/coverage/3cr-viewer-browser/src/dataLayer/scanState.ts.html +628 -0
  22. package/coverage/3cr-viewer-browser/src/helpers/index.html +1 -1
  23. package/coverage/3cr-viewer-browser/src/helpers/layoutOverlayStyle.ts.html +1 -1
  24. package/coverage/3cr-viewer-browser/src/helpers/modelHelper.ts.html +105 -105
  25. package/coverage/3cr-viewer-browser/src/helpers/utils.ts.html +3 -3
  26. package/coverage/3cr-viewer-browser/src/index.html +5 -5
  27. package/coverage/3cr-viewer-browser/src/main.ts.html +1 -1
  28. package/coverage/3cr-viewer-browser/src/models/LoadViewerOptions.ts.html +166 -0
  29. package/coverage/3cr-viewer-browser/src/models/index.html +116 -0
  30. package/coverage/3cr-viewer-browser/src/notifications/index.html +116 -0
  31. package/coverage/3cr-viewer-browser/src/notifications/notification.ts.html +229 -0
  32. package/coverage/3cr-viewer-browser/src/plugins/index.html +5 -5
  33. package/coverage/3cr-viewer-browser/src/plugins/index.ts.html +14 -8
  34. package/coverage/3cr-viewer-browser/src/plugins/vuetify.ts.html +1 -1
  35. package/coverage/index.html +78 -33
  36. package/dist/Viewer3CR.js +12 -12
  37. package/dist/Viewer3CR.mjs +10004 -9916
  38. package/dist/Viewer3CR.umd.js +12 -12
  39. package/index.ts +7 -42
  40. package/package.json +2 -1
  41. package/src/App.vue +6 -2
  42. package/src/components/modal/MftpWebGL3DRModal.vue +137 -452
  43. package/src/components/modal/__tests__/mftp-webgl-3dr-modal.spec.ts +114 -83
  44. package/src/components/selectors/ValueSelector.vue +4 -0
  45. package/src/components/selectors/__tests__/value-selector.spec.ts +18 -0
  46. package/src/components/sliders/DoubleSliderSelector.vue +10 -4
  47. package/src/components/sliders/__tests__/double-slider-selector.spec.ts +32 -0
  48. package/src/dataLayer/__tests__/payload-handler.spec.ts +98 -0
  49. package/src/dataLayer/iconData.ts +11 -0
  50. package/src/dataLayer/payloadHandler.ts +89 -0
  51. package/src/dataLayer/scanState.ts +181 -0
  52. package/src/demo/DemoPatientModal.vue +59 -0
  53. package/src/demo/options.ts +93 -0
  54. package/src/models/Callbacks.ts +2 -0
  55. package/src/models/LoadViewerOptions.ts +27 -0
  56. package/src/models/LoadViewerPayload.ts +8 -0
  57. package/src/notifications/notification.ts +48 -0
  58. package/vitest.config.mts +1 -0
  59. /package/src/{components/modal → demo}/DemoModal.vue +0 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.91% </span>
26
+ <span class="strong">99.9% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>1292/1347</span>
28
+ <span class='fraction'>1051/1052</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">99.36% </span>
33
+ <span class="strong">98.82% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>156/157</span>
35
+ <span class='fraction'>84/85</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">97.87% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>46/47</span>
42
+ <span class='fraction'>47/47</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.91% </span>
47
+ <span class="strong">99.9% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>1292/1347</span>
49
+ <span class='fraction'>1051/1052</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="MftpWebGL3DRModal.vue"><a href="MftpWebGL3DRModal.vue.html">MftpWebGL3DRModal.vue</a></td>
83
- <td data-value="95.91" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
83
+ <td data-value="99.9" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 99%"></div><div class="cover-empty" style="width: 1%"></div></div>
85
85
  </td>
86
- <td data-value="95.91" class="pct high">95.91%</td>
87
- <td data-value="1347" class="abs high">1292/1347</td>
88
- <td data-value="99.36" class="pct high">99.36%</td>
89
- <td data-value="157" class="abs high">156/157</td>
90
- <td data-value="97.87" class="pct high">97.87%</td>
91
- <td data-value="47" class="abs high">46/47</td>
92
- <td data-value="95.91" class="pct high">95.91%</td>
93
- <td data-value="1347" class="abs high">1292/1347</td>
86
+ <td data-value="99.9" class="pct high">99.9%</td>
87
+ <td data-value="1052" class="abs high">1051/1052</td>
88
+ <td data-value="98.82" class="pct high">98.82%</td>
89
+ <td data-value="85" class="abs high">84/85</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="47" class="abs high">47/47</td>
92
+ <td data-value="99.9" class="pct high">99.9%</td>
93
+ <td data-value="1052" class="abs high">1051/1052</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2024-04-09T22:46:57.006Z
104
+ at 2024-04-10T05:32:35.256Z
105
105
  </div>
106
106
  <script src="../../../../prettify.js"></script>
107
107
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>82/82</span>
28
+ <span class='fraction'>91/91</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>4/4</span>
35
+ <span class='fraction'>6/6</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>82/82</span>
49
+ <span class='fraction'>91/91</span>
50
50
  </div>
51
51
 
52
52
 
@@ -145,7 +145,16 @@
145
145
  <a name='L80'></a><a href='#L80'>80</a>
146
146
  <a name='L81'></a><a href='#L81'>81</a>
147
147
  <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
149
158
  <span class="cline-any cline-yes">1x</span>
150
159
  <span class="cline-any cline-yes">1x</span>
151
160
  <span class="cline-any cline-yes">1x</span>
@@ -173,9 +182,18 @@
173
182
  <span class="cline-any cline-yes">1x</span>
174
183
  <span class="cline-any cline-yes">1x</span>
175
184
  <span class="cline-any cline-yes">1x</span>
185
+ <span class="cline-any cline-yes">7x</span>
186
+ <span class="cline-any cline-yes">7x</span>
187
+ <span class="cline-any cline-yes">1x</span>
188
+ <span class="cline-any cline-yes">3x</span>
189
+ <span class="cline-any cline-yes">3x</span>
190
+ <span class="cline-any cline-yes">3x</span>
191
+ <span class="cline-any cline-yes">3x</span>
192
+ <span class="cline-any cline-yes">3x</span>
193
+ <span class="cline-any cline-yes">1x</span>
194
+ <span class="cline-any cline-yes">1x</span>
195
+ <span class="cline-any cline-yes">1x</span>
176
196
  <span class="cline-any cline-yes">1x</span>
177
- <span class="cline-any cline-yes">5x</span>
178
- <span class="cline-any cline-yes">5x</span>
179
197
  <span class="cline-any cline-yes">1x</span>
180
198
  <span class="cline-any cline-yes">1x</span>
181
199
  <span class="cline-any cline-yes">1x</span>
@@ -228,9 +246,8 @@
228
246
  <span class="cline-any cline-yes">1x</span>
229
247
  <span class="cline-any cline-yes">1x</span>
230
248
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;script setup lang="ts"&gt;
231
- import {computed, defineEmits} from 'vue';
232
- &nbsp;
233
- &nbsp;
249
+ import { computed, defineEmits } from "vue";
250
+ import { toNumber } from "@/helpers/utils";
234
251
  &nbsp;
235
252
  export interface Props {
236
253
  value: number;
@@ -238,8 +255,8 @@ export interface Props {
238
255
  label?: string;
239
256
  min?: number;
240
257
  max?: number;
241
- step?: number,
242
- prepend?: string,
258
+ step?: number;
259
+ prepend?: string;
243
260
  }
244
261
  &nbsp;
245
262
  const props = withDefaults(defineProps&lt;Props&gt;(), {
@@ -249,19 +266,26 @@ const props = withDefaults(defineProps&lt;Props&gt;(), {
249
266
  min: -99999,
250
267
  max: 99999,
251
268
  step: 1,
252
- prepend: '',
269
+ prepend: "",
253
270
  });
254
271
  const emit = defineEmits&lt;{
255
- 'update:value': [number];
272
+ "update:value": [number];
256
273
  }&gt;();
257
274
  const sliderValue = computed({
258
275
  get() {
259
- return props.value
276
+ return Math.floor(props.value);
260
277
  },
261
278
  set(value: number) {
262
- emit('update:value', value);
263
- }
264
- })
279
+ let val = value;
280
+ if (value &gt; props.max) val = props.max;
281
+ if (value &lt; props.min) val = props.min;
282
+ emit("update:value", Math.floor(val));
283
+ },
284
+ });
285
+ &nbsp;
286
+ defineExpose({
287
+ sliderValue,
288
+ });
265
289
  &lt;/script&gt;
266
290
  &nbsp;
267
291
  &lt;template&gt;
@@ -274,7 +298,8 @@ const sliderValue = computed({
274
298
  &lt;/v-col&gt;
275
299
  &lt;v-col cols="6"&gt;
276
300
  &lt;v-text-field
277
- v-model="sliderValue"
301
+ :model-value="sliderValue"
302
+ @update:modelValue="sliderValue = toNumber($event)"
278
303
  outlined
279
304
  dense
280
305
  class="mt-0 pt-0"
@@ -294,7 +319,9 @@ const sliderValue = computed({
294
319
  .v-text-field.v-text-field--enclosed:not(.v-text-field--rounded)
295
320
  &gt; .v-input__control
296
321
  &gt; .v-input__slot,
297
- .single-slider-selector .v-text-field.v-text-field--enclosed .v-text-field__details {
322
+ .single-slider-selector
323
+ .v-text-field.v-text-field--enclosed
324
+ .v-text-field__details {
298
325
  padding: 0px 8px !important;
299
326
  }
300
327
  &nbsp;
@@ -316,7 +343,7 @@ const sliderValue = computed({
316
343
  <div class='footer quiet pad2 space-top1 center small'>
317
344
  Code coverage generated by
318
345
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
319
- at 2024-04-09T22:46:57.006Z
346
+ at 2024-04-10T05:32:35.256Z
320
347
  </div>
321
348
  <script src="../../../../prettify.js"></script>
322
349
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>82/82</span>
28
+ <span class='fraction'>91/91</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>4/4</span>
35
+ <span class='fraction'>6/6</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>82/82</span>
49
+ <span class='fraction'>91/91</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="82" class="abs high">82/82</td>
87
+ <td data-value="91" class="abs high">91/91</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
- <td data-value="4" class="abs high">4/4</td>
89
+ <td data-value="6" class="abs high">6/6</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="3" class="abs high">3/3</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
- <td data-value="82" class="abs high">82/82</td>
93
+ <td data-value="91" class="abs high">91/91</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2024-04-09T22:46:57.006Z
104
+ at 2024-04-10T05:32:35.256Z
105
105
  </div>
106
106
  <script src="../../../../prettify.js"></script>
107
107
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>120/120</span>
28
+ <span class='fraction'>134/134</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>12/12</span>
35
+ <span class='fraction'>16/16</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>120/120</span>
49
+ <span class='fraction'>134/134</span>
50
50
  </div>
51
51
 
52
52
 
@@ -183,7 +183,21 @@
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
184
  <a name='L119'></a><a href='#L119'>119</a>
185
185
  <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
187
201
  <span class="cline-any cline-yes">1x</span>
188
202
  <span class="cline-any cline-yes">1x</span>
189
203
  <span class="cline-any cline-yes">1x</span>
@@ -215,25 +229,35 @@
215
229
  <span class="cline-any cline-yes">1x</span>
216
230
  <span class="cline-any cline-yes">1x</span>
217
231
  <span class="cline-any cline-yes">1x</span>
218
- <span class="cline-any cline-yes">10x</span>
219
- <span class="cline-any cline-yes">10x</span>
220
232
  <span class="cline-any cline-yes">1x</span>
233
+ <span class="cline-any cline-yes">14x</span>
234
+ <span class="cline-any cline-yes">14x</span>
221
235
  <span class="cline-any cline-yes">1x</span>
236
+ <span class="cline-any cline-yes">7x</span>
237
+ <span class="cline-any cline-yes">7x</span>
238
+ <span class="cline-any cline-yes">7x</span>
239
+ <span class="cline-any cline-yes">7x</span>
240
+ <span class="cline-any cline-yes">7x</span>
241
+ <span class="cline-any cline-yes">7x</span>
242
+ <span class="cline-any cline-yes">7x</span>
243
+ <span class="cline-any cline-yes">7x</span>
244
+ <span class="cline-any cline-yes">7x</span>
245
+ <span class="cline-any cline-yes">7x</span>
222
246
  <span class="cline-any cline-yes">1x</span>
223
247
  <span class="cline-any cline-yes">1x</span>
224
248
  <span class="cline-any cline-yes">1x</span>
225
249
  <span class="cline-any cline-yes">1x</span>
250
+ <span class="cline-any cline-yes">3x</span>
251
+ <span class="cline-any cline-yes">2x</span>
252
+ <span class="cline-any cline-yes">2x</span>
253
+ <span class="cline-any cline-yes">2x</span>
226
254
  <span class="cline-any cline-yes">1x</span>
255
+ <span class="cline-any cline-yes">2x</span>
256
+ <span class="cline-any cline-yes">2x</span>
257
+ <span class="cline-any cline-yes">3x</span>
258
+ <span class="cline-any cline-yes">3x</span>
227
259
  <span class="cline-any cline-yes">1x</span>
228
- <span class="cline-any cline-yes">5x</span>
229
- <span class="cline-any cline-yes">4x</span>
230
- <span class="cline-any cline-yes">4x</span>
231
- <span class="cline-any cline-yes">4x</span>
232
260
  <span class="cline-any cline-yes">1x</span>
233
- <span class="cline-any cline-yes">4x</span>
234
- <span class="cline-any cline-yes">4x</span>
235
- <span class="cline-any cline-yes">5x</span>
236
- <span class="cline-any cline-yes">5x</span>
237
261
  <span class="cline-any cline-yes">1x</span>
238
262
  <span class="cline-any cline-yes">1x</span>
239
263
  <span class="cline-any cline-yes">1x</span>
@@ -241,7 +265,11 @@
241
265
  <span class="cline-any cline-yes">1x</span>
242
266
  <span class="cline-any cline-yes">1x</span>
243
267
  <span class="cline-any cline-yes">1x</span>
244
- <span class="cline-any cline-yes">7x</span>
268
+ <span class="cline-any cline-yes">1x</span>
269
+ <span class="cline-any cline-yes">1x</span>
270
+ <span class="cline-any cline-yes">11x</span>
271
+ <span class="cline-any cline-yes">1x</span>
272
+ <span class="cline-any cline-yes">1x</span>
245
273
  <span class="cline-any cline-yes">1x</span>
246
274
  <span class="cline-any cline-yes">1x</span>
247
275
  <span class="cline-any cline-yes">1x</span>
@@ -305,6 +333,7 @@
305
333
  <span class="cline-any cline-yes">1x</span>
306
334
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;script setup lang="ts"&gt;
307
335
  import { computed, defineEmits, ref, unref, watch } from "vue";
336
+ import { toNumber } from "@vue/shared";
308
337
  &nbsp;
309
338
  export interface Props {
310
339
  value: Array&lt;number&gt;;
@@ -338,10 +367,17 @@ const sliderValue = computed({
338
367
  return props.value;
339
368
  },
340
369
  set(value: Array&lt;number&gt;) {
341
- emit("update:value", value);
370
+ let val = value;
371
+ if (val[0] &gt; props.max) val[0] = props.max;
372
+ if (val[1] &gt; props.max) val[1] = props.max;
373
+ if (val[0] &lt; props.min) val[0] = props.min;
374
+ if (val[1] &lt; props.min) val[1] = props.min;
375
+ console.log(val);
376
+ console.log(props);
377
+ const normalised = [Math.floor(val[0]), Math.floor(val[1])];
378
+ emit("update:value", normalised);
342
379
  },
343
380
  });
344
- &nbsp;
345
381
  watch(
346
382
  sliderValue,
347
383
  async (currentValue: Array&lt;number&gt;) =&gt; {
@@ -356,6 +392,10 @@ watch(
356
392
  },
357
393
  { deep: true }
358
394
  );
395
+ &nbsp;
396
+ defineExpose({
397
+ sliderValue,
398
+ });
359
399
  &lt;/script&gt;
360
400
  &nbsp;
361
401
  &lt;template&gt;
@@ -365,7 +405,8 @@ watch(
365
405
  }}&lt;/v-card-subtitle&gt;
366
406
  &lt;v-card-actions class="px-2 pb-0"&gt;
367
407
  &lt;v-text-field
368
- v-model="sliderValue[0]"
408
+ :model-value="sliderValue[0]"
409
+ @update:modelValue="sliderValue = [toNumber($event), sliderValue[1]]"
369
410
  density="compact"
370
411
  class="mt-0 pt-0"
371
412
  hide-details
@@ -375,7 +416,8 @@ watch(
375
416
  &gt;&lt;/v-text-field&gt;
376
417
  &lt;v-spacer /&gt;
377
418
  &lt;v-text-field
378
- v-model="sliderValue[1]"
419
+ :model-value="sliderValue[1]"
420
+ @update:modelValue="sliderValue = [sliderValue[0], toNumber($event)]"
379
421
  density="compact"
380
422
  class="mt-0 pt-0"
381
423
  hide-details
@@ -430,7 +472,7 @@ watch(
430
472
  <div class='footer quiet pad2 space-top1 center small'>
431
473
  Code coverage generated by
432
474
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
433
- at 2024-04-09T22:46:57.006Z
475
+ at 2024-04-10T05:32:35.256Z
434
476
  </div>
435
477
  <script src="../../../../prettify.js"></script>
436
478
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>88/88</span>
28
+ <span class='fraction'>91/91</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>8/8</span>
35
+ <span class='fraction'>9/9</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>88/88</span>
49
+ <span class='fraction'>91/91</span>
50
50
  </div>
51
51
 
52
52
 
@@ -151,7 +151,10 @@
151
151
  <a name='L86'></a><a href='#L86'>86</a>
152
152
  <a name='L87'></a><a href='#L87'>87</a>
153
153
  <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
155
158
  <span class="cline-any cline-yes">1x</span>
156
159
  <span class="cline-any cline-yes">1x</span>
157
160
  <span class="cline-any cline-yes">1x</span>
@@ -239,6 +242,9 @@
239
242
  <span class="cline-any cline-yes">1x</span>
240
243
  <span class="cline-any cline-yes">1x</span>
241
244
  <span class="cline-any cline-yes">1x</span>
245
+ <span class="cline-any cline-yes">1x</span>
246
+ <span class="cline-any cline-yes">1x</span>
247
+ <span class="cline-any cline-yes">1x</span>
242
248
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;script setup lang="ts"&gt;
243
249
  import { computed, defineEmits, ref, unref, watch } from "vue";
244
250
  &nbsp;
@@ -271,10 +277,10 @@ const showThumb = ref&lt;"always" | boolean&gt;(true);
271
277
  const showThumbTimeout = ref&lt;NodeJS.Timeout | undefined&gt;(undefined);
272
278
  const sliderValue = computed({
273
279
  get() {
274
- return props.value;
280
+ return Math.floor(props.value);
275
281
  },
276
282
  set(value: number) {
277
- emit("update:value", value);
283
+ emit("update:value", Math.floor(value));
278
284
  },
279
285
  });
280
286
  &nbsp;
@@ -314,6 +320,9 @@ watch(
314
320
  &lt;template #prepend&gt;
315
321
  &lt;div class="text-white py-1 my-0 text-center"&gt;{{ min }}&lt;/div&gt;
316
322
  &lt;/template&gt;
323
+ &lt;template v-slot:thumb-label="{ modelValue }"&gt;
324
+ {{ Math.floor(modelValue) }}
325
+ &lt;/template&gt;
317
326
  &lt;/v-slider&gt;
318
327
  &lt;/template&gt;
319
328
  &nbsp;
@@ -334,7 +343,7 @@ watch(
334
343
  <div class='footer quiet pad2 space-top1 center small'>
335
344
  Code coverage generated by
336
345
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
337
- at 2024-04-09T22:46:57.006Z
346
+ at 2024-04-10T05:32:35.256Z
338
347
  </div>
339
348
  <script src="../../../../prettify.js"></script>
340
349
  <script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>208/208</span>
28
+ <span class='fraction'>225/225</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>20/20</span>
35
+ <span class='fraction'>25/25</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>208/208</span>
49
+ <span class='fraction'>225/225</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="120" class="abs high">120/120</td>
87
+ <td data-value="134" class="abs high">134/134</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
- <td data-value="12" class="abs high">12/12</td>
89
+ <td data-value="16" class="abs high">16/16</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="6" class="abs high">6/6</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
- <td data-value="120" class="abs high">120/120</td>
93
+ <td data-value="134" class="abs high">134/134</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -99,13 +99,13 @@
99
99
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
100
  </td>
101
101
  <td data-value="100" class="pct high">100%</td>
102
- <td data-value="88" class="abs high">88/88</td>
102
+ <td data-value="91" class="abs high">91/91</td>
103
103
  <td data-value="100" class="pct high">100%</td>
104
- <td data-value="8" class="abs high">8/8</td>
104
+ <td data-value="9" class="abs high">9/9</td>
105
105
  <td data-value="100" class="pct high">100%</td>
106
106
  <td data-value="4" class="abs high">4/4</td>
107
107
  <td data-value="100" class="pct high">100%</td>
108
- <td data-value="88" class="abs high">88/88</td>
108
+ <td data-value="91" class="abs high">91/91</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2024-04-09T22:46:57.006Z
119
+ at 2024-04-10T05:32:35.256Z
120
120
  </div>
121
121
  <script src="../../../../prettify.js"></script>
122
122
  <script>