1 line
28 KiB
JSON
1 line
28 KiB
JSON
{"remainingRequest":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\@jiaminghi\\data-view\\lib\\components\\flylineChart\\src\\main.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\@jiaminghi\\data-view\\lib\\components\\flylineChart\\src\\main.vue","mtime":499162500000},{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\hua\\Desktop\\suyi1111\\suyi1111\\suyi1111\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJ0BqaWFtaW5naGkvY2hhcnRzL2xpYi91dGlsL2luZGV4JwoKaW1wb3J0IHsgZGVlcENsb25lIH0gZnJvbSAnQGppYW1pbmdoaS9jLXJlbmRlci9saWIvcGx1Z2luL3V0aWwnCgppbXBvcnQgeyByYW5kb21FeHRlbmQsIGdldFBvaW50RGlzdGFuY2UgfSBmcm9tICcuLi8uLi8uLi91dGlsL2luZGV4JwoKaW1wb3J0IGF1dG9SZXNpemUgZnJvbSAnLi4vLi4vLi4vbWl4aW4vYXV0b1Jlc2l6ZScKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnRHZGbHlsaW5lQ2hhcnQnLAogIG1peGluczogW2F1dG9SZXNpemVdLAogIHByb3BzOiB7CiAgICBjb25maWc6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiAoKSA9PiAoe30pCiAgICB9LAogICAgZGV2OiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9CiAgfSwKICBkYXRhICgpIHsKICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCkKICAgIHJldHVybiB7CiAgICAgIHJlZjogJ2R2LWZseWxpbmUtY2hhcnQnLAogICAgICB1bmlxdWU6IE1hdGgucmFuZG9tKCksCiAgICAgIG1hc2tJZDogYGZseWxpbmUtbWFzay1pZC0ke3RpbWVzdGFtcH1gLAogICAgICBtYXNrQ2lyY2xlSWQ6IGBtYXNrLWNpcmNsZS1pZC0ke3RpbWVzdGFtcH1gLAogICAgICBncmFkaWVudElkOiBgZ3JhZGllbnQtaWQtJHt0aW1lc3RhbXB9YCwKICAgICAgZ3JhZGllbnQySWQ6IGBncmFkaWVudDItaWQtJHt0aW1lc3RhbXB9YCwKCiAgICAgIGRlZmF1bHRDb25maWc6IHsKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gRmx5bGluZSBjaGFydCBjZW50ZXIgcG9pbnQKICAgICAgICAgKiBAdHlwZSB7QXJyYXk8TnVtYmVyPn0KICAgICAgICAgKiBAZGVmYXVsdCBjZW50ZXJQb2ludCA9IFswLCAwXQogICAgICAgICAqLwogICAgICAgIGNlbnRlclBvaW50OiBbMCwgMF0sCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEZseWxpbmUgc3RhcnQgcG9pbnRzCiAgICAgICAgICogQHR5cGUge0FycmF5PEFycmF5PE51bWJlcj4+fQogICAgICAgICAqIEBkZWZhdWx0IHBvaW50cyA9IFtdCiAgICAgICAgICogQGV4YW1wbGUgcG9pbnRzID0gW1sxMCwgMTBdLCBbMTAwLCAxMDBdXQogICAgICAgICAqLwogICAgICAgIHBvaW50czogW10sCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEZseWxpbmUgd2lkdGgKICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfQogICAgICAgICAqIEBkZWZhdWx0IGxpbmVXaWR0aCA9IDEKICAgICAgICAgKi8KICAgICAgICBsaW5lV2lkdGg6IDEsCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIE9yYml0IGNvbG9yCiAgICAgICAgICogQHR5cGUge1N0cmluZ30KICAgICAgICAgKiBAZGVmYXVsdCBvcmJpdENvbG9yID0gJ3JnYmEoMTAzLCAyMjQsIDIyNywgLjIpJwogICAgICAgICAqLwogICAgICAgIG9yYml0Q29sb3I6ICdyZ2JhKDEwMywgMjI0LCAyMjcsIC4yKScsCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEZseWxpbmUgY29sb3IKICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfQogICAgICAgICAqIEBkZWZhdWx0IG9yYml0Q29sb3IgPSAnI2ZmZGU5MycKICAgICAgICAgKi8KICAgICAgICBmbHlsaW5lQ29sb3I6ICcjZmZkZTkzJywKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gSyB2YWx1ZQogICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICogQGRlZmF1bHQgayA9IC0wLjUKICAgICAgICAgKiBAZXhhbXBsZSBrID0gLTEgfiAxCiAgICAgICAgICovCiAgICAgICAgazogLTAuNSwKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gRmx5bGluZSBjdXJ2YXR1cmUKICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfQogICAgICAgICAqIEBkZWZhdWx0IGN1cnZhdHVyZSA9IDUKICAgICAgICAgKi8KICAgICAgICBjdXJ2YXR1cmU6IDUsCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEZseWxpbmUgcmFkaXVzCiAgICAgICAgICogQHR5cGUge051bWJlcn0KICAgICAgICAgKiBAZGVmYXVsdCBmbHlsaW5lUmFkaXVzID0gMTAwCiAgICAgICAgICovCiAgICAgICAgZmx5bGluZVJhZGl1czogMTAwLAogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBGbHlsaW5lIGFuaW1hdGlvbiBkdXJhdGlvbgogICAgICAgICAqIEB0eXBlIHtBcnJheTxOdW1iZXI+fQogICAgICAgICAqIEBkZWZhdWx0IGR1cmF0aW9uID0gWzIwLCAzMF0KICAgICAgICAgKi8KICAgICAgICBkdXJhdGlvbjogWzIwLCAzMF0sCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIFJlbGF0aXZlIHBvaW50cyBwb3NpdGlvbgogICAgICAgICAqIEB0eXBlIHtCb29sZWFufQogICAgICAgICAqIEBkZWZhdWx0IHJlbGF0aXZlID0gdHJ1ZQogICAgICAgICAqLwogICAgICAgIHJlbGF0aXZlOiB0cnVlLAogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBCYWNrIGdyb3VuZCBpbWFnZSB1cmwKICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfQogICAgICAgICAqIEBkZWZhdWx0IGJnSW1nVXJsID0gJycKICAgICAgICAgKiBAZXhhbXBsZSBiZ0ltZ1VybCA9ICcuL2ltZy9iZy5qcGcnCiAgICAgICAgICovCiAgICAgICAgYmdJbWdVcmw6ICcnLAogICAgICAgIC8qKgogICAgICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0IGNvbmZpZ3VyYXRpb24KICAgICAgICAgKiBAdHlwZSB7T2JqZWN0fQogICAgICAgICAqLwogICAgICAgIHRleHQ6IHsKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIFRleHQgb2Zmc2V0CiAgICAgICAgICAgKiBAdHlwZSB7QXJyYXk8TnVtYmVyPn0KICAgICAgICAgICAqIEBkZWZhdWx0IG9mZnNldCA9IFswLCAxNV0KICAgICAgICAgICAqLwogICAgICAgICAgb2Zmc2V0OiBbMCwgMTVdLAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGV4dCBjb2xvcgogICAgICAgICAgICogQHR5cGUge1N0cmluZ30KICAgICAgICAgICAqIEBkZWZhdWx0IGNvbG9yID0gJyNmZmRiNWMnCiAgICAgICAgICAgKi8KICAgICAgICAgIGNvbG9yOiAnI2ZmZGI1YycsCiAgICAgICAgICAvKioKICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBUZXh0IGZvbnQgc2l6ZQogICAgICAgICAgICogQHR5cGUge051bWJlcn0KICAgICAgICAgICAqIEBkZWZhdWx0IGZvbnRTaXplID0gMTIKICAgICAgICAgICAqLwogICAgICAgICAgZm9udFNpemU6IDEyCiAgICAgICAgfSwKICAgICAgICAvKioKICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGFsbyBjb25maWd1cmF0aW9uCiAgICAgICAgICogQHR5cGUge09iamVjdH0KICAgICAgICAgKi8KICAgICAgICBoYWxvOiB7CiAgICAgICAgICAvKioKICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBXZWF0aGVyIHRvIHNob3cgaGFsbwogICAgICAgICAgICogQHR5cGUge0Jvb2xlYW59CiAgICAgICAgICAgKiBAZGVmYXVsdCBzaG93ID0gdHJ1ZQogICAgICAgICAgICogQGV4YW1wbGUgc2hvdyA9IHRydWUgfCBmYWxzZQogICAgICAgICAgICovCiAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgLyoqCiAgICAgICAgICAgKiBAZGVzY3JpcHRpb24gSGFsbyBhbmltYXRpb24gZHVyYXRpb24gKDEwID0gMXMpCiAgICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfQogICAgICAgICAgICogQGRlZmF1bHQgZHVyYXRpb24gPSAzMAogICAgICAgICAgICovCiAgICAgICAgICBkdXJhdGlvbjogMzAsCiAgICAgICAgICAvKioKICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBIYWxvIGNvbG9yCiAgICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfQogICAgICAgICAgICogQGRlZmF1bHQgY29sb3IgPSAnI2ZiNzI5MycKICAgICAgICAgICAqLwogICAgICAgICAgY29sb3I6ICcjZmI3MjkzJywKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIEhhbG8gbWF4IHJhZGl1cwogICAgICAgICAgICogQHR5cGUge051bWJlcn0KICAgICAgICAgICAqIEBkZWZhdWx0IHJhZGl1cyA9IDEyMAogICAgICAgICAgICovCiAgICAgICAgICByYWRpdXM6IDEyMAogICAgICAgIH0sCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIENlbnRlciBwb2ludCBpbWcgY29uZmlndXJhdGlvbgogICAgICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgICAgICovCiAgICAgICAgY2VudGVyUG9pbnRJbWc6IHsKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIENlbnRlciBwb2ludCBpbWcgd2lkdGgKICAgICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9CiAgICAgICAgICAgKiBAZGVmYXVsdCB3aWR0aCA9IDQwCiAgICAgICAgICAgKi8KICAgICAgICAgIHdpZHRoOiA0MCwKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIENlbnRlciBwb2ludCBpbWcgaGVpZ2h0CiAgICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfQogICAgICAgICAgICogQGRlZmF1bHQgaGVpZ2h0ID0gNDAKICAgICAgICAgICAqLwogICAgICAgICAgaGVpZ2h0OiA0MCwKICAgICAgICAgIC8qKgogICAgICAgICAgICogQGRlc2NyaXB0aW9uIENlbnRlciBwb2ludCBpbWcgdXJsCiAgICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfQogICAgICAgICAgICogQGRlZmF1bHQgdXJsID0gJycKICAgICAgICAgICAqLwogICAgICAgICAgdXJsOiAnJwogICAgICAgIH0sCiAgICAgICAgLyoqCiAgICAgICAgICogQGRlc2NyaXB0aW9uIFBvaW50cyBpbWcgY29uZmlndXJhdGlvbgogICAgICAgICAqIEB0eXBlIHtPYmplY3R9CiAgICAgICAgICogQGRlZmF1bHQgcmFkaXVzID0gMTIwCiAgICAgICAgICovCiAgICAgICAgcG9pbnRzSW1nOiB7CiAgICAgICAgICAvKioKICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2ludHMgaW1nIHdpZHRoCiAgICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfQogICAgICAgICAgICogQGRlZmF1bHQgd2lkdGggPSAxNQogICAgICAgICAgICovCiAgICAgICAgICB3aWR0aDogMTUsCiAgICAgICAgICAvKioKICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2ludHMgaW1nIGhlaWdodAogICAgICAgICAgICogQHR5cGUge051bWJlcn0KICAgICAgICAgICAqIEBkZWZhdWx0IGhlaWdodCA9IDE1CiAgICAgICAgICAgKi8KICAgICAgICAgIGhlaWdodDogMTUsCiAgICAgICAgICAvKioKICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBQb2ludHMgaW1nIHVybAogICAgICAgICAgICogQHR5cGUge1N0cmluZ30KICAgICAgICAgICAqIEBkZWZhdWx0IHVybCA9ICcnCiAgICAgICAgICAgKi8KICAgICAgICAgIHVybDogJycKICAgICAgICB9CiAgICAgIH0sCgogICAgICBtZXJnZWRDb25maWc6IG51bGwsCgogICAgICBwYXRoczogW10sCiAgICAgIGxlbmd0aHM6IFtdLAogICAgICB0aW1lczogW10sCiAgICAgIHRleHRzOiBbXQogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIGNvbmZpZyAoKSB7CiAgICAgIGNvbnN0IHsgY2FsY0RhdGEgfSA9IHRoaXMKCiAgICAgIGNhbGNEYXRhKCkKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIGFmdGVyQXV0b1Jlc2l6ZU1peGluSW5pdCAoKSB7CiAgICAgIGNvbnN0IHsgY2FsY0RhdGEgfSA9IHRoaXMKCiAgICAgIGNhbGNEYXRhKCkKICAgIH0sCiAgICBvblJlc2l6ZSAoKSB7CiAgICAgIGNvbnN0IHsgY2FsY0RhdGEgfSA9IHRoaXMKCiAgICAgIGNhbGNEYXRhKCkKICAgIH0sCiAgICBhc3luYyBjYWxjRGF0YSAoKSB7CiAgICAgIGNvbnN0IHsgbWVyZ2VDb25maWcsIGNyZWF0ZUZseWxpbmVQYXRocywgY2FsY0xpbmVMZW5ndGhzIH0gPSB0aGlzCgogICAgICBtZXJnZUNvbmZpZygpCgogICAgICBjcmVhdGVGbHlsaW5lUGF0aHMoKQoKICAgICAgYXdhaXQgY2FsY0xpbmVMZW5ndGhzKCkKCiAgICAgIGNvbnN0IHsgY2FsY1RpbWVzLCBjYWxjVGV4dHMgfSA9IHRoaXMKCiAgICAgIGNhbGNUaW1lcygpCgogICAgICBjYWxjVGV4dHMoKQogICAgfSwKICAgIG1lcmdlQ29uZmlnICgpIHsKICAgICAgbGV0IHsgY29uZmlnLCBkZWZhdWx0Q29uZmlnIH0gPSB0aGlzCgogICAgICBjb25zdCBtZXJnZWRDb25maWcgPSBkZWVwTWVyZ2UoZGVlcENsb25lKGRlZmF1bHRDb25maWcsIHRydWUpLCBjb25maWcgfHwge30pCgogICAgICBjb25zdCB7IHBvaW50cyB9ID0gbWVyZ2VkQ29uZmlnCgogICAgICBtZXJnZWRDb25maWcucG9pbnRzID0gcG9pbnRzLm1hcChpdGVtID0+IHsKICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIEFycmF5KSB7CiAgICAgICAgICByZXR1cm4geyBwb3NpdGlvbjogaXRlbSwgdGV4dDogJycgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGl0ZW0KICAgICAgfSkKCiAgICAgIHRoaXMubWVyZ2VkQ29uZmlnID0gbWVyZ2VkQ29uZmlnCiAgICB9LAogICAgY3JlYXRlRmx5bGluZVBhdGhzICgpIHsKICAgICAgY29uc3QgeyBnZXRQYXRoLCBtZXJnZWRDb25maWcsIHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMKCiAgICAgIGxldCB7IGNlbnRlclBvaW50LCBwb2ludHMsIHJlbGF0aXZlIH0gPSBtZXJnZWRDb25maWcKCiAgICAgIHBvaW50cyA9IHBvaW50cy5tYXAoKHsgcG9zaXRpb24gfSkgPT4gcG9zaXRpb24pCgogICAgICBpZiAocmVsYXRpdmUpIHsKICAgICAgICBjZW50ZXJQb2ludCA9IFt3aWR0aCAqIGNlbnRlclBvaW50WzBdLCBoZWlnaHQgKiBjZW50ZXJQb2ludFsxXV0KICAgICAgICBwb2ludHMgPSBwb2ludHMubWFwKChbeCwgeV0pID0+IFt3aWR0aCAqIHgsIGhlaWdodCAqIHldKQogICAgICB9CgogICAgICB0aGlzLnBhdGhzID0gcG9pbnRzLm1hcChwb2ludCA9PiBnZXRQYXRoKGNlbnRlclBvaW50LCBwb2ludCkpCiAgICB9LAogICAgZ2V0UGF0aCAoY2VudGVyLCBwb2ludCkgewogICAgICBjb25zdCB7IGdldENvbnRyb2xQb2ludCB9ID0gdGhpcwoKICAgICAgY29uc3QgY29udHJvbFBvaW50ID0gZ2V0Q29udHJvbFBvaW50KGNlbnRlciwgcG9pbnQpCgogICAgICByZXR1cm4gW3BvaW50LCBjb250cm9sUG9pbnQsIGNlbnRlcl0KICAgIH0sCiAgICBnZXRDb250cm9sUG9pbnQgKFtzeCwgc3ldLCBbZXgsIGV5XSkgewogICAgICBjb25zdCB7IGdldEtMaW5lUG9pbnRCeXgsIG1lcmdlZENvbmZpZyB9ID0gdGhpcwoKICAgICAgY29uc3QgeyBjdXJ2YXR1cmUsIGsgfSA9IG1lcmdlZENvbmZpZwoKICAgICAgY29uc3QgW214LCBteV0gPSBbKHN4ICsgZXgpIC8gMiwgKHN5ICsgZXkpIC8gMl0KCiAgICAgIGNvbnN0IGRpc3RhbmNlID0gZ2V0UG9pbnREaXN0YW5jZShbc3gsIHN5XSwgW2V4LCBleV0pCgogICAgICBjb25zdCB0YXJnZXRMZW5ndGggPSBkaXN0YW5jZSAvIGN1cnZhdHVyZQogICAgICBjb25zdCBkaXNEaXZlZCA9IHRhcmdldExlbmd0aCAvIDIKCiAgICAgIGxldCBbZHgsIGR5XSA9IFtteCwgbXldCgogICAgICBkbyB7CiAgICAgICAgZHggKz0gZGlzRGl2ZWQKICAgICAgICBkeSA9IGdldEtMaW5lUG9pbnRCeXgoaywgW214LCBteV0sIGR4KVsxXQogICAgICB9IHdoaWxlIChnZXRQb2ludERpc3RhbmNlKFtteCwgbXldLCBbZHgsIGR5XSkgPCB0YXJnZXRMZW5ndGgpCgogICAgICByZXR1cm4gW2R4LCBkeV0KICAgIH0sCiAgICBnZXRLTGluZVBvaW50Qnl4IChrLCBbbHgsIGx5XSwgeCkgewogICAgICBjb25zdCB5ID0gbHkgLSBrICogbHggKyBrICogeAoKICAgICAgcmV0dXJuIFt4LCB5XQogICAgfSwKICAgIGFzeW5jIGNhbGNMaW5lTGVuZ3RocyAoKSB7CiAgICAgIGNvbnN0IHsgJG5leHRUaWNrLCBwYXRocywgJHJlZnMgfSA9IHRoaXMKCiAgICAgIGF3YWl0ICRuZXh0VGljaygpCgogICAgICB0aGlzLmxlbmd0aHMgPSBwYXRocy5tYXAoKGZvbywgaSkgPT4gJHJlZnNbYHBhdGgke2l9YF1bMF0uZ2V0VG90YWxMZW5ndGgoKSkKICAgIH0sCiAgICBjYWxjVGltZXMgKCkgewogICAgICBjb25zdCB7IGR1cmF0aW9uLCBwb2ludHMgfSA9IHRoaXMubWVyZ2VkQ29uZmlnCgogICAgICB0aGlzLnRpbWVzID0gcG9pbnRzLm1hcChmb28gPT4gcmFuZG9tRXh0ZW5kKC4uLmR1cmF0aW9uKSAvIDEwKQogICAgfSwKICAgIGNhbGNUZXh0cyAoKSB7CiAgICAgIGNvbnN0IHsgcG9pbnRzIH0gPSB0aGlzLm1lcmdlZENvbmZpZwoKICAgICAgdGhpcy50ZXh0cyA9IHBvaW50cy5tYXAoKHsgdGV4dCB9KSA9PiB0ZXh0KQogICAgfSwKICAgIGNvbnNvbGVDbGlja1BvcyAoeyBvZmZzZXRYLCBvZmZzZXRZIH0pIHsKICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCBkZXYgfSA9IHRoaXMKCiAgICAgIGlmICghZGV2KSByZXR1cm4KCiAgICAgIGNvbnN0IHJlbGF0aXZlWCA9IChvZmZzZXRYIC8gd2lkdGgpLnRvRml4ZWQoMikKICAgICAgY29uc3QgcmVsYXRpdmVZID0gKG9mZnNldFkgLyBoZWlnaHQpLnRvRml4ZWQoMikKCiAgICAgIGNvbnNvbGUud2FybihgZHYtZmx5bGluZS1jaGFydCBERVY6IFxuIENsaWNrIFBvc2l0aW9uIGlzIFske29mZnNldFh9LCAke29mZnNldFl9XSBcbiBSZWxhdGl2ZSBQb3NpdGlvbiBpcyBbJHtyZWxhdGl2ZVh9LCAke3JlbGF0aXZlWX1dYCkKICAgIH0KICB9Cn0K"},{"version":3,"sources":["main.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuJA;;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;;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;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA","file":"main.vue","sourceRoot":"node_modules/@jiaminghi/data-view/lib/components/flylineChart/src","sourcesContent":["<template>\n <div\n class=\"dv-flyline-chart\"\n ref=\"dv-flyline-chart\"\n :style=\"`background-image: url(${mergedConfig ? mergedConfig.bgImgUrl : ''})`\"\n @click=\"consoleClickPos\"\n >\n <svg v-if=\"mergedConfig\" :width=\"width\" :height=\"height\">\n <defs>\n <radialGradient\n :id=\"gradientId\"\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=\"gradient2Id\"\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\n <circle\n v-if=\"paths[0]\"\n :id=\"`circle${paths[0].toString()}`\"\n :cx=\"paths[0][2][0]\"\n :cy=\"paths[0][2][1]\"\n >\n <animate\n attributeName=\"r\"\n :values=\"`1;${mergedConfig.halo.radius}`\"\n :dur=\"mergedConfig.halo.duration / 10 + 's'\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"opacity\"\n values=\"1;0\"\n :dur=\"mergedConfig.halo.duration / 10 + 's'\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </defs>\n\n <image\n v-if=\"paths[0]\"\n :xlink:href=\"mergedConfig.centerPointImg.url\"\n :width=\"mergedConfig.centerPointImg.width\"\n :height=\"mergedConfig.centerPointImg.height\"\n :x=\"paths[0][2][0] - mergedConfig.centerPointImg.width / 2\"\n :y=\"paths[0][2][1] - mergedConfig.centerPointImg.height / 2\"\n />\n\n <mask :id=\"`maskhalo${paths[0].toString()}`\">\n <use\n v-if=\"paths[0]\"\n :xlink:href=\"`#circle${paths[0].toString()}`\"\n :fill=\"`url(#${gradient2Id})`\"\n />\n </mask>\n\n <use\n v-if=\"paths[0] && mergedConfig.halo.show\"\n :xlink:href=\"`#circle${paths[0].toString()}`\"\n :fill=\"mergedConfig.halo.color\"\n :mask=\"`url(#maskhalo${paths[0].toString()})`\"\n />\n\n <g\n v-for=\"(path, i) in paths\"\n :key=\"i\"\n >\n <defs>\n <path\n :id=\"`path${path.toString()}`\"\n :ref=\"`path${i}`\"\n :d=\"`M${path[0].toString()} Q${path[1].toString()} ${path[2].toString()}`\"\n fill=\"transparent\"\n />\n </defs>\n\n <use\n :xlink:href=\"`#path${path.toString()}`\"\n :stroke-width=\"mergedConfig.lineWidth\"\n :stroke=\"mergedConfig.orbitColor\"\n />\n\n <use\n v-if=\"lengths[i]\"\n :xlink:href=\"`#path${path.toString()}`\"\n :stroke-width=\"mergedConfig.lineWidth\"\n :stroke=\"mergedConfig.flylineColor\"\n :mask=\"`url(#mask${unique}${path.toString()})`\"\n >\n <animate\n attributeName=\"stroke-dasharray\"\n :from=\"`0, ${lengths[i]}`\"\n :to=\"`${lengths[i]}, 0`\"\n :dur=\"times[i] || 0\"\n repeatCount=\"indefinite\"\n />\n </use>\n\n <mask :id=\"`mask${unique}${path.toString()}`\">\n <circle cx=\"0\" cy=\"0\" :r=\"mergedConfig.flylineRadius\" :fill=\"`url(#${gradientId})`\">\n <animateMotion\n :dur=\"times[i] || 0\"\n :path=\"`M${path[0].toString()} Q${path[1].toString()} ${path[2].toString()}`\"\n rotate=\"auto\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </mask>\n\n <image\n :xlink:href=\"mergedConfig.pointsImg.url\"\n :width=\"mergedConfig.pointsImg.width\"\n :height=\"mergedConfig.pointsImg.height\"\n :x=\"path[0][0] - mergedConfig.pointsImg.width / 2\"\n :y=\"path[0][1] - mergedConfig.pointsImg.height / 2\"\n />\n\n <text\n :style=\"`fontSize:${mergedConfig.text.fontSize}px;`\"\n :fill=\"mergedConfig.text.color\"\n :x=\"path[0][0] + mergedConfig.text.offset[0]\"\n :y=\"path[0][1] + mergedConfig.text.offset[1]\"\n >\n {{ texts[i] }}\n </text>\n\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: 'DvFlylineChart',\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',\n unique: Math.random(),\n maskId: `flyline-mask-id-${timestamp}`,\n maskCircleId: `mask-circle-id-${timestamp}`,\n gradientId: `gradient-id-${timestamp}`,\n gradient2Id: `gradient2-id-${timestamp}`,\n\n defaultConfig: {\n /**\n * @description Flyline chart center point\n * @type {Array<Number>}\n * @default centerPoint = [0, 0]\n */\n centerPoint: [0, 0],\n /**\n * @description Flyline start points\n * @type {Array<Array<Number>>}\n * @default points = []\n * @example points = [[10, 10], [100, 100]]\n */\n points: [],\n /**\n * @description Flyline width\n * @type {Number}\n * @default lineWidth = 1\n */\n lineWidth: 1,\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 color\n * @type {String}\n * @default orbitColor = '#ffde93'\n */\n flylineColor: '#ffde93',\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 Flyline radius\n * @type {Number}\n * @default flylineRadius = 100\n */\n flylineRadius: 100,\n /**\n * @description Flyline animation duration\n * @type {Array<Number>}\n * @default duration = [20, 30]\n */\n duration: [20, 30],\n /**\n * @description Relative points position\n * @type {Boolean}\n * @default relative = true\n */\n relative: true,\n /**\n * @description Back ground image url\n * @type {String}\n * @default bgImgUrl = ''\n * @example bgImgUrl = './img/bg.jpg'\n */\n bgImgUrl: '',\n /**\n * @description Text configuration\n * @type {Object}\n */\n text: {\n /**\n * @description Text offset\n * @type {Array<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 Halo configuration\n * @type {Object}\n */\n halo: {\n /**\n * @description Weather to show halo\n * @type {Boolean}\n * @default show = true\n * @example show = true | false\n */\n show: true,\n /**\n * @description Halo animation duration (10 = 1s)\n * @type {Number}\n * @default duration = 30\n */\n duration: 30,\n /**\n * @description Halo color\n * @type {String}\n * @default color = '#fb7293'\n */\n color: '#fb7293',\n /**\n * @description Halo max radius\n * @type {Number}\n * @default radius = 120\n */\n radius: 120\n },\n /**\n * @description Center point img configuration\n * @type {Object}\n */\n centerPointImg: {\n /**\n * @description Center point img width\n * @type {Number}\n * @default width = 40\n */\n width: 40,\n /**\n * @description Center point img height\n * @type {Number}\n * @default height = 40\n */\n height: 40,\n /**\n * @description Center point img url\n * @type {String}\n * @default url = ''\n */\n url: ''\n },\n /**\n * @description Points img configuration\n * @type {Object}\n * @default radius = 120\n */\n pointsImg: {\n /**\n * @description Points img width\n * @type {Number}\n * @default width = 15\n */\n width: 15,\n /**\n * @description Points img height\n * @type {Number}\n * @default height = 15\n */\n height: 15,\n /**\n * @description Points img url\n * @type {String}\n * @default url = ''\n */\n url: ''\n }\n },\n\n mergedConfig: null,\n\n paths: [],\n lengths: [],\n times: [],\n texts: []\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, createFlylinePaths, calcLineLengths } = this\n\n mergeConfig()\n\n createFlylinePaths()\n\n await calcLineLengths()\n\n const { calcTimes, calcTexts } = this\n\n calcTimes()\n\n calcTexts()\n },\n mergeConfig () {\n let { config, defaultConfig } = this\n\n const mergedConfig = deepMerge(deepClone(defaultConfig, true), config || {})\n\n const { points } = mergedConfig\n\n mergedConfig.points = points.map(item => {\n if (item instanceof Array) {\n return { position: item, text: '' }\n }\n\n return item\n })\n\n this.mergedConfig = mergedConfig\n },\n createFlylinePaths () {\n const { getPath, mergedConfig, width, height } = this\n\n let { centerPoint, points, relative } = mergedConfig\n\n points = points.map(({ position }) => position)\n\n if (relative) {\n centerPoint = [width * centerPoint[0], height * centerPoint[1]]\n points = points.map(([x, y]) => [width * x, height * y])\n }\n\n this.paths = points.map(point => getPath(centerPoint, point))\n },\n getPath (center, point) {\n const { getControlPoint } = this\n\n const controlPoint = getControlPoint(center, point)\n\n return [point, controlPoint, center]\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, paths, $refs } = this\n\n await $nextTick()\n\n this.lengths = paths.map((foo, i) => $refs[`path${i}`][0].getTotalLength())\n },\n calcTimes () {\n const { duration, points } = this.mergedConfig\n\n this.times = points.map(foo => randomExtend(...duration) / 10)\n },\n calcTexts () {\n const { points } = this.mergedConfig\n\n this.texts = points.map(({ text }) => text)\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 DEV: \\n Click Position is [${offsetX}, ${offsetY}] \\n Relative Position is [${relativeX}, ${relativeY}]`)\n }\n }\n}\n</script>"]}]} |