@progress/kendo-charts 2.4.0-dev.202405201104 → 2.4.0-dev.202405290547
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/cdn/js/kendo-charts.js +1 -1
- package/dist/cdn/main.js +1 -1
- package/dist/es/chart/legend/legend-item.js +1 -1
- package/dist/es/common/event-map.js +17 -0
- package/dist/es/common/event-utils.js +61 -0
- package/dist/es/common/get-supported-features.js +55 -0
- package/dist/es/common/noop.js +1 -0
- package/dist/es/common/now.js +3 -0
- package/dist/es/common/observable.js +1 -3
- package/dist/es/{map/scroller → common}/user-events.js +43 -131
- package/dist/es/common.js +7 -0
- package/dist/es/map/layers/layer.js +2 -5
- package/dist/es/map/layers/marker.js +3 -3
- package/dist/es/map/map.js +6 -6
- package/dist/es/map/navigator.js +3 -3
- package/dist/es/map/scroller/draggable.js +6 -11
- package/dist/es/map/scroller/fx.js +2 -2
- package/dist/es/map/scroller/scroller.js +7 -12
- package/dist/es/map/utils.js +9 -339
- package/dist/es/map/zoom.js +3 -3
- package/dist/es/sankey/legend.js +5 -0
- package/dist/es/sankey/link.js +139 -1
- package/dist/es/sankey/node.js +56 -5
- package/dist/es/sankey/sankey.js +319 -4
- package/dist/es/services/dom-events-builder.js +2 -4
- package/dist/es2015/chart/legend/legend-item.js +1 -1
- package/dist/es2015/common/event-map.js +17 -0
- package/dist/es2015/common/event-utils.js +61 -0
- package/dist/es2015/common/get-supported-features.js +55 -0
- package/dist/es2015/common/noop.js +1 -0
- package/dist/es2015/common/now.js +3 -0
- package/dist/es2015/common/observable.js +1 -3
- package/dist/es2015/{map/scroller → common}/user-events.js +39 -131
- package/dist/es2015/common.js +7 -0
- package/dist/es2015/map/layers/layer.js +2 -5
- package/dist/es2015/map/layers/marker.js +3 -3
- package/dist/es2015/map/map.js +6 -6
- package/dist/es2015/map/navigator.js +3 -3
- package/dist/es2015/map/scroller/draggable.js +6 -11
- package/dist/es2015/map/scroller/fx.js +2 -2
- package/dist/es2015/map/scroller/scroller.js +7 -12
- package/dist/es2015/map/utils.js +8 -339
- package/dist/es2015/map/zoom.js +3 -3
- package/dist/es2015/sankey/legend.js +5 -0
- package/dist/es2015/sankey/link.js +119 -1
- package/dist/es2015/sankey/node.js +55 -5
- package/dist/es2015/sankey/sankey.js +307 -7
- package/dist/es2015/services/dom-events-builder.js +2 -4
- package/dist/npm/main.js +3194 -2954
- package/dist/npm/sankey.d.ts +65 -2
- package/dist/systemjs/kendo-charts.js +1 -1
- package/package.json +1 -1
|
@@ -6,19 +6,19 @@ import {
|
|
|
6
6
|
addClass,
|
|
7
7
|
Observable,
|
|
8
8
|
isFunction,
|
|
9
|
-
setDefaultOptions
|
|
9
|
+
setDefaultOptions,
|
|
10
|
+
on,
|
|
11
|
+
off,
|
|
12
|
+
UserEvents
|
|
10
13
|
} from '../../common';
|
|
11
14
|
|
|
12
15
|
import {
|
|
13
16
|
convertToHtml,
|
|
14
17
|
prepend,
|
|
15
18
|
wrapInner,
|
|
16
|
-
contains,
|
|
17
19
|
hasNativeScrolling,
|
|
18
|
-
on,
|
|
19
|
-
off,
|
|
20
|
-
proxy,
|
|
21
20
|
wheelDeltaY,
|
|
21
|
+
proxy,
|
|
22
22
|
setDefaultEvents
|
|
23
23
|
} from '../utils';
|
|
24
24
|
|
|
@@ -34,10 +34,6 @@ import {
|
|
|
34
34
|
TapCapture
|
|
35
35
|
} from './draggable';
|
|
36
36
|
|
|
37
|
-
import {
|
|
38
|
-
UserEvents
|
|
39
|
-
} from './user-events';
|
|
40
|
-
|
|
41
37
|
var
|
|
42
38
|
extend = Object.assign,
|
|
43
39
|
abs = Math.abs,
|
|
@@ -382,8 +378,7 @@ export var Scroller = (function (Observable) {
|
|
|
382
378
|
avoidScrolling = this.options.avoidScrolling,
|
|
383
379
|
|
|
384
380
|
userEvents = new UserEvents(element, {
|
|
385
|
-
touchAction: '
|
|
386
|
-
fastTap: true,
|
|
381
|
+
touchAction: 'none',
|
|
387
382
|
allowSelection: true,
|
|
388
383
|
preventDragEvent: true,
|
|
389
384
|
captureUpIfMoved: true,
|
|
@@ -394,7 +389,7 @@ export var Scroller = (function (Observable) {
|
|
|
394
389
|
var velocityX = abs(e.x.velocity),
|
|
395
390
|
velocityY = abs(e.y.velocity),
|
|
396
391
|
horizontalSwipe = velocityX * 2 >= velocityY,
|
|
397
|
-
originatedFromFixedContainer =
|
|
392
|
+
originatedFromFixedContainer = that.fixedContainer.contains(e.event.target),
|
|
398
393
|
verticalSwipe = velocityY * 2 >= velocityX;
|
|
399
394
|
if (!originatedFromFixedContainer && !avoidScrolling(e) && that.enabled && (dimensions.x.enabled && horizontalSwipe || dimensions.y.enabled && verticalSwipe)) {
|
|
400
395
|
userEvents.capture();
|
package/dist/es/map/utils.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
isFunction,
|
|
3
|
-
isArray,
|
|
4
|
-
hasOwnProperty
|
|
5
|
-
} from '../common';
|
|
1
|
+
import { getSupportedFeatures } from '../common';
|
|
6
2
|
|
|
7
3
|
/* eslint-disable arrow-body-style, no-useless-escape */
|
|
8
4
|
|
|
9
|
-
var defineProperty = Object.defineProperty;
|
|
10
|
-
|
|
11
5
|
export var extend = Object.assign;
|
|
12
6
|
|
|
7
|
+
export var proxy = function (method, context) {
|
|
8
|
+
return method.bind(context);
|
|
9
|
+
};
|
|
10
|
+
|
|
13
11
|
export var convertToHtml = function (html) {
|
|
14
12
|
var div = document.createElement("div");
|
|
15
13
|
div.innerHTML = html;
|
|
@@ -65,331 +63,10 @@ export var toPixels = function (value) {
|
|
|
65
63
|
return result;
|
|
66
64
|
};
|
|
67
65
|
|
|
68
|
-
var detectOS = function (ua) {
|
|
69
|
-
var os = false, minorVersion, match = [],
|
|
70
|
-
// notAndroidPhone = !/mobile safari/i.test(ua),
|
|
71
|
-
agentRxs = {
|
|
72
|
-
wp: /(Windows Phone(?: OS)?)\s(\d+)\.(\d+(\.\d+)?)/,
|
|
73
|
-
fire: /(Silk)\/(\d+)\.(\d+(\.\d+)?)/,
|
|
74
|
-
android: /(Android|Android.*(?:Opera|Firefox).*?\/)\s*(\d+)\.?(\d+(\.\d+)?)?/,
|
|
75
|
-
iphone: /(iPhone|iPod).*OS\s+(\d+)[\._]([\d\._]+)/,
|
|
76
|
-
ipad: /(iPad).*OS\s+(\d+)[\._]([\d_]+)/,
|
|
77
|
-
meego: /(MeeGo).+NokiaBrowser\/(\d+)\.([\d\._]+)/,
|
|
78
|
-
webos: /(webOS)\/(\d+)\.(\d+(\.\d+)?)/,
|
|
79
|
-
blackberry: /(BlackBerry|BB10).*?Version\/(\d+)\.(\d+(\.\d+)?)/,
|
|
80
|
-
playbook: /(PlayBook).*?Tablet\s*OS\s*(\d+)\.(\d+(\.\d+)?)/,
|
|
81
|
-
windows: /(MSIE)\s+(\d+)\.(\d+(\.\d+)?)/,
|
|
82
|
-
tizen: /(tizen).*?Version\/(\d+)\.(\d+(\.\d+)?)/i,
|
|
83
|
-
sailfish: /(sailfish).*rv:(\d+)\.(\d+(\.\d+)?).*firefox/i,
|
|
84
|
-
ffos: /(Mobile).*rv:(\d+)\.(\d+(\.\d+)?).*Firefox/
|
|
85
|
-
},
|
|
86
|
-
osRxs = {
|
|
87
|
-
ios: /^i(phone|pad|pod)$/i,
|
|
88
|
-
android: /^android|fire$/i,
|
|
89
|
-
blackberry: /^blackberry|playbook/i,
|
|
90
|
-
windows: /windows/,
|
|
91
|
-
wp: /wp/,
|
|
92
|
-
flat: /sailfish|ffos|tizen/i,
|
|
93
|
-
meego: /meego/
|
|
94
|
-
},
|
|
95
|
-
formFactorRxs = {
|
|
96
|
-
tablet: /playbook|ipad|fire/i
|
|
97
|
-
},
|
|
98
|
-
browserRxs = {
|
|
99
|
-
omini: /Opera\sMini/i,
|
|
100
|
-
omobile: /Opera\sMobi/i,
|
|
101
|
-
firefox: /Firefox|Fennec/i,
|
|
102
|
-
mobilesafari: /version\/.*safari/i,
|
|
103
|
-
ie: /MSIE|Windows\sPhone/i,
|
|
104
|
-
chrome: /chrome|crios/i,
|
|
105
|
-
webkit: /webkit/i
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
for (var agent in agentRxs) {
|
|
109
|
-
if (hasOwnProperty(agentRxs, agent)) {
|
|
110
|
-
match = ua.match(agentRxs[agent]);
|
|
111
|
-
if (match) {
|
|
112
|
-
if (agent === "windows" && "plugins" in navigator) { return false; } // Break if not Metro/Mobile Windows
|
|
113
|
-
|
|
114
|
-
os = {};
|
|
115
|
-
os.device = agent;
|
|
116
|
-
os.tablet = testRegex(agent, formFactorRxs, false);
|
|
117
|
-
os.browser = testRegex(ua, browserRxs, "default");
|
|
118
|
-
os.name = testRegex(agent, osRxs);
|
|
119
|
-
os[os.name] = true;
|
|
120
|
-
os.majorVersion = match[2];
|
|
121
|
-
os.minorVersion = (match[3] || "0").replace("_", ".");
|
|
122
|
-
minorVersion = os.minorVersion.replace(".", "").substr(0, 2);
|
|
123
|
-
os.flatVersion = os.majorVersion + minorVersion + (new Array(3 - (minorVersion.length < 3 ? minorVersion.length : 2)).join("0"));
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return os;
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
function testRegex(agent, regexes, dflt) {
|
|
135
|
-
for (var regex in regexes) {
|
|
136
|
-
if (hasOwnProperty(regexes, regex) && regexes[regex].test(agent)) {
|
|
137
|
-
return regex;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
return dflt !== undefined ? dflt : agent;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
66
|
export var hasNativeScrolling = function (userAgent) {
|
|
144
|
-
var
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
var detectBrowser = function (userAgent) {
|
|
149
|
-
var browser = false,
|
|
150
|
-
match = [],
|
|
151
|
-
browserRxs = {
|
|
152
|
-
edge: /(edge)[ \/]([\w.]+)/i,
|
|
153
|
-
webkit: /(chrome|crios)[ \/]([\w.]+)/i,
|
|
154
|
-
safari: /(webkit)[ \/]([\w.]+)/i,
|
|
155
|
-
opera: /(opera)(?:.*version|)[ \/]([\w.]+)/i,
|
|
156
|
-
msie: /(msie\s|trident.*? rv:)([\w.]+)/i,
|
|
157
|
-
mozilla: /(mozilla)(?:.*? rv:([\w.]+)|)/i
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
for (var agent in browserRxs) {
|
|
161
|
-
if (hasOwnProperty(browserRxs, agent)) {
|
|
162
|
-
match = userAgent.match(browserRxs[agent]);
|
|
163
|
-
|
|
164
|
-
if (match) {
|
|
165
|
-
browser = {};
|
|
166
|
-
browser[agent] = true;
|
|
167
|
-
browser[match[1].toLowerCase().split(" ")[0].split("/")[0]] = true;
|
|
168
|
-
browser.version = parseInt(document.documentMode || match[2], 10);
|
|
169
|
-
|
|
170
|
-
break;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
return browser;
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
export var getEventMap = function () {
|
|
179
|
-
var eventMap = {
|
|
180
|
-
down: "touchstart mousedown",
|
|
181
|
-
move: "mousemove touchmove",
|
|
182
|
-
up: "mouseup touchend touchcancel",
|
|
183
|
-
cancel: "mouseleave touchcancel"
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
var support = getSupportedFeatures();
|
|
187
|
-
|
|
188
|
-
if (support.touch && (support.mobileOS.ios || support.mobileOS.android)) {
|
|
189
|
-
eventMap = {
|
|
190
|
-
down: "touchstart",
|
|
191
|
-
move: "touchmove",
|
|
192
|
-
up: "touchend touchcancel",
|
|
193
|
-
cancel: "touchcancel"
|
|
194
|
-
};
|
|
195
|
-
} else if (support.pointers) {
|
|
196
|
-
eventMap = {
|
|
197
|
-
down: "pointerdown",
|
|
198
|
-
move: "pointermove",
|
|
199
|
-
up: "pointerup",
|
|
200
|
-
cancel: "pointercancel pointerleave"
|
|
201
|
-
};
|
|
202
|
-
} else if (support.msPointers) {
|
|
203
|
-
eventMap = {
|
|
204
|
-
down: "MSPointerDown",
|
|
205
|
-
move: "MSPointerMove",
|
|
206
|
-
up: "MSPointerUp",
|
|
207
|
-
cancel: "MSPointerCancel MSPointerLeave"
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
return eventMap;
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
export var getSupportedFeatures = function () {
|
|
215
|
-
var os = detectOS(navigator.userAgent);
|
|
216
|
-
var browser = detectBrowser(navigator.userAgent);
|
|
217
|
-
|
|
218
|
-
var chrome = browser.chrome,
|
|
219
|
-
mobileChrome = browser.crios,
|
|
220
|
-
mozilla = browser.mozilla,
|
|
221
|
-
safari = browser.safari;
|
|
222
|
-
|
|
223
|
-
var support = {};
|
|
224
|
-
|
|
225
|
-
support.mobileOS = os;
|
|
226
|
-
support.touch = "ontouchstart" in window;
|
|
227
|
-
support.pointers = !chrome && !mobileChrome && !mozilla && !safari && window.PointerEvent;
|
|
228
|
-
support.msPointers = !chrome && window.MSPointerEvent;
|
|
229
|
-
support.mouseAndTouchPresent = support.touch && !(support.mobileOS.ios || support.mobileOS.android);
|
|
230
|
-
support.eventCapture = document.documentElement.addEventListener;
|
|
231
|
-
|
|
232
|
-
var table = document.createElement("table");
|
|
233
|
-
|
|
234
|
-
var transitions = support.transitions = false,
|
|
235
|
-
transforms = support.transforms = false;
|
|
236
|
-
|
|
237
|
-
var STRING = "string";
|
|
238
|
-
|
|
239
|
-
["Moz", "webkit", "O", "ms"].forEach(function(prefix) {
|
|
240
|
-
var hasTransitions = typeof table.style[prefix + "Transition"] === STRING;
|
|
241
|
-
|
|
242
|
-
if (hasTransitions || typeof table.style[prefix + "Transform"] === STRING) {
|
|
243
|
-
var lowPrefix = prefix.toLowerCase();
|
|
244
|
-
|
|
245
|
-
transforms = {
|
|
246
|
-
css: (lowPrefix !== "ms") ? "-" + lowPrefix + "-" : "",
|
|
247
|
-
prefix: prefix,
|
|
248
|
-
event: (lowPrefix === "o" || lowPrefix === "webkit") ? lowPrefix : ""
|
|
249
|
-
};
|
|
250
|
-
|
|
251
|
-
if (hasTransitions) {
|
|
252
|
-
transitions = transforms;
|
|
253
|
-
transitions.event = transitions.event ? transitions.event + "TransitionEnd" : "transitionend";
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
return false;
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
table = null;
|
|
261
|
-
|
|
262
|
-
support.transforms = transforms;
|
|
263
|
-
support.transitions = transitions;
|
|
264
|
-
|
|
265
|
-
support.delayedClick = function() {
|
|
266
|
-
// only the mobile devices with touch events do this.
|
|
267
|
-
if (support.touch) {
|
|
268
|
-
// All iOS devices so far (by the time I am writing this, iOS 9.0.2 is the latest),
|
|
269
|
-
// delay their click events.
|
|
270
|
-
if (support.mobileOS.ios) {
|
|
271
|
-
return true;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
if (support.mobileOS.android) {
|
|
275
|
-
|
|
276
|
-
if (!support.browser.chrome) { // older webkits and webviews delay the click
|
|
277
|
-
return true;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
// from here on, we deal with Chrome on Android.
|
|
281
|
-
if (support.browser.version < 32) {
|
|
282
|
-
return false;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
// Chrome 32+ does conditional fast clicks if the view port is not user scalable.
|
|
286
|
-
var meta = document.querySelector("meta[name=viewport]");
|
|
287
|
-
var contentAttr = meta ? meta.getAttribute("content") : "";
|
|
288
|
-
return !contentAttr.match(/user-scalable=no/i);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
return false;
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
return support;
|
|
296
|
-
};
|
|
297
|
-
|
|
298
|
-
export var ownsElement = function (parent, element) {
|
|
299
|
-
if (!element) {
|
|
300
|
-
return false;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
var node = element.parentNode;
|
|
304
|
-
|
|
305
|
-
while (node !== null) {
|
|
306
|
-
if (node === parent) {
|
|
307
|
-
return true;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
node = node.parentNode;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
return false;
|
|
314
|
-
};
|
|
315
|
-
|
|
316
|
-
export var contains = function (parent, element) {
|
|
317
|
-
return parent === element || ownsElement(parent, element);
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
export var proxy = function (method, context) {
|
|
321
|
-
return method.bind(context);
|
|
322
|
-
};
|
|
323
|
-
|
|
324
|
-
function isString(value) {
|
|
325
|
-
return typeof(value) === "string";
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
export var on = function (element, events, filter, handler, useCapture) {
|
|
329
|
-
addEventListeners(element, events, filter, handler, useCapture);
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
export var addEventListeners = function (element, events, filter, handler, useCapture) {
|
|
333
|
-
var eventNames = isArray(events) ? events : (events || "").split(" ");
|
|
334
|
-
|
|
335
|
-
eventNames.forEach(function(eventName) {
|
|
336
|
-
addEventListener(element, eventName, filter, handler, useCapture);
|
|
337
|
-
});
|
|
338
|
-
};
|
|
339
|
-
|
|
340
|
-
export var addEventListener = function (element, event, filter, handler, useCapture) {
|
|
341
|
-
var eventHandler = handler;
|
|
342
|
-
var eventFilter;
|
|
343
|
-
|
|
344
|
-
if (filter && isFunction(filter) && !handler) {
|
|
345
|
-
eventHandler = filter;
|
|
346
|
-
} else if (filter && isString(filter) && isFunction(eventHandler)) {
|
|
347
|
-
eventFilter = filter;
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
element.addEventListener(event, function(e) {
|
|
351
|
-
var closestMatchingTarget = e.target ? e.target.closest(eventFilter) : null;
|
|
352
|
-
|
|
353
|
-
if (!eventFilter ||
|
|
354
|
-
(eventFilter && e.target && closestMatchingTarget)) {
|
|
355
|
-
var currentTarget = eventFilter ? closestMatchingTarget : e.currentTarget;
|
|
356
|
-
|
|
357
|
-
// reassign the property as it is a getters only
|
|
358
|
-
defineProperty(e, "currentTarget", { value: currentTarget });
|
|
359
|
-
// keep a reference to the top-level target
|
|
360
|
-
defineProperty(e, "delegateTarget", { value: element });
|
|
361
|
-
|
|
362
|
-
eventHandler(e);
|
|
363
|
-
}
|
|
364
|
-
}, Boolean(useCapture));
|
|
365
|
-
};
|
|
366
|
-
|
|
367
|
-
export var off = function (element, events, filter, handler, useCapture) {
|
|
368
|
-
removeEventListeners(element, events, filter, handler, useCapture);
|
|
369
|
-
};
|
|
370
|
-
|
|
371
|
-
export var removeEventListeners = function (element, events, handler, useCapture) {
|
|
372
|
-
var eventNames = isArray(events) ? events : (events || "").split(" ");
|
|
373
|
-
|
|
374
|
-
eventNames.forEach(function(eventName) {
|
|
375
|
-
removeEventListener(element, eventName, handler, useCapture);
|
|
376
|
-
});
|
|
377
|
-
};
|
|
378
|
-
|
|
379
|
-
export var removeEventListener = function (element, event, handler, useCapture) {
|
|
380
|
-
element.removeEventListener(event, handler, Boolean(useCapture));
|
|
381
|
-
};
|
|
382
|
-
|
|
383
|
-
export var applyEventMap = function (events) {
|
|
384
|
-
var eventMap = getEventMap(navigator.userAgent);
|
|
385
|
-
function queryEventMap(e) {
|
|
386
|
-
return eventMap[e] || e;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
var eventRegEx = /([^ ]+)/g;
|
|
390
|
-
var appliedEvents = events.replace(eventRegEx, queryEventMap);
|
|
391
|
-
|
|
392
|
-
return appliedEvents;
|
|
67
|
+
var ref = getSupportedFeatures(userAgent);
|
|
68
|
+
var mobileOS = ref.mobileOS;
|
|
69
|
+
return mobileOS.ios || mobileOS.android;
|
|
393
70
|
};
|
|
394
71
|
|
|
395
72
|
export var setDefaultEvents = function (type, events) {
|
|
@@ -406,8 +83,7 @@ export var setDefaultEvents = function (type, events) {
|
|
|
406
83
|
}
|
|
407
84
|
};
|
|
408
85
|
|
|
409
|
-
export var wheelDeltaY = function (
|
|
410
|
-
var e = jQueryEvent.originalEvent || jQueryEvent;
|
|
86
|
+
export var wheelDeltaY = function (e) {
|
|
411
87
|
var deltaY = e.wheelDeltaY;
|
|
412
88
|
var delta;
|
|
413
89
|
|
|
@@ -422,12 +98,6 @@ export var wheelDeltaY = function (jQueryEvent) {
|
|
|
422
98
|
return delta;
|
|
423
99
|
};
|
|
424
100
|
|
|
425
|
-
export var now = function () {
|
|
426
|
-
return Number(new Date());
|
|
427
|
-
};
|
|
428
|
-
|
|
429
|
-
export var noop = function () {};
|
|
430
|
-
|
|
431
101
|
export var renderPos = function (pos) {
|
|
432
102
|
var result = [];
|
|
433
103
|
|
package/dist/es/map/zoom.js
CHANGED
package/dist/es/sankey/legend.js
CHANGED
package/dist/es/sankey/link.js
CHANGED
|
@@ -2,6 +2,82 @@ import { drawing } from '@progress/kendo-drawing';
|
|
|
2
2
|
import { SankeyElement } from './element';
|
|
3
3
|
import { deepExtend } from '../common';
|
|
4
4
|
import { defined } from '../drawing-utils';
|
|
5
|
+
import { ARIA_ACTIVE_DESCENDANT } from '../common/constants';
|
|
6
|
+
|
|
7
|
+
var distanceToLine = function (line, point) {
|
|
8
|
+
var ref = line[0];
|
|
9
|
+
var x1 = ref[0];
|
|
10
|
+
var y1 = ref[1];
|
|
11
|
+
var ref$1 = line[1];
|
|
12
|
+
var x2 = ref$1[0];
|
|
13
|
+
var y2 = ref$1[1];
|
|
14
|
+
var x3 = point[0];
|
|
15
|
+
var y3 = point[1];
|
|
16
|
+
|
|
17
|
+
return Math.abs((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / Math.sqrt(Math.pow( (x2 - x1), 2 ) + Math.pow( (y2 - y1), 2 ));
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var bezierPoint = function (p1, p2, p3, p4, t) {
|
|
21
|
+
var t1 = 1 - t;
|
|
22
|
+
var t1t1 = t1 * t1;
|
|
23
|
+
var tt = t * t;
|
|
24
|
+
return (p1 * t1t1 * t1) + (3 * p2 * t * t1t1) + (3 * p3 * tt * t1) + (p4 * tt * t);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
var angelBetweenTwoLines = function (line1, line2) {
|
|
28
|
+
var ref = line1[0];
|
|
29
|
+
var x1 = ref[0];
|
|
30
|
+
var y1 = ref[1];
|
|
31
|
+
var ref$1 = line1[1];
|
|
32
|
+
var x2 = ref$1[0];
|
|
33
|
+
var y2 = ref$1[1];
|
|
34
|
+
var ref$2 = line2[0];
|
|
35
|
+
var x3 = ref$2[0];
|
|
36
|
+
var y3 = ref$2[1];
|
|
37
|
+
var ref$3 = line2[1];
|
|
38
|
+
var x4 = ref$3[0];
|
|
39
|
+
var y4 = ref$3[1];
|
|
40
|
+
|
|
41
|
+
var a1 = Math.atan2(y2 - y1, x2 - x1);
|
|
42
|
+
var a2 = Math.atan2(y4 - y3, x4 - x3);
|
|
43
|
+
|
|
44
|
+
return Math.abs(a1 - a2);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var calculateControlPointsOffsetX = function (link) {
|
|
48
|
+
var x0 = link.x0;
|
|
49
|
+
var x1 = link.x1;
|
|
50
|
+
var y0 = link.y0;
|
|
51
|
+
var y1 = link.y1;
|
|
52
|
+
var xC = (x0 + x1) / 2;
|
|
53
|
+
|
|
54
|
+
var width = link.width;
|
|
55
|
+
var halfWidth = width / 2;
|
|
56
|
+
|
|
57
|
+
// upper curve, t = 0.5
|
|
58
|
+
var upperCurveMiddleLine = [[(x0 + xC) / 2, y0 - halfWidth], [(x1 + xC) / 2, y1 - halfWidth]];
|
|
59
|
+
|
|
60
|
+
// for lower curve, bezier-point at t = 0.5
|
|
61
|
+
// for the case t = 0.5, the bezier-point is the middle point of the curve. => ((y0 + halfWidth) + (y1 + halfWidth)) / 2
|
|
62
|
+
var lowerCurveMiddlePoint = [xC, bezierPoint(y0 + halfWidth, y0 + halfWidth, y1 + halfWidth, y1 + halfWidth, 0.5)];
|
|
63
|
+
|
|
64
|
+
// The actual width of the link at its middle point as can be seen on the screen.
|
|
65
|
+
var actualWidth = distanceToLine(upperCurveMiddleLine, lowerCurveMiddlePoint);
|
|
66
|
+
|
|
67
|
+
var upperNarrowness = (width - actualWidth) / 2;
|
|
68
|
+
|
|
69
|
+
// The line `upperCurveMiddleLine` shows the upper border of the link.
|
|
70
|
+
// Assumption 1: Translated to the left to the desired link width and the translate value will be the `offset`.
|
|
71
|
+
// Assumption 2: The translate value is a hypotenuse of a triangle.
|
|
72
|
+
var alpha = angelBetweenTwoLines(upperCurveMiddleLine, [[x0, y0 - halfWidth], [xC, y0 - halfWidth]]);
|
|
73
|
+
var a = upperNarrowness;
|
|
74
|
+
var b = Math.sin(alpha) * a;
|
|
75
|
+
var offset = Math.sqrt(a * a + b * b);
|
|
76
|
+
// Another option is to assume the triangle is isosceles
|
|
77
|
+
// => offset = Math.sqrt(2) * upperNarrowness;
|
|
78
|
+
|
|
79
|
+
return y0 - y1 > 0 ? (-1) * offset : offset;
|
|
80
|
+
};
|
|
5
81
|
|
|
6
82
|
export var Link = (function (SankeyElement) {
|
|
7
83
|
function Link () {
|
|
@@ -24,18 +100,80 @@ export var Link = (function (SankeyElement) {
|
|
|
24
100
|
.moveTo(x0, y0).curveTo([xC, y0], [xC, y1], [x1, y1]);
|
|
25
101
|
};
|
|
26
102
|
|
|
103
|
+
Link.prototype.getLabelText = function getLabelText (options) {
|
|
104
|
+
var labelTemplate = options.labels.ariaTemplate;
|
|
105
|
+
|
|
106
|
+
if (labelTemplate) {
|
|
107
|
+
return labelTemplate({ link: options.link });
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
27
111
|
Link.prototype.visualOptions = function visualOptions () {
|
|
28
112
|
var options = this.options;
|
|
29
113
|
var link = this.options.link;
|
|
114
|
+
var ariaLabel = this.getLabelText(options);
|
|
115
|
+
|
|
30
116
|
return {
|
|
31
117
|
stroke: {
|
|
32
118
|
width: options.link.width,
|
|
33
119
|
color: link.color || options.color,
|
|
34
120
|
opacity: defined(link.opacity) ? link.opacity : options.opacity
|
|
35
|
-
}
|
|
121
|
+
},
|
|
122
|
+
role: 'graphics-symbol',
|
|
123
|
+
ariaRoleDescription: 'Link',
|
|
124
|
+
ariaLabel: ariaLabel
|
|
36
125
|
};
|
|
37
126
|
};
|
|
38
127
|
|
|
128
|
+
Link.prototype.createFocusHighlight = function createFocusHighlight () {
|
|
129
|
+
if (!this.options.navigatable) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
var link = this.options.link;
|
|
133
|
+
var x0 = link.x0;
|
|
134
|
+
var x1 = link.x1;
|
|
135
|
+
var y0 = link.y0;
|
|
136
|
+
var y1 = link.y1;
|
|
137
|
+
var xC = (x0 + x1) / 2;
|
|
138
|
+
var halfWidth = link.width / 2;
|
|
139
|
+
|
|
140
|
+
var offset = calculateControlPointsOffsetX(link);
|
|
141
|
+
|
|
142
|
+
this._highlight = new drawing.Path({ stroke: this.options.focusHighlight, visible: false })
|
|
143
|
+
.moveTo(x0, y0 + halfWidth)
|
|
144
|
+
.lineTo(x0, y0 - halfWidth)
|
|
145
|
+
.curveTo([xC + offset, y0 - halfWidth], [xC + offset, y1 - halfWidth], [x1, y1 - halfWidth])
|
|
146
|
+
.lineTo(x1, y1 + halfWidth)
|
|
147
|
+
.curveTo([xC - offset, y1 + halfWidth], [xC - offset, y0 + halfWidth], [x0, y0 + halfWidth]);
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
Link.prototype.focus = function focus (options) {
|
|
151
|
+
if (this._highlight) {
|
|
152
|
+
var ref = options || {};
|
|
153
|
+
var highlight = ref.highlight; if ( highlight === void 0 ) highlight = true;
|
|
154
|
+
if (highlight) {
|
|
155
|
+
this._highlight.options.set('visible', true);
|
|
156
|
+
}
|
|
157
|
+
var id = (this.options.link.sourceId) + "->" + (this.options.link.targetId);
|
|
158
|
+
this.visual.options.set('id', id);
|
|
159
|
+
|
|
160
|
+
if (this.options.root()) {
|
|
161
|
+
this.options.root().setAttribute(ARIA_ACTIVE_DESCENDANT, id);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
Link.prototype.blur = function blur () {
|
|
167
|
+
if (this._highlight) {
|
|
168
|
+
this._highlight.options.set('visible', false);
|
|
169
|
+
this.visual.options.set('id', '');
|
|
170
|
+
|
|
171
|
+
if (this.options.root()) {
|
|
172
|
+
this.options.root().removeAttribute(ARIA_ACTIVE_DESCENDANT);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
|
|
39
177
|
return Link;
|
|
40
178
|
}(SankeyElement));
|
|
41
179
|
|