jpf 5.0.34 → 5.0.36
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.
- package/dist/framework/event.d.ts +9 -1
- package/dist/framework/event.js +49 -2
- package/dist/framework/event.js.map +1 -1
- package/dist/framework/properties.js +6 -3
- package/dist/framework/properties.js.map +1 -1
- package/package.json +1 -2
- package/src/framework/event.ts +57 -4
- package/src/framework/properties.ts +6 -121
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type EventType =
|
|
1
|
+
export type EventType = typeof Event | typeof MouseEvent | typeof KeyboardEvent | typeof TouchEvent | typeof PointerEvent;
|
|
2
2
|
type EventKey = "Enter" | "ArrowDown" | "ArrowUp" | "ArrowLeft" | "ArrowRight";
|
|
3
3
|
export interface IEventListener extends AddEventListenerOptions, IEventListenerOptions {
|
|
4
4
|
type: EventType;
|
|
@@ -30,4 +30,12 @@ export declare class BaseEvent implements IEventListener {
|
|
|
30
30
|
export declare class ClickEvent extends BaseEvent {
|
|
31
31
|
constructor(handler: (event: MouseEvent) => void, options?: IEventListenerOptions);
|
|
32
32
|
}
|
|
33
|
+
export interface ISwipeEventOptions {
|
|
34
|
+
leftHandler?: (event: TouchEvent) => void;
|
|
35
|
+
rightHandler?: (event: TouchEvent) => void;
|
|
36
|
+
upHandler?: (event: TouchEvent) => void;
|
|
37
|
+
downHandler?: (event: TouchEvent) => void;
|
|
38
|
+
distance?: number;
|
|
39
|
+
}
|
|
40
|
+
export declare function getSwipeEvent(options: ISwipeEventOptions): Array<IEventListener>;
|
|
33
41
|
export {};
|
package/dist/framework/event.js
CHANGED
|
@@ -11,7 +11,7 @@ export class BaseEvent {
|
|
|
11
11
|
this.mouseMiddle = options?.mouseMiddle;
|
|
12
12
|
this.mouseRight = options?.mouseRight;
|
|
13
13
|
}
|
|
14
|
-
type
|
|
14
|
+
type;
|
|
15
15
|
name;
|
|
16
16
|
handler;
|
|
17
17
|
eventKey;
|
|
@@ -24,7 +24,54 @@ export class BaseEvent {
|
|
|
24
24
|
}
|
|
25
25
|
export class ClickEvent extends BaseEvent {
|
|
26
26
|
constructor(handler, options) {
|
|
27
|
-
super(
|
|
27
|
+
super(MouseEvent, "click", handler, options);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
+
export function getSwipeEvent(options) {
|
|
31
|
+
let startX = 0;
|
|
32
|
+
let startY = 0;
|
|
33
|
+
let endX = 0;
|
|
34
|
+
let endY = 0;
|
|
35
|
+
const distance = options.distance || 50;
|
|
36
|
+
return [
|
|
37
|
+
{
|
|
38
|
+
type: TouchEvent,
|
|
39
|
+
name: "touchstart",
|
|
40
|
+
handler: (event) => {
|
|
41
|
+
const touch = event.touches[0];
|
|
42
|
+
startX = touch.clientX;
|
|
43
|
+
startY = touch.clientY;
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
type: TouchEvent,
|
|
48
|
+
name: "touchend",
|
|
49
|
+
handler: (event) => {
|
|
50
|
+
const touch = event.changedTouches[0];
|
|
51
|
+
endX = touch.clientX;
|
|
52
|
+
endY = touch.clientY;
|
|
53
|
+
if (startX > endX + distance) {
|
|
54
|
+
if (options.leftHandler) {
|
|
55
|
+
options.leftHandler(event);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (endX > startX + distance) {
|
|
59
|
+
if (options.rightHandler) {
|
|
60
|
+
options.rightHandler(event);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else if (startY > endY + distance) {
|
|
64
|
+
if (options.upHandler) {
|
|
65
|
+
options.upHandler(event);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if (endY > startY + distance) {
|
|
69
|
+
if (options.downHandler) {
|
|
70
|
+
options.downHandler(event);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
];
|
|
76
|
+
}
|
|
30
77
|
//# sourceMappingURL=event.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/framework/event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/framework/event.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ export function applyBindings(properties, element, disposers) {
|
|
|
126
126
|
}
|
|
127
127
|
if (properties.userSelectable === false) {
|
|
128
128
|
applyEventListenerToElement({
|
|
129
|
-
type:
|
|
129
|
+
type: Event,
|
|
130
130
|
name: "selectstart",
|
|
131
131
|
handler: () => { return false; },
|
|
132
132
|
passive: true
|
|
@@ -207,6 +207,9 @@ function applyEventListenerToElement(eventListener, element) {
|
|
|
207
207
|
if (!type) {
|
|
208
208
|
throw new Error("type is mandatory");
|
|
209
209
|
}
|
|
210
|
+
if (!name) {
|
|
211
|
+
throw new Error("name is mandatory");
|
|
212
|
+
}
|
|
210
213
|
if (!handler) {
|
|
211
214
|
throw new Error("handler is mandatory");
|
|
212
215
|
}
|
|
@@ -223,7 +226,7 @@ function applyEventListenerToElement(eventListener, element) {
|
|
|
223
226
|
if (name === "dragstart") {
|
|
224
227
|
element.setAttribute("draggable", "true");
|
|
225
228
|
}
|
|
226
|
-
if (eventListener.type ===
|
|
229
|
+
if (eventListener.type === KeyboardEvent) {
|
|
227
230
|
handler = (event) => {
|
|
228
231
|
if (eventListener.altKey && !event.altKey) {
|
|
229
232
|
return;
|
|
@@ -240,7 +243,7 @@ function applyEventListenerToElement(eventListener, element) {
|
|
|
240
243
|
handler(event);
|
|
241
244
|
};
|
|
242
245
|
}
|
|
243
|
-
element.addEventListener(
|
|
246
|
+
element.addEventListener(name, handler, options);
|
|
244
247
|
}
|
|
245
248
|
function applyClassesToElement(classNames, replace, element) {
|
|
246
249
|
if (replace) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../src/framework/properties.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../src/framework/properties.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jpf",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.36",
|
|
4
4
|
"description": "Javascript Presentation Foundation base classes and interfaces",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mvvm",
|
|
@@ -51,7 +51,6 @@
|
|
|
51
51
|
"json-viewer-awesome": "1.0.15",
|
|
52
52
|
"leaflet": "1.9.4",
|
|
53
53
|
"leaflet-arrowheads": "1.4.0",
|
|
54
|
-
"lodash": "4.17.21",
|
|
55
54
|
"simply-beautiful": "1.0.1",
|
|
56
55
|
"toastr": "2.1.4",
|
|
57
56
|
"tocca": "2.0.9",
|
package/src/framework/event.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { extend } from "lodash";
|
|
2
1
|
|
|
3
|
-
export type EventType =
|
|
2
|
+
export type EventType = typeof Event | typeof MouseEvent | typeof KeyboardEvent | typeof TouchEvent | typeof PointerEvent;
|
|
4
3
|
|
|
5
4
|
type EventKey = "Enter" | "ArrowDown" | "ArrowUp" | "ArrowLeft" | "ArrowRight";
|
|
6
5
|
export interface IEventListener extends AddEventListenerOptions, IEventListenerOptions {
|
|
@@ -33,7 +32,7 @@ export class BaseEvent implements IEventListener {
|
|
|
33
32
|
this.mouseRight = options?.mouseRight;
|
|
34
33
|
}
|
|
35
34
|
|
|
36
|
-
type: EventType
|
|
35
|
+
type: EventType;
|
|
37
36
|
name: string;
|
|
38
37
|
handler: (event: Event) => void;
|
|
39
38
|
eventKey?: EventKey;
|
|
@@ -47,6 +46,60 @@ export class BaseEvent implements IEventListener {
|
|
|
47
46
|
|
|
48
47
|
export class ClickEvent extends BaseEvent {
|
|
49
48
|
constructor(handler: (event: MouseEvent) => void, options?: IEventListenerOptions) {
|
|
50
|
-
super(
|
|
49
|
+
super(MouseEvent, "click", handler, options);
|
|
51
50
|
}
|
|
52
51
|
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
export interface ISwipeEventOptions {
|
|
55
|
+
leftHandler?: (event: TouchEvent) => void;
|
|
56
|
+
rightHandler?: (event: TouchEvent) => void;
|
|
57
|
+
upHandler?: (event: TouchEvent) => void;
|
|
58
|
+
downHandler?: (event: TouchEvent) => void;
|
|
59
|
+
distance?: number;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function getSwipeEvent(options: ISwipeEventOptions): Array<IEventListener> {
|
|
63
|
+
let startX = 0;
|
|
64
|
+
let startY = 0;
|
|
65
|
+
let endX = 0;
|
|
66
|
+
let endY = 0;
|
|
67
|
+
const distance = options.distance || 50;
|
|
68
|
+
return [
|
|
69
|
+
{
|
|
70
|
+
type: TouchEvent,
|
|
71
|
+
name: "touchstart",
|
|
72
|
+
handler: (event: TouchEvent) => {
|
|
73
|
+
const touch = event.touches[0];
|
|
74
|
+
startX = touch.clientX;
|
|
75
|
+
startY = touch.clientY
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: TouchEvent,
|
|
80
|
+
name: "touchend",
|
|
81
|
+
handler: (event: TouchEvent) => {
|
|
82
|
+
const touch = event.changedTouches[0];
|
|
83
|
+
endX = touch.clientX;
|
|
84
|
+
endY = touch.clientY;
|
|
85
|
+
if (startX > endX + distance) {
|
|
86
|
+
if (options.leftHandler) {
|
|
87
|
+
options.leftHandler(event);
|
|
88
|
+
}
|
|
89
|
+
} else if (endX > startX + distance) {
|
|
90
|
+
if (options.rightHandler) {
|
|
91
|
+
options.rightHandler(event);
|
|
92
|
+
}
|
|
93
|
+
} else if (startY > endY + distance) {
|
|
94
|
+
if (options.upHandler) {
|
|
95
|
+
options.upHandler(event);
|
|
96
|
+
}
|
|
97
|
+
} else if (endY > startY + distance) {
|
|
98
|
+
if (options.downHandler) {
|
|
99
|
+
options.downHandler(event);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
@@ -4,8 +4,6 @@ import { IStyle as Style, IStyleSubscribable as StyleSubscribable } from "./styl
|
|
|
4
4
|
import { userAgent } from "../utilities/userAgent/userAgent";
|
|
5
5
|
import { ISubscribable, IDisposer } from "./observableInterfaces";
|
|
6
6
|
import { isSubscribable, unwrap, executeHandlerOnObject } from "./observablelmplementations";
|
|
7
|
-
import { forIn } from "lodash";
|
|
8
|
-
import { event } from "..";
|
|
9
7
|
|
|
10
8
|
export interface IWebSocketMessageHandler {
|
|
11
9
|
handleWebSocketMessage: (message: any) => void;
|
|
@@ -184,7 +182,7 @@ export function applyBindings(properties: IProperties, element: HTMLElement, dis
|
|
|
184
182
|
//Find out if the element is none selectable
|
|
185
183
|
if (properties.userSelectable === false) {
|
|
186
184
|
applyEventListenerToElement({
|
|
187
|
-
type:
|
|
185
|
+
type: Event,
|
|
188
186
|
name: "selectstart",
|
|
189
187
|
handler: () => { return false; },
|
|
190
188
|
passive: true
|
|
@@ -279,6 +277,9 @@ function applyEventListenerToElement(eventListener: IEventListener, element: HTM
|
|
|
279
277
|
if (!type) {
|
|
280
278
|
throw new Error("type is mandatory");
|
|
281
279
|
}
|
|
280
|
+
if (!name) {
|
|
281
|
+
throw new Error("name is mandatory");
|
|
282
|
+
}
|
|
282
283
|
if (!handler) {
|
|
283
284
|
throw new Error("handler is mandatory");
|
|
284
285
|
}
|
|
@@ -298,7 +299,7 @@ function applyEventListenerToElement(eventListener: IEventListener, element: HTM
|
|
|
298
299
|
element.setAttribute("draggable", "true");
|
|
299
300
|
}
|
|
300
301
|
|
|
301
|
-
if (eventListener.type ===
|
|
302
|
+
if (eventListener.type === KeyboardEvent) {
|
|
302
303
|
handler = (event: KeyboardEvent) => {
|
|
303
304
|
if (eventListener.altKey && !event.altKey) {
|
|
304
305
|
return;
|
|
@@ -321,125 +322,9 @@ function applyEventListenerToElement(eventListener: IEventListener, element: HTM
|
|
|
321
322
|
|
|
322
323
|
|
|
323
324
|
//Add the event listener to the element
|
|
324
|
-
element.addEventListener(
|
|
325
|
+
element.addEventListener(name, handler, options);
|
|
325
326
|
|
|
326
327
|
}
|
|
327
|
-
//function applyEventListenersToElementOld(properties: IProperties, element: HTMLElement) {
|
|
328
|
-
// //Add the eventListeners to the element
|
|
329
|
-
// const clickEventListeners = new Array<IGenericEventListener>();
|
|
330
|
-
// const doubleClickEventListeners = new Array<IGenericEventListener>();
|
|
331
|
-
|
|
332
|
-
// Object.entries(properties.eventListeners).forEach((entry) => {
|
|
333
|
-
// var eventName = entry[0] as keyof IUiElementEventMap;
|
|
334
|
-
// var eventListener = entry[1] as IGenericEventListener;
|
|
335
|
-
|
|
336
|
-
// if (eventName === "click") {
|
|
337
|
-
// clickEventListeners.push(eventListener);
|
|
338
|
-
// return;
|
|
339
|
-
// }
|
|
340
|
-
// if (eventName === "dblclick") {
|
|
341
|
-
// doubleClickEventListeners.push(eventListener);
|
|
342
|
-
// return;
|
|
343
|
-
// }
|
|
344
|
-
|
|
345
|
-
// if (eventName === "dragstart") {
|
|
346
|
-
// element.setAttribute("draggable", "true");
|
|
347
|
-
// }
|
|
348
|
-
|
|
349
|
-
// if (isGlobalEvent(eventName)) {
|
|
350
|
-
// applyEventListenerToElement(
|
|
351
|
-
// eventName,
|
|
352
|
-
// (event: Event) => {
|
|
353
|
-
// if (eventListener.options) {
|
|
354
|
-
// const options = eventListener.options as IEventListenerOptions;
|
|
355
|
-
// const keyEvent = event as KeyboardEvent;
|
|
356
|
-
// if (options.altKey && !keyEvent.altKey) {
|
|
357
|
-
// return;
|
|
358
|
-
// }
|
|
359
|
-
// if (options.shiftKey && !keyEvent.shiftKey) {
|
|
360
|
-
// return;
|
|
361
|
-
// }
|
|
362
|
-
// if (options.ctrlKey && !keyEvent.ctrlKey) {
|
|
363
|
-
// return;
|
|
364
|
-
// }
|
|
365
|
-
// if (options.eventKey && options.eventKey !== keyEvent.key) {
|
|
366
|
-
// return;
|
|
367
|
-
// }
|
|
368
|
-
// }
|
|
369
|
-
|
|
370
|
-
// eventListener.listener.call(properties, event);
|
|
371
|
-
// },
|
|
372
|
-
// eventListener.options,
|
|
373
|
-
// element
|
|
374
|
-
// );
|
|
375
|
-
// }
|
|
376
|
-
// else if (mouseEvents[eventName] && userAgent.device.supportsMouseEvents) {
|
|
377
|
-
// applyEventListenerToElement(eventName, eventListener.listener, eventListener.options, element);
|
|
378
|
-
// }
|
|
379
|
-
// else if (touchEvents[eventName] && userAgent.device.supportsTouchEvents) {
|
|
380
|
-
// applyEventListenerToElement(eventName, eventListener.listener, eventListener.options, element);
|
|
381
|
-
// }
|
|
382
|
-
// });
|
|
383
|
-
|
|
384
|
-
// clickEventListeners.forEach((clickEventListener) => {
|
|
385
|
-
// if (userAgent.device.supportsTouchEvents) {
|
|
386
|
-
// // ReSharper disable once Html.EventNotResolved
|
|
387
|
-
// applyEventListenerToElement("tap", clickEventListener.listener, clickEventListener.options, element);
|
|
388
|
-
// }
|
|
389
|
-
// if (userAgent.device.supportsMouseEvents) {
|
|
390
|
-
// applyEventListenerToElement("click", clickEventListener.listener, clickEventListener.options, element);
|
|
391
|
-
// }
|
|
392
|
-
// });
|
|
393
|
-
|
|
394
|
-
// doubleClickEventListeners.forEach((doubleClickEventListener) => {
|
|
395
|
-
// if (userAgent.device.supportsTouchEvents) {
|
|
396
|
-
// // ReSharper disable once Html.EventNotResolved
|
|
397
|
-
// applyEventListenerToElement("dbltap", doubleClickEventListener.listener, doubleClickEventListener.options, element);
|
|
398
|
-
// }
|
|
399
|
-
// if (userAgent.device.supportsMouseEvents) {
|
|
400
|
-
// applyEventListenerToElement("dblclick", doubleClickEventListener.listener, doubleClickEventListener.options, element);
|
|
401
|
-
// }
|
|
402
|
-
// });
|
|
403
|
-
//}
|
|
404
|
-
|
|
405
|
-
//function applyEventListenerToElementOld(type: keyof IUiElementEventMap, listener: (event: any) => any, options: IEventListenerOptions, element: HTMLElement) {
|
|
406
|
-
// if (!type) {
|
|
407
|
-
// throw new Error("type is mandatory");
|
|
408
|
-
// }
|
|
409
|
-
// if (!listener) {
|
|
410
|
-
// throw new Error("listener is mandatory");
|
|
411
|
-
// }
|
|
412
|
-
// if (!options) {
|
|
413
|
-
// options = {};
|
|
414
|
-
// }
|
|
415
|
-
// if (!options.passive) {
|
|
416
|
-
// options.passive = false;
|
|
417
|
-
// }
|
|
418
|
-
// if (!options.once) {
|
|
419
|
-
// options.once = false;
|
|
420
|
-
// }
|
|
421
|
-
|
|
422
|
-
// if (element.addEventListener) {
|
|
423
|
-
// element.addEventListener(
|
|
424
|
-
// type,
|
|
425
|
-
// (event) => {
|
|
426
|
-
// listener(event);
|
|
427
|
-
// },
|
|
428
|
-
// {
|
|
429
|
-
// passive: options.passive,
|
|
430
|
-
// once: options.once
|
|
431
|
-
// });
|
|
432
|
-
// } else if (element["attachEvent"]) {
|
|
433
|
-
// element["attachEvent"](
|
|
434
|
-
// type,
|
|
435
|
-
// (event) => {
|
|
436
|
-
// listener(event);
|
|
437
|
-
// }
|
|
438
|
-
// );
|
|
439
|
-
// } else {
|
|
440
|
-
// throw "Your browser does not support 'addEventListener'";
|
|
441
|
-
// }
|
|
442
|
-
//}
|
|
443
328
|
|
|
444
329
|
function applyClassesToElement(classNames: string[], replace: boolean, element: HTMLElement) {
|
|
445
330
|
//If all existing classes need to be replace we reset the classes object to an empty object
|