Skip to content

Commit ecb8ccd

Browse files
tweak
1 parent b1b9def commit ecb8ccd

File tree

1 file changed

+71
-36
lines changed

1 file changed

+71
-36
lines changed

tests/pointerevent.html

+71-36
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<tr><td colspan="2"></td></tr>
5656
<tr>
5757
<td>
58-
<div class="reset" id="reset"><div class="flex=item">RESET</div></div>
58+
<div class="reset" id="reset"><div class="flex=item" id="resettext">START</div></div>
5959
<div class="pointer" id="target">
6060
<div class="flex-item">T<br><br>A<br><br>R<br><br>G<br><br>E<br><br>T</div>
6161
</div>
@@ -74,9 +74,12 @@
7474

7575
let padlen = 18
7676
let oData = {}
77+
let isStart = true
7778
let setEvents = new Set()
7879

7980
function run(event, type) {
81+
if (0 !== Object.keys(oData[type]).length) {return}
82+
8083
addEvent(type)
8184
let oList = {
8285
isPrimary: "boolean", // RFP true
@@ -94,39 +97,61 @@
9497
azimuthAngle: "number",
9598
}
9699
let oTemp = {}, oDisplay = []
97-
oData = {}
98-
let lines = ["pressure", "pointerType", "tangentialPressure", "altitudeAngle"]
99-
let divider = "<span class='faint'>" + "----------".padStart(padlen) +"--------"+ sc
100100

101101
for (const k of Object.keys(oList)) {
102-
if (lines.includes(k)) {
103-
oDisplay.push(divider)
104-
}
102+
let value
105103
try {
106-
let value = event[k],
107-
expected = oList[k]
104+
value = event[k]
105+
let expected = oList[k]
108106
if (typeof value !== expected) {
109-
value = "err" // zErrType + typeof value
107+
throw 'err'
110108
} else if ("number" == expected && Number.isNaN(value)) {
111-
value = "NaN" // zErrType + typeof value
109+
throw 'NaN'
112110
} else {
113111
value = cleanFn(value)
114112
}
115-
oTemp[k] = value
116-
oDisplay.push(s6 + k.padStart(padlen) +": "+ sc + value)
117113
} catch(e) {
118-
oTemp[k] = e.name
114+
value = e.name
119115
}
116+
oTemp[k] = value
120117
}
118+
// sort
119+
for (const k of Object.keys(oTemp).sort()) {oData[type][k] = oTemp[k]}
121120

122-
// reorder so it matches TZP
123-
for (const k of Object.keys(oTemp).sort()) {oData[k] = oTemp[k]}
121+
// build display
122+
let lines = ["pressure", "pointerType", "tangentialPressure", "altitudeAngle"]
123+
let divider = "<span class='faint'>" + "----------".padStart(padlen) +"--------"+ sc
124+
let eventstr = ''
125+
for (const k of Object.keys(oList)) {
126+
if (lines.includes(k)) {
127+
oDisplay.push(divider)
128+
}
129+
let strActive = k.includes('ressure') ? s6 +' [active]' + sc : ''
130+
let valueDown = oData['pointerdown'][k],
131+
valueOver = oData['pointerover'][k]
132+
let str
133+
if (valueDown == undefined) {
134+
str = valueOver
135+
eventstr = 'pointerover'
136+
} else if (valueOver == undefined) {
137+
str = valueDown + strActive
138+
eventstr = 'pointerdown'
139+
} else {
140+
eventstr = 'pointerover | down'
141+
if (valueDown == valueOver) {
142+
str = valueDown
143+
} else {
144+
str = valueOver + " | " + valueDown + strActive
145+
}
146+
}
147+
oDisplay.push(s6 + k.padStart(padlen) +": "+ sc + str)
148+
}
149+
// display
124150
let hash = mini(oData)
125151
let strHash = s6 + ("hash").padStart(padlen) +": "+ sc + hash
126-
+ '<br>' + s6 + ("event").padStart(padlen) +": "+ sc + type + ('pointerdown' == type ? s6+' [active]'+ sc : '')
152+
+ '<br>' + s6 + ("events").padStart(padlen) +": "+ sc + eventstr
127153
dom.results.innerHTML = strHash + "<br><br>" + oDisplay.join("<br>")
128154

129-
130155
}
131156

132157
function addEvent(type) {
@@ -136,30 +161,40 @@
136161
}
137162

138163
function reset() {
139-
dom.results = ''
140-
dom.events = ''
141-
setEvents.clear()
164+
oData['pointerdown'] = {}
165+
oData['pointerover'] = {}
166+
167+
// force mouse out of target area
168+
if (isStart) {
169+
start()
170+
dom.resettext.innerHTML = 'RESET'
171+
isStart = false
172+
} else {
173+
dom.results = ''
174+
dom.events = ''
175+
setEvents.clear()
176+
}
142177
}
143178

179+
function start() {
180+
let target = dom.target
181+
target.addEventListener("pointerover", (event) => {run(event, 'pointerover')})
182+
target.addEventListener("pointerdown", (event) => {run(event, 'pointerdown')})
183+
target.addEventListener("pointermove", (event) => {addEvent('pointermove')})
184+
target.addEventListener("mouseover", (event) => {addEvent('mouseover')})
185+
target.addEventListener("mousedown", (event) => {addEvent('mousedown')})
186+
target.addEventListener("mouseup", (event) => {addEvent('mouseup')})
187+
target.addEventListener("mousemove", (event) => {addEvent('mousemove')})
188+
189+
target.addEventListener("touchstart", (event) => {addEvent('touchstart')})
190+
target.addEventListener("touchmove", (event) => {addEvent('touchmove')})
191+
target.addEventListener("touchend", (event) => {addEvent('touchend')})
192+
target.addEventListener("touchcancel", (event) => {addEvent('touchcancel')})
193+
}
144194

145195
let targetreset = dom.reset
146196
targetreset.addEventListener("pointerover", (event) => {reset()})
147197

148-
let target = dom.target
149-
target.addEventListener("pointerover", (event) => {run(event, 'pointerover')})
150-
target.addEventListener("pointerdown", (event) => {run(event, 'pointerdown')})
151-
target.addEventListener("pointermove", (event) => {addEvent('pointermove')})
152-
target.addEventListener("mouseover", (event) => {addEvent('mouseover')})
153-
target.addEventListener("mousedown", (event) => {addEvent('mousedown')})
154-
target.addEventListener("mouseup", (event) => {addEvent('mouseup')})
155-
target.addEventListener("mousemove", (event) => {addEvent('mousemove')})
156-
157-
target.addEventListener("touchstart", (event) => {addEvent('touchstart')})
158-
target.addEventListener("touchmove", (event) => {addEvent('touchmove')})
159-
target.addEventListener("touchend", (event) => {addEvent('touchend')})
160-
target.addEventListener("touchcancel", (event) => {addEvent('touchcancel')})
161-
162-
163198
</script>
164199
</body>
165200
</html>

0 commit comments

Comments
 (0)