jpf 5.0.35 → 5.0.37
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/observablelmplementations.d.ts +1 -1
- package/dist/framework/observablelmplementations.js +17 -11
- package/dist/framework/observablelmplementations.js.map +1 -1
- package/dist/framework/properties.d.ts +1 -1
- package/dist/framework/properties.js +7 -7
- package/dist/framework/properties.js.map +1 -1
- package/package.json +1 -2
- package/src/framework/event.ts +57 -4
- package/src/framework/observablelmplementations.ts +20 -11
- package/src/framework/properties.ts +9 -11
|
@@ -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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"}
|
|
@@ -21,4 +21,4 @@ export declare function isObservableSet<TItem>(value: any): value is IObservable
|
|
|
21
21
|
export declare function computed<TComputed>(func: () => TComputed): IComputed<TComputed>;
|
|
22
22
|
export declare function observableValue<TValue, TSetter = TValue>(value?: TValue | null, setter?: (value: TSetter, observableValue: IObservableValue<TValue, TSetter>) => void): IObservableValue<TValue, TSetter>;
|
|
23
23
|
export declare function isSubscribable<TValue>(value: any): value is ISubscribable<TValue>;
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function executeHandlerOnContext(context: object, handler: (context: any) => void, alreadyProcessedContexts?: Set<object>): void;
|
|
@@ -64,27 +64,33 @@ export function isSubscribable(value) {
|
|
|
64
64
|
|| implementations.isObservableMap(value)
|
|
65
65
|
|| implementations.isObservableSet(value);
|
|
66
66
|
}
|
|
67
|
-
export function
|
|
68
|
-
if (
|
|
69
|
-
|
|
67
|
+
export function executeHandlerOnContext(context, handler, alreadyProcessedContexts) {
|
|
68
|
+
if (!alreadyProcessedContexts) {
|
|
69
|
+
alreadyProcessedContexts = new Set();
|
|
70
|
+
}
|
|
71
|
+
if (!context || typeof context !== "object" || alreadyProcessedContexts.has(context)) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (Array.isArray(context)) {
|
|
75
|
+
for (const arrayEntry of context) {
|
|
70
76
|
if (typeof arrayEntry === "object") {
|
|
71
|
-
|
|
77
|
+
executeHandlerOnContext(arrayEntry, handler, alreadyProcessedContexts);
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
80
|
}
|
|
75
81
|
else {
|
|
76
|
-
if (isSubscribable(
|
|
77
|
-
const unwrapped =
|
|
82
|
+
if (isSubscribable(context)) {
|
|
83
|
+
const unwrapped = unwrap(context);
|
|
78
84
|
if (typeof unwrapped === "object") {
|
|
79
|
-
|
|
85
|
+
executeHandlerOnContext(unwrapped, handler, alreadyProcessedContexts);
|
|
80
86
|
}
|
|
81
87
|
}
|
|
82
88
|
else {
|
|
83
|
-
handler(
|
|
84
|
-
for (const key
|
|
85
|
-
const property =
|
|
89
|
+
handler(context);
|
|
90
|
+
for (const key of Object.keys(context)) {
|
|
91
|
+
const property = context[key];
|
|
86
92
|
if (property && typeof property === "object") {
|
|
87
|
-
|
|
93
|
+
executeHandlerOnContext(property, handler, alreadyProcessedContexts);
|
|
88
94
|
}
|
|
89
95
|
}
|
|
90
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observablelmplementations.js","sourceRoot":"","sources":["../../src/framework/observablelmplementations.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,MAAM,EAAE,CAAS,KAAqC,EAAU,EAAE;QAC9D,MAAM,2BAA2B,CAAC;IACtC,CAAC;IAED,UAAU,EAAE,CAAC,KAAK,EAA2B,EAAE;QAC3C,MAAM,+BAA+B,CAAC;IAC1C,CAAC;IAED,iBAAiB,EAAE,CAAC,KAAK,EAA6B,EAAE;QACpD,MAAM,sCAAsC,CAAC;IACjD,CAAC;IAED,iBAAiB,EAAE,CAAC,KAAK,EAA6B,EAAE;QACpD,MAAM,sCAAsC,CAAC;IACjD,CAAC;IAED,eAAe,EAAE,CAAc,KAAK,EAAwC,EAAE;QAC1E,MAAM,oCAAoC,CAAC;IAC/C,CAAC;IAED,eAAe,EAAE,CAAQ,KAAK,EAAkC,EAAE;QAC9D,MAAM,oCAAoC,CAAC;IAC/C,CAAC;IAED,QAAQ,EAAE,CAAY,IAAqB,EAAwB,EAAE;QACjE,MAAM,6BAA6B,CAAC;IACxC,CAAC;IAED,eAAe,EAAE,CAA2B,KAAqB,EAAE,MAAqF,EAAqC,EAAE;QAC3L,MAAM,oCAAoC,CAAC;IAC/C,CAAC;IAED,eAAe,EAAE,CAAsC,aAAmC,EAAE,MAAoF,EAAoC,EAAE;QAClN,MAAM,oCAAoC,CAAA;IAC9C,CAAC;IAGD,aAAa,EAAE,CAA0B,aAAc,EAA+B,EAAE;QACpF,MAAM,kCAAkC,CAAA;IAC5C,CAAC;IAED,aAAa,EAAE,CAAc,aAAa,EAAyB,EAAE;QACjE,MAAM,kCAAkC,CAAA;IAC5C,CAAC;CAEJ,CAAA;
|
|
1
|
+
{"version":3,"file":"observablelmplementations.js","sourceRoot":"","sources":["../../src/framework/observablelmplementations.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export declare abstract class Properties implements IProperties {
|
|
|
34
34
|
elementType?: string;
|
|
35
35
|
focused?: boolean | ISubscribable<boolean>;
|
|
36
36
|
}
|
|
37
|
-
export declare function handleWebSocketMessage(
|
|
37
|
+
export declare function handleWebSocketMessage(context: object, message: any): void;
|
|
38
38
|
export declare function isNullOrUndefined(value: any): boolean;
|
|
39
39
|
export declare function extendProperties<TTarget = IProperties, TOverwritingProperties = TTarget, TPreserveExistingProperties = TTarget>(target: TTarget, preserveExisting: TPreserveExistingProperties, overWriteExisting?: TOverwritingProperties): TTarget;
|
|
40
40
|
export declare function applyBindings(properties: IProperties, element: HTMLElement, disposers: Array<IDisposer>): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { userAgent } from "../utilities/userAgent/userAgent";
|
|
2
|
-
import { isSubscribable, unwrap,
|
|
2
|
+
import { isSubscribable, unwrap, executeHandlerOnContext } from "./observablelmplementations";
|
|
3
3
|
export class Properties {
|
|
4
4
|
setProperties(object, properties) {
|
|
5
5
|
if (properties) {
|
|
@@ -21,13 +21,13 @@ export class Properties {
|
|
|
21
21
|
elementType;
|
|
22
22
|
focused;
|
|
23
23
|
}
|
|
24
|
-
export function handleWebSocketMessage(
|
|
25
|
-
|
|
26
|
-
const webSocketMessageHandler =
|
|
24
|
+
export function handleWebSocketMessage(context, message) {
|
|
25
|
+
executeHandlerOnContext(context, (context) => {
|
|
26
|
+
const webSocketMessageHandler = context;
|
|
27
27
|
if (webSocketMessageHandler.handleWebSocketMessage && typeof webSocketMessageHandler.handleWebSocketMessage === "function") {
|
|
28
28
|
webSocketMessageHandler.handleWebSocketMessage(message);
|
|
29
29
|
}
|
|
30
|
-
}
|
|
30
|
+
});
|
|
31
31
|
}
|
|
32
32
|
export function isNullOrUndefined(value) {
|
|
33
33
|
return value === null || typeof value === "undefined";
|
|
@@ -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
|
|
@@ -226,7 +226,7 @@ function applyEventListenerToElement(eventListener, element) {
|
|
|
226
226
|
if (name === "dragstart") {
|
|
227
227
|
element.setAttribute("draggable", "true");
|
|
228
228
|
}
|
|
229
|
-
if (eventListener.type ===
|
|
229
|
+
if (eventListener.type === KeyboardEvent) {
|
|
230
230
|
handler = (event) => {
|
|
231
231
|
if (eventListener.altKey && !event.altKey) {
|
|
232
232
|
return;
|
|
@@ -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,
|
|
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.37",
|
|
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
|
+
}
|
|
@@ -47,6 +47,7 @@ export const implementations = {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
}
|
|
50
|
+
|
|
50
51
|
export function unwrap<TValue>(value: TValue | ISubscribable<TValue>): TValue {
|
|
51
52
|
return implementations.unwrap(value);
|
|
52
53
|
}
|
|
@@ -87,29 +88,37 @@ export function isSubscribable<TValue>(value: any): value is ISubscribable<TValu
|
|
|
87
88
|
|| implementations.isObservableSet(value);
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
export function
|
|
91
|
+
export function executeHandlerOnContext(context: object, handler: (context) => void, alreadyProcessedContexts?: Set<object>) {
|
|
92
|
+
if (!alreadyProcessedContexts) {
|
|
93
|
+
alreadyProcessedContexts = new Set();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (!context || typeof context !== "object" || alreadyProcessedContexts.has(context)) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
91
100
|
//Find out if the object is an array
|
|
92
|
-
if (
|
|
93
|
-
for (const arrayEntry of
|
|
101
|
+
if (Array.isArray(context)) {
|
|
102
|
+
for (const arrayEntry of context as Array<unknown>) {
|
|
94
103
|
if (typeof arrayEntry === "object") {
|
|
95
|
-
|
|
104
|
+
executeHandlerOnContext(arrayEntry, handler, alreadyProcessedContexts);
|
|
96
105
|
}
|
|
97
106
|
}
|
|
98
107
|
} else {
|
|
99
|
-
if (isSubscribable(
|
|
100
|
-
const unwrapped =
|
|
108
|
+
if (isSubscribable(context)) {
|
|
109
|
+
const unwrapped = unwrap(context);
|
|
101
110
|
if (typeof unwrapped === "object") {
|
|
102
|
-
|
|
111
|
+
executeHandlerOnContext(unwrapped, handler, alreadyProcessedContexts);
|
|
103
112
|
}
|
|
104
113
|
} else {
|
|
105
114
|
//Call the handler on the object.
|
|
106
|
-
handler(
|
|
115
|
+
handler(context);
|
|
107
116
|
|
|
108
117
|
//Find out if the object has properties of type object
|
|
109
|
-
for (const key
|
|
110
|
-
const property =
|
|
118
|
+
for (const key of Object.keys(context)) {
|
|
119
|
+
const property = context[key];
|
|
111
120
|
if (property && typeof property === "object") {
|
|
112
|
-
|
|
121
|
+
executeHandlerOnContext(property, handler, alreadyProcessedContexts);
|
|
113
122
|
}
|
|
114
123
|
}
|
|
115
124
|
}
|
|
@@ -3,9 +3,7 @@ import { IAttributes, IAttributesSubscribable } from "./attributes";
|
|
|
3
3
|
import { IStyle as Style, IStyleSubscribable as StyleSubscribable } from "./style";
|
|
4
4
|
import { userAgent } from "../utilities/userAgent/userAgent";
|
|
5
5
|
import { ISubscribable, IDisposer } from "./observableInterfaces";
|
|
6
|
-
import { isSubscribable, unwrap,
|
|
7
|
-
import { forIn } from "lodash";
|
|
8
|
-
import { event } from "..";
|
|
6
|
+
import { isSubscribable, unwrap, executeHandlerOnContext } from "./observablelmplementations";
|
|
9
7
|
|
|
10
8
|
export interface IWebSocketMessageHandler {
|
|
11
9
|
handleWebSocketMessage: (message: any) => void;
|
|
@@ -51,16 +49,16 @@ export abstract class Properties implements IProperties {
|
|
|
51
49
|
|
|
52
50
|
//#region Properties helper functions
|
|
53
51
|
|
|
54
|
-
export function handleWebSocketMessage(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
export function handleWebSocketMessage(context: object, message: any) {
|
|
53
|
+
executeHandlerOnContext(
|
|
54
|
+
context,
|
|
55
|
+
(context) => {
|
|
56
|
+
const webSocketMessageHandler = context as IWebSocketMessageHandler;
|
|
58
57
|
if (webSocketMessageHandler.handleWebSocketMessage && typeof webSocketMessageHandler.handleWebSocketMessage === "function") {
|
|
59
58
|
//Call the handleWebSocketMessage method
|
|
60
59
|
webSocketMessageHandler.handleWebSocketMessage(message);
|
|
61
60
|
}
|
|
62
|
-
}
|
|
63
|
-
object
|
|
61
|
+
}
|
|
64
62
|
);
|
|
65
63
|
}
|
|
66
64
|
|
|
@@ -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
|
|
@@ -301,7 +299,7 @@ function applyEventListenerToElement(eventListener: IEventListener, element: HTM
|
|
|
301
299
|
element.setAttribute("draggable", "true");
|
|
302
300
|
}
|
|
303
301
|
|
|
304
|
-
if (eventListener.type ===
|
|
302
|
+
if (eventListener.type === KeyboardEvent) {
|
|
305
303
|
handler = (event: KeyboardEvent) => {
|
|
306
304
|
if (eventListener.altKey && !event.altKey) {
|
|
307
305
|
return;
|