1 line
33 KiB
JSON
1 line
33 KiB
JSON
{"remainingRequest":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\@jiaminghi\\data-view\\lib\\components\\flylineChartEnhanced\\src\\main.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\@jiaminghi\\data-view\\lib\\components\\flylineChartEnhanced\\src\\main.vue","mtime":499162500000},{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJ0BqaWFtaW5naGkvY2hhcnRzL2xpYi91dGlsL2luZGV4JwoKaW1wb3J0IHsgZGVlcENsb25lIH0gZnJvbSAnQGppYW1pbmdoaS9jLXJlbmRlci9saWIvcGx1Z2luL3V0aWwnCgppbXBvcnQgeyByYW5kb21FeHRlbmQsIGdldFBvaW50RGlzdGFuY2UgfSBmcm9tICcuLi8uLi8uLi91dGlsL2luZGV4JwoKaW1wb3J0IGF1dG9SZXNpemUgZnJvbSAnLi4vLi4vLi4vbWl4aW4vYXV0b1Jlc2l6ZScKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnRHZGbHlsaW5lQ2hhcnRFbmhhbmNlZCcsCiAgbWl4aW5zOiBbYXV0b1Jlc2l6ZV0sCiAgcHJvcHM6IHsKICAgIGNvbmZpZzogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6ICgpID0+ICh7fSkKICAgIH0sCiAgICBkZXY6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0KICB9LAogIGRhdGEgKCkgewogICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKQogICAgcmV0dXJuIHsKICAgICAgcmVmOiAnZHYtZmx5bGluZS1jaGFydC1lbmhhbmNlZCcsCiAgICAgIHVuaXF1ZTogTWF0aC5yYW5kb20oKSwKICAgICAgZmx5bGluZUdyYWRpZW50SWQ6IGBmbHlsaW5lLWdyYWRpZW50LWlkLSR7dGltZXN0YW1wfWAsCiAgICAgIGhhbG9HcmFkaWVudElkOiBgaGFsby1ncmFkaWVudC1pZC0ke3RpbWVzdGFtcH1gLAogICAgICAvKioKICAgICAgICogQGRlc2NyaXB0aW9uIFR5cGUgRGVjbGFyYXRpb24KICAgICAgICogCiAgICAgICAqIGludGVyZmFjZSBIYWxvIHsKICAgICAgICogICAgc2hvdz86IGJvb2xlYW4KICAgICAgICogICAgZHVyYXRpb24/OiBbbnVtYmVyLCBudW1iZXJdCiAgICAgICAqICAgIGNvbG9yPzogc3RyaW5nCiAgICAgICAqICAgIHJhZGl1cz86IG51bWJlcgogICAgICAgKiB9CiAgICAgICAqIAogICAgICAgKiBpbnRlcmZhY2UgVGV4dCB7CiAgICAgICAqICAgIHNob3c/OiBib29sZWFuCiAgICAgICAqICAgIG9mZnNldD86IFtudW1iZXIsIG51bWJlcl0KICAgICAgICogICAgY29sb3I/OiBzdHJpbmcKICAgICAgICogICAgZm9udFNpemU/OiBudW1iZXIKICAgICAgICogfQogICAgICAgKiAKICAgICAgICogaW50ZXJmYWNlIEljb24gewogICAgICAgKiAgICBzaG93PzogYm9vbGVhbgogICAgICAgKiAgICBzcmM/OiBzdHJpbmcKICAgICAgICogICAgd2lkdGg/OiBudW1iZXIKICAgICAgICogICAgaGVpZ2h0PzogbnVtYmVyCiAgICAgICAqIH0KICAgICAgICogCiAgICAgICAqIGludGVyZmFjZSBQb2ludCB7CiAgICAgICAqICAgIG5hbWU6IHN0cmluZwogICAgICAgKiAgICBjb29yZGluYXRlOiBbbnVtYmVyLCBudW1iZXJdCiAgICAgICAqICAgIGhhbG8/OiBIYWxvCiAgICAgICAqICAgIHRleHQ/OiBUZXh0CiAgICAgICAqICAgIGljb24/OiBJY29uCiAgICAgICAqIH0KICAgICAgICogCiAgICAgICAqIGludGVyZmFjZSBMaW5lIHsKICAgICAgICogICAgd2lkdGg/OiBudW1iZXIKICAgICAgICogICAgY29sb3I/OiBzdHJpbmcKICAgICAgICogICAgb3JiaXRDb2xvcj86IHN0cmluZwogICAgICAgKiAgICBkdXJhdGlvbj86IFtudW1iZXIsIG51bWJlcl0KICAgICAgICogICAgcmFkaXVzPzogc3RyaW5nCiAgICAgICAqIH0KICAgICAgICogCiAgICAgICAqIGludGVyZmFjZSBGbHlsaW5lIGV4dGVuZHMgTGluZSB7CiAgICAgICAqICAgIHNvdXJjZTogc3RyaW5nCiAgICAgICAqICAgIHRhcmdldDogc3RyaW5nCiAgICAgICAqIH0KICAgICAgICogCiAgICAgICAqIGludGVyZmFjZSBGbHlsaW5lV2l0aFBhdGggZXh0ZW5kcyBGbHlsaW5lIHsKICAgICAgICogICAgZDogc3RyaW5nCiAgICAgICAqICAgIHBhdGg6IFtbbnVtYmVyLCBudW1iZXJdLCBbbnVtYmVyLCBudW1iZXJdLCBbbnVtYmVyLCBudW1iZXJdXQogICAgICAgKiAgICBrZXk6IHN0cmluZwogICAgICAgKiB9CiAgICAgICAqLwogICAgICBkZWZhdWx0Q29uZmlnOiB7CiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEZseWxpbmUgY2hhcnQgcG9pbnRzCiAgICAgICAgICogQHR5cGUge1BvaW50W119CiAgICAgICAgICogQGRlZmF1bHQgcG9pbnRzID0gW10KICAgICAgICAgKi8KICAgICAgICBwb2ludHM6IFtdLAogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBMaW5lcwogICAgICAgICAqIEB0eXBlIHtGbHlsaW5lW119CiAgICAgICAgICogQGRlZmF1bHQgbGluZXMgPSBbXQogICAgICAgICAqLwogICAgICAgIGxpbmVzOiBbXSwKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gR2xvYmFsIGhhbG8gY29uZmlndXJhdGlvbgogICAgICAgICAqIEB0eXBlIHtIYWxvfQogICAgICAgICAqLwogICAgICAgIGhhbG86IHsKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gc2hvdyBoYWxvCiAgICAgICAgICAgKiBAdHlwZSB7Qm9vbGVhbn0KICAgICAgICAgICAqIEBkZWZhdWx0IHNob3cgPSBmYWxzZQogICAgICAgICAgICovCiAgICAgICAgICBzaG93OiBmYWxzZSwKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIEhhbG8gYW5pbWF0aW9uIGR1cmF0aW9uICgxcyA9IDEwKQogICAgICAgICAgICogQHR5cGUge1tudW1iZXIsIG51bWJlcl19CiAgICAgICAgICAgKi8KICAgICAgICAgIGR1cmF0aW9uOiBbMjAsIDMwXSwKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIEhhbG8gY29sb3IKICAgICAgICAgICAqIEB0eXBlIHtTdHJpbmd9CiAgICAgICAgICAgKiBAZGVmYXVsdCBjb2xvciA9ICcjZmI3MjkzJwogICAgICAgICAgICovCiAgICAgICAgICBjb2xvcjogJyNmYjcyOTMnLAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGFsbyByYWRpdXMKICAgICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICAgKiBAZGVmYXVsdCByYWRpdXMgPSAxMjAKICAgICAgICAgICAqLwogICAgICAgICAgcmFkaXVzOiAxMjAKICAgICAgICB9LAogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBHbG9iYWwgdGV4dCBjb25maWd1cmF0aW9uCiAgICAgICAgICogQHR5cGUge1RleHR9CiAgICAgICAgICovCiAgICAgICAgdGV4dDogewogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBzaG93IHRleHQKICAgICAgICAgICAqIEB0eXBlIHtCb29sZWFufQogICAgICAgICAgICogQGRlZmF1bHQgc2hvdyA9IGZhbHNlCiAgICAgICAgICAgKi8KICAgICAgICAgIHNob3c6IGZhbHNlLAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGV4dCBvZmZzZXQKICAgICAgICAgICAqIEB0eXBlIHtbbnVtYmVyLCBudW1iZXJdfQogICAgICAgICAgICogQGRlZmF1bHQgb2Zmc2V0ID0gWzAsIDE1XQogICAgICAgICAgICovCiAgICAgICAgICBvZmZzZXQ6IFswLCAxNV0sCiAgICAgICAgICAvKioKICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0IGNvbG9yCiAgICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfQogICAgICAgICAgICogQGRlZmF1bHQgY29sb3IgPSAnI2ZmZGI1YycKICAgICAgICAgICAqLwogICAgICAgICAgY29sb3I6ICcjZmZkYjVjJywKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRleHQgZm9udCBzaXplCiAgICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfQogICAgICAgICAgICogQGRlZmF1bHQgZm9udFNpemUgPSAxMgogICAgICAgICAgICovCiAgICAgICAgICBmb250U2l6ZTogMTIKICAgICAgICB9LAogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBHbG9iYWwgaWNvbiBjb25maWd1cmF0aW9uCiAgICAgICAgICogQHR5cGUge0ljb259CiAgICAgICAgICovCiAgICAgICAgaWNvbjogewogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBzaG93IGljb24KICAgICAgICAgICAqIEB0eXBlIHtCb29sZWFufQogICAgICAgICAgICogQGRlZmF1bHQgc2hvdyA9IGZhbHNlCiAgICAgICAgICAgKi8KICAgICAgICAgIHNob3c6IGZhbHNlLAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWNvbiBzcmMKICAgICAgICAgICAqIEB0eXBlIHtTdHJpbmd9CiAgICAgICAgICAgKiBAZGVmYXVsdCBzcmMgPSAnJwogICAgICAgICAgICovCiAgICAgICAgICBzcmM6ICcnLAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWNvbiB3aWR0aAogICAgICAgICAgICogQHR5cGUge051bWJlcn0KICAgICAgICAgICAqIEBkZWZhdWx0IHdpZHRoID0gMTUKICAgICAgICAgICAqLwogICAgICAgICAgd2lkdGg6IDE1LAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSWNvbiBoZWlnaHQKICAgICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICAgKiBAZGVmYXVsdCB3aWR0aCA9IDE1CiAgICAgICAgICAgKi8KICAgICAgICAgIGhlaWdodDogMTUKICAgICAgICB9LAogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBHbG9iYWwgbGluZSBjb25maWd1cmF0aW9uCiAgICAgICAgICogQHR5cGUge0xpbmV9CiAgICAgICAgICovCiAgICAgICAgbGluZTogewogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gTGluZSB3aWR0aAogICAgICAgICAgICogQHR5cGUge051bWJlcn0KICAgICAgICAgICAqIEBkZWZhdWx0IHdpZHRoID0gMQogICAgICAgICAgICovCiAgICAgICAgICB3aWR0aDogMSwKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIEZseWxpbmUgY29sb3IKICAgICAgICAgICAqIEB0eXBlIHtTdHJpbmd9CiAgICAgICAgICAgKiBAZGVmYXVsdCBjb2xvciA9ICcjZmZkZTkzJwogICAgICAgICAgICovCiAgICAgICAgICBjb2xvcjogJyNmZmRlOTMnLAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gT3JiaXQgY29sb3IKICAgICAgICAgICAqIEB0eXBlIHtTdHJpbmd9CiAgICAgICAgICAgKiBAZGVmYXVsdCBvcmJpdENvbG9yID0gJ3JnYmEoMTAzLCAyMjQsIDIyNywgLjIpJwogICAgICAgICAgICovCiAgICAgICAgICBvcmJpdENvbG9yOiAncmdiYSgxMDMsIDIyNCwgMjI3LCAuMiknLAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gRmx5bGluZSBhbmltYXRpb24gZHVyYXRpb24KICAgICAgICAgICAqIEB0eXBlIHtbbnVtYmVyLCBudW1iZXJdfQogICAgICAgICAgICogQGRlZmF1bHQgZHVyYXRpb24gPSBbMjAsIDMwXQogICAgICAgICAgICovCiAgICAgICAgICBkdXJhdGlvbjogWzIwLCAzMF0sCiAgICAgICAgICAvKioKICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBGbHlsaW5lIHJhZGl1cwogICAgICAgICAgICogQHR5cGUge051bWJlcn0KICAgICAgICAgICAqIEBkZWZhdWx0IHJhZGl1cyA9IDEwMAogICAgICAgICAgICovCiAgICAgICAgICByYWRpdXM6IDEwMAogICAgICAgIH0sCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEJhY2sgZ3JvdW5kIGltYWdlIHVybAogICAgICAgICAqIEB0eXBlIHtTdHJpbmd9CiAgICAgICAgICogQGRlZmF1bHQgYmdJbWdTcmMgPSAnJwogICAgICAgICAqLwogICAgICAgIGJnSW1nU3JjOiAnJywKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gSyB2YWx1ZQogICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICogQGRlZmF1bHQgayA9IC0wLjUKICAgICAgICAgKiBAZXhhbXBsZSBrID0gLTEgfiAxCiAgICAgICAgICovCiAgICAgICAgazogLTAuNSwKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gRmx5bGluZSBjdXJ2YXR1cmUKICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfQogICAgICAgICAqIEBkZWZhdWx0IGN1cnZhdHVyZSA9IDUKICAgICAgICAgKi8KICAgICAgICBjdXJ2YXR1cmU6IDUsCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIFJlbGF0aXZlIHBvaW50cyBwb3NpdGlvbgogICAgICAgICAqIEB0eXBlIHtCb29sZWFufQogICAgICAgICAqIEBkZWZhdWx0IHJlbGF0aXZlID0gdHJ1ZQogICAgICAgICAqLwogICAgICAgIHJlbGF0aXZlOiB0cnVlCiAgICAgIH0sCiAgICAgIC8qKgogICAgICAgKiBAZGVzY3JpcHRpb24gRmx5IGxpbmUgZGF0YQogICAgICAgKiBAdHlwZSB7Rmx5bGluZVdpdGhQYXRoW119CiAgICAgICAqIEBkZWZhdWx0IGZseWxpbmVzID0gW10KICAgICAgICovCiAgICAgIGZseWxpbmVzOiBbXSwKICAgICAgLyoqCiAgICAgICAqIEBkZXNjcmlwdGlvbiBGbHkgbGluZSBsZW5ndGhzCiAgICAgICAqIEB0eXBlIHtOdW1iZXJbXX0KICAgICAgICogQGRlZmF1bHQgZmx5bGluZUxlbmd0aHMgPSBbXQogICAgICAgKi8KICAgICAgZmx5bGluZUxlbmd0aHM6IFtdLAogICAgICAvKioKICAgICAgICogQGRlc2NyaXB0aW9uIEZseSBsaW5lIHBvaW50cwogICAgICAgKiBAZGVmYXVsdCBmbHlsaW5lUG9pbnRzID0gW10KICAgICAgICovCiAgICAgIGZseWxpbmVQb2ludHM6IFtdLAoKICAgICAgbWVyZ2VkQ29uZmlnOiBudWxsCiAgICB9CiAgfSwKICB3YXRjaDogewogICAgY29uZmlnICgpIHsKICAgICAgY29uc3QgeyBjYWxjRGF0YSB9ID0gdGhpcwoKICAgICAgY2FsY0RhdGEoKQogICAgfQogIH0sCiAgbWV0aG9kczogewogICAgYWZ0ZXJBdXRvUmVzaXplTWl4aW5Jbml0ICgpIHsKICAgICAgY29uc3QgeyBjYWxjRGF0YSB9ID0gdGhpcwoKICAgICAgY2FsY0RhdGEoKQogICAgfSwKICAgIG9uUmVzaXplICgpIHsKICAgICAgY29uc3QgeyBjYWxjRGF0YSB9ID0gdGhpcwoKICAgICAgY2FsY0RhdGEoKQogICAgfSwKICAgIGFzeW5jIGNhbGNEYXRhICgpIHsKICAgICAgY29uc3QgeyBtZXJnZUNvbmZpZywgY2FsY2ZseWxpbmVQb2ludHMsIGNhbGNMaW5lUGF0aHMgfSA9IHRoaXMKCiAgICAgIG1lcmdlQ29uZmlnKCkKCiAgICAgIGNhbGNmbHlsaW5lUG9pbnRzKCkKCiAgICAgIGNhbGNMaW5lUGF0aHMoKQoKICAgICAgY29uc3QgeyBjYWxjTGluZUxlbmd0aHMgfSA9IHRoaXMKCiAgICAgIGF3YWl0IGNhbGNMaW5lTGVuZ3RocygpCiAgICB9LAogICAgbWVyZ2VDb25maWcgKCkgewogICAgICBsZXQgeyBjb25maWcsIGRlZmF1bHRDb25maWcgfSA9IHRoaXMKCiAgICAgIGNvbnN0IG1lcmdlZENvbmZpZyA9IGRlZXBNZXJnZShkZWVwQ2xvbmUoZGVmYXVsdENvbmZpZywgdHJ1ZSksIGNvbmZpZyB8fCB7fSkKCiAgICAgIGNvbnN0IHsgcG9pbnRzLCBsaW5lcywgaGFsbywgdGV4dCwgaWNvbiwgbGluZSB9ID0gbWVyZ2VkQ29uZmlnCgogICAgICBtZXJnZWRDb25maWcucG9pbnRzID0gcG9pbnRzLm1hcChpdGVtID0+IHsKICAgICAgICBpdGVtLmhhbG8gPSBkZWVwTWVyZ2UoZGVlcENsb25lKGhhbG8sIHRydWUpLCBpdGVtLmhhbG8gfHwge30pCiAgICAgICAgaXRlbS50ZXh0ID0gZGVlcE1lcmdlKGRlZXBDbG9uZSh0ZXh0LCB0cnVlKSwgaXRlbS50ZXh0IHx8IHt9KQogICAgICAgIGl0ZW0uaWNvbiA9IGRlZXBNZXJnZShkZWVwQ2xvbmUoaWNvbiwgdHJ1ZSksIGl0ZW0uaWNvbiB8fCB7fSkKCiAgICAgICAgcmV0dXJuIGl0ZW0KICAgICAgfSkKCiAgICAgIG1lcmdlZENvbmZpZy5saW5lcyA9IGxpbmVzLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gZGVlcE1lcmdlKGRlZXBDbG9uZShsaW5lLCB0cnVlKSwgaXRlbSkKICAgICAgfSkKCiAgICAgIHRoaXMubWVyZ2VkQ29uZmlnID0gbWVyZ2VkQ29uZmlnCiAgICB9LAogICAgY2FsY2ZseWxpbmVQb2ludHMgKCkgewogICAgICBjb25zdCB7IG1lcmdlZENvbmZpZywgd2lkdGgsIGhlaWdodCB9ID0gdGhpcwoKICAgICAgY29uc3QgeyByZWxhdGl2ZSwgcG9pbnRzIH0gPSBtZXJnZWRDb25maWcKCiAgICAgIHRoaXMuZmx5bGluZVBvaW50cyA9IHBvaW50cy5tYXAoKGl0ZW0sIGkpID0+IHsKICAgICAgICBjb25zdCB7IGNvb3JkaW5hdGU6IFt4LCB5XSwgaGFsbywgaWNvbiwgdGV4dCB9ID0gaXRlbQoKICAgICAgICBpZiAocmVsYXRpdmUpIGl0ZW0uY29vcmRpbmF0ZSA9IFt4ICogd2lkdGgsIHkgKiBoZWlnaHRdCgogICAgICAgIGl0ZW0uaGFsby50aW1lID0gcmFuZG9tRXh0ZW5kKC4uLmhhbG8uZHVyYXRpb24pIC8gMTAKCiAgICAgICAgY29uc3QgeyB3aWR0aDogaXcsIGhlaWdodDogaWggfSA9IGljb24KICAgICAgICBpdGVtLmljb24ueCA9IGl0ZW0uY29vcmRpbmF0ZVswXSAtIGl3IC8gMgogICAgICAgIGl0ZW0uaWNvbi55ID0gaXRlbS5jb29yZGluYXRlWzFdIC0gaWggLyAyCgogICAgICAgIGNvbnN0IFtveCwgb3ldID0gdGV4dC5vZmZzZXQKICAgICAgICBpdGVtLnRleHQueCA9IGl0ZW0uY29vcmRpbmF0ZVswXSArIG94CiAgICAgICAgaXRlbS50ZXh0LnkgPSBpdGVtLmNvb3JkaW5hdGVbMV0gKyBveQoKICAgICAgICBpdGVtLmtleSA9IGAke2l0ZW0uY29vcmRpbmF0ZS50b1N0cmluZygpfSR7aX1gCgogICAgICAgIHJldHVybiBpdGVtCiAgICAgIH0pCiAgICB9LAogICAgY2FsY0xpbmVQYXRocyAoKSB7CiAgICAgIGNvbnN0IHsgZ2V0UGF0aCwgbWVyZ2VkQ29uZmlnIH0gPSB0aGlzCgogICAgICBjb25zdCB7IHBvaW50cywgbGluZXMgfSA9IG1lcmdlZENvbmZpZwoKICAgICAgdGhpcy5mbHlsaW5lcyA9IGxpbmVzLm1hcChpdGVtID0+IHsKICAgICAgICBjb25zdCB7IHNvdXJjZSwgdGFyZ2V0LCBkdXJhdGlvbiB9ID0gaXRlbQoKICAgICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50cy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gc291cmNlKS5jb29yZGluYXRlCiAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSBwb2ludHMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IHRhcmdldCkuY29vcmRpbmF0ZQoKICAgICAgICBjb25zdCBwYXRoID0gZ2V0UGF0aChzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQpLm1hcChpdGVtID0+IGl0ZW0ubWFwKHYgPT4gcGFyc2VGbG9hdCh2LnRvRml4ZWQoMTApKSkpCiAgICAgICAgY29uc3QgZCA9IGBNJHtwYXRoWzBdLnRvU3RyaW5nKCl9IFEke3BhdGhbMV0udG9TdHJpbmcoKX0gJHtwYXRoWzJdLnRvU3RyaW5nKCl9YAogICAgICAgIGNvbnN0IGtleSA9IGBwYXRoJHtwYXRoLnRvU3RyaW5nKCl9YAogICAgICAgIGNvbnN0IHRpbWUgPSByYW5kb21FeHRlbmQoLi4uZHVyYXRpb24pIC8gMTAKCiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgcGF0aCwga2V5LCBkLCB0aW1lIH0KICAgICAgfSkKICAgIH0sCiAgICBnZXRQYXRoIChzdGFydCwgZW5kKSB7CiAgICAgIGNvbnN0IHsgZ2V0Q29udHJvbFBvaW50IH0gPSB0aGlzCgogICAgICBjb25zdCBjb250cm9sUG9pbnQgPSBnZXRDb250cm9sUG9pbnQoc3RhcnQsIGVuZCkKCiAgICAgIHJldHVybiBbc3RhcnQsIGNvbnRyb2xQb2ludCwgZW5kXQogICAgfSwKICAgIGdldENvbnRyb2xQb2ludCAoW3N4LCBzeV0sIFtleCwgZXldKSB7CiAgICAgIGNvbnN0IHsgZ2V0S0xpbmVQb2ludEJ5eCwgbWVyZ2VkQ29uZmlnIH0gPSB0aGlzCgogICAgICBjb25zdCB7IGN1cnZhdHVyZSwgayB9ID0gbWVyZ2VkQ29uZmlnCgogICAgICBjb25zdCBbbXgsIG15XSA9IFsoc3ggKyBleCkgLyAyLCAoc3kgKyBleSkgLyAyXQoKICAgICAgY29uc3QgZGlzdGFuY2UgPSBnZXRQb2ludERpc3RhbmNlKFtzeCwgc3ldLCBbZXgsIGV5XSkKCiAgICAgIGNvbnN0IHRhcmdldExlbmd0aCA9IGRpc3RhbmNlIC8gY3VydmF0dXJlCiAgICAgIGNvbnN0IGRpc0RpdmVkID0gdGFyZ2V0TGVuZ3RoIC8gMgoKICAgICAgbGV0IFtkeCwgZHldID0gW214LCBteV0KCiAgICAgIGRvIHsKICAgICAgICBkeCArPSBkaXNEaXZlZAogICAgICAgIGR5ID0gZ2V0S0xpbmVQb2ludEJ5eChrLCBbbXgsIG15XSwgZHgpWzFdCiAgICAgIH0gd2hpbGUgKGdldFBvaW50RGlzdGFuY2UoW214LCBteV0sIFtkeCwgZHldKSA8IHRhcmdldExlbmd0aCkKCiAgICAgIHJldHVybiBbZHgsIGR5XQogICAgfSwKICAgIGdldEtMaW5lUG9pbnRCeXggKGssIFtseCwgbHldLCB4KSB7CiAgICAgIGNvbnN0IHkgPSBseSAtIGsgKiBseCArIGsgKiB4CgogICAgICByZXR1cm4gW3gsIHldCiAgICB9LAogICAgYXN5bmMgY2FsY0xpbmVMZW5ndGhzICgpIHsKICAgICAgY29uc3QgeyAkbmV4dFRpY2ssIGZseWxpbmVzLCAkcmVmcyB9ID0gdGhpcwoKICAgICAgYXdhaXQgJG5leHRUaWNrKCkKCiAgICAgIHRoaXMuZmx5bGluZUxlbmd0aHMgPSBmbHlsaW5lcy5tYXAoKHsga2V5IH0pID0+ICRyZWZzW2tleV1bMF0uZ2V0VG90YWxMZW5ndGgoKSkKICAgIH0sCiAgICBjb25zb2xlQ2xpY2tQb3MgKHsgb2Zmc2V0WCwgb2Zmc2V0WSB9KSB7CiAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgZGV2IH0gPSB0aGlzCgogICAgICBpZiAoIWRldikgcmV0dXJuCgogICAgICBjb25zdCByZWxhdGl2ZVggPSAob2Zmc2V0WCAvIHdpZHRoKS50b0ZpeGVkKDIpCiAgICAgIGNvbnN0IHJlbGF0aXZlWSA9IChvZmZzZXRZIC8gaGVpZ2h0KS50b0ZpeGVkKDIpCgogICAgICBjb25zb2xlLndhcm4oYGR2LWZseWxpbmUtY2hhcnQtZW5oYW5jZWQgREVWOiBcbiBDbGljayBQb3NpdGlvbiBpcyBbJHtvZmZzZXRYfSwgJHtvZmZzZXRZfV0gXG4gUmVsYXRpdmUgUG9zaXRpb24gaXMgWyR7cmVsYXRpdmVYfSwgJHtyZWxhdGl2ZVl9XWApCiAgICB9CiAgfQp9Cg=="},{"version":3,"sources":["main.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA","file":"main.vue","sourceRoot":"node_modules/@jiaminghi/data-view/lib/components/flylineChartEnhanced/src","sourcesContent":["<template>\n <div\n class=\"dv-flyline-chart-enhanced\"\n :style=\"`background-image: url(${mergedConfig ? mergedConfig.bgImgSrc : ''})`\"\n :ref=\"ref\"\n @click=\"consoleClickPos\"\n >\n <svg v-if=\"flylines.length\" :width=\"width\" :height=\"height\">\n <defs>\n <radialGradient\n :id=\"flylineGradientId\"\n cx=\"50%\" cy=\"50%\" r=\"50%\"\n >\n <stop\n offset=\"0%\" stop-color=\"#fff\"\n stop-opacity=\"1\"\n />\n <stop\n offset=\"100%\" stop-color=\"#fff\"\n stop-opacity=\"0\"\n />\n </radialGradient>\n\n <radialGradient\n :id=\"haloGradientId\"\n cx=\"50%\" cy=\"50%\" r=\"50%\"\n >\n <stop\n offset=\"0%\" stop-color=\"#fff\"\n stop-opacity=\"0\"\n />\n <stop\n offset=\"100%\" stop-color=\"#fff\"\n stop-opacity=\"1\"\n />\n </radialGradient>\n </defs>\n\n <!-- points -->\n <g v-for=\"point in flylinePoints\" :key=\"point.key + Math.random()\">\n <defs>\n <circle\n v-if=\"point.halo.show\"\n :id=\"`halo${unique}${point.key}`\"\n :cx=\"point.coordinate[0]\"\n :cy=\"point.coordinate[1]\"\n >\n <animate\n attributeName=\"r\"\n :values=\"`1;${point.halo.radius}`\"\n :dur=\"`${point.halo.time}s`\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"opacity\"\n values=\"1;0\"\n :dur=\"`${point.halo.time}s`\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </defs>\n\n <!-- halo gradient mask -->\n <mask :id=\"`mask${unique}${point.key}`\">\n <use\n v-if=\"point.halo.show\"\n :xlink:href=\"`#halo${unique}${point.key}`\"\n :fill=\"`url(#${haloGradientId})`\"\n />\n </mask>\n\n <!-- point halo -->\n <use\n v-if=\"point.halo.show\"\n :xlink:href=\"`#halo${unique}${point.key}`\"\n :fill=\"point.halo.color\"\n :mask=\"`url(#mask${unique}${point.key})`\"\n />\n\n <!-- point icon -->\n <image\n v-if=\"point.icon.show\"\n :xlink:href=\"point.icon.src\"\n :width=\"point.icon.width\"\n :height=\"point.icon.height\"\n :x=\"point.icon.x\"\n :y=\"point.icon.y\"\n />\n\n <!-- point text -->\n <text\n v-if=\"point.text.show\"\n :style=\"`fontSize:${point.text.fontSize}px;color:${point.text.color}`\"\n :fill=\"point.text.color\"\n :x=\"point.text.x\"\n :y=\"point.text.y\"\n >\n {{ point.name }}\n </text>\n </g>\n\n <!-- flylines -->\n <g v-for=\"(line, i) in flylines\" :key=\"line.key + Math.random()\">\n <defs>\n <path\n :id=\"line.key\"\n :ref=\"line.key\"\n :d=\"line.d\"\n fill=\"transparent\"\n />\n </defs>\n\n <!-- orbit line -->\n <use\n :xlink:href=\"`#${line.key}`\"\n :stroke-width=\"line.width\"\n :stroke=\"line.orbitColor\"\n />\n\n <!-- fly line gradient mask -->\n <mask :id=\"`mask${unique}${line.key}`\">\n <circle cx=\"0\" cy=\"0\" :r=\"line.radius\" :fill=\"`url(#${flylineGradientId})`\">\n <animateMotion\n :dur=\"line.time\"\n :path=\"line.d\"\n rotate=\"auto\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </mask>\n\n <!-- fly line -->\n <use\n v-if=\"flylineLengths[i]\"\n :xlink:href=\"`#${line.key}`\"\n :stroke-width=\"line.width\"\n :stroke=\"line.color\"\n :mask=\"`url(#mask${unique}${line.key})`\"\n >\n <animate\n attributeName=\"stroke-dasharray\"\n :from=\"`0, ${flylineLengths[i]}`\"\n :to=\"`${flylineLengths[i]}, 0`\"\n :dur=\"line.time\"\n repeatCount=\"indefinite\"\n />\n </use>\n </g>\n </svg>\n </div>\n</template>\n\n<script>\nimport { deepMerge } from '@jiaminghi/charts/lib/util/index'\n\nimport { deepClone } from '@jiaminghi/c-render/lib/plugin/util'\n\nimport { randomExtend, getPointDistance } from '../../../util/index'\n\nimport autoResize from '../../../mixin/autoResize'\n\nexport default {\n name: 'DvFlylineChartEnhanced',\n mixins: [autoResize],\n props: {\n config: {\n type: Object,\n default: () => ({})\n },\n dev: {\n type: Boolean,\n default: false\n }\n },\n data () {\n const timestamp = Date.now()\n return {\n ref: 'dv-flyline-chart-enhanced',\n unique: Math.random(),\n flylineGradientId: `flyline-gradient-id-${timestamp}`,\n haloGradientId: `halo-gradient-id-${timestamp}`,\n /**\n * @description Type Declaration\n * \n * interface Halo {\n * show?: boolean\n * duration?: [number, number]\n * color?: string\n * radius?: number\n * }\n * \n * interface Text {\n * show?: boolean\n * offset?: [number, number]\n * color?: string\n * fontSize?: number\n * }\n * \n * interface Icon {\n * show?: boolean\n * src?: string\n * width?: number\n * height?: number\n * }\n * \n * interface Point {\n * name: string\n * coordinate: [number, number]\n * halo?: Halo\n * text?: Text\n * icon?: Icon\n * }\n * \n * interface Line {\n * width?: number\n * color?: string\n * orbitColor?: string\n * duration?: [number, number]\n * radius?: string\n * }\n * \n * interface Flyline extends Line {\n * source: string\n * target: string\n * }\n * \n * interface FlylineWithPath extends Flyline {\n * d: string\n * path: [[number, number], [number, number], [number, number]]\n * key: string\n * }\n */\n defaultConfig: {\n /**\n * @description Flyline chart points\n * @type {Point[]}\n * @default points = []\n */\n points: [],\n /**\n * @description Lines\n * @type {Flyline[]}\n * @default lines = []\n */\n lines: [],\n /**\n * @description Global halo configuration\n * @type {Halo}\n */\n halo: {\n /**\n * @description Whether to show halo\n * @type {Boolean}\n * @default show = false\n */\n show: false,\n /**\n * @description Halo animation duration (1s = 10)\n * @type {[number, number]}\n */\n duration: [20, 30],\n /**\n * @description Halo color\n * @type {String}\n * @default color = '#fb7293'\n */\n color: '#fb7293',\n /**\n * @description Halo radius\n * @type {Number}\n * @default radius = 120\n */\n radius: 120\n },\n /**\n * @description Global text configuration\n * @type {Text}\n */\n text: {\n /**\n * @description Whether to show text\n * @type {Boolean}\n * @default show = false\n */\n show: false,\n /**\n * @description Text offset\n * @type {[number, number]}\n * @default offset = [0, 15]\n */\n offset: [0, 15],\n /**\n * @description Text color\n * @type {String}\n * @default color = '#ffdb5c'\n */\n color: '#ffdb5c',\n /**\n * @description Text font size\n * @type {Number}\n * @default fontSize = 12\n */\n fontSize: 12\n },\n /**\n * @description Global icon configuration\n * @type {Icon}\n */\n icon: {\n /**\n * @description Whether to show icon\n * @type {Boolean}\n * @default show = false\n */\n show: false,\n /**\n * @description Icon src\n * @type {String}\n * @default src = ''\n */\n src: '',\n /**\n * @description Icon width\n * @type {Number}\n * @default width = 15\n */\n width: 15,\n /**\n * @description Icon height\n * @type {Number}\n * @default width = 15\n */\n height: 15\n },\n /**\n * @description Global line configuration\n * @type {Line}\n */\n line: {\n /**\n * @description Line width\n * @type {Number}\n * @default width = 1\n */\n width: 1,\n /**\n * @description Flyline color\n * @type {String}\n * @default color = '#ffde93'\n */\n color: '#ffde93',\n /**\n * @description Orbit color\n * @type {String}\n * @default orbitColor = 'rgba(103, 224, 227, .2)'\n */\n orbitColor: 'rgba(103, 224, 227, .2)',\n /**\n * @description Flyline animation duration\n * @type {[number, number]}\n * @default duration = [20, 30]\n */\n duration: [20, 30],\n /**\n * @description Flyline radius\n * @type {Number}\n * @default radius = 100\n */\n radius: 100\n },\n /**\n * @description Back ground image url\n * @type {String}\n * @default bgImgSrc = ''\n */\n bgImgSrc: '',\n /**\n * @description K value\n * @type {Number}\n * @default k = -0.5\n * @example k = -1 ~ 1\n */\n k: -0.5,\n /**\n * @description Flyline curvature\n * @type {Number}\n * @default curvature = 5\n */\n curvature: 5,\n /**\n * @description Relative points position\n * @type {Boolean}\n * @default relative = true\n */\n relative: true\n },\n /**\n * @description Fly line data\n * @type {FlylineWithPath[]}\n * @default flylines = []\n */\n flylines: [],\n /**\n * @description Fly line lengths\n * @type {Number[]}\n * @default flylineLengths = []\n */\n flylineLengths: [],\n /**\n * @description Fly line points\n * @default flylinePoints = []\n */\n flylinePoints: [],\n\n mergedConfig: null\n }\n },\n watch: {\n config () {\n const { calcData } = this\n\n calcData()\n }\n },\n methods: {\n afterAutoResizeMixinInit () {\n const { calcData } = this\n\n calcData()\n },\n onResize () {\n const { calcData } = this\n\n calcData()\n },\n async calcData () {\n const { mergeConfig, calcflylinePoints, calcLinePaths } = this\n\n mergeConfig()\n\n calcflylinePoints()\n\n calcLinePaths()\n\n const { calcLineLengths } = this\n\n await calcLineLengths()\n },\n mergeConfig () {\n let { config, defaultConfig } = this\n\n const mergedConfig = deepMerge(deepClone(defaultConfig, true), config || {})\n\n const { points, lines, halo, text, icon, line } = mergedConfig\n\n mergedConfig.points = points.map(item => {\n item.halo = deepMerge(deepClone(halo, true), item.halo || {})\n item.text = deepMerge(deepClone(text, true), item.text || {})\n item.icon = deepMerge(deepClone(icon, true), item.icon || {})\n\n return item\n })\n\n mergedConfig.lines = lines.map(item => {\n return deepMerge(deepClone(line, true), item)\n })\n\n this.mergedConfig = mergedConfig\n },\n calcflylinePoints () {\n const { mergedConfig, width, height } = this\n\n const { relative, points } = mergedConfig\n\n this.flylinePoints = points.map((item, i) => {\n const { coordinate: [x, y], halo, icon, text } = item\n\n if (relative) item.coordinate = [x * width, y * height]\n\n item.halo.time = randomExtend(...halo.duration) / 10\n\n const { width: iw, height: ih } = icon\n item.icon.x = item.coordinate[0] - iw / 2\n item.icon.y = item.coordinate[1] - ih / 2\n\n const [ox, oy] = text.offset\n item.text.x = item.coordinate[0] + ox\n item.text.y = item.coordinate[1] + oy\n\n item.key = `${item.coordinate.toString()}${i}`\n\n return item\n })\n },\n calcLinePaths () {\n const { getPath, mergedConfig } = this\n\n const { points, lines } = mergedConfig\n\n this.flylines = lines.map(item => {\n const { source, target, duration } = item\n\n const sourcePoint = points.find(({ name }) => name === source).coordinate\n const targetPoint = points.find(({ name }) => name === target).coordinate\n\n const path = getPath(sourcePoint, targetPoint).map(item => item.map(v => parseFloat(v.toFixed(10))))\n const d = `M${path[0].toString()} Q${path[1].toString()} ${path[2].toString()}`\n const key = `path${path.toString()}`\n const time = randomExtend(...duration) / 10\n\n return { ...item, path, key, d, time }\n })\n },\n getPath (start, end) {\n const { getControlPoint } = this\n\n const controlPoint = getControlPoint(start, end)\n\n return [start, controlPoint, end]\n },\n getControlPoint ([sx, sy], [ex, ey]) {\n const { getKLinePointByx, mergedConfig } = this\n\n const { curvature, k } = mergedConfig\n\n const [mx, my] = [(sx + ex) / 2, (sy + ey) / 2]\n\n const distance = getPointDistance([sx, sy], [ex, ey])\n\n const targetLength = distance / curvature\n const disDived = targetLength / 2\n\n let [dx, dy] = [mx, my]\n\n do {\n dx += disDived\n dy = getKLinePointByx(k, [mx, my], dx)[1]\n } while (getPointDistance([mx, my], [dx, dy]) < targetLength)\n\n return [dx, dy]\n },\n getKLinePointByx (k, [lx, ly], x) {\n const y = ly - k * lx + k * x\n\n return [x, y]\n },\n async calcLineLengths () {\n const { $nextTick, flylines, $refs } = this\n\n await $nextTick()\n\n this.flylineLengths = flylines.map(({ key }) => $refs[key][0].getTotalLength())\n },\n consoleClickPos ({ offsetX, offsetY }) {\n const { width, height, dev } = this\n\n if (!dev) return\n\n const relativeX = (offsetX / width).toFixed(2)\n const relativeY = (offsetY / height).toFixed(2)\n\n console.warn(`dv-flyline-chart-enhanced DEV: \\n Click Position is [${offsetX}, ${offsetY}] \\n Relative Position is [${relativeX}, ${relativeY}]`)\n }\n }\n}\n</script>"]}]} |