1 | const Renderer = require('./renderer');
|
2 | const Core = require('@antv/f2/lib/core');
|
3 |
|
4 | function strLen(str) {
|
5 | let len = 0;
|
6 | for (let i = 0; i < str.length; i++) {
|
7 | if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) {
|
8 | len++;
|
9 | } else {
|
10 | len += 2;
|
11 | }
|
12 | }
|
13 |
|
14 | return len;
|
15 | }
|
16 |
|
17 |
|
18 |
|
19 | Core.Util.measureText = function(text, font, ctx) {
|
20 | if (!ctx || !ctx.measureText) {
|
21 | let fontSize = 12;
|
22 | if (font) {
|
23 | fontSize = parseInt(font.split(' ')[3], 10);
|
24 | }
|
25 | fontSize /= 2;
|
26 | return {
|
27 | width: strLen(text) * fontSize
|
28 | };
|
29 | }
|
30 |
|
31 | ctx.font = font || '12px sans-serif';
|
32 | return ctx.measureText(text);
|
33 | };
|
34 |
|
35 | Core.Util.addEventListener = function(source, type, listener) {
|
36 | source.addListener(type, listener);
|
37 | };
|
38 |
|
39 | Core.Util.removeEventListener = function(source, type, listener) {
|
40 | source.removeListener(type, listener);
|
41 | };
|
42 |
|
43 | Core.Util.createEvent = function(event, chart) {
|
44 | const type = event.type;
|
45 | let x = 0;
|
46 | let y = 0;
|
47 | const touches = event.touches;
|
48 | if (touches && touches.length > 0) {
|
49 | x = touches[0].x;
|
50 | y = touches[0].y;
|
51 | }
|
52 |
|
53 | return {
|
54 | type,
|
55 | chart,
|
56 | x,
|
57 | y
|
58 | };
|
59 | };
|
60 |
|
61 | Core.Renderer = Renderer;
|
62 |
|
63 | module.exports = Core;
|