@nextsparkjs/plugin-walkme 0.1.0-beta.113 → 0.1.0-beta.114

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.
@@ -122,10 +122,12 @@ export const WalkmeModal = memo(function WalkmeModal({
122
122
  {step.content}
123
123
  </p>
124
124
 
125
- {/* Progress */}
126
- <div className="mb-4">
127
- <WalkmeProgress current={currentIndex} total={totalSteps} progressTemplate={labels?.progress} />
128
- </div>
125
+ {/* Progress — hidden for single-step tours */}
126
+ {totalSteps > 1 && (
127
+ <div className="mb-4">
128
+ <WalkmeProgress current={currentIndex} total={totalSteps} progressTemplate={labels?.progress} />
129
+ </div>
130
+ )}
129
131
 
130
132
  {/* Controls */}
131
133
  <WalkmeControls
@@ -18,6 +18,9 @@ export const WalkmeProgress = memo(function WalkmeProgress({
18
18
  total,
19
19
  progressTemplate,
20
20
  }: WalkmeProgressProps) {
21
+ // Single-step tours don't need a progress indicator
22
+ if (total <= 1) return null
23
+
21
24
  const percentage = total > 0 ? Math.round(((current + 1) / total) * 100) : 0
22
25
  const progressLabel = (progressTemplate ?? 'Step {current} of {total}')
23
26
  .replace('{current}', String(current + 1))
@@ -456,6 +456,9 @@ export function WalkmeProvider({
456
456
  // Tooltip type has no overlay — scroll should remain free
457
457
  if (!activeStepType || activeStepType === 'tooltip') return
458
458
 
459
+ // Don't lock scroll if target element hasn't been found on this page
460
+ if (!targetElement) return
461
+
459
462
  const { style } = document.body
460
463
  const originalOverflow = style.overflow
461
464
  const originalPaddingRight = style.paddingRight
@@ -471,7 +474,7 @@ export function WalkmeProvider({
471
474
  style.overflow = originalOverflow
472
475
  style.paddingRight = originalPaddingRight
473
476
  }
474
- }, [state.activeTour?.status, activeStepType])
477
+ }, [state.activeTour?.status, activeStepType, targetElement])
475
478
 
476
479
  // ---------------------------------------------------------------------------
477
480
  // Cleanup
@@ -536,12 +539,15 @@ export function WalkmeProvider({
536
539
  const activeStep = getActiveStep(state)
537
540
  const showStep = activeTour && activeStep && state.activeTour?.status === 'active'
538
541
 
539
- // Build screen reader announcement
542
+ // Build screen reader announcement (skip progress prefix for single-step tours)
540
543
  const srAnnouncement = showStep && state.activeTour
541
- ? labels.progress
542
- .replace('{current}', String(state.activeTour.currentStepIndex + 1))
543
- .replace('{total}', String(activeTour!.steps.length))
544
- + ': ' + activeStep.title
544
+ ? (activeTour!.steps.length > 1
545
+ ? labels.progress
546
+ .replace('{current}', String(state.activeTour.currentStepIndex + 1))
547
+ .replace('{total}', String(activeTour!.steps.length))
548
+ + ': '
549
+ : '')
550
+ + activeStep.title
545
551
  : ''
546
552
 
547
553
  return (
@@ -618,6 +624,11 @@ function StepRenderer({
618
624
  totalSteps,
619
625
  labels,
620
626
  }: StepRendererProps) {
627
+ // For step types that require a target element, wait until it's resolved.
628
+ // This prevents a flash of dark overlay before the spotlight/cutout appears.
629
+ const needsTarget = step.type === 'tooltip' || step.type === 'spotlight' || step.type === 'beacon'
630
+ if (needsTarget && !targetElement) return null
631
+
621
632
  const commonProps = {
622
633
  step,
623
634
  onNext,
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
 
3
- import { memo, useCallback, useEffect, useRef, useState } from 'react'
3
+ import { memo, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'
4
4
  import { createPortal } from 'react-dom'
5
5
  import type { TourStep } from '../types/walkme.types'
6
6
  import { useStepPositioning, getPlacementFromPosition } from '../lib/positioning'
@@ -59,8 +59,13 @@ export const WalkmeSpotlight = memo(function WalkmeSpotlight({
59
59
  setTargetRect(targetElement.getBoundingClientRect())
60
60
  }, [targetElement])
61
61
 
62
- useEffect(() => {
62
+ // Compute target rect BEFORE browser paints to avoid overlay flash without cutout
63
+ useLayoutEffect(() => {
63
64
  updateRect()
65
+ }, [updateRect])
66
+
67
+ // Keep rect updated on scroll, resize, and delayed re-measure
68
+ useEffect(() => {
64
69
  if (!targetElement) return
65
70
 
66
71
  const timer = setTimeout(updateRect, 100)
@@ -135,9 +140,11 @@ export const WalkmeSpotlight = memo(function WalkmeSpotlight({
135
140
  {step.content}
136
141
  </p>
137
142
 
138
- <div className="mb-3">
139
- <WalkmeProgress current={currentIndex} total={totalSteps} progressTemplate={labels?.progress} />
140
- </div>
143
+ {totalSteps > 1 && (
144
+ <div className="mb-3">
145
+ <WalkmeProgress current={currentIndex} total={totalSteps} progressTemplate={labels?.progress} />
146
+ </div>
147
+ )}
141
148
 
142
149
  <WalkmeControls
143
150
  actions={step.actions}
@@ -137,10 +137,12 @@ export const WalkmeTooltip = memo(function WalkmeTooltip({
137
137
  {step.content}
138
138
  </p>
139
139
 
140
- {/* Progress */}
141
- <div className="mb-3">
142
- <WalkmeProgress current={currentIndex} total={totalSteps} progressTemplate={labels?.progress} />
143
- </div>
140
+ {/* Progress — hidden for single-step tours */}
141
+ {totalSteps > 1 && (
142
+ <div className="mb-3">
143
+ <WalkmeProgress current={currentIndex} total={totalSteps} progressTemplate={labels?.progress} />
144
+ </div>
145
+ )}
144
146
 
145
147
  {/* Controls */}
146
148
  <WalkmeControls
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextsparkjs/plugin-walkme",
3
- "version": "0.1.0-beta.113",
3
+ "version": "0.1.0-beta.114",
4
4
  "private": false,
5
5
  "main": "./plugin.config.ts",
6
6
  "requiredPlugins": [],
@@ -1,344 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1771428269857" clover="3.2.0">
3
- <project timestamp="1771428269857" name="All files">
4
- <metrics statements="317" coveredstatements="299" conditionals="186" coveredconditionals="152" methods="63" coveredmethods="61" elements="566" coveredelements="512" complexity="0" loc="317" ncloc="317" packages="1" files="7" classes="7"/>
5
- <file name="conditions.ts" path="/Users/federicogonzalez/Documents/GitHub/nextspark/repo/plugins/walkme/lib/conditions.ts">
6
- <metrics statements="27" coveredstatements="27" conditionals="22" coveredconditionals="21" methods="8" coveredmethods="8"/>
7
- <line num="19" count="1" type="stmt"/>
8
- <line num="23" count="10" type="cond" truecount="1" falsecount="0"/>
9
- <line num="26" count="9" type="cond" truecount="3" falsecount="0"/>
10
- <line num="27" count="2" type="cond" truecount="1" falsecount="0"/>
11
- <line num="28" count="1" type="stmt"/>
12
- <line num="33" count="8" type="cond" truecount="3" falsecount="0"/>
13
- <line num="34" count="2" type="cond" truecount="1" falsecount="0"/>
14
- <line num="40" count="1" type="stmt"/>
15
- <line num="45" count="7" type="cond" truecount="3" falsecount="0"/>
16
- <line num="46" count="2" type="cond" truecount="1" falsecount="0"/>
17
- <line num="52" count="1" type="stmt"/>
18
- <line num="57" count="6" type="cond" truecount="3" falsecount="0"/>
19
- <line num="58" count="1" type="cond" truecount="1" falsecount="0"/>
20
- <line num="64" count="1" type="stmt"/>
21
- <line num="69" count="5" type="cond" truecount="1" falsecount="0"/>
22
- <line num="70" count="2" type="cond" truecount="1" falsecount="0"/>
23
- <line num="71" count="1" type="stmt"/>
24
- <line num="75" count="4" type="stmt"/>
25
- <line num="83" count="1" type="stmt"/>
26
- <line num="87" count="5" type="cond" truecount="1" falsecount="0"/>
27
- <line num="88" count="4" type="stmt"/>
28
- <line num="92" count="1" type="stmt"/>
29
- <line num="96" count="6" type="stmt"/>
30
- <line num="100" count="1" type="stmt"/>
31
- <line num="104" count="6" type="stmt"/>
32
- <line num="108" count="1" type="stmt"/>
33
- <line num="112" count="5" type="stmt"/>
34
- </file>
35
- <file name="core.ts" path="/Users/federicogonzalez/Documents/GitHub/nextspark/repo/plugins/walkme/lib/core.ts">
36
- <metrics statements="90" coveredstatements="90" conditionals="69" coveredconditionals="61" methods="12" coveredmethods="12"/>
37
- <line num="21" count="1" type="stmt"/>
38
- <line num="22" count="59" type="stmt"/>
39
- <line num="38" count="1" type="stmt"/>
40
- <line num="39" count="141" type="cond" truecount="14" falsecount="0"/>
41
- <line num="41" count="56" type="stmt"/>
42
- <line num="42" count="56" type="stmt"/>
43
- <line num="43" count="56" type="stmt"/>
44
- <line num="45" count="56" type="stmt"/>
45
- <line num="49" count="38" type="cond" truecount="1" falsecount="0"/>
46
- <line num="50" count="37" type="stmt"/>
47
- <line num="51" count="37" type="cond" truecount="1" falsecount="0"/>
48
- <line num="52" count="36" type="cond" truecount="1" falsecount="0"/>
49
- <line num="54" count="35" type="stmt"/>
50
- <line num="61" count="35" type="stmt"/>
51
- <line num="69" count="10" type="cond" truecount="3" falsecount="0"/>
52
- <line num="70" count="8" type="stmt"/>
53
- <line num="71" count="8" type="cond" truecount="0" falsecount="1"/>
54
- <line num="73" count="8" type="stmt"/>
55
- <line num="76" count="8" type="cond" truecount="1" falsecount="0"/>
56
- <line num="77" count="1" type="stmt"/>
57
- <line num="80" count="7" type="stmt"/>
58
- <line num="85" count="7" type="stmt"/>
59
- <line num="93" count="3" type="cond" truecount="3" falsecount="0"/>
60
- <line num="94" count="2" type="cond" truecount="1" falsecount="0"/>
61
- <line num="96" count="1" type="stmt"/>
62
- <line num="101" count="1" type="stmt"/>
63
- <line num="109" count="4" type="cond" truecount="3" falsecount="0"/>
64
- <line num="110" count="3" type="stmt"/>
65
- <line num="111" count="3" type="cond" truecount="0" falsecount="1"/>
66
- <line num="112" count="3" type="cond" truecount="3" falsecount="0"/>
67
- <line num="114" count="1" type="stmt"/>
68
- <line num="119" count="1" type="stmt"/>
69
- <line num="127" count="5" type="cond" truecount="1" falsecount="0"/>
70
- <line num="129" count="4" type="stmt"/>
71
- <line num="130" count="4" type="stmt"/>
72
- <line num="136" count="4" type="stmt"/>
73
- <line num="147" count="7" type="cond" truecount="1" falsecount="0"/>
74
- <line num="148" count="6" type="stmt"/>
75
- <line num="152" count="6" type="cond" truecount="3" falsecount="0"/>
76
- <line num="154" count="4" type="stmt"/>
77
- <line num="159" count="4" type="stmt"/>
78
- <line num="167" count="2" type="cond" truecount="3" falsecount="0"/>
79
- <line num="169" count="1" type="stmt"/>
80
- <line num="174" count="1" type="stmt"/>
81
- <line num="182" count="4" type="stmt"/>
82
- <line num="184" count="4" type="stmt"/>
83
- <line num="188" count="1" type="stmt"/>
84
- <line num="189" count="1" type="stmt"/>
85
- <line num="195" count="1" type="stmt"/>
86
- <line num="205" count="3" type="stmt"/>
87
- <line num="209" count="1" type="stmt"/>
88
- <line num="219" count="1" type="stmt"/>
89
- <line num="228" count="7" type="cond" truecount="0" falsecount="1"/>
90
- <line num="230" count="7" type="stmt"/>
91
- <line num="231" count="7" type="stmt"/>
92
- <line num="237" count="7" type="stmt"/>
93
- <line num="248" count="1" type="stmt"/>
94
- <line num="249" count="4" type="cond" truecount="1" falsecount="0"/>
95
- <line num="250" count="3" type="stmt"/>
96
- <line num="251" count="3" type="cond" truecount="1" falsecount="0"/>
97
- <line num="252" count="2" type="cond" truecount="1" falsecount="0"/>
98
- <line num="253" count="1" type="stmt"/>
99
- <line num="257" count="1" type="stmt"/>
100
- <line num="258" count="4" type="cond" truecount="1" falsecount="0"/>
101
- <line num="259" count="2" type="cond" truecount="1" falsecount="1"/>
102
- <line num="263" count="1" type="stmt"/>
103
- <line num="264" count="2" type="stmt"/>
104
- <line num="265" count="2" type="cond" truecount="3" falsecount="0"/>
105
- <line num="266" count="1" type="cond" truecount="1" falsecount="1"/>
106
- <line num="270" count="1" type="stmt"/>
107
- <line num="271" count="3" type="cond" truecount="1" falsecount="0"/>
108
- <line num="272" count="2" type="stmt"/>
109
- <line num="276" count="1" type="stmt"/>
110
- <line num="277" count="3" type="cond" truecount="1" falsecount="0"/>
111
- <line num="278" count="2" type="stmt"/>
112
- <line num="279" count="2" type="cond" truecount="0" falsecount="1"/>
113
- <line num="280" count="2" type="stmt"/>
114
- <line num="284" count="1" type="stmt"/>
115
- <line num="288" count="3" type="stmt"/>
116
- <line num="289" count="3" type="cond" truecount="1" falsecount="0"/>
117
- <line num="291" count="2" type="stmt"/>
118
- <line num="292" count="2" type="stmt"/>
119
- <line num="293" count="2" type="cond" truecount="2" falsecount="0"/>
120
- <line num="294" count="2" type="cond" truecount="1" falsecount="1"/>
121
- <line num="296" count="2" type="stmt"/>
122
- <line num="300" count="1" type="stmt"/>
123
- <line num="303" count="2" type="stmt"/>
124
- <line num="304" count="2" type="stmt"/>
125
- <line num="305" count="2" type="cond" truecount="1" falsecount="1"/>
126
- <line num="307" count="2" type="stmt"/>
127
- </file>
128
- <file name="positioning.ts" path="/Users/federicogonzalez/Documents/GitHub/nextspark/repo/plugins/walkme/lib/positioning.ts">
129
- <metrics statements="17" coveredstatements="13" conditionals="13" coveredconditionals="6" methods="3" coveredmethods="2"/>
130
- <line num="10" count="1" type="stmt"/>
131
- <line num="11" count="1" type="stmt"/>
132
- <line num="50" count="1" type="stmt"/>
133
- <line num="51" count="5" type="cond" truecount="6" falsecount="0"/>
134
- <line num="53" count="1" type="stmt"/>
135
- <line num="55" count="1" type="stmt"/>
136
- <line num="57" count="1" type="stmt"/>
137
- <line num="59" count="1" type="stmt"/>
138
- <line num="62" count="1" type="stmt"/>
139
- <line num="67" count="1" type="stmt"/>
140
- <line num="73" count="1" type="cond" truecount="0" falsecount="1"/>
141
- <line num="74" count="0" type="stmt"/>
142
- <line num="76" count="1" type="stmt"/>
143
- <line num="92" count="1" type="stmt"/>
144
- <line num="96" count="0" type="stmt"/>
145
- <line num="99" count="0" type="stmt"/>
146
- <line num="116" count="0" type="stmt"/>
147
- </file>
148
- <file name="storage.ts" path="/Users/federicogonzalez/Documents/GitHub/nextspark/repo/plugins/walkme/lib/storage.ts">
149
- <metrics statements="58" coveredstatements="57" conditionals="24" coveredconditionals="18" methods="20" coveredmethods="20"/>
150
- <line num="14" count="1" type="stmt"/>
151
- <line num="15" count="1" type="stmt"/>
152
- <line num="41" count="1" type="stmt"/>
153
- <line num="42" count="16" type="cond" truecount="0" falsecount="1"/>
154
- <line num="43" count="16" type="stmt"/>
155
- <line num="44" count="16" type="stmt"/>
156
- <line num="45" count="16" type="stmt"/>
157
- <line num="46" count="15" type="stmt"/>
158
- <line num="47" count="15" type="stmt"/>
159
- <line num="49" count="1" type="stmt"/>
160
- <line num="55" count="13" type="stmt"/>
161
- <line num="67" count="1" type="stmt"/>
162
- <line num="68" count="18" type="cond" truecount="3" falsecount="0"/>
163
- <line num="69" count="2" type="stmt"/>
164
- <line num="72" count="16" type="stmt"/>
165
- <line num="75" count="16" type="stmt"/>
166
- <line num="100" count="1" type="stmt"/>
167
- <line num="101" count="14" type="stmt"/>
168
- <line num="104" count="25" type="cond" truecount="0" falsecount="1"/>
169
- <line num="106" count="25" type="stmt"/>
170
- <line num="107" count="25" type="stmt"/>
171
- <line num="108" count="25" type="cond" truecount="1" falsecount="0"/>
172
- <line num="110" count="14" type="stmt"/>
173
- <line num="111" count="14" type="stmt"/>
174
- <line num="113" count="0" type="stmt"/>
175
- <line num="118" count="13" type="cond" truecount="0" falsecount="1"/>
176
- <line num="120" count="13" type="stmt"/>
177
- <line num="121" count="13" type="stmt"/>
178
- <line num="127" count="14" type="stmt"/>
179
- <line num="129" count="5" type="cond" truecount="0" falsecount="1"/>
180
- <line num="130" count="5" type="stmt"/>
181
- <line num="134" count="5" type="stmt"/>
182
- <line num="138" count="1" type="cond" truecount="0" falsecount="1"/>
183
- <line num="139" count="1" type="stmt"/>
184
- <line num="140" count="1" type="stmt"/>
185
- <line num="147" count="2" type="stmt"/>
186
- <line num="148" count="2" type="stmt"/>
187
- <line num="149" count="2" type="stmt"/>
188
- <line num="150" count="2" type="stmt"/>
189
- <line num="151" count="2" type="stmt"/>
190
- <line num="152" count="2" type="cond" truecount="1" falsecount="0"/>
191
- <line num="153" count="1" type="stmt"/>
192
- <line num="155" count="2" type="stmt"/>
193
- <line num="159" count="2" type="stmt"/>
194
- <line num="163" count="2" type="stmt"/>
195
- <line num="167" count="3" type="stmt"/>
196
- <line num="171" count="2" type="stmt"/>
197
- <line num="172" count="2" type="stmt"/>
198
- <line num="173" count="2" type="stmt"/>
199
- <line num="177" count="2" type="stmt"/>
200
- <line num="178" count="2" type="cond" truecount="1" falsecount="1"/>
201
- <line num="182" count="1" type="stmt"/>
202
- <line num="183" count="1" type="stmt"/>
203
- <line num="184" count="1" type="stmt"/>
204
- <line num="188" count="3" type="stmt"/>
205
- <line num="192" count="3" type="stmt"/>
206
- <line num="193" count="3" type="stmt"/>
207
- <line num="194" count="3" type="stmt"/>
208
- </file>
209
- <file name="targeting.ts" path="/Users/federicogonzalez/Documents/GitHub/nextspark/repo/plugins/walkme/lib/targeting.ts">
210
- <metrics statements="62" coveredstatements="52" conditionals="34" coveredconditionals="25" methods="11" coveredmethods="10"/>
211
- <line num="39" count="1" type="stmt"/>
212
- <line num="40" count="10" type="cond" truecount="0" falsecount="1"/>
213
- <line num="41" count="0" type="stmt"/>
214
- <line num="45" count="10" type="cond" truecount="1" falsecount="0"/>
215
- <line num="46" count="2" type="stmt"/>
216
- <line num="49" count="2" type="cond" truecount="1" falsecount="0"/>
217
- <line num="50" count="2" type="stmt"/>
218
- <line num="55" count="8" type="stmt"/>
219
- <line num="56" count="8" type="stmt"/>
220
- <line num="57" count="7" type="cond" truecount="1" falsecount="0"/>
221
- <line num="58" count="4" type="cond" truecount="2" falsecount="0"/>
222
- <line num="59" count="4" type="stmt"/>
223
- <line num="65" count="4" type="stmt"/>
224
- <line num="72" count="1" type="stmt"/>
225
- <line num="76" count="2" type="cond" truecount="2" falsecount="0"/>
226
- <line num="78" count="2" type="stmt"/>
227
- <line num="80" count="2" type="stmt"/>
228
- <line num="81" count="2" type="cond" truecount="1" falsecount="0"/>
229
- <line num="82" count="1" type="stmt"/>
230
- <line num="83" count="1" type="stmt"/>
231
- <line num="86" count="1" type="cond" truecount="0" falsecount="1"/>
232
- <line num="87" count="0" type="stmt"/>
233
- <line num="88" count="0" type="stmt"/>
234
- <line num="91" count="1" type="stmt"/>
235
- <line num="92" count="1" type="stmt"/>
236
- <line num="93" count="1" type="stmt"/>
237
- <line num="94" count="1" type="stmt"/>
238
- <line num="96" count="1" type="stmt"/>
239
- <line num="97" count="1" type="stmt"/>
240
- <line num="98" count="1" type="stmt"/>
241
- <line num="99" count="1" type="cond" truecount="1" falsecount="0"/>
242
- <line num="100" count="1" type="cond" truecount="1" falsecount="0"/>
243
- <line num="104" count="1" type="stmt"/>
244
- <line num="105" count="1" type="cond" truecount="1" falsecount="0"/>
245
- <line num="106" count="1" type="stmt"/>
246
- <line num="107" count="1" type="stmt"/>
247
- <line num="112" count="1" type="stmt"/>
248
- <line num="113" count="1" type="cond" truecount="0" falsecount="1"/>
249
- <line num="114" count="1" type="stmt"/>
250
- <line num="115" count="1" type="cond" truecount="0" falsecount="1"/>
251
- <line num="116" count="0" type="stmt"/>
252
- <line num="117" count="0" type="stmt"/>
253
- <line num="122" count="1" type="stmt"/>
254
- <line num="123" count="0" type="cond" truecount="0" falsecount="1"/>
255
- <line num="124" count="0" type="stmt"/>
256
- <line num="125" count="0" type="cond" truecount="0" falsecount="1"/>
257
- <line num="126" count="0" type="stmt"/>
258
- <line num="127" count="0" type="stmt"/>
259
- <line num="131" count="1" type="stmt"/>
260
- <line num="145" count="1" type="stmt"/>
261
- <line num="146" count="1" type="cond" truecount="0" falsecount="1"/>
262
- <line num="148" count="1" type="stmt"/>
263
- <line num="149" count="1" type="stmt"/>
264
- <line num="158" count="1" type="stmt"/>
265
- <line num="159" count="1" type="cond" truecount="0" falsecount="1"/>
266
- <line num="161" count="1" type="stmt"/>
267
- <line num="162" count="1" type="stmt"/>
268
- <line num="171" count="1" type="stmt"/>
269
- <line num="175" count="2" type="cond" truecount="0" falsecount="1"/>
270
- <line num="177" count="2" type="stmt"/>
271
- <line num="184" count="1" type="stmt"/>
272
- <line num="185" count="1" type="stmt"/>
273
- </file>
274
- <file name="triggers.ts" path="/Users/federicogonzalez/Documents/GitHub/nextspark/repo/plugins/walkme/lib/triggers.ts">
275
- <metrics statements="35" coveredstatements="32" conditionals="17" coveredconditionals="14" methods="5" coveredmethods="5"/>
276
- <line num="35" count="1" type="stmt"/>
277
- <line num="39" count="4" type="stmt"/>
278
- <line num="41" count="4" type="cond" truecount="3" falsecount="3"/>
279
- <line num="43" count="2" type="stmt"/>
280
- <line num="45" count="0" type="stmt"/>
281
- <line num="47" count="0" type="stmt"/>
282
- <line num="49" count="1" type="stmt"/>
283
- <line num="51" count="0" type="stmt"/>
284
- <line num="53" count="1" type="stmt"/>
285
- <line num="62" count="1" type="stmt"/>
286
- <line num="66" count="5" type="stmt"/>
287
- <line num="70" count="1" type="stmt"/>
288
- <line num="74" count="8" type="cond" truecount="1" falsecount="0"/>
289
- <line num="76" count="7" type="stmt"/>
290
- <line num="77" count="7" type="stmt"/>
291
- <line num="80" count="7" type="cond" truecount="1" falsecount="0"/>
292
- <line num="83" count="6" type="cond" truecount="1" falsecount="0"/>
293
- <line num="84" count="3" type="stmt"/>
294
- <line num="85" count="3" type="stmt"/>
295
- <line num="89" count="3" type="cond" truecount="1" falsecount="0"/>
296
- <line num="90" count="2" type="stmt"/>
297
- <line num="91" count="2" type="stmt"/>
298
- <line num="94" count="1" type="stmt"/>
299
- <line num="98" count="1" type="stmt"/>
300
- <line num="102" count="3" type="cond" truecount="1" falsecount="0"/>
301
- <line num="103" count="2" type="stmt"/>
302
- <line num="107" count="1" type="stmt"/>
303
- <line num="112" count="6" type="cond" truecount="1" falsecount="0"/>
304
- <line num="113" count="2" type="cond" truecount="1" falsecount="0"/>
305
- <line num="117" count="5" type="cond" truecount="3" falsecount="0"/>
306
- <line num="118" count="2" type="stmt"/>
307
- <line num="119" count="2" type="stmt"/>
308
- <line num="120" count="2" type="stmt"/>
309
- <line num="123" count="2" type="cond" truecount="1" falsecount="0"/>
310
- <line num="126" count="4" type="stmt"/>
311
- </file>
312
- <file name="validation.ts" path="/Users/federicogonzalez/Documents/GitHub/nextspark/repo/plugins/walkme/lib/validation.ts">
313
- <metrics statements="28" coveredstatements="28" conditionals="7" coveredconditionals="7" methods="4" coveredmethods="4"/>
314
- <line num="8" count="1" type="stmt"/>
315
- <line num="15" count="1" type="stmt"/>
316
- <line num="24" count="1" type="stmt"/>
317
- <line num="32" count="1" type="stmt"/>
318
- <line num="48" count="24" type="cond" truecount="1" falsecount="0"/>
319
- <line num="49" count="7" type="stmt"/>
320
- <line num="51" count="17" type="stmt"/>
321
- <line num="58" count="1" type="stmt"/>
322
- <line num="70" count="1" type="stmt"/>
323
- <line num="77" count="1" type="stmt"/>
324
- <line num="80" count="2" type="stmt"/>
325
- <line num="81" count="2" type="cond" truecount="1" falsecount="0"/>
326
- <line num="82" count="1" type="stmt"/>
327
- <line num="84" count="1" type="stmt"/>
328
- <line num="88" count="1" type="stmt"/>
329
- <line num="91" count="2" type="stmt"/>
330
- <line num="92" count="2" type="stmt"/>
331
- <line num="94" count="2" type="stmt"/>
332
- <line num="95" count="4" type="stmt"/>
333
- <line num="96" count="4" type="cond" truecount="2" falsecount="0"/>
334
- <line num="97" count="3" type="stmt"/>
335
- <line num="99" count="1" type="stmt"/>
336
- <line num="103" count="2" type="stmt"/>
337
- <line num="111" count="1" type="stmt"/>
338
- <line num="114" count="2" type="stmt"/>
339
- <line num="115" count="2" type="cond" truecount="1" falsecount="0"/>
340
- <line num="116" count="1" type="stmt"/>
341
- <line num="118" count="1" type="stmt"/>
342
- </file>
343
- </project>
344
- </coverage>