From 939e45ebcde76bf939133fc1ac54a8c2c9c07bdc Mon Sep 17 00:00:00 2001 From: huruji <594613537@qq.com> Date: Thu, 15 Jun 2017 20:56:04 +0800 Subject: [PATCH 1/2] -mv0.1.1 start --- .gitignore | 2 +- .idea/workspace.xml | 883 +- gulpfile.js | 82 + node_modules/base64-url/LICENSE | 15 - node_modules/base64-url/README.md | 52 - node_modules/base64-url/index.js | 23 - node_modules/base64-url/package.json | 108 - node_modules/crc/LICENSE | 22 - node_modules/crc/lib/crc1.js | 24 - node_modules/crc/lib/crc16.js | 27 - node_modules/crc/lib/crc16_ccitt.js | 27 - node_modules/crc/lib/crc16_kermit.js | 27 - node_modules/crc/lib/crc16_modbus.js | 27 - node_modules/crc/lib/crc16_xmodem.js | 31 - node_modules/crc/lib/crc24.js | 27 - node_modules/crc/lib/crc32.js | 27 - node_modules/crc/lib/crc8.js | 27 - node_modules/crc/lib/crc8_1wire.js | 27 - node_modules/crc/lib/define_crc.js | 16 - node_modules/crc/lib/index.js | 14 - node_modules/crc/package.json | 101 - node_modules/express-session/HISTORY.md | 330 - node_modules/express-session/LICENSE | 24 - node_modules/express-session/README.md | 712 - node_modules/express-session/index.js | 647 - node_modules/express-session/package.json | 130 - .../express-session/session/cookie.js | 130 - .../express-session/session/memory.js | 185 - .../express-session/session/session.js | 142 - node_modules/express-session/session/store.js | 94 - node_modules/on-headers/HISTORY.md | 16 - node_modules/on-headers/LICENSE | 22 - node_modules/on-headers/README.md | 76 - node_modules/on-headers/index.js | 93 - node_modules/on-headers/package.json | 103 - node_modules/random-bytes/HISTORY.md | 4 - node_modules/random-bytes/LICENSE | 21 - node_modules/random-bytes/README.md | 77 - node_modules/random-bytes/index.js | 101 - node_modules/random-bytes/package.json | 102 - node_modules/uid-safe/HISTORY.md | 51 - node_modules/uid-safe/LICENSE | 22 - node_modules/uid-safe/README.md | 77 - node_modules/uid-safe/index.js | 96 - node_modules/uid-safe/package.json | 127 - package-lock.json | 5761 ++ package.json | 17 +- src/public/css/main.css | 1 + src/public/img/avatar.jpg | Bin 0 -> 3947 bytes src/public/img/banner.png | Bin 0 -> 111263 bytes src/public/img/book-default.jpg | Bin 0 -> 12199 bytes src/public/img/github.png | Bin 0 -> 760 bytes src/public/img/img-default.png | Bin 0 -> 626 bytes .../public/img/login-bg.jpg | Bin src/public/img/login-password.png | Bin 0 -> 377 bytes src/public/img/login-username.png | Bin 0 -> 570 bytes src/public/js/charts.config.js | 1 + src/public/js/hlayer/hlayer.js | 1 + src/public/js/public/echarts.js | 1 + src/public/js/public/form-reset.js | 1 + src/public/js/public/hajax.js | 1 + src/public/js/public/jquery-hope.js | 1 + src/public/js/public/login.js | 1 + src/public/js/public/upload.js | 1 + api.md => src/server/api.md | 0 app.js => src/server/app.js | 0 config.js => src/server/config.js | 0 hope_v2.sql => src/server/hope_v2.sql | 0 {public => src/server/public}/css/main.css | 0 .../public}/img/admin/admin-default.jpg | Bin .../public}/img/admin/admin1486036484975.jpg | Bin .../public}/img/admin/admin1486036599423.jpg | Bin .../public}/img/admin/admin1486036607687.jpg | Bin .../public}/img/admin/admin1486036615776.jpg | Bin .../public}/img/admin/admin1486048472276.jpg | Bin .../public}/img/admin/admin1486048628479.png | Bin .../public}/img/admin/admin1486049087990.jpg | Bin .../public}/img/admin/admin1487405014642.jpg | Bin .../public}/img/admin/admin71478350713140.jpg | Bin .../img/admin/adminundefined1478350412864.png | Bin .../img/admin/adminundefined1478350434845.jpg | Bin .../img/admin/adminundefined1484117578297.jpg | Bin .../img/admin/adminundefined1484121201958.jpg | Bin .../img/admin/adminundefined1484121237748.jpg | Bin {public => src/server/public}/img/avatar.jpg | Bin {public => src/server/public}/img/banner.png | Bin .../img/book/book10241484125474904.jpg | Bin .../img/book/book10241484125519304.jpg | Bin .../img/book/book12861484125572598.jpg | Bin .../public}/img/book/book1486048643710.jpg | Bin .../public}/img/book/book1486048717899.jpg | Bin .../public}/img/book/book1486048940273.jpg | Bin .../public}/img/book/book1486049037173.jpg | Bin .../public}/img/book/book1486525489611.jpg | Bin .../public}/img/book/book1486525854535.jpg | Bin .../public}/img/book/book1486554553556.jpg | Bin .../public}/img/book/book1487404915802.jpg | Bin .../public}/img/book/book1487405362625.jpg | Bin .../public}/img/book/book191478352257010.jpg | Bin .../public}/img/book/book21478358444148.jpg | Bin .../public}/img/book/book21478358495988.jpg | Bin .../public}/img/book/book21478358741767.jpg | Bin .../public}/img/book/book21478359121531.jpg | Bin .../public}/img/book/book21478359249066.jpg | Bin .../public}/img/book/book21478360104408.jpg | Bin .../public}/img/book/book31484113692265.jpg | Bin .../public}/img/book/book31484113834395.jpg | Bin .../public}/img/book/book361478352295675.jpg | Bin .../public}/img/book/book971478352432342.jpg | Bin .../server/public}/img/book/bookdefault.jpg | Bin .../server/public}/img/book/bookdefault1.jpg | Bin .../public}/img/equip/equip-default.jpg | Bin .../public}/img/equip/equip11478361706499.jpg | Bin .../public}/img/equip/equip11478361765861.jpg | Bin .../public}/img/equip/equip11478361768445.jpg | Bin .../public}/img/equip/equip11478361769085.jpg | Bin .../public}/img/equip/equip11478361796151.jpg | Bin .../public}/img/equip/equip81478361675139.jpg | Bin .../public}/img/equip/equip81484122431127.jpg | Bin ...pload_6b03bebd8151be476bc26d320158a477.jpg | Bin {public => src/server/public}/img/github.png | Bin .../server/public}/img/img-default.png | Bin .../server/public}/img/index-bg.jpg | Bin .../server/public}/img/login-bg.jpg | Bin .../server/public}/img/login-bg1.jpg | Bin .../server/public}/img/login-password.png | Bin .../server/public}/img/login-username.png | Bin {public => src/server/public}/img/logo.png | Bin .../public}/img/temp/temp1486031987388.jpg | Bin .../public}/img/temp/temp1486032174555.jpg | Bin .../public}/img/temp/temp1486032294493.jpg | Bin .../public}/img/temp/temp1486032440114.jpg | Bin .../public}/img/temp/temp1486032513173.jpg | Bin .../public}/img/temp/temp1486033140017.jpg | Bin .../public}/img/temp/temp1486033868813.jpg | Bin .../public}/img/temp/temp1486046788123.png | Bin .../public}/img/temp/temp1486046891125.png | Bin .../public}/img/temp/temp1486046980615.png | Bin .../public}/img/temp/temp1486047039539.png | Bin .../public}/img/temp/temp1486047281842.png | Bin .../public}/img/temp/temp1486047401802.png | Bin .../public}/img/temp/temp1486047470228.png | Bin .../public}/img/temp/temp1486047559856.jpg | Bin .../public}/img/temp/temp1486048175948.jpg | Bin .../public}/img/temp/temp1486048497819.jpg | Bin .../public}/img/temp/temp1486524935032.jpg | Bin .../public}/img/temp/temp1486525036696.jpg | Bin .../public}/img/temp/temp1486525132098.jpg | Bin .../public}/img/temp/temp1486525236326.jpg | Bin .../public}/img/temp/temp1486525278899.jpg | Bin .../public}/img/temp/temp1486525387981.jpg | Bin .../public}/img/temp/temp1486554506759.jpg | Bin .../public}/img/temp/temp1487403606320.png | Bin .../public}/img/temp/temp1487403611931.jpg | Bin .../public}/img/temp/temp1487404887204.png | Bin ...pload_140f36f91fd3289f2524dfd696c42e90.png | Bin ...pload_20784edb846cef32aabfa8fcf7fa2ab4.png | Bin ...pload_21c8f9ac6810415813bf069135444f47.png | Bin ...pload_24b17f22994095fbfc927d09cef8f2b9.png | Bin ...pload_2779af64e72157888aa43fc259642d6a.png | Bin ...pload_27947adc86c53cc4783cd921172bdcbe.png | Bin ...pload_290ad872baa89ea539f7e1e512693d67.png | Bin ...pload_2ec824a9e0fc9f4f5ae66392100d69c4.png | Bin ...pload_3f4cad6f81deeaa09e83ad1eb6bb4de9.png | Bin ...pload_46480d8d16acea77305e1aa50542e3d4.png | Bin ...pload_4a638e906756c813b7d9b907c6b130d5.png | Bin ...pload_51fe893a033184378f2cc03b864532e0.png | Bin ...pload_595291865685aa18c53acc2d395230b1.png | Bin ...pload_5e0deb9226ef1cdecfa9a73c131a1962.png | Bin ...pload_5ea3d3d3b20ec2e5099f5e8d458300f9.png | Bin ...pload_694fb77f5a5eda6cc1ef061cd92f7c14.png | Bin ...pload_71fc2f6ea09f75f8db4cf25c4da6791e.png | Bin ...pload_7341f844e00c670df91fa55266e6b9da.png | Bin ...pload_757965c4b3bd0dcf2614946339f13edb.png | Bin ...pload_854c480583e908d09c65a8ce9d4db4d0.png | Bin ...pload_91f18cae50b69977bdb68c48b708ea7f.png | Bin ...pload_98a1ddb4bfcaa2f867ef4242da3c2b91.png | Bin ...pload_9b526841723959726502418c22f7dd7d.png | Bin ...pload_aab68bff6c7977cd5d7cefff79d7fb87.png | Bin ...pload_ab7ce320cb6d044b971936be2b318567.png | Bin ...pload_ad1fef04d6d87a0aaff0f62fb5b4bd4b.png | Bin ...pload_adf67de5ebeb6554eab7eb1bbd3a1e85.png | Bin ...pload_b62898f60bf4fa7007470573a4c5a2ca.jpg | Bin ...pload_bbaf05e4e8e0d6d751efcbc95a1312f2.png | Bin ...pload_c9a646ae8cc008108cdc660e5128191f.png | Bin ...pload_cad317e9db5fe5bc86a0f0ebb3ebc919.png | Bin ...pload_cb21becd1022e5975f58d99bf21b65c1.png | Bin ...pload_cb84a44e189e286ea72b7725de65f5d1.png | Bin ...pload_ea20fd86ff000fe01c4c685439715db8.jpg | Bin ...pload_eb21cbd873a51e31d2215d19f5f0d31a.png | Bin ...pload_ec7488082b844a2c1fe00575991c77df.png | Bin ...pload_f80239f0d9e6875d0748836e0c55e46b.jpg | Bin .../server/public}/img/user/user-default.jpg | Bin .../public}/img/user/user1486048218165.png | Bin .../public}/img/user/user1486048376377.png | Bin .../public}/img/user/user1486048435222.jpg | Bin .../public}/img/user/user1486048446035.png | Bin .../public/img/user/user1487403380994.jpg | Bin 0 -> 284685 bytes .../public}/img/user/user1487403620453.png | Bin .../public}/img/user/user51478870815285.jpg | Bin .../public}/img/user/user71478348161002.png | Bin .../public}/img/user/user71478348230218.png | Bin .../public}/img/user/user71478348246889.png | Bin .../public}/img/user/user71478348402745.png | Bin .../public}/img/user/user71478348464159.png | Bin .../public}/img/user/user71478349013632.jpg | Bin .../public}/img/user/user71478349163232.png | Bin .../public}/img/user/user801484100066318.jpg | Bin ...346\234\252\346\240\207\351\242\230-1.jpg" | Bin .../server/public}/js/admin-super/adduser.js | 0 .../server/public}/js/data/charts.config.js | 0 .../server/public}/js/hlayer/hlayer.css | 0 .../server/public}/js/hlayer/hlayer.js | 0 .../server/public}/js/layer/layer.js | 0 .../js/layer/skin/default/icon-ext.png | Bin .../public}/js/layer/skin/default/icon.png | Bin .../js/layer/skin/default/loading-0.gif | Bin .../js/layer/skin/default/loading-1.gif | Bin .../js/layer/skin/default/loading-2.gif | Bin .../server/public}/js/layer/skin/layer.css | 0 .../server/public}/js/old/addBook.js | 0 .../server/public}/js/old/adduser.js | 0 .../server/public}/js/old/admin-modify.js | 0 {public => src/server/public}/js/old/admin.js | 0 .../server/public}/js/old/adminModify.js | 0 .../server/public}/js/old/adminModifyuser.js | 0 .../server/public}/js/old/bookcate.js | 0 .../server/public}/js/old/borrow.js | 0 .../public}/js/old/equip-reservation.js | 0 .../server/public}/js/old/equipCheck.js | 0 .../server/public}/js/old/form-reset.js | 0 {public => src/server/public}/js/old/login.js | 0 .../server/public}/js/old/logout.js | 0 .../server/public}/js/old/modifybook.js | 0 .../server/public}/js/old/modifyequip.js | 0 {public => src/server/public}/js/old/reset.js | 0 .../server/public}/js/old/upload.js | 0 .../server/public}/js/old/user-equip.js | 0 {public => src/server/public}/js/old/user.js | 0 .../server/public}/js/old/userAdd.js | 0 .../server/public}/js/old/userModify.js | 0 .../server/public}/js/public/echarts.js | 0 .../server/public}/js/public/form-reset.js | 0 .../server/public}/js/public/hajax.js | 0 .../server/public}/js/public/jquery-hope.js | 0 .../server/public}/js/public/login.js | 0 .../server/public}/js/public/upload.js | 0 .../server/public}/js/user/bookcate.js | 0 {router => src/server/router}/admin-book.js | 0 {router => src/server/router}/admin-equip.js | 0 {router => src/server/router}/admin-super.js | 0 {router => src/server/router}/admin.js | 0 {router => src/server/router}/api.js | 0 .../server/router}/api/api-book-borrow.js | 0 {router => src/server/router}/api/api-book.js | 0 {router => src/server/router}/book.js | 0 .../server/router}/email-schedule.js | 0 {router => src/server/router}/equip.js | 0 {router => src/server/router}/mysql_util.js | 0 {router => src/server/router}/public.js | 0 {router => src/server/router}/user.js | 0 {utils => src/server/utils}/check-login.js | 0 {utils => src/server/utils}/db-common.js | 0 {utils => src/server/utils}/hopeDB-util.js | 0 {utils => src/server/utils}/hopeDB.js | 0 {utils => src/server/utils}/md5-pass.js | 0 {utils => src/server/utils}/set-session.js | 0 .../views}/admin-book/admin-book-add.ejs | 0 .../admin-book/admin-book-data-cateborrow.ejs | 0 .../admin-book/admin-book-data-catecount.ejs | 0 .../admin-book-data-groupborrow.ejs | 0 .../admin-book/admin-book-data-userborrow.ejs | 0 .../views}/admin-book/admin-book-modify.ejs | 0 .../server/views}/admin-book/index.ejs | 0 .../views}/admin-equip/admin-equip-check.ejs | 0 .../views}/admin-equip/admin-equip-modify.ejs | 0 .../server/views}/admin-equip/index.ejs | 0 .../admin-super/admin-super-add-user.ejs | 0 .../admin-super/admin-super-modify-user.ejs | 0 .../server/views}/admin-super/index.ejs | 0 .../server/views}/admin/admin-modify.ejs | 0 .../server/views}/admin/admin-reset.ejs | 0 .../views}/public/admin/admin-aside.ejs | 0 .../server/views}/public/admin/admin-nav.ejs | 0 .../server/views}/public/admin/admin-page.ejs | 0 {views => src/server/views}/public/app.js | 0 {views => src/server/views}/public/aside.ejs | 0 {views => src/server/views}/public/banner.ejs | 0 {views => src/server/views}/public/footer.ejs | 0 .../server/views}/public/form-btn.ejs | 0 {views => src/server/views}/public/head.ejs | 0 {views => src/server/views}/public/header.ejs | 0 {views => src/server/views}/public/index.ejs | 0 {views => src/server/views}/public/login.ejs | 0 .../server/views}/public/user/user-aside.ejs | 0 .../server/views}/public/user/user-nav.ejs | 0 {views => src/server/views}/user/index.ejs | 0 .../server/views}/user/reservation.ejs | 0 .../server/views}/user/user-book.ejs | 0 .../server/views}/user/user-equip.ejs | 0 .../server/views}/user/user-modify.ejs | 0 .../server/views}/user/user-reset.ejs | 0 src/ui/dist/add-book.html | 127 + src/ui/dist/add-user.html | 139 + src/ui/dist/book-canvas-count.html | 199 + src/ui/dist/book-now.html | 142 + src/ui/dist/borrow-book.html | 125 + src/ui/dist/borrow-canvas-cate.html | 208 + src/ui/dist/borrow-canvas-group.html | 208 + src/ui/dist/borrow-canvas-pie.html | 207 + src/ui/dist/camera-check.html | 126 + src/ui/dist/camera-modify.html | 98 + src/ui/dist/css/main.css | 1 + src/ui/dist/img/avatar.jpg | Bin 0 -> 3947 bytes src/ui/dist/img/banner.png | Bin 0 -> 111263 bytes src/ui/dist/img/book-default.jpg | Bin 0 -> 12199 bytes src/ui/dist/img/github.png | Bin 0 -> 760 bytes src/ui/dist/img/img-default.png | Bin 0 -> 626 bytes src/ui/dist/img/login-bg.jpg | Bin 0 -> 284685 bytes src/ui/dist/img/login-password.png | Bin 0 -> 377 bytes src/ui/dist/img/login-username.png | Bin 0 -> 570 bytes src/ui/dist/index.html | 158 + src/ui/dist/js/charts.config.js | 1 + src/ui/dist/js/hlayer/hlayer.js | 1 + src/ui/dist/js/public/echarts.js | 1 + src/ui/dist/js/public/form-reset.js | 1 + src/ui/dist/js/public/hajax.js | 1 + src/ui/dist/js/public/jquery-hope.js | 1 + src/ui/dist/js/public/login.js | 1 + src/ui/dist/js/public/upload.js | 1 + src/ui/dist/login.html | 44 + src/ui/dist/user-book.html | 103 + src/ui/dist/user-camera.html | 105 + src/ui/dist/user-modify.html | 144 + src/ui/dist/user-reset.html | 89 + src/ui/src/css/main.css | 1 + src/ui/src/img/avatar.jpg | Bin 0 -> 4411 bytes src/ui/src/img/banner.png | Bin 0 -> 154418 bytes src/ui/src/img/book-default.jpg | Bin 0 -> 13163 bytes src/ui/src/img/github.png | Bin 0 -> 1393 bytes src/ui/src/img/img-default.png | Bin 0 -> 1639 bytes src/ui/src/img/login-bg.jpg | Bin 0 -> 284685 bytes src/ui/src/img/login-password.png | Bin 0 -> 669 bytes src/ui/src/img/login-username.png | Bin 0 -> 1032 bytes src/ui/src/js/charts.config.js | 98 + src/ui/src/js/hlayer/hlayer.css | 1 + src/ui/src/js/hlayer/hlayer.js | 1 + src/ui/src/js/public/echarts.js | 72375 ++++++++++++++++ src/ui/src/js/public/form-reset.js | 22 + src/ui/src/js/public/hajax.js | 65 + src/ui/src/js/public/jquery-hope.js | 6 + src/ui/src/js/public/login.js | 68 + src/ui/src/js/public/upload.js | 46 + src/ui/src/lib/js/form-reset.js | 19 + src/ui/src/sass/base/_resize.scss | 151 + src/ui/src/sass/components/_aside.scss | 32 + src/ui/src/sass/components/_banner.scss | 32 + src/ui/src/sass/components/_borrow-book.scss | 57 + src/ui/src/sass/components/_footer.scss | 11 + src/ui/src/sass/components/_form.scss | 75 + src/ui/src/sass/components/_header.scss | 25 + src/ui/src/sass/components/_main-charts.scss | 57 + src/ui/src/sass/components/_main.scss | 5 + src/ui/src/sass/components/_manage-table.scss | 34 + src/ui/src/sass/components/_nav.scss | 25 + src/ui/src/sass/components/_page-num.scss | 27 + .../sass/components/_reservation_layout.scss | 10 + src/ui/src/sass/helpers/_lib.scss | 49 + src/ui/src/sass/helpers/_mixin.scss | 71 + src/ui/src/sass/helpers/_variables.scss | 49 + src/ui/src/sass/layout/_main-right.scss | 27 + src/ui/src/sass/layout/_main.scss | 28 + src/ui/src/sass/main.scss | 35 + src/ui/src/sass/pages/_login.scss | 113 + 374 files changed, 82232 insertions(+), 4372 deletions(-) create mode 100644 gulpfile.js delete mode 100644 node_modules/base64-url/LICENSE delete mode 100644 node_modules/base64-url/README.md delete mode 100644 node_modules/base64-url/index.js delete mode 100644 node_modules/base64-url/package.json delete mode 100644 node_modules/crc/LICENSE delete mode 100644 node_modules/crc/lib/crc1.js delete mode 100644 node_modules/crc/lib/crc16.js delete mode 100644 node_modules/crc/lib/crc16_ccitt.js delete mode 100644 node_modules/crc/lib/crc16_kermit.js delete mode 100644 node_modules/crc/lib/crc16_modbus.js delete mode 100644 node_modules/crc/lib/crc16_xmodem.js delete mode 100644 node_modules/crc/lib/crc24.js delete mode 100644 node_modules/crc/lib/crc32.js delete mode 100644 node_modules/crc/lib/crc8.js delete mode 100644 node_modules/crc/lib/crc8_1wire.js delete mode 100644 node_modules/crc/lib/define_crc.js delete mode 100644 node_modules/crc/lib/index.js delete mode 100644 node_modules/crc/package.json delete mode 100644 node_modules/express-session/HISTORY.md delete mode 100644 node_modules/express-session/LICENSE delete mode 100644 node_modules/express-session/README.md delete mode 100644 node_modules/express-session/index.js delete mode 100644 node_modules/express-session/package.json delete mode 100644 node_modules/express-session/session/cookie.js delete mode 100644 node_modules/express-session/session/memory.js delete mode 100644 node_modules/express-session/session/session.js delete mode 100644 node_modules/express-session/session/store.js delete mode 100644 node_modules/on-headers/HISTORY.md delete mode 100644 node_modules/on-headers/LICENSE delete mode 100644 node_modules/on-headers/README.md delete mode 100644 node_modules/on-headers/index.js delete mode 100644 node_modules/on-headers/package.json delete mode 100644 node_modules/random-bytes/HISTORY.md delete mode 100644 node_modules/random-bytes/LICENSE delete mode 100644 node_modules/random-bytes/README.md delete mode 100644 node_modules/random-bytes/index.js delete mode 100644 node_modules/random-bytes/package.json delete mode 100644 node_modules/uid-safe/HISTORY.md delete mode 100644 node_modules/uid-safe/LICENSE delete mode 100644 node_modules/uid-safe/README.md delete mode 100644 node_modules/uid-safe/index.js delete mode 100644 node_modules/uid-safe/package.json create mode 100644 package-lock.json create mode 100644 src/public/css/main.css create mode 100644 src/public/img/avatar.jpg create mode 100644 src/public/img/banner.png create mode 100644 src/public/img/book-default.jpg create mode 100644 src/public/img/github.png create mode 100644 src/public/img/img-default.png rename public/img/user/user1487403380994.jpg => src/public/img/login-bg.jpg (100%) create mode 100644 src/public/img/login-password.png create mode 100644 src/public/img/login-username.png create mode 100644 src/public/js/charts.config.js create mode 100644 src/public/js/hlayer/hlayer.js create mode 100644 src/public/js/public/echarts.js create mode 100644 src/public/js/public/form-reset.js create mode 100644 src/public/js/public/hajax.js create mode 100644 src/public/js/public/jquery-hope.js create mode 100644 src/public/js/public/login.js create mode 100644 src/public/js/public/upload.js rename api.md => src/server/api.md (100%) rename app.js => src/server/app.js (100%) rename config.js => src/server/config.js (100%) rename hope_v2.sql => src/server/hope_v2.sql (100%) rename {public => src/server/public}/css/main.css (100%) rename {public => src/server/public}/img/admin/admin-default.jpg (100%) rename {public => src/server/public}/img/admin/admin1486036484975.jpg (100%) rename {public => src/server/public}/img/admin/admin1486036599423.jpg (100%) rename {public => src/server/public}/img/admin/admin1486036607687.jpg (100%) rename {public => src/server/public}/img/admin/admin1486036615776.jpg (100%) rename {public => src/server/public}/img/admin/admin1486048472276.jpg (100%) rename {public => src/server/public}/img/admin/admin1486048628479.png (100%) rename {public => src/server/public}/img/admin/admin1486049087990.jpg (100%) rename {public => src/server/public}/img/admin/admin1487405014642.jpg (100%) rename {public => src/server/public}/img/admin/admin71478350713140.jpg (100%) rename {public => src/server/public}/img/admin/adminundefined1478350412864.png (100%) rename {public => src/server/public}/img/admin/adminundefined1478350434845.jpg (100%) rename {public => src/server/public}/img/admin/adminundefined1484117578297.jpg (100%) rename {public => src/server/public}/img/admin/adminundefined1484121201958.jpg (100%) rename {public => src/server/public}/img/admin/adminundefined1484121237748.jpg (100%) rename {public => src/server/public}/img/avatar.jpg (100%) rename {public => src/server/public}/img/banner.png (100%) rename {public => src/server/public}/img/book/book10241484125474904.jpg (100%) rename {public => src/server/public}/img/book/book10241484125519304.jpg (100%) rename {public => src/server/public}/img/book/book12861484125572598.jpg (100%) rename {public => src/server/public}/img/book/book1486048643710.jpg (100%) rename {public => src/server/public}/img/book/book1486048717899.jpg (100%) rename {public => src/server/public}/img/book/book1486048940273.jpg (100%) rename {public => src/server/public}/img/book/book1486049037173.jpg (100%) rename {public => src/server/public}/img/book/book1486525489611.jpg (100%) rename {public => src/server/public}/img/book/book1486525854535.jpg (100%) rename {public => src/server/public}/img/book/book1486554553556.jpg (100%) rename {public => src/server/public}/img/book/book1487404915802.jpg (100%) rename {public => src/server/public}/img/book/book1487405362625.jpg (100%) rename {public => src/server/public}/img/book/book191478352257010.jpg (100%) rename {public => src/server/public}/img/book/book21478358444148.jpg (100%) rename {public => src/server/public}/img/book/book21478358495988.jpg (100%) rename {public => src/server/public}/img/book/book21478358741767.jpg (100%) rename {public => src/server/public}/img/book/book21478359121531.jpg (100%) rename {public => src/server/public}/img/book/book21478359249066.jpg (100%) rename {public => src/server/public}/img/book/book21478360104408.jpg (100%) rename {public => src/server/public}/img/book/book31484113692265.jpg (100%) rename {public => src/server/public}/img/book/book31484113834395.jpg (100%) rename {public => src/server/public}/img/book/book361478352295675.jpg (100%) rename {public => src/server/public}/img/book/book971478352432342.jpg (100%) rename {public => src/server/public}/img/book/bookdefault.jpg (100%) rename {public => src/server/public}/img/book/bookdefault1.jpg (100%) rename {public => src/server/public}/img/equip/equip-default.jpg (100%) rename {public => src/server/public}/img/equip/equip11478361706499.jpg (100%) rename {public => src/server/public}/img/equip/equip11478361765861.jpg (100%) rename {public => src/server/public}/img/equip/equip11478361768445.jpg (100%) rename {public => src/server/public}/img/equip/equip11478361769085.jpg (100%) rename {public => src/server/public}/img/equip/equip11478361796151.jpg (100%) rename {public => src/server/public}/img/equip/equip81478361675139.jpg (100%) rename {public => src/server/public}/img/equip/equip81484122431127.jpg (100%) rename {public => src/server/public}/img/equip/upload_6b03bebd8151be476bc26d320158a477.jpg (100%) rename {public => src/server/public}/img/github.png (100%) rename {public => src/server/public}/img/img-default.png (100%) rename {public => src/server/public}/img/index-bg.jpg (100%) rename {public => src/server/public}/img/login-bg.jpg (100%) rename {public => src/server/public}/img/login-bg1.jpg (100%) rename {public => src/server/public}/img/login-password.png (100%) rename {public => src/server/public}/img/login-username.png (100%) rename {public => src/server/public}/img/logo.png (100%) rename {public => src/server/public}/img/temp/temp1486031987388.jpg (100%) rename {public => src/server/public}/img/temp/temp1486032174555.jpg (100%) rename {public => src/server/public}/img/temp/temp1486032294493.jpg (100%) rename {public => src/server/public}/img/temp/temp1486032440114.jpg (100%) rename {public => src/server/public}/img/temp/temp1486032513173.jpg (100%) rename {public => src/server/public}/img/temp/temp1486033140017.jpg (100%) rename {public => src/server/public}/img/temp/temp1486033868813.jpg (100%) rename {public => src/server/public}/img/temp/temp1486046788123.png (100%) rename {public => src/server/public}/img/temp/temp1486046891125.png (100%) rename {public => src/server/public}/img/temp/temp1486046980615.png (100%) rename {public => src/server/public}/img/temp/temp1486047039539.png (100%) rename {public => src/server/public}/img/temp/temp1486047281842.png (100%) rename {public => src/server/public}/img/temp/temp1486047401802.png (100%) rename {public => src/server/public}/img/temp/temp1486047470228.png (100%) rename {public => src/server/public}/img/temp/temp1486047559856.jpg (100%) rename {public => src/server/public}/img/temp/temp1486048175948.jpg (100%) rename {public => src/server/public}/img/temp/temp1486048497819.jpg (100%) rename {public => src/server/public}/img/temp/temp1486524935032.jpg (100%) rename {public => src/server/public}/img/temp/temp1486525036696.jpg (100%) rename {public => src/server/public}/img/temp/temp1486525132098.jpg (100%) rename {public => src/server/public}/img/temp/temp1486525236326.jpg (100%) rename {public => src/server/public}/img/temp/temp1486525278899.jpg (100%) rename {public => src/server/public}/img/temp/temp1486525387981.jpg (100%) rename {public => src/server/public}/img/temp/temp1486554506759.jpg (100%) rename {public => src/server/public}/img/temp/temp1487403606320.png (100%) rename {public => src/server/public}/img/temp/temp1487403611931.jpg (100%) rename {public => src/server/public}/img/temp/temp1487404887204.png (100%) rename {public => src/server/public}/img/user/upload_140f36f91fd3289f2524dfd696c42e90.png (100%) rename {public => src/server/public}/img/user/upload_20784edb846cef32aabfa8fcf7fa2ab4.png (100%) rename {public => src/server/public}/img/user/upload_21c8f9ac6810415813bf069135444f47.png (100%) rename {public => src/server/public}/img/user/upload_24b17f22994095fbfc927d09cef8f2b9.png (100%) rename {public => src/server/public}/img/user/upload_2779af64e72157888aa43fc259642d6a.png (100%) rename {public => src/server/public}/img/user/upload_27947adc86c53cc4783cd921172bdcbe.png (100%) rename {public => src/server/public}/img/user/upload_290ad872baa89ea539f7e1e512693d67.png (100%) rename {public => src/server/public}/img/user/upload_2ec824a9e0fc9f4f5ae66392100d69c4.png (100%) rename {public => src/server/public}/img/user/upload_3f4cad6f81deeaa09e83ad1eb6bb4de9.png (100%) rename {public => src/server/public}/img/user/upload_46480d8d16acea77305e1aa50542e3d4.png (100%) rename {public => src/server/public}/img/user/upload_4a638e906756c813b7d9b907c6b130d5.png (100%) rename {public => src/server/public}/img/user/upload_51fe893a033184378f2cc03b864532e0.png (100%) rename {public => src/server/public}/img/user/upload_595291865685aa18c53acc2d395230b1.png (100%) rename {public => src/server/public}/img/user/upload_5e0deb9226ef1cdecfa9a73c131a1962.png (100%) rename {public => src/server/public}/img/user/upload_5ea3d3d3b20ec2e5099f5e8d458300f9.png (100%) rename {public => src/server/public}/img/user/upload_694fb77f5a5eda6cc1ef061cd92f7c14.png (100%) rename {public => src/server/public}/img/user/upload_71fc2f6ea09f75f8db4cf25c4da6791e.png (100%) rename {public => src/server/public}/img/user/upload_7341f844e00c670df91fa55266e6b9da.png (100%) rename {public => src/server/public}/img/user/upload_757965c4b3bd0dcf2614946339f13edb.png (100%) rename {public => src/server/public}/img/user/upload_854c480583e908d09c65a8ce9d4db4d0.png (100%) rename {public => src/server/public}/img/user/upload_91f18cae50b69977bdb68c48b708ea7f.png (100%) rename {public => src/server/public}/img/user/upload_98a1ddb4bfcaa2f867ef4242da3c2b91.png (100%) rename {public => src/server/public}/img/user/upload_9b526841723959726502418c22f7dd7d.png (100%) rename {public => src/server/public}/img/user/upload_aab68bff6c7977cd5d7cefff79d7fb87.png (100%) rename {public => src/server/public}/img/user/upload_ab7ce320cb6d044b971936be2b318567.png (100%) rename {public => src/server/public}/img/user/upload_ad1fef04d6d87a0aaff0f62fb5b4bd4b.png (100%) rename {public => src/server/public}/img/user/upload_adf67de5ebeb6554eab7eb1bbd3a1e85.png (100%) rename {public => src/server/public}/img/user/upload_b62898f60bf4fa7007470573a4c5a2ca.jpg (100%) rename {public => src/server/public}/img/user/upload_bbaf05e4e8e0d6d751efcbc95a1312f2.png (100%) rename {public => src/server/public}/img/user/upload_c9a646ae8cc008108cdc660e5128191f.png (100%) rename {public => src/server/public}/img/user/upload_cad317e9db5fe5bc86a0f0ebb3ebc919.png (100%) rename {public => src/server/public}/img/user/upload_cb21becd1022e5975f58d99bf21b65c1.png (100%) rename {public => src/server/public}/img/user/upload_cb84a44e189e286ea72b7725de65f5d1.png (100%) rename {public => src/server/public}/img/user/upload_ea20fd86ff000fe01c4c685439715db8.jpg (100%) rename {public => src/server/public}/img/user/upload_eb21cbd873a51e31d2215d19f5f0d31a.png (100%) rename {public => src/server/public}/img/user/upload_ec7488082b844a2c1fe00575991c77df.png (100%) rename {public => src/server/public}/img/user/upload_f80239f0d9e6875d0748836e0c55e46b.jpg (100%) rename {public => src/server/public}/img/user/user-default.jpg (100%) rename {public => src/server/public}/img/user/user1486048218165.png (100%) rename {public => src/server/public}/img/user/user1486048376377.png (100%) rename {public => src/server/public}/img/user/user1486048435222.jpg (100%) rename {public => src/server/public}/img/user/user1486048446035.png (100%) create mode 100644 src/server/public/img/user/user1487403380994.jpg rename {public => src/server/public}/img/user/user1487403620453.png (100%) rename {public => src/server/public}/img/user/user51478870815285.jpg (100%) rename {public => src/server/public}/img/user/user71478348161002.png (100%) rename {public => src/server/public}/img/user/user71478348230218.png (100%) rename {public => src/server/public}/img/user/user71478348246889.png (100%) rename {public => src/server/public}/img/user/user71478348402745.png (100%) rename {public => src/server/public}/img/user/user71478348464159.png (100%) rename {public => src/server/public}/img/user/user71478349013632.jpg (100%) rename {public => src/server/public}/img/user/user71478349163232.png (100%) rename {public => src/server/public}/img/user/user801484100066318.jpg (100%) rename "public/img/\346\234\252\346\240\207\351\242\230-1.jpg" => "src/server/public/img/\346\234\252\346\240\207\351\242\230-1.jpg" (100%) rename {public => src/server/public}/js/admin-super/adduser.js (100%) rename {public => src/server/public}/js/data/charts.config.js (100%) rename {public => src/server/public}/js/hlayer/hlayer.css (100%) rename {public => src/server/public}/js/hlayer/hlayer.js (100%) rename {public => src/server/public}/js/layer/layer.js (100%) rename {public => src/server/public}/js/layer/skin/default/icon-ext.png (100%) rename {public => src/server/public}/js/layer/skin/default/icon.png (100%) rename {public => src/server/public}/js/layer/skin/default/loading-0.gif (100%) rename {public => src/server/public}/js/layer/skin/default/loading-1.gif (100%) rename {public => src/server/public}/js/layer/skin/default/loading-2.gif (100%) rename {public => src/server/public}/js/layer/skin/layer.css (100%) rename {public => src/server/public}/js/old/addBook.js (100%) rename {public => src/server/public}/js/old/adduser.js (100%) rename {public => src/server/public}/js/old/admin-modify.js (100%) rename {public => src/server/public}/js/old/admin.js (100%) rename {public => src/server/public}/js/old/adminModify.js (100%) rename {public => src/server/public}/js/old/adminModifyuser.js (100%) rename {public => src/server/public}/js/old/bookcate.js (100%) rename {public => src/server/public}/js/old/borrow.js (100%) rename {public => src/server/public}/js/old/equip-reservation.js (100%) rename {public => src/server/public}/js/old/equipCheck.js (100%) rename {public => src/server/public}/js/old/form-reset.js (100%) rename {public => src/server/public}/js/old/login.js (100%) rename {public => src/server/public}/js/old/logout.js (100%) rename {public => src/server/public}/js/old/modifybook.js (100%) rename {public => src/server/public}/js/old/modifyequip.js (100%) rename {public => src/server/public}/js/old/reset.js (100%) rename {public => src/server/public}/js/old/upload.js (100%) rename {public => src/server/public}/js/old/user-equip.js (100%) rename {public => src/server/public}/js/old/user.js (100%) rename {public => src/server/public}/js/old/userAdd.js (100%) rename {public => src/server/public}/js/old/userModify.js (100%) rename {public => src/server/public}/js/public/echarts.js (100%) rename {public => src/server/public}/js/public/form-reset.js (100%) rename {public => src/server/public}/js/public/hajax.js (100%) rename {public => src/server/public}/js/public/jquery-hope.js (100%) rename {public => src/server/public}/js/public/login.js (100%) rename {public => src/server/public}/js/public/upload.js (100%) rename {public => src/server/public}/js/user/bookcate.js (100%) rename {router => src/server/router}/admin-book.js (100%) rename {router => src/server/router}/admin-equip.js (100%) rename {router => src/server/router}/admin-super.js (100%) rename {router => src/server/router}/admin.js (100%) rename {router => src/server/router}/api.js (100%) rename {router => src/server/router}/api/api-book-borrow.js (100%) rename {router => src/server/router}/api/api-book.js (100%) rename {router => src/server/router}/book.js (100%) rename {router => src/server/router}/email-schedule.js (100%) rename {router => src/server/router}/equip.js (100%) rename {router => src/server/router}/mysql_util.js (100%) rename {router => src/server/router}/public.js (100%) rename {router => src/server/router}/user.js (100%) rename {utils => src/server/utils}/check-login.js (100%) rename {utils => src/server/utils}/db-common.js (100%) rename {utils => src/server/utils}/hopeDB-util.js (100%) rename {utils => src/server/utils}/hopeDB.js (100%) rename {utils => src/server/utils}/md5-pass.js (100%) rename {utils => src/server/utils}/set-session.js (100%) rename {views => src/server/views}/admin-book/admin-book-add.ejs (100%) rename {views => src/server/views}/admin-book/admin-book-data-cateborrow.ejs (100%) rename {views => src/server/views}/admin-book/admin-book-data-catecount.ejs (100%) rename {views => src/server/views}/admin-book/admin-book-data-groupborrow.ejs (100%) rename {views => src/server/views}/admin-book/admin-book-data-userborrow.ejs (100%) rename {views => src/server/views}/admin-book/admin-book-modify.ejs (100%) rename {views => src/server/views}/admin-book/index.ejs (100%) rename {views => src/server/views}/admin-equip/admin-equip-check.ejs (100%) rename {views => src/server/views}/admin-equip/admin-equip-modify.ejs (100%) rename {views => src/server/views}/admin-equip/index.ejs (100%) rename {views => src/server/views}/admin-super/admin-super-add-user.ejs (100%) rename {views => src/server/views}/admin-super/admin-super-modify-user.ejs (100%) rename {views => src/server/views}/admin-super/index.ejs (100%) rename {views => src/server/views}/admin/admin-modify.ejs (100%) rename {views => src/server/views}/admin/admin-reset.ejs (100%) rename {views => src/server/views}/public/admin/admin-aside.ejs (100%) rename {views => src/server/views}/public/admin/admin-nav.ejs (100%) rename {views => src/server/views}/public/admin/admin-page.ejs (100%) rename {views => src/server/views}/public/app.js (100%) rename {views => src/server/views}/public/aside.ejs (100%) rename {views => src/server/views}/public/banner.ejs (100%) rename {views => src/server/views}/public/footer.ejs (100%) rename {views => src/server/views}/public/form-btn.ejs (100%) rename {views => src/server/views}/public/head.ejs (100%) rename {views => src/server/views}/public/header.ejs (100%) rename {views => src/server/views}/public/index.ejs (100%) rename {views => src/server/views}/public/login.ejs (100%) rename {views => src/server/views}/public/user/user-aside.ejs (100%) rename {views => src/server/views}/public/user/user-nav.ejs (100%) rename {views => src/server/views}/user/index.ejs (100%) rename {views => src/server/views}/user/reservation.ejs (100%) rename {views => src/server/views}/user/user-book.ejs (100%) rename {views => src/server/views}/user/user-equip.ejs (100%) rename {views => src/server/views}/user/user-modify.ejs (100%) rename {views => src/server/views}/user/user-reset.ejs (100%) create mode 100644 src/ui/dist/add-book.html create mode 100644 src/ui/dist/add-user.html create mode 100644 src/ui/dist/book-canvas-count.html create mode 100644 src/ui/dist/book-now.html create mode 100644 src/ui/dist/borrow-book.html create mode 100644 src/ui/dist/borrow-canvas-cate.html create mode 100644 src/ui/dist/borrow-canvas-group.html create mode 100644 src/ui/dist/borrow-canvas-pie.html create mode 100644 src/ui/dist/camera-check.html create mode 100644 src/ui/dist/camera-modify.html create mode 100644 src/ui/dist/css/main.css create mode 100644 src/ui/dist/img/avatar.jpg create mode 100644 src/ui/dist/img/banner.png create mode 100644 src/ui/dist/img/book-default.jpg create mode 100644 src/ui/dist/img/github.png create mode 100644 src/ui/dist/img/img-default.png create mode 100644 src/ui/dist/img/login-bg.jpg create mode 100644 src/ui/dist/img/login-password.png create mode 100644 src/ui/dist/img/login-username.png create mode 100644 src/ui/dist/index.html create mode 100644 src/ui/dist/js/charts.config.js create mode 100644 src/ui/dist/js/hlayer/hlayer.js create mode 100644 src/ui/dist/js/public/echarts.js create mode 100644 src/ui/dist/js/public/form-reset.js create mode 100644 src/ui/dist/js/public/hajax.js create mode 100644 src/ui/dist/js/public/jquery-hope.js create mode 100644 src/ui/dist/js/public/login.js create mode 100644 src/ui/dist/js/public/upload.js create mode 100644 src/ui/dist/login.html create mode 100644 src/ui/dist/user-book.html create mode 100644 src/ui/dist/user-camera.html create mode 100644 src/ui/dist/user-modify.html create mode 100644 src/ui/dist/user-reset.html create mode 100644 src/ui/src/css/main.css create mode 100644 src/ui/src/img/avatar.jpg create mode 100644 src/ui/src/img/banner.png create mode 100644 src/ui/src/img/book-default.jpg create mode 100644 src/ui/src/img/github.png create mode 100644 src/ui/src/img/img-default.png create mode 100644 src/ui/src/img/login-bg.jpg create mode 100644 src/ui/src/img/login-password.png create mode 100644 src/ui/src/img/login-username.png create mode 100644 src/ui/src/js/charts.config.js create mode 100644 src/ui/src/js/hlayer/hlayer.css create mode 100644 src/ui/src/js/hlayer/hlayer.js create mode 100644 src/ui/src/js/public/echarts.js create mode 100644 src/ui/src/js/public/form-reset.js create mode 100644 src/ui/src/js/public/hajax.js create mode 100644 src/ui/src/js/public/jquery-hope.js create mode 100644 src/ui/src/js/public/login.js create mode 100644 src/ui/src/js/public/upload.js create mode 100644 src/ui/src/lib/js/form-reset.js create mode 100644 src/ui/src/sass/base/_resize.scss create mode 100644 src/ui/src/sass/components/_aside.scss create mode 100644 src/ui/src/sass/components/_banner.scss create mode 100644 src/ui/src/sass/components/_borrow-book.scss create mode 100644 src/ui/src/sass/components/_footer.scss create mode 100644 src/ui/src/sass/components/_form.scss create mode 100644 src/ui/src/sass/components/_header.scss create mode 100644 src/ui/src/sass/components/_main-charts.scss create mode 100644 src/ui/src/sass/components/_main.scss create mode 100644 src/ui/src/sass/components/_manage-table.scss create mode 100644 src/ui/src/sass/components/_nav.scss create mode 100644 src/ui/src/sass/components/_page-num.scss create mode 100644 src/ui/src/sass/components/_reservation_layout.scss create mode 100644 src/ui/src/sass/helpers/_lib.scss create mode 100644 src/ui/src/sass/helpers/_mixin.scss create mode 100644 src/ui/src/sass/helpers/_variables.scss create mode 100644 src/ui/src/sass/layout/_main-right.scss create mode 100644 src/ui/src/sass/layout/_main.scss create mode 100644 src/ui/src/sass/main.scss create mode 100644 src/ui/src/sass/pages/_login.scss diff --git a/.gitignore b/.gitignore index d0eefd5..40b878d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -hopeBookUE/node_modules/ \ No newline at end of file +node_modules/ \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 9f50a17..1439dc0 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,7 +2,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20,120 +301,101 @@ - - + + - - - - - - - + + + - - + + - - + + - - + + - - + + - - + + - - - - - + + + - - + + - - - - - - - - - - - - - - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -177,11 +439,6 @@ @@ -255,8 +517,8 @@ @@ -273,7 +535,6 @@ - @@ -297,11 +558,19 @@ + @@ -364,6 +664,18 @@ + + + @@ -371,6 +683,13 @@ + + + + + + + @@ -387,7 +706,7 @@ - + - + @@ -881,32 +1200,41 @@ - - - + - + - - + - - + + + + + + + + + + + + + @@ -970,265 +1298,131 @@ file://$PROJECT_DIR$/utils/check-login.js 4 + + file://$PROJECT_DIR$/gulpfile.js + 69 + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + + - - + - - + + - + - - + + - + - - - - - - - - - + + - + - - + + - + - - + + - + - - + + - + @@ -1236,133 +1430,90 @@ - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - - - - - - - - + - - - - - - - - - - - - - - + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - - + + - + - - + + diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..81fde51 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,82 @@ +const gulp = require('gulp'); +const concat = require('gulp-concat'); +const browserSync = require('browser-sync').create(); +const compass = require('gulp-compass'); +const runSequence = require('run-sequence'); +const cleanCSS = require('gulp-clean-css'); +const include = require('gulp-include'); +const del = require('del'); +const autoprefixer = require('gulp-autoprefixer'); +const uglify = require('gulp-uglify'); +const imagemin = require('gulp-imagemin'); +const sass = require('gulp-sass'); + +const BASE_PATH = './src/ui'; +const path = require('path'); + +gulp.task('default', function() { + return runSequence(['clean'],['build'],['server','watch']); +}); +gulp.task('clean', function() { + return del('./src/ui/dist/*',function() { + console.log('task clean completed'); + }) +}); +gulp.task('build', function () { + return runSequence(['sass', 'img', 'html','uglify-js'], function() { + console.log('task build is completed!'); + }); +}); + +gulp.task('img', function() { + return gulp.src('./src/ui/src/img/**/*.*') + .pipe(imagemin()) + .pipe(gulp.dest('./src/ui/dist/img/')) + .pipe(gulp.dest('./src/public/img/')) +}); + +gulp.task('uglify-js', function() { + return gulp.src(['./src/ui/src/js/**/*.js','!./src/ui/src/js/**/*.min.js']) + .pipe(uglify()) + .pipe(gulp.dest('./src/ui/dist/js/')) + .pipe(gulp.dest('./src/public/js')); +}); + +gulp.task('server', function() { + browserSync.init({ + server:'./src/ui/dist/', + port: 8001 + }); +}); + +gulp.task('reload', function() { + return browserSync.reload(); +}); + + +gulp.task('sass', function() { + return gulp.src('./src/ui/src/sass/**/*.scss') + .pipe(sass({outputStyle:'compressed'}).on('error',sass.logError)) + .pipe(cleanCSS()) + .pipe(autoprefixer({ + browsers: ['last 5 versions'], + cascade: false + })) + .pipe(gulp.dest('./src/ui/src/css')) + .pipe(gulp.dest('./src/ui/dist/css')) + .pipe(gulp.dest('./src/public/css')); +}); + +gulp.task('html', function() { + return gulp.src('./src/ui/src/html/*.html') + .pipe(include()) + .pipe(gulp.dest('./src/ui/dist/')); +}); + +gulp.task('watch', function() { + return gulp.watch([ + './src/ui/src/**/*.*' + ], function() { + return runSequence(['build'],['reload']); + }); +}); diff --git a/node_modules/base64-url/LICENSE b/node_modules/base64-url/LICENSE deleted file mode 100644 index 9549143..0000000 --- a/node_modules/base64-url/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) 2014, Joaquim José F. Serafim - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/base64-url/README.md b/node_modules/base64-url/README.md deleted file mode 100644 index b61ee47..0000000 --- a/node_modules/base64-url/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# base64-url - -Base64 encode, decode, escape and unescape for URL applications. - - - -[![Build Status](https://travis-ci.org/joaquimserafim/base64-url.png?branch=master)](https://travis-ci.org/joaquimserafim/base64-url) - - -## API - -```js -var base64url = require('base64-url'); - -base64url.encode('Node.js is awesome.'); -// returns Tm9kZS5qcyBpcyBhd2Vzb21lLg - -base64url.decode('Tm9kZS5qcyBpcyBhd2Vzb21lLg'); -// returns Node.js is awesome. - -base64url.escape('This+is/goingto+escape=='); -// returns This-is_goingto-escape - -base64url.unescape('This-is_goingto-escape'); -// returns This+is/goingto+escape== -``` - - -## Development - -**this project has been set up with a precommit that forces you to follow a code style, no jshint issues and 100% of code coverage before commit** - - -to run test -``` js -npm test -``` - -to run lint -``` js -npm run lint -``` - -to run code style -``` js -npm run style -``` - -to check code coverage -``` js -npm run coverage:check -``` diff --git a/node_modules/base64-url/index.js b/node_modules/base64-url/index.js deleted file mode 100644 index 9ba16e9..0000000 --- a/node_modules/base64-url/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var base64url = module.exports; - -base64url.unescape = function unescape (str) { - return (str + '==='.slice((str.length + 3) % 4)) - .replace(/\-/g, '+') - .replace(/_/g, '/'); -}; - -base64url.escape = function escape (str) { - return str.replace(/\+/g, '-') - .replace(/\//g, '_') - .replace(/=/g, ''); -}; - -base64url.encode = function encode (str) { - return this.escape(new Buffer(str).toString('base64')); -}; - -base64url.decode = function decode (str) { - return new Buffer(this.unescape(str), 'base64').toString(); -}; diff --git a/node_modules/base64-url/package.json b/node_modules/base64-url/package.json deleted file mode 100644 index bdfb0ab..0000000 --- a/node_modules/base64-url/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "base64-url@1.3.3", - "scope": null, - "escapedName": "base64-url", - "name": "base64-url", - "rawSpec": "1.3.3", - "spec": "1.3.3", - "type": "version" - }, - "F:\\github\\HopeLibrarySystem\\node_modules\\uid-safe" - ] - ], - "_from": "base64-url@1.3.3", - "_id": "base64-url@1.3.3", - "_inCache": true, - "_location": "/base64-url", - "_nodeVersion": "6.9.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/base64-url-1.3.3.tgz_1477648995978_0.048048977041617036" - }, - "_npmUser": { - "name": "quim", - "email": "joaquim.serafim@gmail.com" - }, - "_npmVersion": "4.0.0", - "_phantomChildren": {}, - "_requested": { - "raw": "base64-url@1.3.3", - "scope": null, - "escapedName": "base64-url", - "name": "base64-url", - "rawSpec": "1.3.3", - "spec": "1.3.3", - "type": "version" - }, - "_requiredBy": [ - "/uid-safe" - ], - "_resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.3.3.tgz", - "_shasum": "f8b6c537f09a4fc58c99cb86e0b0e9c61461a20f", - "_shrinkwrap": null, - "_spec": "base64-url@1.3.3", - "_where": "F:\\github\\HopeLibrarySystem\\node_modules\\uid-safe", - "author": { - "name": "@joaquimserafim" - }, - "bugs": { - "url": "https://github.com/joaquimserafim/base64-url/issues" - }, - "dependencies": {}, - "description": "Base64 encode, decode, escape and unescape for URL applications", - "devDependencies": { - "istanbul": "^0.3.5", - "jscs": "^1.9.0", - "jshint": "^2.5.11", - "pre-commit": "^1.1.3", - "tape": "^4.6.0" - }, - "directories": {}, - "dist": { - "shasum": "f8b6c537f09a4fc58c99cb86e0b0e9c61461a20f", - "tarball": "https://registry.npmjs.org/base64-url/-/base64-url-1.3.3.tgz" - }, - "files": [ - "LICENSE", - "README.md", - "index.js" - ], - "gitHead": "fb100b8397f24b1066016cf09369a7b2be4e1a32", - "homepage": "https://github.com/joaquimserafim/base64-url", - "keywords": [ - "base64", - "base64url" - ], - "license": "ISC", - "main": "index.js", - "maintainers": [ - { - "name": "quim", - "email": "joaquim.serafim@gmail.com" - } - ], - "name": "base64-url", - "optionalDependencies": {}, - "pre-commit": [ - "lint", - "style", - "test", - "coverage:check" - ], - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/joaquimserafim/base64-url.git" - }, - "scripts": { - "coverage": "open coverage/lcov-report/index.html", - "coverage:check": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100", - "lint": "jshint -c .jshintrc *.js", - "style": "jscs -p google *.js", - "test": "istanbul cover tape test.js" - }, - "version": "1.3.3" -} diff --git a/node_modules/crc/LICENSE b/node_modules/crc/LICENSE deleted file mode 100644 index c49097c..0000000 --- a/node_modules/crc/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright 2014 Alex Gorbatchev - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/crc/lib/crc1.js b/node_modules/crc/lib/crc1.js deleted file mode 100644 index 7d8ca84..0000000 --- a/node_modules/crc/lib/crc1.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = (0, _define_crc2.default)('crc1', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = ~~previous; - var accum = 0; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - accum += byte; - } - - crc += accum % 256; - return crc % 256; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc16.js b/node_modules/crc/lib/crc16.js deleted file mode 100644 index 5bc5917..0000000 --- a/node_modules/crc/lib/crc16.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16 --generate=c` -var TABLE = [0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241, 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440, 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40, 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841, 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40, 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41, 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641, 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040, 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240, 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441, 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41, 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840, 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41, 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40, 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640, 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041, 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240, 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441, 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41, 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840, 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41, 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40, 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640, 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041, 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241, 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440, 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40, 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841, 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40, 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41, 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641, 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-16', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = ~~previous; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff; - } - - return crc; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc16_ccitt.js b/node_modules/crc/lib/crc16_ccitt.js deleted file mode 100644 index 668e236..0000000 --- a/node_modules/crc/lib/crc16_ccitt.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=ccitt --generate=c` -var TABLE = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('ccitt', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = typeof previous !== 'undefined' ? ~~previous : 0xffff; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc >> 8 ^ byte) & 0xff] ^ crc << 8) & 0xffff; - } - - return crc; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc16_kermit.js b/node_modules/crc/lib/crc16_kermit.js deleted file mode 100644 index 3319016..0000000 --- a/node_modules/crc/lib/crc16_kermit.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=kermit --generate=c` -var TABLE = [0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('kermit', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = typeof previous !== 'undefined' ? ~~previous : 0x0000; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff; - } - - return crc; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc16_modbus.js b/node_modules/crc/lib/crc16_modbus.js deleted file mode 100644 index 8aa3043..0000000 --- a/node_modules/crc/lib/crc16_modbus.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16-modbus --generate=c` -var TABLE = [0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241, 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440, 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40, 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841, 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40, 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41, 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641, 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040, 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240, 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441, 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41, 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840, 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41, 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40, 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640, 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041, 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240, 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441, 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41, 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840, 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41, 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40, 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640, 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041, 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241, 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440, 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40, 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841, 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40, 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41, 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641, 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-16-modbus', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = typeof previous !== 'undefined' ? ~~previous : 0xffff; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc ^ byte) & 0xff] ^ crc >> 8) & 0xffff; - } - - return crc; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc16_xmodem.js b/node_modules/crc/lib/crc16_xmodem.js deleted file mode 100644 index 6def2bb..0000000 --- a/node_modules/crc/lib/crc16_xmodem.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -module.exports = (0, _define_crc2.default)('xmodem', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = typeof previous !== 'undefined' ? ~~previous : 0x0; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - var code = crc >>> 8 & 0xFF; - - code ^= byte & 0xFF; - code ^= code >>> 4; - crc = crc << 8 & 0xFFFF; - crc ^= code; - code = code << 5 & 0xFFFF; - crc ^= code; - code = code << 7 & 0xFFFF; - crc ^= code; - } - - return crc; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc24.js b/node_modules/crc/lib/crc24.js deleted file mode 100644 index 3491900..0000000 --- a/node_modules/crc/lib/crc24.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-drive --model=crc-24 --generate=c` -var TABLE = [0x000000, 0x864cfb, 0x8ad50d, 0x0c99f6, 0x93e6e1, 0x15aa1a, 0x1933ec, 0x9f7f17, 0xa18139, 0x27cdc2, 0x2b5434, 0xad18cf, 0x3267d8, 0xb42b23, 0xb8b2d5, 0x3efe2e, 0xc54e89, 0x430272, 0x4f9b84, 0xc9d77f, 0x56a868, 0xd0e493, 0xdc7d65, 0x5a319e, 0x64cfb0, 0xe2834b, 0xee1abd, 0x685646, 0xf72951, 0x7165aa, 0x7dfc5c, 0xfbb0a7, 0x0cd1e9, 0x8a9d12, 0x8604e4, 0x00481f, 0x9f3708, 0x197bf3, 0x15e205, 0x93aefe, 0xad50d0, 0x2b1c2b, 0x2785dd, 0xa1c926, 0x3eb631, 0xb8faca, 0xb4633c, 0x322fc7, 0xc99f60, 0x4fd39b, 0x434a6d, 0xc50696, 0x5a7981, 0xdc357a, 0xd0ac8c, 0x56e077, 0x681e59, 0xee52a2, 0xe2cb54, 0x6487af, 0xfbf8b8, 0x7db443, 0x712db5, 0xf7614e, 0x19a3d2, 0x9fef29, 0x9376df, 0x153a24, 0x8a4533, 0x0c09c8, 0x00903e, 0x86dcc5, 0xb822eb, 0x3e6e10, 0x32f7e6, 0xb4bb1d, 0x2bc40a, 0xad88f1, 0xa11107, 0x275dfc, 0xdced5b, 0x5aa1a0, 0x563856, 0xd074ad, 0x4f0bba, 0xc94741, 0xc5deb7, 0x43924c, 0x7d6c62, 0xfb2099, 0xf7b96f, 0x71f594, 0xee8a83, 0x68c678, 0x645f8e, 0xe21375, 0x15723b, 0x933ec0, 0x9fa736, 0x19ebcd, 0x8694da, 0x00d821, 0x0c41d7, 0x8a0d2c, 0xb4f302, 0x32bff9, 0x3e260f, 0xb86af4, 0x2715e3, 0xa15918, 0xadc0ee, 0x2b8c15, 0xd03cb2, 0x567049, 0x5ae9bf, 0xdca544, 0x43da53, 0xc596a8, 0xc90f5e, 0x4f43a5, 0x71bd8b, 0xf7f170, 0xfb6886, 0x7d247d, 0xe25b6a, 0x641791, 0x688e67, 0xeec29c, 0x3347a4, 0xb50b5f, 0xb992a9, 0x3fde52, 0xa0a145, 0x26edbe, 0x2a7448, 0xac38b3, 0x92c69d, 0x148a66, 0x181390, 0x9e5f6b, 0x01207c, 0x876c87, 0x8bf571, 0x0db98a, 0xf6092d, 0x7045d6, 0x7cdc20, 0xfa90db, 0x65efcc, 0xe3a337, 0xef3ac1, 0x69763a, 0x578814, 0xd1c4ef, 0xdd5d19, 0x5b11e2, 0xc46ef5, 0x42220e, 0x4ebbf8, 0xc8f703, 0x3f964d, 0xb9dab6, 0xb54340, 0x330fbb, 0xac70ac, 0x2a3c57, 0x26a5a1, 0xa0e95a, 0x9e1774, 0x185b8f, 0x14c279, 0x928e82, 0x0df195, 0x8bbd6e, 0x872498, 0x016863, 0xfad8c4, 0x7c943f, 0x700dc9, 0xf64132, 0x693e25, 0xef72de, 0xe3eb28, 0x65a7d3, 0x5b59fd, 0xdd1506, 0xd18cf0, 0x57c00b, 0xc8bf1c, 0x4ef3e7, 0x426a11, 0xc426ea, 0x2ae476, 0xaca88d, 0xa0317b, 0x267d80, 0xb90297, 0x3f4e6c, 0x33d79a, 0xb59b61, 0x8b654f, 0x0d29b4, 0x01b042, 0x87fcb9, 0x1883ae, 0x9ecf55, 0x9256a3, 0x141a58, 0xefaaff, 0x69e604, 0x657ff2, 0xe33309, 0x7c4c1e, 0xfa00e5, 0xf69913, 0x70d5e8, 0x4e2bc6, 0xc8673d, 0xc4fecb, 0x42b230, 0xddcd27, 0x5b81dc, 0x57182a, 0xd154d1, 0x26359f, 0xa07964, 0xace092, 0x2aac69, 0xb5d37e, 0x339f85, 0x3f0673, 0xb94a88, 0x87b4a6, 0x01f85d, 0x0d61ab, 0x8b2d50, 0x145247, 0x921ebc, 0x9e874a, 0x18cbb1, 0xe37b16, 0x6537ed, 0x69ae1b, 0xefe2e0, 0x709df7, 0xf6d10c, 0xfa48fa, 0x7c0401, 0x42fa2f, 0xc4b6d4, 0xc82f22, 0x4e63d9, 0xd11cce, 0x575035, 0x5bc9c3, 0xdd8538]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-24', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = typeof previous !== 'undefined' ? ~~previous : 0xb704ce; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = (TABLE[(crc >> 16 ^ byte) & 0xff] ^ crc << 8) & 0xffffff; - } - - return crc; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc32.js b/node_modules/crc/lib/crc32.js deleted file mode 100644 index 443cc35..0000000 --- a/node_modules/crc/lib/crc32.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=crc-32 --generate=c` -var TABLE = [0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-32', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = previous === 0 ? 0 : ~~previous ^ -1; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = TABLE[(crc ^ byte) & 0xff] ^ crc >>> 8; - } - - return crc ^ -1; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc8.js b/node_modules/crc/lib/crc8.js deleted file mode 100644 index 4c737fc..0000000 --- a/node_modules/crc/lib/crc8.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=crc-8 --generate=c` -var TABLE = [0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d, 0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d, 0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd, 0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd, 0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea, 0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a, 0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a, 0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a, 0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4, 0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4, 0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44, 0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34, 0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63, 0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13, 0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83, 0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('crc-8', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = ~~previous; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = TABLE[(crc ^ byte) & 0xff] & 0xff; - } - - return crc; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/crc8_1wire.js b/node_modules/crc/lib/crc8_1wire.js deleted file mode 100644 index 341dfa4..0000000 --- a/node_modules/crc/lib/crc8_1wire.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var _buffer = require('buffer'); - -var _define_crc = require('./define_crc'); - -var _define_crc2 = _interopRequireDefault(_define_crc); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Generated by `./pycrc.py --algorithm=table-driven --model=dallas-1-wire --generate=c` -var TABLE = [0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41, 0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e, 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc, 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0, 0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62, 0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d, 0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff, 0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5, 0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07, 0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58, 0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a, 0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6, 0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24, 0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b, 0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9, 0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f, 0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd, 0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92, 0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50, 0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c, 0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee, 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73, 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b, 0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4, 0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16, 0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a, 0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8, 0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7, 0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35]; - -if (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE); - -module.exports = (0, _define_crc2.default)('dallas-1-wire', function (buf, previous) { - if (!_buffer.Buffer.isBuffer(buf)) buf = new _buffer.Buffer(buf); - - var crc = ~~previous; - - for (var index = 0; index < buf.length; index++) { - var byte = buf[index]; - crc = TABLE[(crc ^ byte) & 0xff] & 0xff; - } - - return crc; -}); \ No newline at end of file diff --git a/node_modules/crc/lib/define_crc.js b/node_modules/crc/lib/define_crc.js deleted file mode 100644 index 70c3bdc..0000000 --- a/node_modules/crc/lib/define_crc.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.default = function (model, calc) { - var fn = function fn(buf, previous) { - return calc(buf, previous) >>> 0; - }; - fn.signed = calc; - fn.unsigned = fn; - fn.model = model; - - return fn; -}; \ No newline at end of file diff --git a/node_modules/crc/lib/index.js b/node_modules/crc/lib/index.js deleted file mode 100644 index d25d8df..0000000 --- a/node_modules/crc/lib/index.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -module.exports = { - crc1: require('./crc1'), - crc8: require('./crc8'), - crc81wire: require('./crc8_1wire'), - crc16: require('./crc16'), - crc16ccitt: require('./crc16_ccitt'), - crc16modbus: require('./crc16_modbus'), - crc16xmodem: require('./crc16_xmodem'), - crc16kermit: require('./crc16_kermit'), - crc24: require('./crc24'), - crc32: require('./crc32') -}; \ No newline at end of file diff --git a/node_modules/crc/package.json b/node_modules/crc/package.json deleted file mode 100644 index 96bf747..0000000 --- a/node_modules/crc/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "crc@3.4.1", - "scope": null, - "escapedName": "crc", - "name": "crc", - "rawSpec": "3.4.1", - "spec": "3.4.1", - "type": "version" - }, - "F:\\github\\HopeLibrarySystem\\node_modules\\express-session" - ] - ], - "_from": "crc@3.4.1", - "_id": "crc@3.4.1", - "_inCache": true, - "_location": "/crc", - "_nodeVersion": "6.2.2", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/crc-3.4.1.tgz_1477680338196_0.20758443232625723" - }, - "_npmUser": { - "name": "alexgorbatchev", - "email": "alex.gorbatchev@gmail.com" - }, - "_npmVersion": "3.9.5", - "_phantomChildren": {}, - "_requested": { - "raw": "crc@3.4.1", - "scope": null, - "escapedName": "crc", - "name": "crc", - "rawSpec": "3.4.1", - "spec": "3.4.1", - "type": "version" - }, - "_requiredBy": [ - "/express-session" - ], - "_resolved": "https://registry.npmjs.org/crc/-/crc-3.4.1.tgz", - "_shasum": "65d5830b1a2569557cfb324c0e679998521473ee", - "_shrinkwrap": null, - "_spec": "crc@3.4.1", - "_where": "F:\\github\\HopeLibrarySystem\\node_modules\\express-session", - "author": { - "name": "Alex Gorbatchev", - "url": "https://github.com/alexgorbatchev" - }, - "bugs": { - "url": "https://github.com/alexgorbatchev/node-crc/issues" - }, - "dependencies": {}, - "description": "Module for calculating Cyclic Redundancy Check (CRC) for Node.js and the Browser.", - "devDependencies": { - "babel-cli": "^6.3.15", - "babel-core": "^6.1.21", - "babel-preset-es2015": "^6.1.18", - "beautify-benchmark": "^0.2.4", - "benchmark": "^1.0.0", - "buffer-crc32": "^0.2.3", - "chai": "^3.4.1", - "mocha": "*", - "seedrandom": "^2.3.6" - }, - "directories": {}, - "dist": { - "shasum": "65d5830b1a2569557cfb324c0e679998521473ee", - "tarball": "https://registry.npmjs.org/crc/-/crc-3.4.1.tgz" - }, - "files": [ - "lib" - ], - "gitHead": "ad6a566e578a5c4c9c0d05d57576dbeb788fe696", - "homepage": "https://github.com/alexgorbatchev/node-crc", - "keywords": [ - "crc" - ], - "license": "MIT", - "main": "./lib/index.js", - "maintainers": [ - { - "name": "alexgorbatchev", - "email": "alex.gorbatchev@gmail.com" - } - ], - "name": "crc", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git://github.com/alexgorbatchev/node-crc.git" - }, - "scripts": { - "pretest": "cd src && babel --out-dir ../lib *.js", - "test": "mocha test/*.test.js" - }, - "version": "3.4.1" -} diff --git a/node_modules/express-session/HISTORY.md b/node_modules/express-session/HISTORY.md deleted file mode 100644 index fd15864..0000000 --- a/node_modules/express-session/HISTORY.md +++ /dev/null @@ -1,330 +0,0 @@ -1.14.2 / 2016-10-30 -=================== - - * deps: crc@3.4.1 - - Fix deprecation warning in Node.js 7.x - * deps: uid-safe@~2.1.3 - - deps: base64-url@1.3.3 - -1.14.1 / 2016-08-24 -=================== - - * Fix not always resetting session max age before session save - * Fix the cookie `sameSite` option to actually alter the `Set-Cookie` - * deps: uid-safe@~2.1.2 - - deps: base64-url@1.3.2 - -1.14.0 / 2016-07-01 -=================== - - * Correctly inherit from `EventEmitter` class in `Store` base class - * Fix issue where `Set-Cookie` `Expires` was not always updated - * Methods are no longer enumerable on `req.session` object - * deps: cookie@0.3.1 - - Add `sameSite` option - - Improve error message when `encode` is not a function - - Improve error message when `expires` is not a `Date` - - perf: enable strict mode - - perf: use for loop in parse - - perf: use string concatination for serialization - * deps: parseurl@~1.3.1 - - perf: enable strict mode - * deps: uid-safe@~2.1.1 - - Use `random-bytes` for byte source - - deps: base64-url@1.2.2 - * perf: enable strict mode - * perf: remove argument reassignment - -1.13.0 / 2016-01-10 -=================== - - * Fix `rolling: true` to not set cookie when no session exists - - Better `saveUninitialized: false` + `rolling: true` behavior - * deps: crc@3.4.0 - -1.12.1 / 2015-10-29 -=================== - - * deps: cookie@0.2.3 - - Fix cookie `Max-Age` to never be a floating point number - -1.12.0 / 2015-10-25 -=================== - - * Support the value `'auto'` in the `cookie.secure` option - * deps: cookie@0.2.2 - - Throw on invalid values provided to `serialize` - * deps: depd@~1.1.0 - - Enable strict mode in more places - - Support web browser loading - * deps: on-headers@~1.0.1 - - perf: enable strict mode - -1.11.3 / 2015-05-22 -=================== - - * deps: cookie@0.1.3 - - Slight optimizations - * deps: crc@3.3.0 - -1.11.2 / 2015-05-10 -=================== - - * deps: debug@~2.2.0 - - deps: ms@0.7.1 - * deps: uid-safe@~2.0.0 - -1.11.1 / 2015-04-08 -=================== - - * Fix mutating `options.secret` value - -1.11.0 / 2015-04-07 -=================== - - * Support an array in `secret` option for key rotation - * deps: depd@~1.0.1 - -1.10.4 / 2015-03-15 -=================== - - * deps: debug@~2.1.3 - - Fix high intensity foreground color for bold - - deps: ms@0.7.0 - -1.10.3 / 2015-02-16 -=================== - - * deps: cookie-signature@1.0.6 - * deps: uid-safe@1.1.0 - - Use `crypto.randomBytes`, if available - - deps: base64-url@1.2.1 - -1.10.2 / 2015-01-31 -=================== - - * deps: uid-safe@1.0.3 - - Fix error branch that would throw - - deps: base64-url@1.2.0 - -1.10.1 / 2015-01-08 -=================== - - * deps: uid-safe@1.0.2 - - Remove dependency on `mz` - -1.10.0 / 2015-01-05 -=================== - - * Add `store.touch` interface for session stores - * Fix `MemoryStore` expiration with `resave: false` - * deps: debug@~2.1.1 - -1.9.3 / 2014-12-02 -================== - - * Fix error when `req.sessionID` contains a non-string value - -1.9.2 / 2014-11-22 -================== - - * deps: crc@3.2.1 - - Minor fixes - -1.9.1 / 2014-10-22 -================== - - * Remove unnecessary empty write call - - Fixes Node.js 0.11.14 behavior change - - Helps work-around Node.js 0.10.1 zlib bug - -1.9.0 / 2014-09-16 -================== - - * deps: debug@~2.1.0 - - Implement `DEBUG_FD` env variable support - * deps: depd@~1.0.0 - -1.8.2 / 2014-09-15 -================== - - * Use `crc` instead of `buffer-crc32` for speed - * deps: depd@0.4.5 - -1.8.1 / 2014-09-08 -================== - - * Keep `req.session.save` non-enumerable - * Prevent session prototype methods from being overwritten - -1.8.0 / 2014-09-07 -================== - - * Do not resave already-saved session at end of request - * deps: cookie-signature@1.0.5 - * deps: debug@~2.0.0 - -1.7.6 / 2014-08-18 -================== - - * Fix exception on `res.end(null)` calls - -1.7.5 / 2014-08-10 -================== - - * Fix parsing original URL - * deps: on-headers@~1.0.0 - * deps: parseurl@~1.3.0 - -1.7.4 / 2014-08-05 -================== - - * Fix response end delay for non-chunked responses - -1.7.3 / 2014-08-05 -================== - - * Fix `res.end` patch to call correct upstream `res.write` - -1.7.2 / 2014-07-27 -================== - - * deps: depd@0.4.4 - - Work-around v8 generating empty stack traces - -1.7.1 / 2014-07-26 -================== - - * deps: depd@0.4.3 - - Fix exception when global `Error.stackTraceLimit` is too low - -1.7.0 / 2014-07-22 -================== - - * Improve session-ending error handling - - Errors are passed to `next(err)` instead of `console.error` - * deps: debug@1.0.4 - * deps: depd@0.4.2 - - Add `TRACE_DEPRECATION` environment variable - - Remove non-standard grey color from color output - - Support `--no-deprecation` argument - - Support `--trace-deprecation` argument - -1.6.5 / 2014-07-11 -================== - - * Do not require `req.originalUrl` - * deps: debug@1.0.3 - - Add support for multiple wildcards in namespaces - -1.6.4 / 2014-07-07 -================== - - * Fix blank responses for stores with synchronous operations - -1.6.3 / 2014-07-04 -================== - - * Fix resave deprecation message - -1.6.2 / 2014-07-04 -================== - - * Fix confusing option deprecation messages - -1.6.1 / 2014-06-28 -================== - - * Fix saveUninitialized deprecation message - -1.6.0 / 2014-06-28 -================== - - * Add deprecation message to undefined `resave` option - * Add deprecation message to undefined `saveUninitialized` option - * Fix `res.end` patch to return correct value - * Fix `res.end` patch to handle multiple `res.end` calls - * Reject cookies with missing signatures - -1.5.2 / 2014-06-26 -================== - - * deps: cookie-signature@1.0.4 - - fix for timing attacks - -1.5.1 / 2014-06-21 -================== - - * Move hard-to-track-down `req.secret` deprecation message - -1.5.0 / 2014-06-19 -================== - - * Debug name is now "express-session" - * Deprecate integration with `cookie-parser` middleware - * Deprecate looking for secret in `req.secret` - * Directly read cookies; `cookie-parser` no longer required - * Directly set cookies; `res.cookie` no longer required - * Generate session IDs with `uid-safe`, faster and even less collisions - -1.4.0 / 2014-06-17 -================== - - * Add `genid` option to generate custom session IDs - * Add `saveUninitialized` option to control saving uninitialized sessions - * Add `unset` option to control unsetting `req.session` - * Generate session IDs with `rand-token` by default; reduce collisions - * deps: buffer-crc32@0.2.3 - -1.3.1 / 2014-06-14 -================== - - * Add description in package for npmjs.org listing - -1.3.0 / 2014-06-14 -================== - - * Integrate with express "trust proxy" by default - * deps: debug@1.0.2 - -1.2.1 / 2014-05-27 -================== - - * Fix `resave` such that `resave: true` works - -1.2.0 / 2014-05-19 -================== - - * Add `resave` option to control saving unmodified sessions - -1.1.0 / 2014-05-12 -================== - - * Add `name` option; replacement for `key` option - * Use `setImmediate` in MemoryStore for node.js >= 0.10 - -1.0.4 / 2014-04-27 -================== - - * deps: debug@0.8.1 - -1.0.3 / 2014-04-19 -================== - - * Use `res.cookie()` instead of `res.setHeader()` - * deps: cookie@0.1.2 - -1.0.2 / 2014-02-23 -================== - - * Add missing dependency to `package.json` - -1.0.1 / 2014-02-15 -================== - - * Add missing dependencies to `package.json` - -1.0.0 / 2014-02-15 -================== - - * Genesis from `connect` diff --git a/node_modules/express-session/LICENSE b/node_modules/express-session/LICENSE deleted file mode 100644 index 9b59ff8..0000000 --- a/node_modules/express-session/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2010 Sencha Inc. -Copyright (c) 2011 TJ Holowaychuk -Copyright (c) 2014-2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/express-session/README.md b/node_modules/express-session/README.md deleted file mode 100644 index 2062421..0000000 --- a/node_modules/express-session/README.md +++ /dev/null @@ -1,712 +0,0 @@ -# express-session - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] -[![Gratipay][gratipay-image]][gratipay-url] - -## Installation - -```bash -$ npm install express-session -``` - -## API - -```js -var session = require('express-session') -``` - -### session(options) - -Create a session middleware with the given `options`. - -**Note** Session data is _not_ saved in the cookie itself, just the session ID. -Session data is stored server-side. - -**Note** Since version 1.5.0, the [`cookie-parser` middleware](https://www.npmjs.com/package/cookie-parser) -no longer needs to be used for this module to work. This module now directly reads -and writes cookies on `req`/`res`. Using `cookie-parser` may result in issues -if the `secret` is not the same between this module and `cookie-parser`. - -**Warning** The default server-side session storage, `MemoryStore`, is _purposely_ -not designed for a production environment. It will leak memory under most -conditions, does not scale past a single process, and is meant for debugging and -developing. - -For a list of stores, see [compatible session stores](#compatible-session-stores). - -#### Options - -`express-session` accepts these properties in the options object. - -##### cookie - -Settings object for the session ID cookie. The default value is -`{ path: '/', httpOnly: true, secure: false, maxAge: null }`. - -The following are options that can be set in this object. - -##### cookie.domain - -Specifies the value for the `Domain` `Set-Cookie` attribute. By default, no domain -is set, and most clients will consider the cookie to apply to only the current -domain. - -##### cookie.expires - -Specifies the `Date` object to be the value for the `Expires` `Set-Cookie` attribute. -By default, no expiration is set, and most clients will consider this a -"non-persistent cookie" and will delete it on a condition like exiting a web browser -application. - -**Note** If both `expires` and `maxAge` are set in the options, then the last one -defined in the object is what is used. - -**Note** The `expires` option should not be set directly; instead only use the `maxAge` -option. - -##### cookie.httpOnly - -Specifies the `boolean` value for the `HttpOnly` `Set-Cookie` attribute. When truthy, -the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` -attribute is set. - -**Note** be careful when setting this to `true`, as compliant clients will not allow -client-side JavaScript to see the cookie in `document.cookie`. - -##### cookie.maxAge - -Specifies the `number` (in milliseconds) to use when calculating the `Expires` -`Set-Cookie` attribute. This is done by taking the current server time and adding -`maxAge` milliseconds to the value to calculate an `Expires` datetime. By default, -no maximum age is set. - -**Note** If both `expires` and `maxAge` are set in the options, then the last one -defined in the object is what is used. - -##### cookie.path - -Specifies the value for the `Path` `Set-Cookie`. By default, this is set to `'/'`, which -is the root path of the domain. - -##### cookie.sameSite - -Specifies the `boolean` or `string` to be the value for the `SameSite` `Set-Cookie` attribute. - - - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement. - - `false` will not set the `SameSite` attribute. - - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement. - - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement. - -More information about the different enforcement levels can be found in the specification -https://tools.ietf.org/html/draft-west-first-party-cookies-07#section-4.1.1 - -**Note** This is an attribute that has not yet been fully standardized, and may change in -the future. This also means many clients may ignore this attribute until they understand it. - -##### cookie.secure - -Specifies the `boolean` value for the `Secure` `Set-Cookie` attribute. When truthy, -the `Secure` attribute is set, otherwise it is not. By default, the `Secure` -attribute is not set. - -**Note** be careful when setting this to `true`, as compliant clients will not send -the cookie back to the server in the future if the browser does not have an HTTPS -connection. - -Please note that `secure: true` is a **recommended** option. However, it requires -an https-enabled website, i.e., HTTPS is necessary for secure cookies. If `secure` -is set, and you access your site over HTTP, the cookie will not be set. If you -have your node.js behind a proxy and are using `secure: true`, you need to set -"trust proxy" in express: - -```js -var app = express() -app.set('trust proxy', 1) // trust first proxy -app.use(session({ - secret: 'keyboard cat', - resave: false, - saveUninitialized: true, - cookie: { secure: true } -})) -``` - -For using secure cookies in production, but allowing for testing in development, -the following is an example of enabling this setup based on `NODE_ENV` in express: - -```js -var app = express() -var sess = { - secret: 'keyboard cat', - cookie: {} -} - -if (app.get('env') === 'production') { - app.set('trust proxy', 1) // trust first proxy - sess.cookie.secure = true // serve secure cookies -} - -app.use(session(sess)) -``` - -The `cookie.secure` option can also be set to the special value `'auto'` to have -this setting automatically match the determined security of the connection. Be -careful when using this setting if the site is available both as HTTP and HTTPS, -as once the cookie is set on HTTPS, it will no longer be visible over HTTP. This -is useful when the Express `"trust proxy"` setting is properly setup to simplify -development vs production configuration. - -##### genid - -Function to call to generate a new session ID. Provide a function that returns -a string that will be used as a session ID. The function is given `req` as the -first argument if you want to use some value attached to `req` when generating -the ID. - -The default value is a function which uses the `uid-safe` library to generate IDs. - -**NOTE** be careful to generate unique IDs so your sessions do not conflict. - -```js -app.use(session({ - genid: function(req) { - return genuuid() // use UUIDs for session IDs - }, - secret: 'keyboard cat' -})) -``` - -##### name - -The name of the session ID cookie to set in the response (and read from in the -request). - -The default value is `'connect.sid'`. - -**Note** if you have multiple apps running on the same hostname (this is just -the name, i.e. `localhost` or `127.0.0.1`; different schemes and ports do not -name a different hostname), then you need to separate the session cookies from -each other. The simplest method is to simply set different `name`s per app. - -##### proxy - -Trust the reverse proxy when setting secure cookies (via the "X-Forwarded-Proto" -header). - -The default value is `undefined`. - - - `true` The "X-Forwarded-Proto" header will be used. - - `false` All headers are ignored and the connection is considered secure only - if there is a direct TLS/SSL connection. - - `undefined` Uses the "trust proxy" setting from express - -##### resave - -Forces the session to be saved back to the session store, even if the session -was never modified during the request. Depending on your store this may be -necessary, but it can also create race conditions where a client makes two -parallel requests to your server and changes made to the session in one -request may get overwritten when the other request ends, even if it made no -changes (this behavior also depends on what store you're using). - -The default value is `true`, but using the default has been deprecated, -as the default will change in the future. Please research into this setting -and choose what is appropriate to your use-case. Typically, you'll want -`false`. - -How do I know if this is necessary for my store? The best way to know is to -check with your store if it implements the `touch` method. If it does, then -you can safely set `resave: false`. If it does not implement the `touch` -method and your store sets an expiration date on stored sessions, then you -likely need `resave: true`. - -##### rolling - -Force a session identifier cookie to be set on every response. The expiration -is reset to the original [`maxAge`](#cookiemaxage), resetting the expiration -countdown. - -The default value is `false`. - -**Note** When this option is set to `true` but the `saveUninitialized` option is -set to `false`, the cookie will not be set on a response with an uninitialized -session. - -##### saveUninitialized - -Forces a session that is "uninitialized" to be saved to the store. A session is -uninitialized when it is new but not modified. Choosing `false` is useful for -implementing login sessions, reducing server storage usage, or complying with -laws that require permission before setting a cookie. Choosing `false` will also -help with race conditions where a client makes multiple parallel requests -without a session. - -The default value is `true`, but using the default has been deprecated, as the -default will change in the future. Please research into this setting and -choose what is appropriate to your use-case. - -**Note** if you are using Session in conjunction with PassportJS, Passport -will add an empty Passport object to the session for use after a user is -authenticated, which will be treated as a modification to the session, causing -it to be saved. *This has been fixed in PassportJS 0.3.0* - -##### secret - -**Required option** - -This is the secret used to sign the session ID cookie. This can be either a string -for a single secret, or an array of multiple secrets. If an array of secrets is -provided, only the first element will be used to sign the session ID cookie, while -all the elements will be considered when verifying the signature in requests. - -##### store - -The session store instance, defaults to a new `MemoryStore` instance. - -##### unset - -Control the result of unsetting `req.session` (through `delete`, setting to `null`, -etc.). - -The default value is `'keep'`. - - - `'destroy'` The session will be destroyed (deleted) when the response ends. - - `'keep'` The session in the store will be kept, but modifications made during - the request are ignored and not saved. - -### req.session - -To store or access session data, simply use the request property `req.session`, -which is (generally) serialized as JSON by the store, so nested objects -are typically fine. For example below is a user-specific view counter: - -```js -// Use the session middleware -app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }})) - -// Access the session as req.session -app.get('/', function(req, res, next) { - var sess = req.session - if (sess.views) { - sess.views++ - res.setHeader('Content-Type', 'text/html') - res.write('

views: ' + sess.views + '

') - res.write('

expires in: ' + (sess.cookie.maxAge / 1000) + 's

') - res.end() - } else { - sess.views = 1 - res.end('welcome to the session demo. refresh!') - } -}) -``` - -#### Session.regenerate(callback) - -To regenerate the session simply invoke the method. Once complete, -a new SID and `Session` instance will be initialized at `req.session` -and the `callback` will be invoked. - -```js -req.session.regenerate(function(err) { - // will have a new session here -}) -``` - -#### Session.destroy(callback) - -Destroys the session and will unset the `req.session` property. -Once complete, the `callback` will be invoked. - -```js -req.session.destroy(function(err) { - // cannot access session here -}) -``` - -#### Session.reload(callback) - -Reloads the session data from the store and re-populates the -`req.session` object. Once complete, the `callback` will be invoked. - -```js -req.session.reload(function(err) { - // session updated -}) -``` - -#### Session.save(callback) - -Save the session back to the store, replacing the contents on the store with the -contents in memory (though a store may do something else--consult the store's -documentation for exact behavior). - -This method is automatically called at the end of the HTTP response if the -session data has been altered (though this behavior can be altered with various -options in the middleware constructor). Because of this, typically this method -does not need to be called. - -There are some cases where it is useful to call this method, for example, long- -lived requests or in WebSockets. - -```js -req.session.save(function(err) { - // session saved -}) -``` - -#### Session.touch() - -Updates the `.maxAge` property. Typically this is -not necessary to call, as the session middleware does this for you. - -### req.session.id - -Each session has a unique ID associated with it. This property will -contain the session ID and cannot be modified. - -### req.session.cookie - -Each session has a unique cookie object accompany it. This allows -you to alter the session cookie per visitor. For example we can -set `req.session.cookie.expires` to `false` to enable the cookie -to remain for only the duration of the user-agent. - -#### Cookie.maxAge - -Alternatively `req.session.cookie.maxAge` will return the time -remaining in milliseconds, which we may also re-assign a new value -to adjust the `.expires` property appropriately. The following -are essentially equivalent - -```js -var hour = 3600000 -req.session.cookie.expires = new Date(Date.now() + hour) -req.session.cookie.maxAge = hour -``` - -For example when `maxAge` is set to `60000` (one minute), and 30 seconds -has elapsed it will return `30000` until the current request has completed, -at which time `req.session.touch()` is called to reset `req.session.maxAge` -to its original value. - -```js -req.session.cookie.maxAge // => 30000 -``` - -### req.sessionID - -To get the ID of the loaded session, access the request property -`req.sessionID`. This is simply a read-only value set when a session -is loaded/created. - -## Session Store Implementation - -Every session store _must_ be an `EventEmitter` and implement specific -methods. The following methods are the list of **required**, **recommended**, -and **optional**. - - * Required methods are ones that this module will always call on the store. - * Recommended methods are ones that this module will call on the store if - available. - * Optional methods are ones this module does not call at all, but helps - present uniform stores to users. - -For an example implementation view the [connect-redis](http://github.com/visionmedia/connect-redis) repo. - -### store.all(callback) - -**Optional** - -This optional method is used to get all sessions in the store as an array. The -`callback` should be called as `callback(error, sessions)`. - -### store.destroy(sid, callback) - -**Required** - -This required method is used to destroy/delete a session from the store given -a session ID (`sid`). The `callback` should be called as `callback(error)` once -the session is destroyed. - -### store.clear(callback) - -**Optional** - -This optional method is used to delete all sessions from the store. The -`callback` should be called as `callback(error)` once the store is cleared. - -### store.length(callback) - -**Optional** - -This optional method is used to get the count of all sessions in the store. -The `callback` should be called as `callback(error, len)`. - -### store.get(sid, callback) - -**Required** - -This required method is used to get a session from the store given a session -ID (`sid`). The `callback` should be called as `callback(error, session)`. - -The `session` argument should be a session if found, otherwise `null` or -`undefined` if the session was not found (and there was no error). A special -case is made when `error.code === 'ENOENT'` to act like `callback(null, null)`. - -### store.set(sid, session, callback) - -**Required** - -This required method is used to upsert a session into the store given a -session ID (`sid`) and session (`session`) object. The callback should be -called as `callback(error)` once the session has been set in the store. - -### store.touch(sid, session, callback) - -**Recommended** - -This recommended method is used to "touch" a given session given a -session ID (`sid`) and session (`session`) object. The `callback` should be -called as `callback(error)` once the session has been touched. - -This is primarily used when the store will automatically delete idle sessions -and this method is used to signal to the store the given session is active, -potentially resetting the idle timer. - -## Compatible Session Stores - -The following modules implement a session store that is compatible with this -module. Please make a PR to add additional modules :) - -[![★][aerospike-session-store-image] aerospike-session-store][aerospike-session-store-url] A session store using [Aerospike](http://www.aerospike.com/). - -[aerospike-session-store-url]: https://www.npmjs.com/package/aerospike-session-store -[aerospike-session-store-image]: https://img.shields.io/github/stars/aerospike/aerospike-session-store-expressjs.svg?label=%E2%98%85 - -[![★][cassandra-store-image] cassandra-store][cassandra-store-url] An Apache Cassandra-based session store. - -[cassandra-store-url]: https://www.npmjs.com/package/cassandra-store -[cassandra-store-image]: https://img.shields.io/github/stars/webcc/cassandra-store.svg?label=%E2%98%85 - -[![★][cluster-store-image] cluster-store][cluster-store-url] A wrapper for using in-process / embedded -stores - such as SQLite (via knex), leveldb, files, or memory - with node cluster (desirable for Raspberry Pi 2 -and other multi-core embedded devices). - -[cluster-store-url]: https://www.npmjs.com/package/cluster-store -[cluster-store-image]: https://img.shields.io/github/stars/coolaj86/cluster-store.svg?label=%E2%98%85 - -[![★][connect-azuretables-image] connect-azuretables][connect-azuretables-url] An [Azure Table Storage](https://azure.microsoft.com/en-gb/services/storage/tables/)-based session store. - -[connect-azuretables-url]: https://www.npmjs.com/package/connect-azuretables -[connect-azuretables-image]: https://img.shields.io/github/stars/mike-goodwin/connect-azuretables.svg?label=%E2%98%85 - -[![★][connect-couchbase-image] connect-couchbase][connect-couchbase-url] A [couchbase](http://www.couchbase.com/)-based session store. - -[connect-couchbase-url]: https://www.npmjs.com/package/connect-couchbase -[connect-couchbase-image]: https://img.shields.io/github/stars/christophermina/connect-couchbase.svg?label=%E2%98%85 - -[![★][connect-datacache-image] connect-datacache][connect-datacache-url] An [IBM Bluemix Data Cache](http://www.ibm.com/cloud-computing/bluemix/)-based session store. - -[connect-datacache-url]: https://www.npmjs.com/package/connect-datacache -[connect-datacache-image]: https://img.shields.io/github/stars/adriantanasa/connect-datacache.svg?label=%E2%98%85 - -[![★][connect-db2-image] connect-db2][connect-db2-url] An IBM DB2-based session store built using [ibm_db](https://www.npmjs.com/package/ibm_db) module. - -[connect-db2-url]: https://www.npmjs.com/package/connect-db2 -[connect-db2-image]: https://img.shields.io/github/stars/wallali/connect-db2.svg?label=%E2%98%85 - -[![★][connect-dynamodb-image] connect-dynamodb][connect-dynamodb-url] A DynamoDB-based session store. - -[connect-dynamodb-url]: https://github.com/ca98am79/connect-dynamodb -[connect-dynamodb-image]: https://img.shields.io/github/stars/ca98am79/connect-dynamodb.svg?label=%E2%98%85 - -[![★][connect-loki-image] connect-loki][connect-loki-url] A Loki.js-based session store. - -[connect-loki-url]: https://www.npmjs.com/package/connect-loki -[connect-loki-image]: https://img.shields.io/github/stars/Requarks/connect-loki.svg?label=%E2%98%85 - -[![★][connect-ml-image] connect-ml][connect-ml-url] A MarkLogic Server-based session store. - -[connect-ml-url]: https://www.npmjs.com/package/connect-ml -[connect-ml-image]: https://img.shields.io/github/stars/bluetorch/connect-ml.svg?label=%E2%98%85 - -[![★][connect-mssql-image] connect-mssql][connect-mssql-url] A SQL Server-based session store. - -[connect-mssql-url]: https://www.npmjs.com/package/connect-mssql -[connect-mssql-image]: https://img.shields.io/github/stars/patriksimek/connect-mssql.svg?label=%E2%98%85 - -[![★][connect-monetdb-image] connect-monetdb][connect-monetdb-url] A MonetDB-based session store. - -[connect-monetdb-url]: https://www.npmjs.com/package/connect-monetdb -[connect-monetdb-image]: https://img.shields.io/github/stars/MonetDB/npm-connect-monetdb.svg?label=%E2%98%85 - -[![★][connect-mongo-image] connect-mongo][connect-mongo-url] A MongoDB-based session store. - -[connect-mongo-url]: https://www.npmjs.com/package/connect-mongo -[connect-mongo-image]: https://img.shields.io/github/stars/kcbanner/connect-mongo.svg?label=%E2%98%85 - -[![★][connect-mongodb-session-image] connect-mongodb-session][connect-mongodb-session-url] Lightweight MongoDB-based session store built and maintained by MongoDB. - -[connect-mongodb-session-url]: https://www.npmjs.com/package/connect-mongodb-session -[connect-mongodb-session-image]: https://img.shields.io/github/stars/mongodb-js/connect-mongodb-session.svg?label=%E2%98%85 - -[![★][connect-pg-simple-image] connect-pg-simple][connect-pg-simple-url] A PostgreSQL-based session store. - -[connect-pg-simple-url]: https://www.npmjs.com/package/connect-pg-simple -[connect-pg-simple-image]: https://img.shields.io/github/stars/voxpelli/node-connect-pg-simple.svg?label=%E2%98%85 - -[![★][connect-redis-image] connect-redis][connect-redis-url] A Redis-based session store. - -[connect-redis-url]: https://www.npmjs.com/package/connect-redis -[connect-redis-image]: https://img.shields.io/github/stars/tj/connect-redis.svg?label=%E2%98%85 - -[![★][connect-memcached-image] connect-memcached][connect-memcached-url] A memcached-based session store. - -[connect-memcached-url]: https://www.npmjs.com/package/connect-memcached -[connect-memcached-image]: https://img.shields.io/github/stars/balor/connect-memcached.svg?label=%E2%98%85 - -[![★][connect-session-knex-image] connect-session-knex][connect-session-knex-url] A session store using -[Knex.js](http://knexjs.org/), which is a SQL query builder for PostgreSQL, MySQL, MariaDB, SQLite3, and Oracle. - -[connect-session-knex-url]: https://www.npmjs.com/package/connect-session-knex -[connect-session-knex-image]: https://img.shields.io/github/stars/llambda/connect-session-knex.svg?label=%E2%98%85 - -[![★][connect-session-sequelize-image] connect-session-sequelize][connect-session-sequelize-url] A session store using -[Sequelize.js](http://sequelizejs.com/), which is a Node.js / io.js ORM for PostgreSQL, MySQL, SQLite and MSSQL. - -[connect-session-sequelize-url]: https://www.npmjs.com/package/connect-session-sequelize -[connect-session-sequelize-image]: https://img.shields.io/github/stars/mweibel/connect-session-sequelize.svg?label=%E2%98%85 - -[![★][express-mysql-session-image] express-mysql-session][express-mysql-session-url] A session store using native -[MySQL](https://www.mysql.com/) via the [node-mysql](https://github.com/felixge/node-mysql) module. - -[express-mysql-session-url]: https://www.npmjs.com/package/express-mysql-session -[express-mysql-session-image]: https://img.shields.io/github/stars/chill117/express-mysql-session.svg?label=%E2%98%85 - -[![★][express-sessions-image] express-sessions][express-sessions-url]: A session store supporting both MongoDB and Redis. -[express-sessions-url]: https://www.npmjs.com/package/express-sessions -[express-sessions-image]: https://img.shields.io/github/stars/konteck/express-sessions.svg?label=%E2%98%85 - -[![★][connect-sqlite3-image] connect-sqlite3][connect-sqlite3-url] A [SQLite3](https://github.com/mapbox/node-sqlite3) session store modeled after the TJ's `connect-redis` store. - -[connect-sqlite3-url]: https://www.npmjs.com/package/connect-sqlite3 -[connect-sqlite3-image]: https://img.shields.io/github/stars/rawberg/connect-sqlite3.svg?label=%E2%98%85 - -[![★][documentdb-session-image] documentdb-session][documentdb-session-url] A session store for Microsoft Azure's [DocumentDB](https://azure.microsoft.com/en-us/services/documentdb/) NoSQL database service. - -[documentdb-session-url]: https://www.npmjs.com/package/documentdb-session -[documentdb-session-image]: https://img.shields.io/github/stars/dwhieb/documentdb-session.svg?label=%E2%98%85 - -[![★][express-nedb-session-image] express-nedb-session][express-nedb-session-url] A NeDB-based session store. - -[express-nedb-session-url]: https://www.npmjs.com/package/express-nedb-session -[express-nedb-session-image]: https://img.shields.io/github/stars/louischatriot/express-nedb-session.svg?label=%E2%98%85 - -[![★][express-session-level-image] express-session-level][express-session-level-url] A [LevelDB](https://github.com/Level/levelup) based session store. - -[express-session-level-url]: https://www.npmjs.com/package/express-session-level -[express-session-level-image]: https://img.shields.io/github/stars/tgohn/express-session-level.svg?label=%E2%98%85 - -[![★][express-etcd-image] express-etcd][express-etcd-url] An [etcd](https://github.com/stianeikeland/node-etcd) based session store. - -[express-etcd-url]: https://www.npmjs.com/package/express-etcd -[express-etcd-image]: https://img.shields.io/github/stars/gildean/express-etcd.svg?label=%E2%98%85 - -[![★][hazelcast-store-image] hazelcast-store][hazelcast-store-url] A Hazelcast-based session store built on the [Hazelcast Node Client](https://www.npmjs.com/package/hazelcast-client). - -[hazelcast-store-url]: https://www.npmjs.com/package/hazelcast-store -[hazelcast-store-image]: https://img.shields.io/github/stars/jackspaniel/hazelcast-store.svg?label=%E2%98%85 - -[![★][level-session-store-image] level-session-store][level-session-store-url] A LevelDB-based session store. - -[level-session-store-url]: https://www.npmjs.com/package/level-session-store -[level-session-store-image]: https://img.shields.io/github/stars/scriptollc/level-session-store.svg?label=%E2%98%85 - -[![★][medea-session-store-image] medea-session-store][medea-session-store-url] A Medea-based session store. - -[medea-session-store-url]: https://www.npmjs.com/package/medea-session-store -[medea-session-store-image]: https://img.shields.io/github/stars/BenjaminVadant/medea-session-store.svg?label=%E2%98%85 - -[![★][mssql-session-store-image] mssql-session-store][mssql-session-store-url] A SQL Server-based session store. - -[mssql-session-store-url]: https://www.npmjs.com/package/mssql-session-store -[mssql-session-store-image]: https://img.shields.io/github/stars/jwathen/mssql-session-store.svg?label=%E2%98%85 - -[![★][nedb-session-store-image] nedb-session-store][nedb-session-store-url] An alternate NeDB-based (either in-memory or file-persisted) session store. - -[nedb-session-store-url]: https://www.npmjs.com/package/nedb-session-store -[nedb-session-store-image]: https://img.shields.io/github/stars/JamesMGreene/nedb-session-store.svg?label=%E2%98%85 - -[![★][sequelstore-connect-image] sequelstore-connect][sequelstore-connect-url] A session store using [Sequelize.js](http://sequelizejs.com/). - -[sequelstore-connect-url]: https://www.npmjs.com/package/sequelstore-connect -[sequelstore-connect-image]: https://img.shields.io/github/stars/MattMcFarland/sequelstore-connect.svg?label=%E2%98%85 - -[![★][session-file-store-image] session-file-store][session-file-store-url] A file system-based session store. - -[session-file-store-url]: https://www.npmjs.com/package/session-file-store -[session-file-store-image]: https://img.shields.io/github/stars/valery-barysok/session-file-store.svg?label=%E2%98%85 - -[![★][session-rethinkdb-image] session-rethinkdb][session-rethinkdb-url] A [RethinkDB](http://rethinkdb.com/)-based session store. - -[session-rethinkdb-url]: https://www.npmjs.com/package/session-rethinkdb -[session-rethinkdb-image]: https://img.shields.io/github/stars/llambda/session-rethinkdb.svg?label=%E2%98%85 - -## Example - -A simple example using `express-session` to store page views for a user. - -```js -var express = require('express') -var parseurl = require('parseurl') -var session = require('express-session') - -var app = express() - -app.use(session({ - secret: 'keyboard cat', - resave: false, - saveUninitialized: true -})) - -app.use(function (req, res, next) { - var views = req.session.views - - if (!views) { - views = req.session.views = {} - } - - // get the url pathname - var pathname = parseurl(req).pathname - - // count the views - views[pathname] = (views[pathname] || 0) + 1 - - next() -}) - -app.get('/foo', function (req, res, next) { - res.send('you viewed this page ' + req.session.views['/foo'] + ' times') -}) - -app.get('/bar', function (req, res, next) { - res.send('you viewed this page ' + req.session.views['/bar'] + ' times') -}) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/express-session.svg -[npm-url]: https://npmjs.org/package/express-session -[travis-image]: https://img.shields.io/travis/expressjs/session/master.svg -[travis-url]: https://travis-ci.org/expressjs/session -[coveralls-image]: https://img.shields.io/coveralls/expressjs/session/master.svg -[coveralls-url]: https://coveralls.io/r/expressjs/session?branch=master -[downloads-image]: https://img.shields.io/npm/dm/express-session.svg -[downloads-url]: https://npmjs.org/package/express-session -[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg -[gratipay-url]: https://gratipay.com/dougwilson/ diff --git a/node_modules/express-session/index.js b/node_modules/express-session/index.js deleted file mode 100644 index 2241d97..0000000 --- a/node_modules/express-session/index.js +++ /dev/null @@ -1,647 +0,0 @@ -/*! - * express-session - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var cookie = require('cookie'); -var crc = require('crc').crc32; -var debug = require('debug')('express-session'); -var deprecate = require('depd')('express-session'); -var parseUrl = require('parseurl'); -var uid = require('uid-safe').sync - , onHeaders = require('on-headers') - , signature = require('cookie-signature') - -var Session = require('./session/session') - , MemoryStore = require('./session/memory') - , Cookie = require('./session/cookie') - , Store = require('./session/store') - -// environment - -var env = process.env.NODE_ENV; - -/** - * Expose the middleware. - */ - -exports = module.exports = session; - -/** - * Expose constructors. - */ - -exports.Store = Store; -exports.Cookie = Cookie; -exports.Session = Session; -exports.MemoryStore = MemoryStore; - -/** - * Warning message for `MemoryStore` usage in production. - * @private - */ - -var warning = 'Warning: connect.session() MemoryStore is not\n' - + 'designed for a production environment, as it will leak\n' - + 'memory, and will not scale past a single process.'; - -/** - * Node.js 0.8+ async implementation. - * @private - */ - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } - -/** - * Setup session store with the given `options`. - * - * @param {Object} [options] - * @param {Object} [options.cookie] Options for cookie - * @param {Function} [options.genid] - * @param {String} [options.name=connect.sid] Session ID cookie name - * @param {Boolean} [options.proxy] - * @param {Boolean} [options.resave] Resave unmodified sessions back to the store - * @param {Boolean} [options.rolling] Enable/disable rolling session expiration - * @param {Boolean} [options.saveUninitialized] Save uninitialized sessions to the store - * @param {String|Array} [options.secret] Secret for signing session ID - * @param {Object} [options.store=MemoryStore] Session store - * @param {String} [options.unset] - * @return {Function} middleware - * @public - */ - -function session(options) { - var opts = options || {} - - // get the cookie options - var cookieOptions = opts.cookie || {} - - // get the session id generate function - var generateId = opts.genid || generateSessionId - - // get the session cookie name - var name = opts.name || opts.key || 'connect.sid' - - // get the session store - var store = opts.store || new MemoryStore() - - // get the trust proxy setting - var trustProxy = opts.proxy - - // get the resave session option - var resaveSession = opts.resave; - - // get the rolling session option - var rollingSessions = Boolean(opts.rolling) - - // get the save uninitialized session option - var saveUninitializedSession = opts.saveUninitialized - - // get the cookie signing secret - var secret = opts.secret - - if (typeof generateId !== 'function') { - throw new TypeError('genid option must be a function'); - } - - if (resaveSession === undefined) { - deprecate('undefined resave option; provide resave option'); - resaveSession = true; - } - - if (saveUninitializedSession === undefined) { - deprecate('undefined saveUninitialized option; provide saveUninitialized option'); - saveUninitializedSession = true; - } - - if (opts.unset && opts.unset !== 'destroy' && opts.unset !== 'keep') { - throw new TypeError('unset option must be "destroy" or "keep"'); - } - - // TODO: switch to "destroy" on next major - var unsetDestroy = opts.unset === 'destroy' - - if (Array.isArray(secret) && secret.length === 0) { - throw new TypeError('secret option array must contain one or more strings'); - } - - if (secret && !Array.isArray(secret)) { - secret = [secret]; - } - - if (!secret) { - deprecate('req.secret; provide secret option'); - } - - // notify user that this store is not - // meant for a production environment - if ('production' == env && store instanceof MemoryStore) { - /* istanbul ignore next: not tested */ - console.warn(warning); - } - - // generates the new session - store.generate = function(req){ - req.sessionID = generateId(req); - req.session = new Session(req); - req.session.cookie = new Cookie(cookieOptions); - - if (cookieOptions.secure === 'auto') { - req.session.cookie.secure = issecure(req, trustProxy); - } - }; - - var storeImplementsTouch = typeof store.touch === 'function'; - - // register event listeners for the store to track readiness - var storeReady = true - store.on('disconnect', function ondisconnect() { - storeReady = false - }) - store.on('connect', function onconnect() { - storeReady = true - }) - - return function session(req, res, next) { - // self-awareness - if (req.session) { - next() - return - } - - // Handle connection as if there is no session if - // the store has temporarily disconnected etc - if (!storeReady) { - debug('store is disconnected') - next() - return - } - - // pathname mismatch - var originalPath = parseUrl.original(req).pathname; - if (originalPath.indexOf(cookieOptions.path || '/') !== 0) return next(); - - // ensure a secret is available or bail - if (!secret && !req.secret) { - next(new Error('secret option required for sessions')); - return; - } - - // backwards compatibility for signed cookies - // req.secret is passed from the cookie parser middleware - var secrets = secret || [req.secret]; - - var originalHash; - var originalId; - var savedHash; - var touched = false - - // expose store - req.sessionStore = store; - - // get the session ID from the cookie - var cookieId = req.sessionID = getcookie(req, name, secrets); - - // set-cookie - onHeaders(res, function(){ - if (!req.session) { - debug('no session'); - return; - } - - if (!shouldSetCookie(req)) { - return; - } - - // only send secure cookies via https - if (req.session.cookie.secure && !issecure(req, trustProxy)) { - debug('not secured'); - return; - } - - if (!touched) { - // touch session - req.session.touch() - touched = true - } - - // set cookie - setcookie(res, name, req.sessionID, secrets[0], req.session.cookie.data); - }); - - // proxy end() to commit the session - var _end = res.end; - var _write = res.write; - var ended = false; - res.end = function end(chunk, encoding) { - if (ended) { - return false; - } - - ended = true; - - var ret; - var sync = true; - - function writeend() { - if (sync) { - ret = _end.call(res, chunk, encoding); - sync = false; - return; - } - - _end.call(res); - } - - function writetop() { - if (!sync) { - return ret; - } - - if (chunk == null) { - ret = true; - return ret; - } - - var contentLength = Number(res.getHeader('Content-Length')); - - if (!isNaN(contentLength) && contentLength > 0) { - // measure chunk - chunk = !Buffer.isBuffer(chunk) - ? new Buffer(chunk, encoding) - : chunk; - encoding = undefined; - - if (chunk.length !== 0) { - debug('split response'); - ret = _write.call(res, chunk.slice(0, chunk.length - 1)); - chunk = chunk.slice(chunk.length - 1, chunk.length); - return ret; - } - } - - ret = _write.call(res, chunk, encoding); - sync = false; - - return ret; - } - - if (shouldDestroy(req)) { - // destroy session - debug('destroying'); - store.destroy(req.sessionID, function ondestroy(err) { - if (err) { - defer(next, err); - } - - debug('destroyed'); - writeend(); - }); - - return writetop(); - } - - // no session to save - if (!req.session) { - debug('no session'); - return _end.call(res, chunk, encoding); - } - - if (!touched) { - // touch session - req.session.touch() - touched = true - } - - if (shouldSave(req)) { - req.session.save(function onsave(err) { - if (err) { - defer(next, err); - } - - writeend(); - }); - - return writetop(); - } else if (storeImplementsTouch && shouldTouch(req)) { - // store implements touch method - debug('touching'); - store.touch(req.sessionID, req.session, function ontouch(err) { - if (err) { - defer(next, err); - } - - debug('touched'); - writeend(); - }); - - return writetop(); - } - - return _end.call(res, chunk, encoding); - }; - - // generate the session - function generate() { - store.generate(req); - originalId = req.sessionID; - originalHash = hash(req.session); - wrapmethods(req.session); - } - - // wrap session methods - function wrapmethods(sess) { - var _save = sess.save; - - function save() { - debug('saving %s', this.id); - savedHash = hash(this); - _save.apply(this, arguments); - } - - Object.defineProperty(sess, 'save', { - configurable: true, - enumerable: false, - value: save, - writable: true - }); - } - - // check if session has been modified - function isModified(sess) { - return originalId !== sess.id || originalHash !== hash(sess); - } - - // check if session has been saved - function isSaved(sess) { - return originalId === sess.id && savedHash === hash(sess); - } - - // determine if session should be destroyed - function shouldDestroy(req) { - return req.sessionID && unsetDestroy && req.session == null; - } - - // determine if session should be saved to store - function shouldSave(req) { - // cannot set cookie without a session ID - if (typeof req.sessionID !== 'string') { - debug('session ignored because of bogus req.sessionID %o', req.sessionID); - return false; - } - - return !saveUninitializedSession && cookieId !== req.sessionID - ? isModified(req.session) - : !isSaved(req.session) - } - - // determine if session should be touched - function shouldTouch(req) { - // cannot set cookie without a session ID - if (typeof req.sessionID !== 'string') { - debug('session ignored because of bogus req.sessionID %o', req.sessionID); - return false; - } - - return cookieId === req.sessionID && !shouldSave(req); - } - - // determine if cookie should be set on response - function shouldSetCookie(req) { - // cannot set cookie without a session ID - if (typeof req.sessionID !== 'string') { - return false; - } - - return cookieId != req.sessionID - ? saveUninitializedSession || isModified(req.session) - : rollingSessions || req.session.cookie.expires != null && isModified(req.session); - } - - // generate a session if the browser doesn't send a sessionID - if (!req.sessionID) { - debug('no SID sent, generating session'); - generate(); - next(); - return; - } - - // generate the session object - debug('fetching %s', req.sessionID); - store.get(req.sessionID, function(err, sess){ - // error handling - if (err) { - debug('error %j', err); - - if (err.code !== 'ENOENT') { - next(err); - return; - } - - generate(); - // no session - } else if (!sess) { - debug('no session found'); - generate(); - // populate req.session - } else { - debug('session found'); - store.createSession(req, sess); - originalId = req.sessionID; - originalHash = hash(sess); - - if (!resaveSession) { - savedHash = originalHash - } - - wrapmethods(req.session); - } - - next(); - }); - }; -}; - -/** - * Generate a session ID for a new session. - * - * @return {String} - * @private - */ - -function generateSessionId(sess) { - return uid(24); -} - -/** - * Get the session ID cookie from request. - * - * @return {string} - * @private - */ - -function getcookie(req, name, secrets) { - var header = req.headers.cookie; - var raw; - var val; - - // read from cookie header - if (header) { - var cookies = cookie.parse(header); - - raw = cookies[name]; - - if (raw) { - if (raw.substr(0, 2) === 's:') { - val = unsigncookie(raw.slice(2), secrets); - - if (val === false) { - debug('cookie signature invalid'); - val = undefined; - } - } else { - debug('cookie unsigned') - } - } - } - - // back-compat read from cookieParser() signedCookies data - if (!val && req.signedCookies) { - val = req.signedCookies[name]; - - if (val) { - deprecate('cookie should be available in req.headers.cookie'); - } - } - - // back-compat read from cookieParser() cookies data - if (!val && req.cookies) { - raw = req.cookies[name]; - - if (raw) { - if (raw.substr(0, 2) === 's:') { - val = unsigncookie(raw.slice(2), secrets); - - if (val) { - deprecate('cookie should be available in req.headers.cookie'); - } - - if (val === false) { - debug('cookie signature invalid'); - val = undefined; - } - } else { - debug('cookie unsigned') - } - } - } - - return val; -} - -/** - * Hash the given `sess` object omitting changes to `.cookie`. - * - * @param {Object} sess - * @return {String} - * @private - */ - -function hash(sess) { - return crc(JSON.stringify(sess, function (key, val) { - if (key !== 'cookie') { - return val; - } - })); -} - -/** - * Determine if request is secure. - * - * @param {Object} req - * @param {Boolean} [trustProxy] - * @return {Boolean} - * @private - */ - -function issecure(req, trustProxy) { - // socket is https server - if (req.connection && req.connection.encrypted) { - return true; - } - - // do not trust proxy - if (trustProxy === false) { - return false; - } - - // no explicit trust; try req.secure from express - if (trustProxy !== true) { - var secure = req.secure; - return typeof secure === 'boolean' - ? secure - : false; - } - - // read the proto from x-forwarded-proto header - var header = req.headers['x-forwarded-proto'] || ''; - var index = header.indexOf(','); - var proto = index !== -1 - ? header.substr(0, index).toLowerCase().trim() - : header.toLowerCase().trim() - - return proto === 'https'; -} - -/** - * Set cookie on response. - * - * @private - */ - -function setcookie(res, name, val, secret, options) { - var signed = 's:' + signature.sign(val, secret); - var data = cookie.serialize(name, signed, options); - - debug('set-cookie %s', data); - - var prev = res.getHeader('set-cookie') || []; - var header = Array.isArray(prev) ? prev.concat(data) - : Array.isArray(data) ? [prev].concat(data) - : [prev, data]; - - res.setHeader('set-cookie', header) -} - -/** - * Verify and decode the given `val` with `secrets`. - * - * @param {String} val - * @param {Array} secrets - * @returns {String|Boolean} - * @private - */ -function unsigncookie(val, secrets) { - for (var i = 0; i < secrets.length; i++) { - var result = signature.unsign(val, secrets[i]); - - if (result !== false) { - return result; - } - } - - return false; -} diff --git a/node_modules/express-session/package.json b/node_modules/express-session/package.json deleted file mode 100644 index e579dc8..0000000 --- a/node_modules/express-session/package.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "express-session", - "scope": null, - "escapedName": "express-session", - "name": "express-session", - "rawSpec": "", - "spec": "latest", - "type": "tag" - }, - "F:\\github\\HopeLibrarySystem" - ] - ], - "_from": "express-session@latest", - "_id": "express-session@1.14.2", - "_inCache": true, - "_location": "/express-session", - "_nodeVersion": "4.6.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/express-session-1.14.2.tgz_1477890860198_0.40953307203017175" - }, - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "_npmVersion": "2.15.9", - "_phantomChildren": {}, - "_requested": { - "raw": "express-session", - "scope": null, - "escapedName": "express-session", - "name": "express-session", - "rawSpec": "", - "spec": "latest", - "type": "tag" - }, - "_requiredBy": [ - "#USER" - ], - "_resolved": "https://registry.npmjs.org/express-session/-/express-session-1.14.2.tgz", - "_shasum": "6bcf586ed6d1dc37b02570087756c9de7b80b275", - "_shrinkwrap": null, - "_spec": "express-session", - "_where": "F:\\github\\HopeLibrarySystem", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": "http://tjholowaychuk.com" - }, - "bugs": { - "url": "https://github.com/expressjs/session/issues" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Joe Wagner", - "email": "njwjs722@gmail.com" - } - ], - "dependencies": { - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "crc": "3.4.1", - "debug": "~2.2.0", - "depd": "~1.1.0", - "on-headers": "~1.0.1", - "parseurl": "~1.3.1", - "uid-safe": "~2.1.3", - "utils-merge": "1.0.0" - }, - "description": "Simple session middleware for Express", - "devDependencies": { - "after": "0.8.2", - "cookie-parser": "1.4.3", - "express": "4.14.0", - "istanbul": "0.4.5", - "mocha": "2.5.3", - "supertest": "1.1.0" - }, - "directories": {}, - "dist": { - "shasum": "6bcf586ed6d1dc37b02570087756c9de7b80b275", - "tarball": "https://registry.npmjs.org/express-session/-/express-session-1.14.2.tgz" - }, - "engines": { - "node": ">= 0.8.0" - }, - "files": [ - "session/", - "HISTORY.md", - "LICENSE", - "index.js" - ], - "gitHead": "1a61416bdaae56fc4a2a3af708f992d4dd2885c9", - "homepage": "https://github.com/expressjs/session#readme", - "license": "MIT", - "maintainers": [ - { - "name": "defunctzombie", - "email": "shtylman@gmail.com" - }, - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "mscdex", - "email": "mscdex@mscdex.net" - } - ], - "name": "express-session", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/expressjs/session.git" - }, - "scripts": { - "test": "mocha --bail --reporter spec test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec test/" - }, - "version": "1.14.2" -} diff --git a/node_modules/express-session/session/cookie.js b/node_modules/express-session/session/cookie.js deleted file mode 100644 index 60ef22a..0000000 --- a/node_modules/express-session/session/cookie.js +++ /dev/null @@ -1,130 +0,0 @@ -/*! - * Connect - session - Cookie - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - */ - -var merge = require('utils-merge') - , cookie = require('cookie'); - -/** - * Initialize a new `Cookie` with the given `options`. - * - * @param {IncomingMessage} req - * @param {Object} options - * @api private - */ - -var Cookie = module.exports = function Cookie(options) { - this.path = '/'; - this.maxAge = null; - this.httpOnly = true; - if (options) merge(this, options); - this.originalMaxAge = undefined == this.originalMaxAge - ? this.maxAge - : this.originalMaxAge; -}; - -/*! - * Prototype. - */ - -Cookie.prototype = { - - /** - * Set expires `date`. - * - * @param {Date} date - * @api public - */ - - set expires(date) { - this._expires = date; - this.originalMaxAge = this.maxAge; - }, - - /** - * Get expires `date`. - * - * @return {Date} - * @api public - */ - - get expires() { - return this._expires; - }, - - /** - * Set expires via max-age in `ms`. - * - * @param {Number} ms - * @api public - */ - - set maxAge(ms) { - this.expires = 'number' == typeof ms - ? new Date(Date.now() + ms) - : ms; - }, - - /** - * Get expires max-age in `ms`. - * - * @return {Number} - * @api public - */ - - get maxAge() { - return this.expires instanceof Date - ? this.expires.valueOf() - Date.now() - : this.expires; - }, - - /** - * Return cookie data object. - * - * @return {Object} - * @api private - */ - - get data() { - return { - originalMaxAge: this.originalMaxAge - , expires: this._expires - , secure: this.secure - , httpOnly: this.httpOnly - , domain: this.domain - , path: this.path - , sameSite: this.sameSite - } - }, - - /** - * Return a serialized cookie string. - * - * @return {String} - * @api public - */ - - serialize: function(name, val){ - return cookie.serialize(name, val, this.data); - }, - - /** - * Return JSON representation of this cookie. - * - * @return {Object} - * @api private - */ - - toJSON: function(){ - return this.data; - } -}; diff --git a/node_modules/express-session/session/memory.js b/node_modules/express-session/session/memory.js deleted file mode 100644 index 25252b6..0000000 --- a/node_modules/express-session/session/memory.js +++ /dev/null @@ -1,185 +0,0 @@ -/*! - * express-session - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var Store = require('./store') -var util = require('util') - -/** - * Shim setImmediate for node.js < 0.10 - * @private - */ - -/* istanbul ignore next */ -var defer = typeof setImmediate === 'function' - ? setImmediate - : function(fn){ process.nextTick(fn.bind.apply(fn, arguments)) } - -/** - * Module exports. - */ - -module.exports = MemoryStore - -/** - * A session store in memory. - * @public - */ - -function MemoryStore() { - Store.call(this) - this.sessions = Object.create(null) -} - -/** - * Inherit from Store. - */ - -util.inherits(MemoryStore, Store) - -/** - * Get all active sessions. - * - * @param {function} callback - * @public - */ - -MemoryStore.prototype.all = function all(callback) { - var sessionIds = Object.keys(this.sessions) - var sessions = Object.create(null) - - for (var i = 0; i < sessionIds.length; i++) { - var sessionId = sessionIds[i] - var session = getSession.call(this, sessionId) - - if (session) { - sessions[sessionId] = session; - } - } - - callback && defer(callback, null, sessions) -} - -/** - * Clear all sessions. - * - * @param {function} callback - * @public - */ - -MemoryStore.prototype.clear = function clear(callback) { - this.sessions = Object.create(null) - callback && defer(callback) -} - -/** - * Destroy the session associated with the given session ID. - * - * @param {string} sessionId - * @public - */ - -MemoryStore.prototype.destroy = function destroy(sessionId, callback) { - delete this.sessions[sessionId] - callback && defer(callback) -} - -/** - * Fetch session by the given session ID. - * - * @param {string} sessionId - * @param {function} callback - * @public - */ - -MemoryStore.prototype.get = function get(sessionId, callback) { - defer(callback, null, getSession.call(this, sessionId)) -} - -/** - * Commit the given session associated with the given sessionId to the store. - * - * @param {string} sessionId - * @param {object} session - * @param {function} callback - * @public - */ - -MemoryStore.prototype.set = function set(sessionId, session, callback) { - this.sessions[sessionId] = JSON.stringify(session) - callback && defer(callback) -} - -/** - * Get number of active sessions. - * - * @param {function} callback - * @public - */ - -MemoryStore.prototype.length = function length(callback) { - this.all(function (err, sessions) { - if (err) return callback(err) - callback(null, Object.keys(sessions).length) - }) -} - -/** - * Touch the given session object associated with the given session ID. - * - * @param {string} sessionId - * @param {object} session - * @param {function} callback - * @public - */ - -MemoryStore.prototype.touch = function touch(sessionId, session, callback) { - var currentSession = getSession.call(this, sessionId) - - if (currentSession) { - // update expiration - currentSession.cookie = session.cookie - this.sessions[sessionId] = JSON.stringify(currentSession) - } - - callback && defer(callback) -} - -/** - * Get session from the store. - * @private - */ - -function getSession(sessionId) { - var sess = this.sessions[sessionId] - - if (!sess) { - return - } - - // parse - sess = JSON.parse(sess) - - var expires = typeof sess.cookie.expires === 'string' - ? new Date(sess.cookie.expires) - : sess.cookie.expires - - // destroy expired session - if (expires && expires <= Date.now()) { - delete this.sessions[sessionId] - return - } - - return sess -} diff --git a/node_modules/express-session/session/session.js b/node_modules/express-session/session/session.js deleted file mode 100644 index 2eacde6..0000000 --- a/node_modules/express-session/session/session.js +++ /dev/null @@ -1,142 +0,0 @@ -/*! - * Connect - session - Session - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -'use strict'; - -/** - * Expose Session. - */ - -module.exports = Session; - -/** - * Create a new `Session` with the given request and `data`. - * - * @param {IncomingRequest} req - * @param {Object} data - * @api private - */ - -function Session(req, data) { - Object.defineProperty(this, 'req', { value: req }); - Object.defineProperty(this, 'id', { value: req.sessionID }); - - if (typeof data === 'object' && data !== null) { - // merge data into this, ignoring prototype properties - for (var prop in data) { - if (!(prop in this)) { - this[prop] = data[prop] - } - } - } -} - -/** - * Update reset `.cookie.maxAge` to prevent - * the cookie from expiring when the - * session is still active. - * - * @return {Session} for chaining - * @api public - */ - -defineMethod(Session.prototype, 'touch', function touch() { - return this.resetMaxAge(); -}); - -/** - * Reset `.maxAge` to `.originalMaxAge`. - * - * @return {Session} for chaining - * @api public - */ - -defineMethod(Session.prototype, 'resetMaxAge', function resetMaxAge() { - this.cookie.maxAge = this.cookie.originalMaxAge; - return this; -}); - -/** - * Save the session data with optional callback `fn(err)`. - * - * @param {Function} fn - * @return {Session} for chaining - * @api public - */ - -defineMethod(Session.prototype, 'save', function save(fn) { - this.req.sessionStore.set(this.id, this, fn || function(){}); - return this; -}); - -/** - * Re-loads the session data _without_ altering - * the maxAge properties. Invokes the callback `fn(err)`, - * after which time if no exception has occurred the - * `req.session` property will be a new `Session` object, - * although representing the same session. - * - * @param {Function} fn - * @return {Session} for chaining - * @api public - */ - -defineMethod(Session.prototype, 'reload', function reload(fn) { - var req = this.req - , store = this.req.sessionStore; - store.get(this.id, function(err, sess){ - if (err) return fn(err); - if (!sess) return fn(new Error('failed to load session')); - store.createSession(req, sess); - fn(); - }); - return this; -}); - -/** - * Destroy `this` session. - * - * @param {Function} fn - * @return {Session} for chaining - * @api public - */ - -defineMethod(Session.prototype, 'destroy', function destroy(fn) { - delete this.req.session; - this.req.sessionStore.destroy(this.id, fn); - return this; -}); - -/** - * Regenerate this request's session. - * - * @param {Function} fn - * @return {Session} for chaining - * @api public - */ - -defineMethod(Session.prototype, 'regenerate', function regenerate(fn) { - this.req.sessionStore.regenerate(this.req, fn); - return this; -}); - -/** - * Helper function for creating a method on a prototype. - * - * @param {Object} obj - * @param {String} name - * @param {Function} fn - * @private - */ -function defineMethod(obj, name, fn) { - Object.defineProperty(obj, name, { - configurable: true, - enumerable: false, - value: fn, - writable: true - }); -}; diff --git a/node_modules/express-session/session/store.js b/node_modules/express-session/session/store.js deleted file mode 100644 index 387469c..0000000 --- a/node_modules/express-session/session/store.js +++ /dev/null @@ -1,94 +0,0 @@ -/*! - * Connect - session - Store - * Copyright(c) 2010 Sencha Inc. - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -'use strict'; - -/** - * Module dependencies. - * @private - */ - -var Cookie = require('./cookie') -var EventEmitter = require('events').EventEmitter -var Session = require('./session') -var util = require('util') - -/** - * Module exports. - * @public - */ - -module.exports = Store - -/** - * Abstract base class for session stores. - * @public - */ - -function Store () { - EventEmitter.call(this) -} - -/** - * Inherit from EventEmitter. - */ - -util.inherits(Store, EventEmitter) - -/** - * Re-generate the given requests's session. - * - * @param {IncomingRequest} req - * @return {Function} fn - * @api public - */ - -Store.prototype.regenerate = function(req, fn){ - var self = this; - this.destroy(req.sessionID, function(err){ - self.generate(req); - fn(err); - }); -}; - -/** - * Load a `Session` instance via the given `sid` - * and invoke the callback `fn(err, sess)`. - * - * @param {String} sid - * @param {Function} fn - * @api public - */ - -Store.prototype.load = function(sid, fn){ - var self = this; - this.get(sid, function(err, sess){ - if (err) return fn(err); - if (!sess) return fn(); - var req = { sessionID: sid, sessionStore: self }; - fn(null, self.createSession(req, sess)) - }); -}; - -/** - * Create session from JSON `sess` data. - * - * @param {IncomingRequest} req - * @param {Object} sess - * @return {Session} - * @api private - */ - -Store.prototype.createSession = function(req, sess){ - var expires = sess.cookie.expires - , orig = sess.cookie.originalMaxAge; - sess.cookie = new Cookie(sess.cookie); - if ('string' == typeof expires) sess.cookie.expires = new Date(expires); - sess.cookie.originalMaxAge = orig; - req.session = new Session(req, sess); - return req.session; -}; diff --git a/node_modules/on-headers/HISTORY.md b/node_modules/on-headers/HISTORY.md deleted file mode 100644 index e51ff01..0000000 --- a/node_modules/on-headers/HISTORY.md +++ /dev/null @@ -1,16 +0,0 @@ -1.0.1 / 2015-09-29 -================== - - * perf: enable strict mode - -1.0.0 / 2014-08-10 -================== - - * Honor `res.statusCode` change in `listener` - * Move to `jshttp` orgainzation - * Prevent `arguments`-related de-opt - -0.0.0 / 2014-05-13 -================== - - * Initial implementation diff --git a/node_modules/on-headers/LICENSE b/node_modules/on-headers/LICENSE deleted file mode 100644 index b7dce6c..0000000 --- a/node_modules/on-headers/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/on-headers/README.md b/node_modules/on-headers/README.md deleted file mode 100644 index 48ed9ae..0000000 --- a/node_modules/on-headers/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# on-headers - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Execute a listener when a response is about to write headers. - -## Installation - -```sh -$ npm install on-headers -``` - -## API - -```js -var onHeaders = require('on-headers') -``` - -### onHeaders(res, listener) - -This will add the listener `listener` to fire when headers are emitted for `res`. -The listener is passed the `response` object as it's context (`this`). Headers are -considered to be emitted only once, right before they are sent to the client. - -When this is called multiple times on the same `res`, the `listener`s are fired -in the reverse order they were added. - -## Examples - -```js -var http = require('http') -var onHeaders = require('on-headers') - -http -.createServer(onRequest) -.listen(3000) - -function addPoweredBy() { - // set if not set by end of request - if (!this.getHeader('X-Powered-By')) { - this.setHeader('X-Powered-By', 'Node.js') - } -} - -function onRequest(req, res) { - onHeaders(res, addPoweredBy) - - res.setHeader('Content-Type', 'text/plain') - res.end('hello!') -} -``` - -## Testing - -```sh -$ npm test -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/on-headers.svg -[npm-url]: https://npmjs.org/package/on-headers -[node-version-image]: https://img.shields.io/node/v/on-headers.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/on-headers/master.svg -[travis-url]: https://travis-ci.org/jshttp/on-headers -[coveralls-image]: https://img.shields.io/coveralls/jshttp/on-headers/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/on-headers?branch=master -[downloads-image]: https://img.shields.io/npm/dm/on-headers.svg -[downloads-url]: https://npmjs.org/package/on-headers diff --git a/node_modules/on-headers/index.js b/node_modules/on-headers/index.js deleted file mode 100644 index 089f2b3..0000000 --- a/node_modules/on-headers/index.js +++ /dev/null @@ -1,93 +0,0 @@ -/*! - * on-headers - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Reference to Array slice. - */ - -var slice = Array.prototype.slice - -/** - * Execute a listener when a response is about to write headers. - * - * @param {Object} res - * @return {Function} listener - * @api public - */ - -module.exports = function onHeaders(res, listener) { - if (!res) { - throw new TypeError('argument res is required') - } - - if (typeof listener !== 'function') { - throw new TypeError('argument listener must be a function') - } - - res.writeHead = createWriteHead(res.writeHead, listener) -} - -function createWriteHead(prevWriteHead, listener) { - var fired = false; - - // return function with core name and argument list - return function writeHead(statusCode) { - // set headers from arguments - var args = setWriteHeadHeaders.apply(this, arguments); - - // fire listener - if (!fired) { - fired = true - listener.call(this) - - // pass-along an updated status code - if (typeof args[0] === 'number' && this.statusCode !== args[0]) { - args[0] = this.statusCode - args.length = 1 - } - } - - prevWriteHead.apply(this, args); - } -} - -function setWriteHeadHeaders(statusCode) { - var length = arguments.length - var headerIndex = length > 1 && typeof arguments[1] === 'string' - ? 2 - : 1 - - var headers = length >= headerIndex + 1 - ? arguments[headerIndex] - : undefined - - this.statusCode = statusCode - - // the following block is from node.js core - if (Array.isArray(headers)) { - // handle array case - for (var i = 0, len = headers.length; i < len; ++i) { - this.setHeader(headers[i][0], headers[i][1]) - } - } else if (headers) { - // handle object case - var keys = Object.keys(headers) - for (var i = 0; i < keys.length; i++) { - var k = keys[i] - if (k) this.setHeader(k, headers[k]) - } - } - - // copy leading arguments - var args = new Array(Math.min(length, headerIndex)) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - - return args -} diff --git a/node_modules/on-headers/package.json b/node_modules/on-headers/package.json deleted file mode 100644 index 7ad21d9..0000000 --- a/node_modules/on-headers/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "on-headers@~1.0.1", - "scope": null, - "escapedName": "on-headers", - "name": "on-headers", - "rawSpec": "~1.0.1", - "spec": ">=1.0.1 <1.1.0", - "type": "range" - }, - "F:\\github\\HopeLibrarySystem\\node_modules\\express-session" - ] - ], - "_from": "on-headers@>=1.0.1 <1.1.0", - "_id": "on-headers@1.0.1", - "_inCache": true, - "_location": "/on-headers", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "_npmVersion": "1.4.28", - "_phantomChildren": {}, - "_requested": { - "raw": "on-headers@~1.0.1", - "scope": null, - "escapedName": "on-headers", - "name": "on-headers", - "rawSpec": "~1.0.1", - "spec": ">=1.0.1 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/express-session" - ], - "_resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "_shasum": "928f5d0f470d49342651ea6794b0857c100693f7", - "_shrinkwrap": null, - "_spec": "on-headers@~1.0.1", - "_where": "F:\\github\\HopeLibrarySystem\\node_modules\\express-session", - "author": { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - "bugs": { - "url": "https://github.com/jshttp/on-headers/issues" - }, - "dependencies": {}, - "description": "Execute a listener when a response is about to write headers", - "devDependencies": { - "istanbul": "0.3.21", - "mocha": "2.3.3", - "supertest": "1.1.0" - }, - "directories": {}, - "dist": { - "shasum": "928f5d0f470d49342651ea6794b0857c100693f7", - "tarball": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz" - }, - "engines": { - "node": ">= 0.8" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "gitHead": "ab0156a979d72353cfe666cccb3639e016b00280", - "homepage": "https://github.com/jshttp/on-headers", - "keywords": [ - "event", - "headers", - "http", - "onheaders" - ], - "license": "MIT", - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "name": "on-headers", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/jshttp/on-headers.git" - }, - "scripts": { - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - }, - "version": "1.0.1" -} diff --git a/node_modules/random-bytes/HISTORY.md b/node_modules/random-bytes/HISTORY.md deleted file mode 100644 index 8cabd9d..0000000 --- a/node_modules/random-bytes/HISTORY.md +++ /dev/null @@ -1,4 +0,0 @@ -1.0.0 / 2016-01-17 -================== - - * Initial release diff --git a/node_modules/random-bytes/LICENSE b/node_modules/random-bytes/LICENSE deleted file mode 100644 index c24dbe3..0000000 --- a/node_modules/random-bytes/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/random-bytes/README.md b/node_modules/random-bytes/README.md deleted file mode 100644 index df5aacc..0000000 --- a/node_modules/random-bytes/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# random-bytes - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Generate strong pseudo-random bytes. - -This module is a simple wrapper around the Node.js core `crypto.randomBytes` API, -with the following additions: - - * A `Promise` interface for environments with promises. - * For Node.js versions that do not wait for the PRNG to be seeded, this module - will wait a bit. - -## Installation - -```sh -$ npm install random-bytes -``` - -## API - -```js -var randomBytes = require('random-bytes') -``` - -### randomBytes(size, callback) - -Generates strong pseudo-random bytes. The `size` argument is a number indicating -the number of bytes to generate. - -```js -randomBytes(12, function (error, bytes) { - if (error) throw error - // do something with the bytes -}) -``` - -### randomBytes(size) - -Generates strong pseudo-random bytes and return a `Promise`. The `size` argument is -a number indicating the number of bytes to generate. - -**Note**: To use promises in Node.js _prior to 0.12_, promises must be -"polyfilled" using `global.Promise = require('bluebird')`. - -```js -randomBytes(18).then(function (string) { - // do something with the string -}) -``` - -### randomBytes.sync(size) - -A synchronous version of above. - -```js -var bytes = randomBytes.sync(18) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/random-bytes.svg -[npm-url]: https://npmjs.org/package/random-bytes -[node-version-image]: https://img.shields.io/node/v/random-bytes.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/crypto-utils/random-bytes/master.svg -[travis-url]: https://travis-ci.org/crypto-utils/random-bytes -[coveralls-image]: https://img.shields.io/coveralls/crypto-utils/random-bytes/master.svg -[coveralls-url]: https://coveralls.io/r/crypto-utils/random-bytes?branch=master -[downloads-image]: https://img.shields.io/npm/dm/random-bytes.svg -[downloads-url]: https://npmjs.org/package/random-bytes diff --git a/node_modules/random-bytes/index.js b/node_modules/random-bytes/index.js deleted file mode 100644 index 9ad930f..0000000 --- a/node_modules/random-bytes/index.js +++ /dev/null @@ -1,101 +0,0 @@ -/*! - * random-bytes - * Copyright(c) 2016 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var crypto = require('crypto') - -/** - * Module variables. - * @private - */ - -var generateAttempts = crypto.randomBytes === crypto.pseudoRandomBytes ? 1 : 3 - -/** - * Module exports. - * @public - */ - -module.exports = randomBytes -module.exports.sync = randomBytesSync - -/** - * Generates strong pseudo-random bytes. - * - * @param {number} size - * @param {function} [callback] - * @return {Promise} - * @public - */ - -function randomBytes(size, callback) { - // validate callback is a function, if provided - if (callback !== undefined && typeof callback !== 'function') { - throw new TypeError('argument callback must be a function') - } - - // require the callback without promises - if (!callback && !global.Promise) { - throw new TypeError('argument callback is required') - } - - if (callback) { - // classic callback style - return generateRandomBytes(size, generateAttempts, callback) - } - - return new Promise(function executor(resolve, reject) { - generateRandomBytes(size, generateAttempts, function onRandomBytes(err, str) { - if (err) return reject(err) - resolve(str) - }) - }) -} - -/** - * Generates strong pseudo-random bytes sync. - * - * @param {number} size - * @return {Buffer} - * @public - */ - -function randomBytesSync(size) { - var err = null - - for (var i = 0; i < generateAttempts; i++) { - try { - return crypto.randomBytes(size) - } catch (e) { - err = e - } - } - - throw err -} - -/** - * Generates strong pseudo-random bytes. - * - * @param {number} size - * @param {number} attempts - * @param {function} callback - * @private - */ - -function generateRandomBytes(size, attempts, callback) { - crypto.randomBytes(size, function onRandomBytes(err, buf) { - if (!err) return callback(null, buf) - if (!--attempts) return callback(err) - setTimeout(generateRandomBytes.bind(null, size, attempts, callback), 10) - }) -} diff --git a/node_modules/random-bytes/package.json b/node_modules/random-bytes/package.json deleted file mode 100644 index d426ef0..0000000 --- a/node_modules/random-bytes/package.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "random-bytes@~1.0.0", - "scope": null, - "escapedName": "random-bytes", - "name": "random-bytes", - "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "F:\\github\\HopeLibrarySystem\\node_modules\\uid-safe" - ] - ], - "_from": "random-bytes@>=1.0.0 <1.1.0", - "_id": "random-bytes@1.0.0", - "_inCache": true, - "_location": "/random-bytes", - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "_npmVersion": "1.4.28", - "_phantomChildren": {}, - "_requested": { - "raw": "random-bytes@~1.0.0", - "scope": null, - "escapedName": "random-bytes", - "name": "random-bytes", - "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "_requiredBy": [ - "/uid-safe" - ], - "_resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "_shasum": "4f68a1dc0ae58bd3fb95848c30324db75d64360b", - "_shrinkwrap": null, - "_spec": "random-bytes@~1.0.0", - "_where": "F:\\github\\HopeLibrarySystem\\node_modules\\uid-safe", - "bugs": { - "url": "https://github.com/crypto-utils/random-bytes/issues" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - } - ], - "dependencies": {}, - "description": "URL and cookie safe UIDs", - "devDependencies": { - "bluebird": "3.1.1", - "istanbul": "0.4.2", - "mocha": "2.3.4", - "proxyquire": "1.2.0" - }, - "directories": {}, - "dist": { - "shasum": "4f68a1dc0ae58bd3fb95848c30324db75d64360b", - "tarball": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz" - }, - "engines": { - "node": ">= 0.8" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "gitHead": "3dcd47425a3dfe858ee8debcd4db0c1222110bc3", - "homepage": "https://github.com/crypto-utils/random-bytes", - "keywords": [ - "bytes", - "generator", - "random", - "safe" - ], - "license": "MIT", - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - } - ], - "name": "random-bytes", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/crypto-utils/random-bytes.git" - }, - "scripts": { - "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/" - }, - "version": "1.0.0" -} diff --git a/node_modules/uid-safe/HISTORY.md b/node_modules/uid-safe/HISTORY.md deleted file mode 100644 index ae0ff05..0000000 --- a/node_modules/uid-safe/HISTORY.md +++ /dev/null @@ -1,51 +0,0 @@ -2.1.3 / 2016-10-30 -================== - - * deps: base64-url@1.3.3 - -2.1.2 / 2016-08-15 -================== - - * deps: base64-url@1.3.2 - -2.1.1 / 2016-05-04 -================== - - * deps: base64-url@1.2.2 - -2.1.0 / 2016-01-17 -================== - - * Use `random-bytes` for byte source - -2.0.0 / 2015-05-08 -================== - - * Use global `Promise` when returning a promise - -1.1.0 / 2015-02-01 -================== - - * Use `crypto.randomBytes`, if available - * deps: base64-url@1.2.1 - -1.0.3 / 2015-01-31 -================== - - * Fix error branch that would throw - * deps: base64-url@1.2.0 - -1.0.2 / 2015-01-08 -================== - - * Remove dependency on `mz` - -1.0.1 / 2014-06-18 -================== - - * Remove direct `bluebird` dependency - -1.0.0 / 2014-06-18 -================== - - * Initial release diff --git a/node_modules/uid-safe/LICENSE b/node_modules/uid-safe/LICENSE deleted file mode 100644 index 7a7a4e1..0000000 --- a/node_modules/uid-safe/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015-2016 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/uid-safe/README.md b/node_modules/uid-safe/README.md deleted file mode 100644 index fa02be8..0000000 --- a/node_modules/uid-safe/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# uid-safe - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -URL and cookie safe UIDs - -Create cryptographically secure UIDs safe for both cookie and URL usage. -This is in contrast to modules such as [rand-token](https://www.npmjs.com/package/rand-token) -and [uid2](https://www.npmjs.com/package/uid2) whose UIDs are actually skewed -due to the use of `%` and unnecessarily truncate the UID. -Use this if you could still use UIDs with `-` and `_` in them. - -## Installation - -```sh -$ npm install uid-safe -``` - -## API - -```js -var uid = require('uid-safe') -``` - -### uid(byteLength, callback) - -Asynchronously create a UID with a specific byte length. Because `base64` -encoding is used underneath, this is not the string length. For example, -to create a UID of length 24, you want a byte length of 18. - -```js -uid(18, function (err, string) { - if (err) throw err - // do something with the string -}) -``` - -### uid(byteLength) - -Asynchronously create a UID with a specific byte length and return a -`Promise`. - -**Note**: To use promises in Node.js _prior to 0.12_, promises must be -"polyfilled" using `global.Promise = require('bluebird')`. - -```js -uid(18).then(function (string) { - // do something with the string -}) -``` - -### uid.sync(byteLength) - -A synchronous version of above. - -```js -var string = uid.sync(18) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/uid-safe.svg -[npm-url]: https://npmjs.org/package/uid-safe -[node-version-image]: https://img.shields.io/node/v/uid-safe.svg -[node-version-url]: https://nodejs.org/en/download/ -[travis-image]: https://img.shields.io/travis/crypto-utils/uid-safe/master.svg -[travis-url]: https://travis-ci.org/crypto-utils/uid-safe -[coveralls-image]: https://img.shields.io/coveralls/crypto-utils/uid-safe/master.svg -[coveralls-url]: https://coveralls.io/r/crypto-utils/uid-safe?branch=master -[downloads-image]: https://img.shields.io/npm/dm/uid-safe.svg -[downloads-url]: https://npmjs.org/package/uid-safe diff --git a/node_modules/uid-safe/index.js b/node_modules/uid-safe/index.js deleted file mode 100644 index 92ab744..0000000 --- a/node_modules/uid-safe/index.js +++ /dev/null @@ -1,96 +0,0 @@ -/*! - * uid-safe - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015-2016 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var escape = require('base64-url').escape -var randomBytes = require('random-bytes') - -/** - * Module exports. - * @public - */ - -module.exports = uid -module.exports.sync = uidSync - -/** - * Create a unique ID. - * - * @param {number} length - * @param {function} [callback] - * @return {Promise} - * @public - */ - -function uid (length, callback) { - // validate callback is a function, if provided - if (callback !== undefined && typeof callback !== 'function') { - throw new TypeError('argument callback must be a function') - } - - // require the callback without promises - if (!callback && !global.Promise) { - throw new TypeError('argument callback is required') - } - - if (callback) { - // classic callback style - return generateUid(length, callback) - } - - return new Promise(function executor (resolve, reject) { - generateUid(length, function onUid (err, str) { - if (err) return reject(err) - resolve(str) - }) - }) -} - -/** - * Create a unique ID sync. - * - * @param {number} length - * @return {string} - * @public - */ - -function uidSync (length) { - return toString(randomBytes.sync(length)) -} - -/** - * Generate a unique ID string. - * - * @param {number} length - * @param {function} callback - * @private - */ - -function generateUid (length, callback) { - randomBytes(length, function (err, buf) { - if (err) return callback(err) - callback(null, toString(buf)) - }) -} - -/** - * Change a Buffer into a string. - * - * @param {Buffer} buf - * @return {string} - * @private - */ - -function toString (buf) { - return escape(buf.toString('base64')) -} diff --git a/node_modules/uid-safe/package.json b/node_modules/uid-safe/package.json deleted file mode 100644 index 198fd74..0000000 --- a/node_modules/uid-safe/package.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "uid-safe@~2.1.3", - "scope": null, - "escapedName": "uid-safe", - "name": "uid-safe", - "rawSpec": "~2.1.3", - "spec": ">=2.1.3 <2.2.0", - "type": "range" - }, - "F:\\github\\HopeLibrarySystem\\node_modules\\express-session" - ] - ], - "_from": "uid-safe@>=2.1.3 <2.2.0", - "_id": "uid-safe@2.1.3", - "_inCache": true, - "_location": "/uid-safe", - "_nodeVersion": "4.6.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/uid-safe-2.1.3.tgz_1477877693384_0.2595773837529123" - }, - "_npmUser": { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - "_npmVersion": "2.15.9", - "_phantomChildren": {}, - "_requested": { - "raw": "uid-safe@~2.1.3", - "scope": null, - "escapedName": "uid-safe", - "name": "uid-safe", - "rawSpec": "~2.1.3", - "spec": ">=2.1.3 <2.2.0", - "type": "range" - }, - "_requiredBy": [ - "/express-session" - ], - "_resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.3.tgz", - "_shasum": "077e264a00b3187936b270bb7376a26473631071", - "_shrinkwrap": null, - "_spec": "uid-safe@~2.1.3", - "_where": "F:\\github\\HopeLibrarySystem\\node_modules\\express-session", - "bugs": { - "url": "https://github.com/crypto-utils/uid-safe/issues" - }, - "contributors": [ - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com" - } - ], - "dependencies": { - "base64-url": "1.3.3", - "random-bytes": "~1.0.0" - }, - "description": "URL and cookie safe UIDs", - "devDependencies": { - "bluebird": "3.4.6", - "eslint": "3.9.0", - "eslint-config-standard": "6.2.1", - "eslint-plugin-promise": "3.3.0", - "eslint-plugin-standard": "2.0.1", - "istanbul": "0.4.5", - "mocha": "2.5.3" - }, - "directories": {}, - "dist": { - "shasum": "077e264a00b3187936b270bb7376a26473631071", - "tarball": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.3.tgz" - }, - "engines": { - "node": ">= 0.8" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "gitHead": "3bc2de784695ddca022d3068231161f50dfb584d", - "homepage": "https://github.com/crypto-utils/uid-safe#readme", - "keywords": [ - "random", - "generator", - "uid", - "safe" - ], - "license": "MIT", - "maintainers": [ - { - "name": "dougwilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "fishrock123", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "jongleberry", - "email": "jonathanrichardong@gmail.com" - } - ], - "name": "uid-safe", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+https://github.com/crypto-utils/uid-safe.git" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/" - }, - "version": "2.1.3" -} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..57982c3 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5761 @@ +{ + "name": "hope-borrow", + "version": "1.0.0", + "lockfileVersion": 1, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true + }, + "accepts": { + "version": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=" + }, + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true + }, + "acorn-object-spread": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz", + "integrity": "sha1-SOrQ9KjrFplaF6Dbn/xqyq2kumg=", + "dev": true + }, + "addressparser": { + "version": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", + "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=" + }, + "after": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz", + "integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "dev": true + }, + "archive-type": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz", + "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=", + "dev": true, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "dev": true + } + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "optional": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true + }, + "arr-flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", + "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "autoprefixer": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.1.tgz", + "integrity": "sha1-l7yFTH0Ll5+NZIneVHoNF/swf20=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64id": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz", + "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=", + "dev": true + }, + "batch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", + "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true + }, + "bignumber.js": { + "version": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz", + "integrity": "sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg=" + }, + "bin-build": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz", + "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=", + "dev": true, + "optional": true + }, + "bin-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz", + "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=", + "dev": true, + "optional": true + }, + "bin-version": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz", + "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=", + "dev": true, + "optional": true + }, + "bin-version-check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz", + "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=", + "dev": true, + "optional": true + }, + "bin-wrapper": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", + "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=", + "dev": true, + "optional": true + }, + "binary-extensions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", + "dev": true + }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "body-parser": { + "version": "https://registry.npmjs.org/body-parser/-/body-parser-1.15.2.tgz", + "integrity": "sha1-11eM9PHRHV9uqATO813Hp/9trmc=" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true + }, + "browser-sync": { + "version": "2.18.12", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.18.12.tgz", + "integrity": "sha1-u6oKF6lh4rXwqOdg5pUCcYZmR3k=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.4.tgz", + "integrity": "sha1-dYaps8OXQcAoKuM0RcTorHRzT+A=", + "dev": true, + "dependencies": { + "ms": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", + "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=", + "dev": true + } + } + }, + "etag": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", + "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", + "dev": true + }, + "fresh": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "dev": true + }, + "http-errors": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", + "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", + "dev": true + }, + "ms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-1.0.0.tgz", + "integrity": "sha1-Wa3NIu3FQ/e1OBhi0xOHsfS8lHM=", + "dev": true + }, + "qs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz", + "integrity": "sha1-zgPF/wk1vB2daanxTL0Y5WjWdiU=", + "dev": true + }, + "send": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.15.2.tgz", + "integrity": "sha1-+R+rRAO8+H5xb3DOtdsvV4vcF9Y=", + "dev": true + }, + "serve-static": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.2.tgz", + "integrity": "sha1-5UbicmCBuBtLzsjpCAjrzdMjr7o=", + "dev": true + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "browser-sync-client": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.5.1.tgz", + "integrity": "sha1-7BrWmknC4tS2RbGLHAbCmz2a+Os=", + "dev": true + }, + "browser-sync-ui": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-0.6.3.tgz", + "integrity": "sha1-ZApTfBgGiTA9W+krxHa568RBwLw=", + "dev": true + }, + "browserslist": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.1.5.tgz", + "integrity": "sha1-6IJVDfPRzW1IHBo+ADjyuvE6RxE=", + "dev": true + }, + "bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=", + "dev": true + }, + "buble": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/buble/-/buble-0.12.5.tgz", + "integrity": "sha1-xm/+kvn0o8ZdMlYHm3EeK9C8UBM=", + "dev": true + }, + "bubleify": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/bubleify/-/bubleify-0.5.1.tgz", + "integrity": "sha1-9lxHzuMbgMrYuedHu+GH1/5R6Sc=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-to-vinyl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz", + "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=", + "dev": true, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true + } + } + }, + "buildmail": { + "version": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.0.tgz", + "integrity": "sha1-c6LONJLlNBfzBvwb4yS+9Eo8Tqc=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "bytes": { + "version": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-lite": { + "version": "1.0.30000686", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000686.tgz", + "integrity": "sha1-2dnsYRDlUzvlRKaJAD91llMsZ9M=", + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "caw": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz", + "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true + }, + "clap": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz", + "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=", + "dev": true, + "optional": true + }, + "clean-css": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.4.tgz", + "integrity": "sha1-7siBHbJ0V+AHjYypIfqBty+oK/Q=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true + }, + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "cloneable-readable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", + "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", + "dev": true + }, + "co": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", + "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=", + "dev": true + }, + "coa": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.3.tgz", + "integrity": "sha1-G1Sl4dz3fJkEVdTe6pjFZEFtyJM=", + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true, + "optional": true + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "concat-with-sourcemaps": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", + "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=", + "dev": true + }, + "connect": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz", + "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz", + "integrity": "sha1-5R0X+PDvDbkKZP20feMFFVbp8Wk=", + "dev": true + }, + "console-stream": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", + "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=", + "dev": true, + "optional": true + }, + "content-disposition": { + "version": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz", + "integrity": "sha1-h0dsamfI2qh+Muh2Ft+IO6f7Bxs=" + }, + "content-type": { + "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "cookie": { + "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-parser": { + "version": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz", + "integrity": "sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU=" + }, + "cookie-signature": { + "version": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true + }, + "cron-parser": { + "version": "https://registry.npmjs.org/cron-parser/-/cron-parser-1.1.0.tgz", + "integrity": "sha1-B1uExFnBVejEgqtNVq/5na5YNS4=" + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "optional": true + } + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "optional": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "dateformat": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", + "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=", + "dev": true + }, + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decompress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz", + "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=", + "dev": true, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true + }, + "glob-stream": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", + "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", + "dev": true, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "ordered-read-streams": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", + "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + }, + "unique-stream": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", + "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "dev": true + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true + }, + "vinyl-fs": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", + "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", + "dev": true + } + } + }, + "decompress-tar": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz", + "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=", + "dev": true, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true + } + } + }, + "decompress-tarbz2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz", + "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=", + "dev": true, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true + } + } + }, + "decompress-targz": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz", + "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=", + "dev": true, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true + } + } + }, + "decompress-unzip": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz", + "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=", + "dev": true, + "dependencies": { + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true + } + } + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=" + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "destroy": { + "version": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-file": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", + "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", + "dev": true + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true + }, + "download": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz", + "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=", + "dev": true, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true + }, + "glob-stream": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", + "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", + "dev": true, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "ordered-read-streams": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", + "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + }, + "unique-stream": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", + "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "dev": true + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true + }, + "vinyl-fs": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", + "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", + "dev": true + } + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true + }, + "duplexify": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz", + "integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=", + "dev": true, + "dependencies": { + "end-of-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", + "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "each-async": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", + "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=", + "dev": true + }, + "easy-extender": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz", + "integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=", + "dev": true, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "eazy-logger": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", + "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true + }, + "ee-first": { + "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "https://registry.npmjs.org/ejs/-/ejs-2.5.5.tgz", + "integrity": "sha1-bvTpVOp9z1T2aq0v56pCGTLZ7Xc=" + }, + "electron-to-chromium": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.14.tgz", + "integrity": "sha1-ZK8Pnv08PGrNV9cfg7Scp+6cS0M=", + "dev": true + }, + "emitter-steward": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emitter-steward/-/emitter-steward-1.0.0.tgz", + "integrity": "sha1-80Ea3pdYp1Zd+Eiy2gy70bRsvWQ=", + "dev": true + }, + "encodeurl": { + "version": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + }, + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true + }, + "engine.io": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz", + "integrity": "sha1-PutfJky3XbvsG6rqJtYfWk6s4qo=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "engine.io-client": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.0.tgz", + "integrity": "sha1-e3MOQSdBQIdZbZvjyI0rxf22z1w=", + "dev": true, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.1.tgz", + "integrity": "sha1-lVTxrjMQfW+9FwylRm0vgz9qB88=", + "dev": true, + "dependencies": { + "has-binary": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", + "integrity": "sha1-JTJvOc+k9hath4eJTjryz7x7bhA=", + "dev": true + } + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true + }, + "escape-html": { + "version": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true, + "optional": true + }, + "etag": { + "version": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=" + }, + "event-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.1.7.tgz", + "integrity": "sha1-tMVAAS0P4UmEIPPYlGAI22OTw3o=", + "dev": true + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "exec-buffer": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.1.0.tgz", + "integrity": "sha1-hRtG0GL8qby8b/h4FpPijo2oBAI=", + "dev": true, + "optional": true + }, + "exec-series": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz", + "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=", + "dev": true, + "optional": true, + "dependencies": { + "async-each-series": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz", + "integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=", + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true + } + } + }, + "execa": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz", + "integrity": "sha1-3j+4XLjW6RyFvLzrFkWBeFy1ezY=", + "dev": true, + "optional": true + }, + "executable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz", + "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=", + "dev": true, + "optional": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true + }, + "expand-tilde": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", + "dev": true + }, + "express": { + "version": "https://registry.npmjs.org/express/-/express-4.14.0.tgz", + "integrity": "sha1-we4/Qs3Ikfs9xlCoki1R7IR9DWY=" + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "dev": true + }, + "fancy-log": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "dev": true + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "optional": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true + } + } + }, + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", + "dev": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", + "dev": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true + }, + "finalhandler": { + "version": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz", + "integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=" + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true + }, + "find-versions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz", + "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=", + "dev": true, + "optional": true + }, + "findup-sync": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", + "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", + "dev": true + }, + "fined": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.0.2.tgz", + "integrity": "sha1-WyhCS3YNdZiWC374SA3/itNmDpc=", + "dev": true + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", + "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true + }, + "formidable": { + "version": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz", + "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=" + }, + "forwarded": { + "version": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" + }, + "fresh": { + "version": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=" + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", + "dev": true + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "dev": true, + "optional": true, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "bundled": true, + "dev": true, + "optional": true + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "optional": true + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-proxy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz", + "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "dev": true, + "optional": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "optional": true + } + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "gifsicle": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz", + "integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=", + "dev": true, + "optional": true + }, + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true + }, + "global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", + "dev": true + }, + "global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true + } + } + }, + "glogg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "dev": true + }, + "got": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", + "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=", + "dev": true, + "dependencies": { + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true + }, + "gulp-autoprefixer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-4.0.0.tgz", + "integrity": "sha1-4AqMVxuF0GUWrCY0G+kN/Z/B6rA=", + "dev": true + }, + "gulp-clean-css": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.4.2.tgz", + "integrity": "sha1-BDh+F6iKoPKdiO2vyhZAPbsQbV0=", + "dev": true + }, + "gulp-compass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gulp-compass/-/gulp-compass-2.1.0.tgz", + "integrity": "sha1-H+8h7VR/yGhedU/DGVTE/G3SvLM=", + "dev": true, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "dependencies": { + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.0.2.tgz", + "integrity": "sha1-CjcT2NTpIhxY8QyhbAEWyeJe2nw=", + "dev": true + } + } + }, + "gulp-decompress": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz", + "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "gulp-imagemin": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/gulp-imagemin/-/gulp-imagemin-3.3.0.tgz", + "integrity": "sha1-xVdkwmBZPoWVYJ5mpAEmkR7yImQ=", + "dev": true + }, + "gulp-include": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/gulp-include/-/gulp-include-2.3.1.tgz", + "integrity": "sha1-8eDtPw/QdMNHx+WfnPA409vbPjA=", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "dev": true + }, + "ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", + "dev": true + }, + "chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "dev": true + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true + }, + "gulp-util": { + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-2.2.20.tgz", + "integrity": "sha1-1xRuVyiRC9jwR6awseVJvCLb1kw=", + "dev": true + }, + "has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz", + "integrity": "sha1-TxInqlqHEfxjL1sHofRgequLMiI=", + "dev": true + }, + "lodash.escape": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-2.4.1.tgz", + "integrity": "sha1-LOEsXghNsKV92l5dHu659dF1o7Q=", + "dev": true + }, + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true + }, + "lodash.template": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-2.4.1.tgz", + "integrity": "sha1-nmEQB+32KRKal0qzxIuBez4c8g0=", + "dev": true + }, + "lodash.templatesettings": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz", + "integrity": "sha1-6nbHXRHrhtTb6JqDiTu4YZKaxpk=", + "dev": true + }, + "minimist": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz", + "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + }, + "supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", + "dev": true + }, + "through2": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", + "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", + "dev": true + }, + "vinyl": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz", + "integrity": "sha1-vKk4IJWC7FpJrVOKAPofEl5RMlI=", + "dev": true + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "gulp-rename": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", + "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=", + "dev": true + }, + "gulp-sourcemaps": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", + "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true + } + } + }, + "gulp-uglify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.0.tgz", + "integrity": "sha1-DfAzHXKg0wLj434QlIXd3zPG0co=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true + }, + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "dev": true + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true + }, + "hosted-git-info": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", + "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true, + "optional": true + }, + "http-errors": { + "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", + "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=" + }, + "http-proxy": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", + "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true + }, + "httpntlm": { + "version": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz", + "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=" + }, + "httpreq": { + "version": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.22.tgz", + "integrity": "sha1-Jwl8itleqWeRkFMMnA9muMeq+xg=" + }, + "iconv-lite": { + "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=" + }, + "imagemin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-5.3.1.tgz", + "integrity": "sha1-8Zwu7h5xumxlWMUV+fyWaAGJptQ=", + "dev": true, + "dependencies": { + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + } + } + }, + "imagemin-gifsicle": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-5.1.0.tgz", + "integrity": "sha1-Lk3c2ioQmyIcq67EmOHi3SjKdo8=", + "dev": true, + "optional": true + }, + "imagemin-jpegtran": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-5.0.2.tgz", + "integrity": "sha1-5ogiY7j3kW/duABkDPddLpcNKtY=", + "dev": true, + "optional": true + }, + "imagemin-optipng": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", + "integrity": "sha1-0i2kEsCfX/AKQzmWC5ioix2+hpU=", + "dev": true, + "optional": true + }, + "imagemin-svgo": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-5.2.2.tgz", + "integrity": "sha1-UBaZ9XiXMKV5IrhzbqFcU/e1WDg=", + "dev": true, + "optional": true + }, + "immutable": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", + "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true + }, + "interpret": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "https://registry.npmjs.org/ip/-/ip-1.1.4.tgz", + "integrity": "sha1-3oJH/++UBFGDJVD7ooSUXm4Dm/s=" + }, + "ip-regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", + "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=", + "dev": true, + "optional": true + }, + "ipaddr.js": { + "version": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.1.1.tgz", + "integrity": "sha1-x5HZX1KynBJH1d+AraObinNkcjA=" + }, + "irregular-plurals": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz", + "integrity": "sha1-OPKZg0uowAwwvpxVThNyaXUv86w=", + "dev": true + }, + "is-absolute": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", + "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true + }, + "is-bzip2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", + "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "is-gif": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz", + "integrity": "sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true + }, + "is-gzip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", + "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=", + "dev": true + }, + "is-jpg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.0.tgz", + "integrity": "sha1-KVnBfnNDDbOCZNp1uQ3VTy2G2hw=", + "dev": true, + "optional": true + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "dev": true + }, + "is-natural-number": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz", + "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true + }, + "is-number-like": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.7.tgz", + "integrity": "sha1-o41rD9LNQoJEkSiFnu2GwD/SNVI=", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true + }, + "is-png": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", + "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=", + "dev": true, + "optional": true + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-relative": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", + "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "optional": true + }, + "is-tar": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz", + "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", + "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", + "dev": true + }, + "is-url": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", + "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", + "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=", + "dev": true + }, + "is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", + "dev": true + }, + "is-zip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz", + "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=", + "dev": true + }, + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jpegtran-bin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz", + "integrity": "sha1-9g7PSumZwL2tLp+83ytvCYHnops=", + "dev": true, + "optional": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "optional": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "jsonfile": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.0.tgz", + "integrity": "sha1-kufHRE5f/V+jLmqa6LhQNN+DR9A=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + }, + "lazy-req": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", + "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=", + "dev": true, + "optional": true + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true + }, + "libbase64": { + "version": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", + "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=" + }, + "libmime": { + "version": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz", + "integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=", + "dependencies": { + "iconv-lite": { + "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" + } + } + }, + "libqp": { + "version": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", + "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=" + }, + "liftoff": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", + "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", + "dev": true + }, + "limiter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.0.tgz", + "integrity": "sha1-bivRLKP82qEfIk4uU8iW3z8I2RM=", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + } + } + }, + "localtunnel": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.8.2.tgz", + "integrity": "sha1-kTBR6DKLUfda2KIq0fXFuMWZo1k=", + "dev": true, + "dependencies": { + "yargs": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", + "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", + "dev": true + } + } + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._escapehtmlchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz", + "integrity": "sha1-32fDu2t+jh6DGrSL+geVuSr+iZ0=", + "dev": true + }, + "lodash._escapestringchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz", + "integrity": "sha1-7P4iYYoq3lC/7qQ5N+Ud9m8O23I=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._htmlescapes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz", + "integrity": "sha1-MtFL8IRLbeb4tioFG09nwii2JMs=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._isnative": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", + "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", + "dev": true + }, + "lodash._objecttypes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", + "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._reunescapedhtml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz", + "integrity": "sha1-dHxPxAED6zu4oJduVx96JlnpO6c=", + "dev": true, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true + } + } + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash._shimkeys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", + "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", + "dev": true + }, + "lodash.assignwith": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", + "integrity": "sha1-EnqX8CrcQXUalU0ksN4X4QDgOOs=", + "dev": true + }, + "lodash.defaults": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.4.1.tgz", + "integrity": "sha1-p+iIXwXmiFEUS24SqPNngCa8TFQ=", + "dev": true, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true + } + } + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isempty": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "dev": true + }, + "lodash.isobject": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", + "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true + }, + "lodash.values": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", + "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", + "dev": true, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true + } + } + }, + "logalot": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", + "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", + "dev": true, + "optional": true + }, + "long-timeout": { + "version": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.0.2.tgz", + "integrity": "sha1-82RJuolinROnorJSOk253Wbj/2g=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true, + "optional": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "lpad-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", + "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", + "dev": true, + "optional": true + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "magic-string": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.14.0.tgz", + "integrity": "sha1-VyJK7xcByu7Sc7F6OalW5ysXJGI=", + "dev": true + }, + "mailcomposer": { + "version": "https://registry.npmjs.org/mailcomposer/-/mailcomposer-4.0.0.tgz", + "integrity": "sha1-EJssNEMxy+V/oFqC6S0MDxd1KJM=" + }, + "make-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", + "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", + "dev": true + }, + "make-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", + "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, + "media-typer": { + "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "methods": { + "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true + }, + "mime": { + "version": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" + }, + "mime-db": { + "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz", + "integrity": "sha1-wY29fHOl2/b0SgJNwNFloeexw5I=" + }, + "mime-types": { + "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", + "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=" + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true + }, + "mysql": { + "version": "https://registry.npmjs.org/mysql/-/mysql-2.12.0.tgz", + "integrity": "sha1-GPevdFVfP1W3wz1n/CykjM1JDk0=" + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "dev": true, + "optional": true + }, + "natives": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", + "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", + "dev": true + }, + "negotiator": { + "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "node-schedule": { + "version": "https://registry.npmjs.org/node-schedule/-/node-schedule-1.2.0.tgz", + "integrity": "sha1-8D1OvnGwVz4XCN2uCqRdFlhFDPE=" + }, + "node-status-codes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", + "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=", + "dev": true + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "nodemailer": { + "version": "https://registry.npmjs.org/nodemailer/-/nodemailer-2.7.0.tgz", + "integrity": "sha1-1o8dbAx6Zfx6u8PA8CAWGDASo2s=" + }, + "nodemailer-direct-transport": { + "version": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz", + "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=" + }, + "nodemailer-fetch": { + "version": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", + "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=" + }, + "nodemailer-shared": { + "version": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", + "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=" + }, + "nodemailer-smtp-pool": { + "version": "https://registry.npmjs.org/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz", + "integrity": "sha1-LrlNbPhXgLG0clzoU7nL1ejajHI=" + }, + "nodemailer-smtp-transport": { + "version": "https://registry.npmjs.org/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz", + "integrity": "sha1-A9ccdjFPFKx9vHvwM6am0W1n+3c=" + }, + "nodemailer-wellknown": { + "version": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz", + "integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=" + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true + }, + "normalize-package-data": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", + "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "optional": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", + "dev": true + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true + }, + "on-finished": { + "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" + }, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "openurl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.0.tgz", + "integrity": "sha1-4vIYnZmcBIIyAfCD8PGnzYkDGHo=", + "dev": true + }, + "opn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true + }, + "optipng-bin": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz", + "integrity": "sha1-ldNPLEiHBPb9cGBr/qDGWfHZXYQ=", + "dev": true, + "optional": true + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-filter-obj": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz", + "integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=", + "dev": true, + "optional": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-map": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.1.1.tgz", + "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=", + "dev": true + }, + "p-pipe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.1.0.tgz", + "integrity": "sha1-Lp3HzFfOZ9LOLbNIygPyhzGFQHU=", + "dev": true + }, + "parse-filepath": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", + "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parsejson": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", + "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true + }, + "parseurl": { + "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "optional": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-to-regexp": { + "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true + }, + "plur": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", + "dev": true + }, + "portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "dev": true + }, + "postcss": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.2.tgz", + "integrity": "sha1-XE/qWJ8Kw7AMqnWxy8OihBlbfl0=", + "dev": true, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "proxy-addr": { + "version": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.2.tgz", + "integrity": "sha1-tMxfImENlTWCTBI675089zxAujc=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true, + "optional": true + }, + "punycode": { + "version": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + }, + "q": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "dev": true, + "optional": true + }, + "qs": { + "version": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz", + "integrity": "sha1-O3hIwDwt7OaalSKw+ujEEm10Xzs=" + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true + } + } + }, + "range-parser": { + "version": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", + "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=" + }, + "rc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true + }, + "read-all-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", + "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true + }, + "readable-stream": { + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=" + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true + }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "request": { + "version": "2.78.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.78.0.tgz", + "integrity": "sha1-4cjew0bhyBkjskrNszfxHeyr6cw=", + "dev": true, + "dependencies": { + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "dev": true + }, + "resolve-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", + "dev": true + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + } + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + } + } + }, + "run-sequence": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/run-sequence/-/run-sequence-1.2.2.tgz", + "integrity": "sha1-UJWgvr6YczsBQL0I3YDsAw3azes=", + "dev": true + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + }, + "sax": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", + "integrity": "sha1-/YYxojvHgmvvXYcb24c3jJVkeCg=", + "dev": true, + "optional": true + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "dev": true, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true + } + } + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "semver-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", + "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=", + "dev": true, + "optional": true + }, + "semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "dev": true, + "optional": true, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + } + } + }, + "send": { + "version": "https://registry.npmjs.org/send/-/send-0.14.1.tgz", + "integrity": "sha1-qVSYQyU5L1FTKndgdg5FlZjIn3o=" + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "serve-index": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz", + "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=", + "dev": true + }, + "serve-static": { + "version": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz", + "integrity": "sha1-1sznaTUF9zPHWd5Xvvwa92wPCAU=" + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "setprototypeof": { + "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", + "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "smart-buffer": { + "version": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.0.11.tgz", + "integrity": "sha1-MFAzcJio5M3wNQ/vY90UYEn/lAo=" + }, + "smtp-connection": { + "version": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz", + "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=" + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true + }, + "socket.io": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.6.0.tgz", + "integrity": "sha1-PkDZMmN+a9kjmBslyvfFPoO24uE=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + }, + "object-assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", + "dev": true + } + } + }, + "socket.io-adapter": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", + "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", + "dev": true, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-client": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.6.0.tgz", + "integrity": "sha1-W2aPT3cTBN/u0XkGRwg4b6ZxeFM=", + "dev": true, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "dev": true + }, + "socks": { + "version": "https://registry.npmjs.org/socks/-/socks-1.1.9.tgz", + "integrity": "sha1-Yo1+TQSRJDVEWsC25Fk3bLPm1pE=" + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "split": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz", + "integrity": "sha1-Zwl8YB1pfOE2j0GPBs0gHPBSGlc=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true, + "optional": true + }, + "sqlstring": { + "version": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.2.0.tgz", + "integrity": "sha1-wxNcTqirzX5+50GklmqJHYak8ZE=" + }, + "squeak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", + "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", + "dev": true, + "optional": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "stat-mode": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", + "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", + "dev": true + }, + "statuses": { + "version": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "stream-consume": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "dev": true + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "dev": true + }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true + }, + "strip-bom-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", + "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", + "dev": true, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + } + } + }, + "strip-dirs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz", + "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=", + "dev": true, + "dependencies": { + "is-absolute": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", + "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=", + "dev": true + }, + "is-relative": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", + "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=", + "dev": true + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "optional": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "strip-outer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz", + "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=", + "dev": true + }, + "sum-up": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz", + "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "optional": true + }, + "tar-stream": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", + "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", + "dev": true, + "dependencies": { + "end-of-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "tempfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", + "dev": true + }, + "tfunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", + "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "through2-concurrent": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/through2-concurrent/-/through2-concurrent-1.1.1.tgz", + "integrity": "sha1-EctOpMnjG8puTB5tukjRxyjDUks=", + "dev": true + }, + "through2-filter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", + "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", + "dev": true + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timed-out": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz", + "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=", + "dev": true + }, + "to-absolute-glob": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", + "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", + "dev": true + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-is": { + "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", + "integrity": "sha1-4hljnBfe0coHiQkt1UoDgmuBfLI=" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz", + "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs=", + "dev": true + }, + "uglify-js": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.16.tgz", + "integrity": "sha1-/jlMZwinn/vyHKFdZZGxYzRQGuw=", + "dev": true + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "underscore": { + "version": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "universalify": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.0.tgz", + "integrity": "sha1-nrHEZR3rzGcMyU8adXYjMruWd3g=", + "dev": true + }, + "unpipe": { + "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unzip-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true + }, + "url-regex": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", + "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", + "dev": true, + "optional": true + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true + }, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true + }, + "vary": { + "version": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz", + "integrity": "sha1-4eWv+70WrnaN0mdDlLmtMCJlMUA=" + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "dev": true + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true + }, + "vinyl-assign": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz", + "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "readable-stream": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", + "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true + } + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true + }, + "vlq": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz", + "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=", + "dev": true + }, + "ware": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz", + "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=", + "dev": true + }, + "weinre": { + "version": "2.0.0-pre-I0Z7U9OV", + "resolved": "https://registry.npmjs.org/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz", + "integrity": "sha1-/viqIjkh97QLu71MPtQwL2/QqBM=", + "dev": true, + "dependencies": { + "connect": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz", + "integrity": "sha1-QogKIulDiuWait105Df1iujlKAc=", + "dev": true + }, + "express": { + "version": "2.5.11", + "resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz", + "integrity": "sha1-TOjqHzY15p5J8Ou0l7aksKUc5vA=", + "dev": true + }, + "mime": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz", + "integrity": "sha1-EbX9rynCUJJVF2uArVIClPXekrc=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + }, + "qs": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz", + "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8=", + "dev": true + } + } + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true, + "optional": true + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true + }, + "wrap-fn": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz", + "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz", + "integrity": "sha1-CC3bbGQehdS7RR8D1S8G6r2x8Bg=", + "dev": true + }, + "wtf-8": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", + "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", + "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true, + "optional": true + }, + "yargs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", + "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yauzl": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz", + "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=", + "dev": true + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + } + } +} diff --git a/package.json b/package.json index 259ece8..5e45a46 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "book camera and so on", "main": "hope", "scripts": { - "test": "start" + "test": "start", + "gulp": "gulp" }, "keywords": [ "huruji", @@ -22,5 +23,19 @@ "mysql": "^2.11.1", "node-schedule": "^1.2.0", "nodemailer": "^2.6.4" + }, + "devDependencies": { + "browser-sync": "^2.18.12", + "del": "^3.0.0", + "gulp": "^3.9.1", + "gulp-autoprefixer": "^4.0.0", + "gulp-clean-css": "^3.4.2", + "gulp-compass": "^2.1.0", + "gulp-concat": "^2.6.1", + "gulp-imagemin": "^3.3.0", + "gulp-include": "^2.3.1", + "gulp-sass": "^3.1.0", + "gulp-uglify": "^3.0.0", + "run-sequence": "^1.2.2" } } diff --git a/src/public/css/main.css b/src/public/css/main.css new file mode 100644 index 0000000..7e4a106 --- /dev/null +++ b/src/public/css/main.css @@ -0,0 +1 @@ +address,article,aside,audio,b,body,canvas,caption,code,dd,details,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,img,label,legend,li,mark,menu,nav,ol,p,pre,section,select,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,video{font-weight:inherit;font-family:inherit;font-style:inherit;font-size:100%;line-height:inherit;border:none;outline:0;padding:0;margin:0;color:inherit}img{border:0}table{width:100%!important}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}input{background:0 0;border:none}input[type=submit]{cursor:pointer}li,ol,ul{list-style:none}button{border:none}table{border-collapse:collapse;border-spacing:0}:link,:visited{text-decoration:none}pre{font-family:"Lucida Console",Consolas,"Courier New",Tahoma;color:#666;text-indent:0;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}article,aside,figcaption,figure,footer,header,hgroup,nav,section,summary{display:block}.form-group{padding:0 20px 10px;height:40px}.form-group label{width:10%;text-align:right;display:inline-block}.form-group input{border:1px solid #f0f0f0;border-radius:3px;height:24px;width:50%;padding:6px 5px;margin-left:5%;background:#fff}.form-group input[disabled=disabled]{cursor:not-allowed}.radio{display:inline-block;margin-left:25px}.radio .radio-inline{padding-left:20px;padding-top:13px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;margin-right:15px;display:inline-block;width:auto}.radio input[type=radio]{position:absolute;left:0;top:10px;width:14px;display:inline-block}.undisplay{display:none}input:-webkit-autofill,select:-webkit-autofill,textarea:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #f0f0f0 inset!important}body{font:14px/1 Helvetica,Arial,sans-serif;background:#f0f0f0;font-family:Microsoft Yahei,Helvetica,Arial,sans-serif}a{color:#000}a:hover{color:#1c95ea}.container{width:1200px;margin:0 auto}.clearfix:after{content:"";display:table;clear:both}.main-right{margin-left:244px}.t-1{width:10%}.t-2{width:20%}.t-3{width:30%}.t-4{width:40%}.t-5{width:50%}.t-6{width:60%}.t-7{width:70%}.t-8{width:80%}.t-9{width:90%}.t-10{width:100%}.center{text-align:center}.left{text-align:left}.right{text-align:right}.t-left-padding{padding-left:20px}.t-right-padding{padding-right:20px}.login{height:100%;width:100%}.login body{height:100%;width:100%}.login .login-bg{height:100%;width:100%;background-image:url(../img/login-bg.jpg);background-position:center;background-repeat:no-repeat;background-size:100%}.login .login-bg form{width:416px;height:226px;padding:45px 0;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;border-radius:6px;background-color:#fff;background-color:#fff}.login .login-bg form .form-group{height:48px}.login .login-bg form .login-bg-error{margin-left:62px;font-size:12px;color:red}.login .login-bg form .login-bg-error:after,.login .login-bg form .login-bg-error:before{width:2px;height:12px;background:red;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);content:'';display:inline-block;position:absolute;left:52px}.login .login-bg form .login-bg-error:after{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.login .login-bg form input{width:300px;height:34px;border:1px solid #ddd;background:#fafafa;border-radius:5px;margin:0 auto;display:block;padding:6px 10px;color:#838383;font-size:16px}.login .login-bg form h1{margin-bottom:30px;color:#40cd6c;font-size:30px;font-weight:700;text-align:center;font-family:"Microsoft Yahei"}.login .login-bg form .login-bg-btn{text-align:center;width:300px;height:34px;padding:6px 10px;background-color:#40cd6c;margin:5px auto;border-radius:5px}.login .login-bg form .login-bg-btn:hover{background:#44e476}.login .login-bg form .login-bg-btn a{display:block;line-height:34px;height:34px;font-size:20px;color:#fff;text-align:center}.login .login-footer{position:absolute;bottom:50px;color:#fff;width:100%}.login .login-footer p{text-align:center}.login .login-footer p a{color:#fff}.login .login-footer p span{padding:0 5px}.login .login-footer p span .github{width:14px;height:14px;display:inline-block;background-image:url(../img/github.png);background-repeat:no-repeat;background-position:center;background-size:100%;position:relative;top:2px}.header{padding:20px 0;height:22px;background:#2f3440;color:#fff}.header-title{float:left;font-size:22px;font-family:"Microsoft Yahei"}.header-right{float:right;font-family:"Microsoft Yahei"}.header-right span{line-height:22px;height:22px;cursor:pointer;padding:0 15px}.header-right span a{color:#fff}.footer{padding:35px 0;background:#2f3440;color:#fff}.footer h3{text-align:center}.footer h3 a{color:#fff}.banner{height:94px;padding:23px 0;background-image:url(../img/banner.png);background-position:center;background-repeat:no-repeat}.banner-avatar{float:left;width:90px;height:90px;border-radius:50%;border:2px solid #fff}.banner-avatar img{border-radius:50%;width:100%;height:100%}.banner-word{float:left;padding:10px 20px;color:#fff}.banner-word h2{font-size:24px;font-family:"Microsoft Yahei";line-height:1.5em}.banner-word p{font-size:16px;font-family:"Microsoft Yahei light";line-height:1.5em}.main{padding:20px 0;min-height:700px;margin-bottom:50px}.aside{border:1px solid #e1e1e1;width:223px;background:#fff;font-size:16px;font-family:"Microsoft Yahei light";float:left}.aside-list-item{height:58px;border-top:1px solid #e1e1e1;text-align:center}.aside-list-item:first-child{border-top:none}.aside-list-item a{display:block;padding:20.5px 0}.aside-list-item a:hover{background:#1c95ea;color:#fff}.aside-list .aside-list-item-active{background:#1c95ea}.aside-list .aside-list-item-active a{color:#fff}.main-right-nav{background:#fff;border:1px solid #e1e1e1;padding:19px 0;height:58px;line-height:20px;height:20px;font-size:16px}.main-right-nav-list-item{float:left;cursor:pointer;font-family:"Microsoft Yahei light";padding:0 20px;border-right:1px solid #e1e1e1}.main-right-nav-list-item a{display:block}.main-right-nav-list-item:last-child{border-right:none}.main-right-nav-list-item-active{font-weight:700}.main-right-table{margin-top:20px;background:#fff;border-right:1px solid #e1e1e1;border-left:1px solid #e1e1e1}.main-right-table table tr{border-top:1px solid #e1e1e1;border-bottom:1px solid #e1e1e1;height:45px;font-family:"Microsoft Yahei light"}.main-right-table table tr:hover{background:#f8f8f8}.main-right-table table tr th{font-weight:700}.main-right-table-manage span{display:inline-block;padding:0 6px;cursor:pointer}.main-right-table-manage span:hover{color:#1c95ea}.main-right-table-manage span.disable{cursor:not-allowed;color:#999}.main-right-charts{margin-top:20px;background:#fff;padding:20px}.main-right-charts-content{width:80%;height:400px;margin:0 auto}.main-right-charts-btns{height:70px}.main-right-charts-btns-type{width:40%;height:30px;float:left;font-size:0}.main-right-charts-btns-type span{width:50px;border:1px solid #777;display:inline-block;text-align:center;height:20px;line-height:20px;padding:10px;font-size:14px;cursor:pointer}.main-right-charts-btns-type span:last-child{border-bottom-right-radius:5px;border-top-right-radius:5px}.main-right-charts-btns-type span:first-child{border-bottom-left-radius:5px;border-top-left-radius:5px}.main-right-charts-btns-type span.active{background:#1c95ea;color:#fff}.main-right-charts-btns-times{width:40%;height:30px;float:right;font-size:0}.main-right-charts-btns-times select{font-size:14px;display:block;float:right;height:40px;border:1px solid #777;border-radius:5px;width:70px}.main-right-page-num{margin-top:20px;text-align:center;font-family:"Microsoft Yahei light"}.main-right-page-num span{display:inline-block;background:#fff;height:24px;width:24px;margin:0 5px;line-height:24px;height:24px}.main-right-page-num span a{display:block;border:1px solid #e1e1e1}.main-right-page-num span a:hover{color:#fff;background:#1c95ea}.main-right-page-num .main-right-page-num-active a{color:#fff;background:#1c95ea}.main-right-form{font-family:"Microsoft Yahei light";margin-top:20px;background:#fff;display:block;font-size:14px;padding:40px 0 0;border:1px solid #e1e1e1}.main-right-form .form-group{padding-bottom:20px}.main-right-form .main-right-form-file{height:160px;position:relative}.main-right-form .main-right-form-file input{width:130px;height:160px;border:none;position:absolute;opacity:0;cursor:pointer}.main-right-form .main-right-form-file img{position:absolute;margin-left:30px;height:100%}.main-right-form input{margin-left:25px;background:#fafafa;-webkit-box-shadow:0 0 1px #ccc inset;box-shadow:0 0 1px #ccc inset}.main-right-form input[type=radio]{margin-left:5%;-webkit-box-shadow:none;box-shadow:none;top:6px}.main-right-form input[type=radio]:focus{outline:0}.main-right-form-button{margin-top:30px;border-top:1px solid #e1e1e1;padding:20px 0;font-size:16px}.main-right-form-button-confirm{float:left;margin-right:20px;margin-left:120px;font-family:"Microsoft Yahei"}.main-right-form-button-confirm input{background:#1c95ea;color:#fff;width:94px;height:40px;cursor:pointer;font-size:16px}.main-right-form-button-cancel{float:left;width:94px;line-height:40px;height:40px;text-align:center;cursor:pointer;background:#dedede;font-family:"Microsoft Yahei"}.main-right-form-button-cancel:hover{background:#1c95ea;color:#fff}.main-right-borrow{margin-top:20px}.main-right-borrow-list-item{float:left;width:221px;border:1px solid #e1e1e1;background:#fff;margin-right:20px;margin-bottom:20px}.main-right-borrow-list-item:nth-child(4n){margin-right:0}.main-right-borrow-list-item-img{display:block;height:190px;text-align:center;border-bottom:1px solid #e1e1e1;padding:10px 20px}.main-right-borrow-list-item-img img{width:100%;height:100%}.main-right-borrow-list-item-message{padding:10px 20px;font-family:"Microsoft Yahei light";line-height:1.5em}.main-right-borrow-list-item-message p{color:#a5a5a5;padding-bottom:10px}.main-right-borrow-list-item-message h4{white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden}.main-right-borrow-list-item-message button{background:#f5f5f5;color:#333;border:1px solid #e1e1e1;height:32px;width:100%;cursor:pointer}.main-right-borrow-list-item-message button[disabled=disabled]{background:#a3a3a3;cursor:not-allowed}.main-right-borrow-list-item-message button[disabled=disabled]:hover{background:#a3a3a3}.main-right-borrow-list-item-message button:hover{background:#fafafa}.reservation-container{padding:20px 10px}p.reservation{line-height:1.5em;text-indent:2em}.reservation-container textarea{margin-top:10px} \ No newline at end of file diff --git a/src/public/img/avatar.jpg b/src/public/img/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e1a12a2c472d4beb74bcfb6d7f6bd91d3b8f812 GIT binary patch literal 3947 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 HpH2NAx85s2 literal 0 HcmV?d00001 diff --git a/src/public/img/banner.png b/src/public/img/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..7e40c43ce4a8578708fb8cf88bdbde1d37bfb331 GIT binary patch literal 111263 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 aG1cH-G{<%si*Y~yklmD=*C^&aF8nVZ-!~rs literal 0 HcmV?d00001 diff --git a/src/public/img/github.png b/src/public/img/github.png new file mode 100644 index 0000000000000000000000000000000000000000..f716b108d1bfdfe91e2ca601023175d96c361053 GIT binary patch literal 760 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!!UKFlT!Az#0N?b>d0A;uG=<>Kpne%wMp6!~O&3FWi6d{)5x%onIIjm`prf977@w-wnS#ZM6aq zZ-BdO_mzvQTL1hnKj*ww^@QrTHIT`tRP|Jnz@b z8D2kRN-RrWX1J&6{vl_{gb&;L85kxlS;gZJq{Fztds?_5TZb$|&vPe-W&@^%_*G3u zZ^f;QZaBqkU~})gb@)UTqos%KH>>GC^5XBDC4SgiJmKTwivJ7^KmNosd~4PbU=TUO z*u*fSc&*5`$!e`fbe=Xc{3y`oKQPH#*e=uZU)}cw3wSmg9n!egaIkIBhxC*?G9_Do za9AC?!oa}yvs|F0r=Wd}!lOAW+q5Jc=U0aN$F3`joj)r>$JMyKNq6tP4O|Xyd2BfI)Bf49rLSb;eUVirz1%&>yx?3X6?1(R~~ey`{5 z@SedsfA28~8ii#_EaktaqI1!+mjX<2(TsG z|Nk)ToE66jNB3CK0v4vb8`JdDR+g5pmdKmrbM?=EQ`UG>Pmfc?P8Hxgyyy2Ok8pF-mh1C6ery&9Tt4N(+|wsxysxrUewcG|hvV5U&gyLYsn?I} z(@_62W8a!BCIUZ%4_&PhFWaQ%l(j5kGpCw3zgsFh zJ95^J^V4p-O**mnjeWCN)0@kwmy85Uk8W;M-7I&gNP@Lq`pMe~^OuS>&DGuhw&MRf ziQ~;{;`bb|^ps^e?lq6?Km_~GZDo4C8T0e3R()8`=HjxbAoyVa>svcF)uhtIoWmfpv2_q>gTe~DWM4fU9b$t literal 0 HcmV?d00001 diff --git a/public/img/user/user1487403380994.jpg b/src/public/img/login-bg.jpg similarity index 100% rename from public/img/user/user1487403380994.jpg rename to src/public/img/login-bg.jpg diff --git a/src/public/img/login-password.png b/src/public/img/login-password.png new file mode 100644 index 0000000000000000000000000000000000000000..817f81893951e30e1eea1e8312a6e4cdef72990e GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!JOX?|T!A!I!0MJYvw;SQmjw9* zGYBXcIQR#|Clu5-Oqjo5!~O&3FWi6sVNz-02cVLZo-U3d5r^MSzsT3Dz~j1flkaWI z#IAq;=j%18Eei~K{w(v6&e|edf;Zov zH8nuMtc^P`A=O);`secNCt1s~-d0>a{#{ADBCd9x=mf5Hf)YI@nZn6CR=&El_2j=6 zrlyl`nS?x8wE`NsLKZNI#wa#8&XP}f-s2j_(m2n({xo~M(A1dUzQ0pI0qE)K=d#Wz Gp$PzizkSmH literal 0 HcmV?d00001 diff --git a/src/public/img/login-username.png b/src/public/img/login-username.png new file mode 100644 index 0000000000000000000000000000000000000000..b05e3cf179d5b43092ce18c2d3cad46431233cbe GIT binary patch literal 570 zcmeAS@N?(olHy`uVBq!ia0vp^E1@#U66Xq{izhVD@^B3+vc>lp^_0BI042)%-E{-7*l4lQIoHolq zg!MwPaPXM~5fOpIKmWg9lNM4(wY7VZg6~05-b-I%9#1$_9NH{md)@Mdj;Lu#W0%~n zJ}K_rfKaE$D|R_NUXis>b7j^-&XBJcSXM=4Z~?JQsCkA?DC4TeSxl>DNj07dE^I#+ z5UAvMHndrx@!_fl71MB@CKaQCneIx*T}>yk>h0jZ#CmQQ_qGpn3dM6C%hiap%x3l5 z!dBgpZ&?+ib7|&bMth0ymH?}6@nQ>(X)}Y*FXzf$^7!&sjTw)v`qnkM>J^1>-t#;< z{fFv|RIPnS^nGrg=&aaQp?9?e.getMonth()+1:"0"+(e.getMonth()+1))+"-"+(e.getDay()>9?e.getDay():"0"+e.getDay())}}; \ No newline at end of file diff --git a/src/public/js/hlayer/hlayer.js b/src/public/js/hlayer/hlayer.js new file mode 100644 index 0000000..e2d0c53 --- /dev/null +++ b/src/public/js/hlayer/hlayer.js @@ -0,0 +1 @@ +!function(){function t(t){this.index=++n.index,this.config=i.mergeJson(this.defaultConfig,t,this.index),this.init()}var e=["msg","alert","loading","iframe","prompt","photo","tips","music"],i={css:function(t,e){for(var i in e)t.style[i]=e[i]},getStyle:function(t,e){return t.currentStyle?t.currentStyle[e]:getComputedStyle(t,!1)[e]},move:function(t,e,o){clearInterval(t.timer),t.timer=setInterval(function(){var n=!0;for(var s in e){var h;h="opacity"==s?parseInt(100*parseFloat(i.getStyle(t,s))):parseInt(i.getStyle(t,s));var l=(e[s]-h)/7;l=l>0?Math.ceil(l):Math.floor(l),"opacity"==s?(t.style[s]=(h+l)/100,t.style.filter="alpha(opacity:"+h+l+")"):t.style[s]=h+l+"px",h!=e[s]&&(n=!1)}n&&(clearInterval(t.timer),o&&o())},16)},addEvent:function(t,e,i){return t.addEventListener?t.addEventListener(e,i,!1):t.attachEvent?t.attachEvent("on"+e,i):t["on"+e]=i},removeEvent:function(t,e,i){t.removeEventListener?t.removeEventListener(e,i):t.detachEvent?t.detachEvent("on"+e,i):t["on"+e]=null},mergeJson:function(){for(var t={},e=0,i=arguments.length;e-1&&(this.config.animateType=i.random(1,9)+"random"),this.config.type===e[2]&&(this.config.contentBg="transparent")},init:function(){var t=this;this.setConfig(),this.times=++n.times,this.start(function(){t.layer=i.creEle("div","hlayer hlayer"+t.times,"hlayer"+t.times),o.body.appendChild(t.layer),t.layerCon=i.creEle("div","hlayer-content hlayer-"+t.config.type+" hlayer-animate"+parseInt(t.config.animateType)),t.layer.appendChild(t.layerCon),t.layer.style.zIndex=++n.index,t.layout(),t.setStyle(),t.eventHandle()})},start:function(t){this.complete=!0;var o=this;if(this.config.type==e[5]){var n=[];o.complete=!1;for(var s=0,h=this.config.photos.length;se.get("hoverLayerThreshold")&&!w.node&&i.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function x(t,e){var i=0;e.group.traverse(function(t){"group"===t.type||t.ignore||i++});var n=+t.get("progressive"),o=i>t.get("progressiveThreshold")&&n&&!w.node;o&&e.group.traverse(function(t){t.isGroup||(t.progressive=o?Math.floor(i++/n):-1,o&&t.stopAnimation(!0))});var a=t.get("blendMode")||null;!w.canvasSupported&&a&&"source-over"!==a&&console.warn("Only canvas support blendMode"),e.group.traverse(function(t){t.isGroup||t.setStyle("blend",a)})}function _(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function b(t){function e(t,e){for(var n=0;n=0&&E.each(t,function(t){var o=t.coordinateSystem;if(o&&o.containPoint)i|=!!o.containPoint(e);else if("seriesModels"===n){var a=this._chartsMap[t.__viewId];a&&a.containPoint?i|=a.containPoint(e,t):console.warn(n+": "+(a?"The found component do not support containPoint.":"No view mapping to the found component."))}else console.warn(n+": containPoint is not supported")},this)},this),!!i},Z.getVisual=function(t,e){var i=this._model,n=(t=k.parseFinder(i,t,{defaultMainType:"series"})).seriesModel;n||console.warn("There is no specified seires model");var o=n.getData(),a=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?o.indexOfRawIndex(t.dataIndex):null;return null!=a?o.getItemVisual(a,e):o.getVisual(e)},Z.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},Z.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var q={update:function(t){var e=this._model,i=this._api,n=this._coordSysMgr,o=this._zr;if(e){e.restoreData(),n.create(this._model,this._api),f.call(this,e,i),p.call(this,e),n.update(e,i),m.call(this,e,t),v.call(this,e,t);var a=e.get("backgroundColor")||"transparent",r=o.painter;if(r.isSingleCanvas&&r.isSingleCanvas())o.configLayer(0,{clearColor:a});else{if(!w.canvasSupported){var s=R.parse(a);a=R.stringify(s,"rgb"),0===s[3]&&(a="transparent")}a.colorStops||a.image?(o.configLayer(0,{clearColor:a}),this.__hasGradientOrPatternBg=!0,this._dom.style.background="transparent"):(this.__hasGradientOrPatternBg&&o.configLayer(0,{clearColor:null}),this.__hasGradientOrPatternBg=!1,this._dom.style.background=a)}B(K,function(t){t(e,i)})}},updateView:function(t){var e=this._model;e&&(e.eachSeries(function(t){t.getData().clearAllVisual()}),m.call(this,e,t),h.call(this,"updateView",e,t))},updateVisual:function(t){var e=this._model;e&&(e.eachSeries(function(t){t.getData().clearAllVisual()}),m.call(this,e,t,!0),h.call(this,"updateVisual",e,t))},updateLayout:function(t){var e=this._model;e&&(g.call(this,e,t),h.call(this,"updateLayout",e,t))},prepareAndUpdate:function(t){var e=this._model;d.call(this,"component",e),d.call(this,"chart",e),this.__lastOnlyGraphic?(B(this._componentsViews,function(i){var n=i.__model;n&&"graphic"===n.mainType&&(i.render(n,e,this._api,t),_(n,i))},this),this.__lastOnlyGraphic=!1):q.update.call(this,t)}};Z.resize=function(t){E.assert(!this[F],"`resize` should not be called during main process."),this[F]=!0,this._zr.resize(t);var e=this._model&&this._model.resetOption("media");q[e?"prepareAndUpdate":"update"].call(this),this._loadingFX&&this._loadingFX.resize(),this[F]=!1;var i=t&&t.silent;u.call(this,i),c.call(this,i)},Z.showLoading=function(t,e){if(E.isObject(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),tt[t]){var i=tt[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}else console.warn("Loading effects "+t+" not exists.")},Z.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},Z.makeActionFromEvent=function(t){var e=E.extend({},t);return e.type=X[t.type],e},Z.dispatchAction=function(t,e){E.isObject(e)||(e={silent:!!e}),U[t.type]&&(this[F]?this._pendingActions.push(t):(l.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&w.browser.weChat&&this._throttledZrFlush(),u.call(this,e.silent),c.call(this,e.silent)))},Z.on=n("on"),Z.off=n("off"),Z.one=n("one");var j=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];Z._initEvents=function(){B(j,function(t){this._zr.on(t,function(e){var i,n=this.getModel(),o=e.target;if("globalout"===t)i={};else if(o&&null!=o.dataIndex){var a=o.dataModel||n.getSeriesByIndex(o.seriesIndex);i=a&&a.getDataParams(o.dataIndex,o.dataType)||{}}else o&&o.eventData&&(i=E.extend({},o.eventData));i&&(i.event=e,i.type=t,this.trigger(t,i))},this)},this),B(X,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},Z.isDisposed=function(){return this._disposed},Z.clear=function(){this.setOption({series:[]},!0)},Z.dispose=function(){if(this._disposed)console.warn("Instance "+this.id+" has been disposed");else{this._disposed=!0;var t=this._api,e=this._model;B(this._componentsViews,function(i){i.dispose(e,t)}),B(this._chartsViews,function(i){i.dispose(e,t)}),this._zr.dispose(),delete et[this.id]}},E.mixin(a,N);var U={},X={},Y=[],$=[],K=[],J=[],Q={},tt={},et={},it={},nt=new Date-0,ot=new Date-0,at={version:"3.5.1",dependencies:{zrender:"3.4.1"}};at.init=function(t,e,i){if(z.version.replace(".","")-0=11)}}(navigator.userAgent),t.exports=i},function(t,e,i){function n(t,e){c.each(e,function(e,i){x.hasClass(i)||("object"==typeof e?t[i]=t[i]?c.merge(t[i],e,!1):c.clone(e):null==t[i]&&(t[i]=e))})}function o(t){t=t,this.option={},this.option[b]=1,this._componentsMap={series:[]},this._seriesIndices=null,n(t,this._theme.option),c.merge(t,_,!1),this.mergeOption(t)}function a(t,e){c.isArray(e)||(e=e?[e]:[]);var i={};return f(e,function(e){i[e]=(t[e]||[]).slice()}),i}function r(t,e,i){return e.type?e.type:i?i.subType:x.determineSubType(t,e)}function s(t){return g(t,function(t){return t.componentIndex})||[]}function l(t,e){return e.hasOwnProperty("subType")?p(t,function(t){return t.subType===e.subType}):t}function u(t){if(!t._seriesIndices)throw new Error("Series has not been initialized yet.")}var c=i(4),h=i(5),d=i(12),f=c.each,p=c.filter,g=c.map,m=c.isArray,v=c.indexOf,y=c.isObject,x=i(19),_=i(23),b="\0_ec_inner",w=d.extend({constructor:w,init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new d(i),this._optionManager=n},setOption:function(t,e,i){c.assert(!(b in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption(null,i)},resetOption:function(t,e){var i=!1,n=this._optionManager;if(!t||"recreate"===t){var a=n.mountOption("recreate"===t);this.option&&"recreate"!==t?(!e&&this.restoreData(),this.mergeOption(a)):o.call(this,a),i=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var r=n.getTimelineOption(this);r&&(this.mergeOption(r),i=!0)}if(!t||"recreate"===t||"media"===t){var s=n.getMediaOption(this,this._api);s.length&&f(s,function(t){this.mergeOption(t,i=!0)},this)}return i},mergeOption:function(t){var e=this.option,i=this._componentsMap,n=[];f(t,function(t,i){null!=t&&(x.hasClass(i)?n.push(i):e[i]=null==e[i]?c.clone(t):c.merge(e[i],t,!0))}),x.topologicalTravel(n,x.getAllClassMainTypes(),function(n,o){var l=h.normalizeToArray(t[n]),u=h.mappingToExists(i[n],l);h.makeIdAndName(u),f(u,function(t,e){var i=t.option;y(i)&&(t.keyInfo.mainType=n,t.keyInfo.subType=r(n,i,t.exist))});var d=a(i,o);e[n]=[],i[n]=[],f(u,function(t,o){var a=t.exist,r=t.option;if(c.assert(y(r)||a,"Empty component definition"),r){var s=x.getClass(n,t.keyInfo.subType,!0);if(a&&a instanceof s)a.name=t.keyInfo.name,a.mergeOption(r,this),a.optionUpdated(r,!1);else{var l=c.extend({dependentModels:d,componentIndex:o},t.keyInfo);a=new s(r,this,this,l),c.extend(a,l),a.init(r,this,this,l),a.optionUpdated(null,!0)}}else a.mergeOption({},this),a.optionUpdated({},!1);i[n][o]=a,e[n][o]=a.option},this),"series"===n&&(this._seriesIndices=s(i.series))},this),this._seriesIndices=this._seriesIndices||[]},getOption:function(){var t=c.clone(this.option);return f(t,function(e,i){if(x.hasClass(i)){for(var n=(e=h.normalizeToArray(e)).length-1;n>=0;n--)h.isIdInner(e[n])&&e.splice(n,1);t[i]=e}}),delete t[b],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap[t];if(i)return i[e||0]},queryComponents:function(t){var e=t.mainType;if(!e)return[];var i=t.index,n=t.id,o=t.name,a=this._componentsMap[e];if(!a||!a.length)return[];var r;if(null!=i)m(i)||(i=[i]),r=p(g(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var s=m(n);r=p(a,function(t){return s&&v(n,t.id)>=0||!s&&t.id===n})}else if(null!=o){var u=m(o);r=p(a,function(t){return u&&v(o,t.name)>=0||!u&&t.name===o})}else r=a.slice();return l(r,t)},findComponents:function(t){var e=t.query,i=t.mainType,n=function(t){var e=i+"Index",n=i+"Id",o=i+"Name";return!t||null==t[e]&&null==t[n]&&null==t[o]?null:{mainType:i,index:t[e],id:t[n],name:t[o]}}(e);return function(e){return t.filter?p(e,t.filter):e}(l(n?this.queryComponents(n):this._componentsMap[i],t))},eachComponent:function(t,e,i){var n=this._componentsMap;if("function"==typeof t)i=e,e=t,f(n,function(t,n){f(t,function(t,o){e.call(i,n,t,o)})});else if(c.isString(t))f(n[t],e,i);else if(y(t)){var o=this.findComponents(t);f(o,e,i)}},getSeriesByName:function(t){var e=this._componentsMap.series;return p(e,function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.series[t]},getSeriesByType:function(t){var e=this._componentsMap.series;return p(e,function(e){return e.subType===t})},getSeries:function(){return this._componentsMap.series.slice()},eachSeries:function(t,e){u(this),f(this._seriesIndices,function(i){var n=this._componentsMap.series[i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){f(this._componentsMap.series,t,e)},eachSeriesByType:function(t,e,i){u(this),f(this._seriesIndices,function(n){var o=this._componentsMap.series[n];o.subType===t&&e.call(i,o,n)},this)},eachRawSeriesByType:function(t,e,i){return f(this.getSeriesByType(t),e,i)},isSeriesFiltered:function(t){return u(this),c.indexOf(this._seriesIndices,t.componentIndex)<0},filterSeries:function(t,e){u(this);var i=p(this._componentsMap.series,t,e);this._seriesIndices=s(i)},restoreData:function(){var t=this._componentsMap;this._seriesIndices=s(t.series);var e=[];f(t,function(t,i){e.push(i)}),x.topologicalTravel(e,x.getAllClassMainTypes(),function(e,i){f(t[e],function(t){t.restoreData()})})}});c.mixin(w,i(24)),t.exports=w},function(t,e){function i(t){if(null==t||"object"!=typeof t)return t;var e=t,n=f.call(t);if("[object Array]"===n){e=[];for(var o=0,a=t.length;o=i.length&&i.push({option:t})}}),i},c.makeIdAndName=function(t){var e={};l(t,function(t,i){var n=t.exist;n&&(e[n.id]=t)}),l(t,function(t,i){var n=t.option;s.assert(!n||null==n.id||!e[n.id]||e[n.id]===t,"id duplicates: "+(n&&n.id)),n&&null!=n.id&&(e[n.id]=t),!t.keyInfo&&(t.keyInfo={})}),l(t,function(t,i){var n=t.exist,o=t.option,a=t.keyInfo;if(u(o)){if(a.name=null!=o.name?o.name+"":n?n.name:"\0-",n)a.id=n.id;else if(null!=o.id)a.id=o.id+"";else{var r=0;do{a.id="\0"+a.name+"\0"+r++}while(e[a.id])}e[a.id]=t}})},c.isIdInner=function(t){return u(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")},c.compressBatches=function(t,e){function i(t,e,i){for(var n=0,o=t.length;n1?"."+t[1]:"")},r.toCamelCase=function(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,function(t,e){return e.toUpperCase()}),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t},r.normalizeCssArray=function(t){var e=t.length;return"number"==typeof t?[t,t,t,t]:2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t};var s=r.encodeHTML=function(t){return String(t).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},l=["a","b","c","d","e","f","g"],u=function(t,e){return"{"+t+(null==e?"":e)+"}"};r.formatTpl=function(t,e,i){n.isArray(e)||(e=[e]);var o=e.length;if(!o)return"";for(var a=e[0].$vars||[],r=0;r0){if(t<=e[0])return i[0];if(t>=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/o*a+i[0]},n.parsePercent=function(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?i(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t},n.round=function(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t},n.asc=function(t){return t.sort(function(t,e){return t-e}),t},n.getPrecision=function(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i},n.getPrecisionSafe=function(t){var e=t.toString(),i=e.indexOf(".");return i<0?0:e.length-1-i},n.getPixelPrecision=function(t,e){var i=Math.log,n=Math.LN10,o=Math.floor(i(t[1]-t[0])/n),a=Math.round(i(Math.abs(e[1]-e[0]))/n),r=Math.min(Math.max(-o+a,0),20);return isFinite(r)?r:20},n.MAX_SAFE_INTEGER=9007199254740991,n.remRadian=function(t){var e=2*Math.PI;return(t%e+e)%e},n.isRadianAroundZero=function(t){return t>-1e-4&&t<1e-4};var o=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(?:Z|([\+\-]\d\d):?\d\d)?)?)?)?)?$/,a=(new Date).getTimezoneOffset();n.parseDate=function(t){if(t instanceof Date)return t;if("string"==typeof t){var e=o.exec(t);return e?new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0)-60*(e[8]||0)-a,+e[6]||0,+e[7]||0):new Date(NaN)}return null==t?new Date(NaN):new Date(Math.round(t))},n.quantity=function(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))},n.nice=function(t,e){var i=n.quantity(t),o=t/i;return(e?o<1.5?1:o<2.5?2:o<4?3:o<7?5:10:o<1?1:o<2?2:o<3?3:o<5?5:10)*i},n.reformIntervals=function(t){function e(t,i,n){return t.interval[n]=0},t.exports=n},function(t,e,i){function n(t,e){var i=t+":"+e;if(a[i])return a[i];for(var n=(t+"").split("\n"),o=0,l=0,u=n.length;ls&&(r=0,a={}),r++,a[i]=o,o}function o(t,e,i,n){for(var o=0,a=0,r=t.length;a=h;p++)f-=h;var g=n(a);g>f&&(a="",g=0),f=e-g;for(var m=(t+"").split("\n"),p=0,v=m.length;p=s){y+=a;break}var b=0===_?o(y,f,h,u):x>0?Math.floor(y.length*f/x):0;x=n(y=y.substr(0,b),i)}""===y&&(y=d),m[p]=y}}return m.join("\n")},measureText:function(t,e){var i=l.getContext();return i.font=e||"12px sans-serif",i.measureText(t)}};t.exports=h},function(t,e,i){"use strict";function n(t,e,i,n){i<0&&(t+=i,i=-i),n<0&&(e+=n,n=-n),this.x=t,this.y=e,this.width=i,this.height=n}var o=i(10),a=i(11),r=o.applyTransform,s=Math.min,l=Math.max;n.prototype={constructor:n,union:function(t){var e=s(t.x,this.x),i=s(t.y,this.y);this.width=l(t.x+t.width,this.x+this.width)-e,this.height=l(t.y+t.height,this.y+this.height)-i,this.x=e,this.y=i},applyTransform:function(){var t=[],e=[],i=[],n=[];return function(o){if(o){t[0]=i[0]=this.x,t[1]=n[1]=this.y,e[0]=n[0]=this.x+this.width,e[1]=i[1]=this.y+this.height,r(t,t,o),r(e,e,o),r(i,i,o),r(n,n,o),this.x=s(t[0],e[0],i[0],n[0]),this.y=s(t[1],e[1],i[1],n[1]);var a=l(t[0],e[0],i[0],n[0]),u=l(t[1],e[1],i[1],n[1]);this.width=a-this.x,this.height=u-this.y}}}(),calculateTransform:function(t){var e=this,i=t.width/e.width,n=t.height/e.height,o=a.create();return a.translate(o,o,[-e.x,-e.y]),a.scale(o,o,[i,n]),a.translate(o,o,[t.x,t.y]),o},intersect:function(t){if(!t)return!1;t instanceof n||(t=n.create(t));var e=this,i=e.x,o=e.x+e.width,a=e.y,r=e.y+e.height,s=t.x,l=t.x+t.width,u=t.y,c=t.y+t.height;return!(o=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new n(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},n.create=function(t){return new n(t.x,t.y,t.width,t.height)},t.exports=n},function(t,e){var i="undefined"==typeof Float32Array?Array:Float32Array,n={create:function(t,e){var n=new i(2);return null==t&&(t=0),null==e&&(e=0),n[0]=t,n[1]=e,n},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t},clone:function(t){var e=new i(2);return e[0]=t[0],e[1]=t[1],e},set:function(t,e,i){return t[0]=e,t[1]=i,t},add:function(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t},scaleAndAdd:function(t,e,i,n){return t[0]=e[0]+i[0]*n,t[1]=e[1]+i[1]*n,t},sub:function(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t},len:function(t){return Math.sqrt(this.lenSquare(t))},lenSquare:function(t){return t[0]*t[0]+t[1]*t[1]},mul:function(t,e,i){return t[0]=e[0]*i[0],t[1]=e[1]*i[1],t},div:function(t,e,i){return t[0]=e[0]/i[0],t[1]=e[1]/i[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:function(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t},normalize:function(t,e){var i=n.len(e);return 0===i?(t[0]=0,t[1]=0):(t[0]=e[0]/i,t[1]=e[1]/i),t},distance:function(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))},distanceSquare:function(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])},negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:function(t,e,i,n){return t[0]=e[0]+n*(i[0]-e[0]),t[1]=e[1]+n*(i[1]-e[1]),t},applyTransform:function(t,e,i){var n=e[0],o=e[1];return t[0]=i[0]*n+i[2]*o+i[4],t[1]=i[1]*n+i[3]*o+i[5],t},min:function(t,e,i){return t[0]=Math.min(e[0],i[0]),t[1]=Math.min(e[1],i[1]),t},max:function(t,e,i){return t[0]=Math.max(e[0],i[0]),t[1]=Math.max(e[1],i[1]),t}};n.length=n.len,n.lengthSquare=n.lenSquare,n.dist=n.distance,n.distSquare=n.distanceSquare,t.exports=n},function(t,e){var i="undefined"==typeof Float32Array?Array:Float32Array,n={create:function(){var t=new i(6);return n.identity(t),t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t},mul:function(t,e,i){var n=e[0]*i[0]+e[2]*i[1],o=e[1]*i[0]+e[3]*i[1],a=e[0]*i[2]+e[2]*i[3],r=e[1]*i[2]+e[3]*i[3],s=e[0]*i[4]+e[2]*i[5]+e[4],l=e[1]*i[4]+e[3]*i[5]+e[5];return t[0]=n,t[1]=o,t[2]=a,t[3]=r,t[4]=s,t[5]=l,t},translate:function(t,e,i){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+i[0],t[5]=e[5]+i[1],t},rotate:function(t,e,i){var n=e[0],o=e[2],a=e[4],r=e[1],s=e[3],l=e[5],u=Math.sin(i),c=Math.cos(i);return t[0]=n*c+r*u,t[1]=-n*u+r*c,t[2]=o*c+s*u,t[3]=-o*u+c*s,t[4]=c*a+u*l,t[5]=c*l-u*a,t},scale:function(t,e,i){var n=i[0],o=i[1];return t[0]=e[0]*n,t[1]=e[1]*o,t[2]=e[2]*n,t[3]=e[3]*o,t[4]=e[4]*n,t[5]=e[5]*o,t},invert:function(t,e){var i=e[0],n=e[2],o=e[4],a=e[1],r=e[3],s=e[5],l=i*r-a*n;return l?(l=1/l,t[0]=r*l,t[1]=-a*l,t[2]=-n*l,t[3]=i*l,t[4]=(n*s-r*o)*l,t[5]=(a*o-i*s)*l,t):null}};t.exports=n},function(t,e,i){function n(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function o(t,e,i){for(var n=0;n=0||i&&n.indexOf(i,r)<0)){var s=this.getShallow(r);null!=s&&(o[t[a][0]]=s)}}return o}}},function(t,e,i){t.exports={getAreaStyle:i(15)([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]])}},function(t,e,i){function n(t,e){return t&&t.getShallow(e)}var o=i(8);t.exports={getTextColor:function(){var t=this.ecModel;return this.getShallow("color")||t&&t.get("textStyle.color")},getFont:function(){var t=this.ecModel,e=t&&t.getModel("textStyle");return[this.getShallow("fontStyle")||n(e,"fontStyle"),this.getShallow("fontWeight")||n(e,"fontWeight"),(this.getShallow("fontSize")||n(e,"fontSize")||12)+"px",this.getShallow("fontFamily")||n(e,"fontFamily")||"sans-serif"].join(" ")},getTextRect:function(t){return o.getBoundingRect(t,this.getFont(),this.getShallow("align"),this.getShallow("baseline"))},truncateText:function(t,e,i,n){return o.truncateText(t,e,this.getFont(),i,n)}}},function(t,e,i){var n=i(15)([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["textPosition"],["textAlign"]]);t.exports={getItemStyle:function(t,e){var i=n.call(this,t,e),o=this.getBorderLineDash();return o&&(i.lineDash=o),i},getBorderLineDash:function(){var t=this.get("borderType");return"solid"===t||null==t?null:"dashed"===t?[5,5]:[1,1]}}},function(t,e,i){var n=i(12),o=i(4),a=Array.prototype.push,r=i(20),s=i(13),l=i(21),u=n.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,o){n.call(this,t,e,i,o),this.uid=r.getUID("componentModel")},init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,n=i?l.getLayoutParams(t):{},a=e.getTheme();o.merge(t,a.get(this.mainType)),o.merge(t,this.getDefaultOption()),i&&l.mergeLayoutParam(t,n,i)},mergeOption:function(t,e){o.merge(this.option,t,!0);var i=this.layoutMode;i&&l.mergeLayoutParam(this.option,t,i)},optionUpdated:function(t,e){},getDefaultOption:function(){if(!s.hasOwn(this,"__defaultOption")){for(var t=[],e=this.constructor;e;){var i=e.prototype.defaultOption;i&&t.push(i),e=e.superClass}for(var n={},a=t.length-1;a>=0;a--)n=o.merge(n,t[a],!0);s.set(this,"__defaultOption",n)}return s.get(this,"__defaultOption")},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});s.enableClassManagement(u,{registerWhenExtend:!0}),r.enableSubTypeDefaulter(u),r.enableTopologicalTravel(u,function(t){var e=[];return o.each(u.getClassesByMainType(t),function(t){a.apply(e,t.prototype.dependencies||[])}),o.map(e,function(t){return s.parseClassType(t).main})}),o.mixin(u,i(22)),t.exports=u},function(t,e,i){var n=i(4),o=i(13).parseClassType,a=0,r={};r.getUID=function(t){return[t||"",a++,Math.random()].join("_")},r.enableSubTypeDefaulter=function(t){var e={};return t.registerSubTypeDefaulter=function(t,i){t=o(t),e[t.main]=i},t.determineSubType=function(i,n){var a=n.type;if(!a){var r=o(i).main;t.hasSubTypes(i)&&e[r]&&(a=e[r](n))}return a},t},r.enableTopologicalTravel=function(t,e){function i(t){var i={},r=[];return n.each(t,function(s){var l=o(i,s),u=a(l.originalDeps=e(s),t);l.entryCount=u.length,0===l.entryCount&&r.push(s),n.each(u,function(t){n.indexOf(l.predecessor,t)<0&&l.predecessor.push(t);var e=o(i,t);n.indexOf(e.successor,t)<0&&e.successor.push(s)})}),{graph:i,noEntryList:r}}function o(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}function a(t,e){var i=[];return n.each(t,function(t){n.indexOf(e,t)>=0&&i.push(t)}),i}t.topologicalTravel=function(t,e,o,a){function r(t){0===--l[t].entryCount&&u.push(t)}if(t.length){var s=i(e),l=s.graph,u=s.noEntryList,c={};for(n.each(t,function(t){c[t]=!0});u.length;){var h=u.pop(),d=l[h],f=!!c[h];f&&(o.call(a,h,d.originalDeps.slice()),delete c[h]),n.each(d.successor,f?function(t){c[t]=!0,r(t)}:r)}n.each(c,function(){throw new Error("Circle dependency may exists")})}}},t.exports=r},function(t,e,i){"use strict";function n(t,e,i,n,o){var a=0,r=0;null==n&&(n=1/0),null==o&&(o=1/0);var s=0;e.eachChild(function(l,u){var c,h,d=l.position,f=l.getBoundingRect(),p=e.childAt(u+1),g=p&&p.getBoundingRect();if("horizontal"===t){var m=f.width+(g?-g.x+f.x:0);(c=a+m)>n||l.newline?(a=0,c=m,r+=s+i,s=f.height):s=Math.max(s,f.height)}else{var v=f.height+(g?-g.y+f.y:0);(h=r+v)>o||l.newline?(a+=s+i,r=0,h=v,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=a,d[1]=r,"horizontal"===t?a=c+i:r=h+i)})}var o=i(4),a=i(9),r=i(7),s=i(6),l=r.parsePercent,u=o.each,c={},h=c.LOCATION_PARAMS=["left","right","top","bottom","width","height"],d=c.HV_NAMES=[["width","left","right"],["height","top","bottom"]];c.box=n,c.vbox=o.curry(n,"vertical"),c.hbox=o.curry(n,"horizontal"),c.getAvailableSize=function(t,e,i){var n=e.width,o=e.height,a=l(t.x,n),r=l(t.y,o),u=l(t.x2,n),c=l(t.y2,o);return(isNaN(a)||isNaN(parseFloat(t.x)))&&(a=0),(isNaN(u)||isNaN(parseFloat(t.x2)))&&(u=n),(isNaN(r)||isNaN(parseFloat(t.y)))&&(r=0),(isNaN(c)||isNaN(parseFloat(t.y2)))&&(c=o),i=s.normalizeCssArray(i||0),{width:Math.max(u-a-i[1]-i[3],0),height:Math.max(c-r-i[0]-i[2],0)}},c.getLayoutRect=function(t,e,i){i=s.normalizeCssArray(i||0);var n=e.width,o=e.height,r=l(t.left,n),u=l(t.top,o),c=l(t.right,n),h=l(t.bottom,o),d=l(t.width,n),f=l(t.height,o),p=i[2]+i[0],g=i[1]+i[3],m=t.aspect;switch(isNaN(d)&&(d=n-c-g-r),isNaN(f)&&(f=o-h-p-u),isNaN(d)&&isNaN(f)&&(m>n/o?d=.8*n:f=.8*o),null!=m&&(isNaN(d)&&(d=m*f),isNaN(f)&&(f=d/m)),isNaN(r)&&(r=n-c-d-g),isNaN(u)&&(u=o-h-f-p),t.left||t.right){case"center":r=n/2-d/2-i[3];break;case"right":r=n-d-g}switch(t.top||t.bottom){case"middle":case"center":u=o/2-f/2-i[0];break;case"bottom":u=o-f-p}r=r||0,u=u||0,isNaN(d)&&(d=n-r-(c||0)),isNaN(f)&&(f=o-u-(h||0));var v=new a(r+i[3],u+i[0],d,f);return v.margin=i,v},c.positionElement=function(t,e,i,n,r){var s=!r||!r.hv||r.hv[0],l=!r||!r.hv||r.hv[1],u=r&&r.boundingMode||"all";if(s||l){var h;if("raw"===u)h="group"===t.type?new a(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(h=t.getBoundingRect(),t.needLocalTransform()){var d=t.getLocalTransform();(h=h.clone()).applyTransform(d)}e=c.getLayoutRect(o.defaults({width:h.width,height:h.height},e),i,n);var f=t.position,p=s?e.x-h.x:0,g=l?e.y-h.y:0;t.attr("position","raw"===u?[p,g]:[f[0]+p,f[1]+g])}},c.sizeCalculable=function(t,e){return null!=t[d[e][0]]||null!=t[d[e][1]]&&null!=t[d[e][2]]},c.mergeLayoutParam=function(t,e,i){function n(i,n){var o={},s=0,c={},h=0;if(u(i,function(e){c[e]=t[e]}),u(i,function(t){a(e,t)&&(o[t]=c[t]=e[t]),r(o,t)&&s++,r(c,t)&&h++}),l[n])return r(e,i[2])&&(c[i[1]]=null),r(e,i[1])&&(c[i[2]]=null),c;if(2!==h&&s){if(s>=2)return o;for(var d=0;d=e:"max"===i?t<=e:t===e}function s(t,e){return t.join(",")===e.join(",")}function l(t,e){d(e=e||{},function(e,i){if(null!=e){var n=t[i];if(h.hasClass(i)){e=c.normalizeToArray(e),n=c.normalizeToArray(n);var o=c.mappingToExists(n,e);t[i]=p(o,function(t){return t.option&&t.exist?g(t.exist,t.option,!0):t.exist||t.option})}else t[i]=g(n,e,!0)}})}var u=i(4),c=i(5),h=i(19),d=u.each,f=u.clone,p=u.map,g=u.merge,m=/^(min|max)?(.+)$/;n.prototype={constructor:n,setOption:function(t,e){t=f(t,!0);var i=this._optionBackup,n=o.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(l(i.baseOption,n.baseOption),n.timelineOptions.length&&(i.timelineOptions=n.timelineOptions),n.mediaList.length&&(i.mediaList=n.mediaList),n.mediaDefault&&(i.mediaDefault=n.mediaDefault)):this._optionBackup=n},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=p(e.timelineOptions,f),this._mediaList=p(e.mediaList,f),this._mediaDefault=f(e.mediaDefault),this._currentMediaIndices=[],f(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i.length){var n=t.getComponent("timeline");n&&(e=f(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(t){var e=this._api.getWidth(),i=this._api.getHeight(),n=this._mediaList,o=this._mediaDefault,r=[],l=[];if(!n.length&&!o)return l;for(var u=0,c=n.length;u',h=this.name;return"\0-"===h&&(h=""),e?c+f(this.name)+" : "+s:(h&&f(h)+"
")+c+(l?f(l)+" : "+s:s)},isAnimationEnabled:function(){if(u.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){h(this,"data",d(this,"dataBeforeProcessed").cloneShallow())},getColorFromPalette:function(t,e){var i=this.ecModel,n=l.getColorFromPalette.call(this,t,e);return n||(n=i.getColorFromPalette(t,e)),n},getAxisTooltipData:null,getTooltipPosition:null});n.mixin(g,r.dataFormatMixin),n.mixin(g,l),t.exports=g},function(t,e,i){var n=i(30),o=i(20),a=i(13),r=function(){this.group=new n,this.uid=o.getUID("viewComponent")},s=r.prototype={constructor:r,init:function(t,e){},render:function(t,e,i,n){},dispose:function(){}};s.updateView=s.updateLayout=s.updateVisual=function(t,e,i,n){},a.enableClassExtend(r),a.enableClassManagement(r,{registerWhenExtend:!0}),t.exports=r},function(t,e,i){var n=i(4),o=i(31),a=i(9),r=function(t){t=t||{},o.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};r.prototype={constructor:r,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i=0&&(i.splice(n,0,t),this._doAdd(t))}return this},_doAdd:function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__storage,i=this.__zr;e&&e!==t.__storage&&(e.addToMap(t),t instanceof r&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var e=this.__zr,i=this.__storage,o=this._children,a=n.indexOf(o,t);return a<0?this:(o.splice(a,1),t.parent=null,i&&(i.delFromMap(t.id),t instanceof r&&t.delChildrenFromStorage(i)),e&&e.refresh(),this)},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;e3&&(e=i.call(e,1));for(var o=this._$handlers[t],a=o.length,r=0;r4&&(e=i.call(e,1,e.length-1));for(var o=e[e.length-1],a=this._$handlers[t],r=a.length,s=0;ss||t<-s}var o=i(11),a=i(10),r=o.identity,s=5e-5,l=function(t){(t=t||{}).position||(this.position=[0,0]),null==t.rotation&&(this.rotation=0),t.scale||(this.scale=[1,1]),this.origin=this.origin||null},u=l.prototype;u.transform=null,u.needLocalTransform=function(){return n(this.rotation)||n(this.position[0])||n(this.position[1])||n(this.scale[0]-1)||n(this.scale[1]-1)},u.updateTransform=function(){var t=this.parent,e=t&&t.transform,i=this.needLocalTransform(),n=this.transform;i||e?(n=n||o.create(),i?this.getLocalTransform(n):r(n),e&&(i?o.mul(n,t.transform,n):o.copy(n,t.transform)),this.transform=n,this.invTransform=this.invTransform||o.create(),o.invert(this.invTransform,n)):n&&r(n)},u.getLocalTransform=function(t){r(t=t||[]);var e=this.origin,i=this.scale,n=this.rotation,a=this.position;return e&&(t[4]-=e[0],t[5]-=e[1]),o.scale(t,t,i),n&&o.rotate(t,t,n),e&&(t[4]+=e[0],t[5]+=e[1]),t[4]+=a[0],t[5]+=a[1],t},u.setTransform=function(t){var e=this.transform,i=t.dpr||1;e?t.setTransform(i*e[0],i*e[1],i*e[2],i*e[3],i*e[4],i*e[5]):t.setTransform(i,0,0,i,0,0)},u.restoreTransform=function(t){this.transform;var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var c=[];u.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(o.mul(c,t.invTransform,e),e=c);var i=e[0]*e[0]+e[1]*e[1],a=e[2]*e[2]+e[3]*e[3],r=this.position,s=this.scale;n(i-1)&&(i=Math.sqrt(i)),n(a-1)&&(a=Math.sqrt(a)),e[0]<0&&(i=-i),e[3]<0&&(a=-a),r[0]=e[4],r[1]=e[5],s[0]=i,s[1]=a,this.rotation=Math.atan2(-e[1]/a,e[0]/i)}},u.getGlobalScale=function(){var t=this.transform;if(!t)return[1,1];var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]),i=Math.sqrt(t[2]*t[2]+t[3]*t[3]);return t[0]<0&&(e=-e),t[3]<0&&(i=-i),[e,i]},u.transformCoordToLocal=function(t,e){var i=[t,e],n=this.invTransform;return n&&a.applyTransform(i,i,n),i},u.transformCoordToGlobal=function(t,e){var i=[t,e],n=this.transform;return n&&a.applyTransform(i,i,n),i},t.exports=l},function(t,e,i){"use strict";var n=i(36),o=i(4),a=o.isString,r=o.isFunction,s=o.isObject,l=i(41),u=function(){this.animators=[]};u.prototype={constructor:u,animate:function(t,e){var i,a=!1,r=this,s=this.__zr;if(t){var u=t.split("."),c=r;a="shape"===u[0];for(var h=0,d=u.length;h0&&this.animate(t,!1).when(null==n?500:n,r).delay(a||0),this}},t.exports=u},function(t,e,i){function n(t,e){return t[e]}function o(t,e,i){t[e]=i}function a(t,e,i){return(e-t)*i+t}function r(t,e,i){return i>.5?e:t}function s(t,e,i,n,o){var r=t.length;if(1==o)for(l=0;lo)t.length=o;else for(r=n;r=0&&!(T[i]<=e);i--);i=Math.min(i,x-2)}else{for(i=G;ie);i++);i=Math.min(i-1,x-2)}G=i,F=e;var n=T[i+1]-T[i];if(0!==n)if(E=(e-T[i])/n,y)if(N=A[i],R=A[0===i?i:i-1],V=A[i>x-2?x-1:i+1],B=A[i>x-3?x-1:i+2],w)c(R,N,V,B,E,E*E,E*E*E,d(t,o),I);else{if(S)l=c(R,N,V,B,E,E*E,E*E*E,H,1),l=f(H);else{if(M)return r(N,V,E);l=h(R,N,V,B,E,E*E,E*E*E)}p(t,o,l)}else if(w)s(A[i],A[i+1],E,d(t,o),I);else{var l;if(S)s(A[i],A[i+1],E,H,1),l=f(H);else{if(M)return r(A[i],A[i+1],E);l=a(A[i],A[i+1],E)}p(t,o,l)}},ondestroy:i});return e&&"spline"!==e&&(W.easing=e),W}}}var g=i(37),m=i(39),v=i(4).isArrayLike,y=Array.prototype.slice,x=function(t,e,i,a){this._tracks={},this._target=t,this._loop=e||!1,this._getter=i||n,this._setter=a||o,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};x.prototype={when:function(t,e){var i=this._tracks;for(var n in e)if(e.hasOwnProperty(n)){if(!i[n]){i[n]=[];var o=this._getter(this._target,n);if(null==o)continue;0!==t&&i[n].push({time:0,value:d(o)})}i[n].push({time:t,value:e[n]})}return this},during:function(t){return this._onframeList.push(t),this},pause:function(){for(var t=0;t255?255:t}function o(t){return t=Math.round(t),t<0?0:t>360?360:t}function a(t){return t<0?0:t>1?1:t}function r(t){return n(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function s(t){return a(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function l(t,e,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}function u(t,e,i){return t+(e-t)*i}function c(t,e,i,n,o){return t[0]=e,t[1]=i,t[2]=n,t[3]=o,t}function h(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function d(t,e){x&&h(x,e),x=y.put(t,x||e.slice())}function f(t,e){if(t){e=e||[];var i=y.get(t);if(i)return h(e,i);var n=(t+="").replace(/ /g,"").toLowerCase();if(n in v)return h(e,v[n]),d(t,e),e;if("#"!==n.charAt(0)){var o=n.indexOf("("),a=n.indexOf(")");if(-1!==o&&a+1===n.length){var l=n.substr(0,o),u=n.substr(o+1,a-(o+1)).split(","),f=1;switch(l){case"rgba":if(4!==u.length)return void c(e,0,0,0,1);f=s(u.pop());case"rgb":return 3!==u.length?void c(e,0,0,0,1):(c(e,r(u[0]),r(u[1]),r(u[2]),f),d(t,e),e);case"hsla":return 4!==u.length?void c(e,0,0,0,1):(u[3]=s(u[3]),p(u,e),d(t,e),e);case"hsl":return 3!==u.length?void c(e,0,0,0,1):(p(u,e),d(t,e),e);default:return}}c(e,0,0,0,1)}else{if(4===n.length)return(g=parseInt(n.substr(1),16))>=0&&g<=4095?(c(e,(3840&g)>>4|(3840&g)>>8,240&g|(240&g)>>4,15&g|(15&g)<<4,1),d(t,e),e):void c(e,0,0,0,1);if(7===n.length){var g=parseInt(n.substr(1),16);return g>=0&&g<=16777215?(c(e,(16711680&g)>>16,(65280&g)>>8,255&g,1),d(t,e),e):void c(e,0,0,0,1)}}}}function p(t,e){var i=(parseFloat(t[0])%360+360)%360/360,o=s(t[1]),a=s(t[2]),r=a<=.5?a*(o+1):a+o-a*o,u=2*a-r;return e=e||[],c(e,n(255*l(u,r,i+1/3)),n(255*l(u,r,i)),n(255*l(u,r,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function g(t){if(t){var e,i,n=t[0]/255,o=t[1]/255,a=t[2]/255,r=Math.min(n,o,a),s=Math.max(n,o,a),l=s-r,u=(s+r)/2;if(0===l)e=0,i=0;else{i=u<.5?l/(s+r):l/(2-s-r);var c=((s-n)/6+l/2)/l,h=((s-o)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?e=d-h:o===s?e=1/3+c-d:a===s&&(e=2/3+h-c),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,u];return null!=t[3]&&f.push(t[3]),f}}function m(t,e){if(t){var i=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(i+=","+t[3]),e+"("+i+")"}}var v={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},y=new(i(40))(20),x=null;t.exports={parse:f,lift:function(t,e){var i=f(t);if(i){for(var n=0;n<3;n++)i[n]=e<0?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0;return m(i,4===i.length?"rgba":"rgb")}},toHex:function(t,e){var i=f(t);if(i)return((1<<24)+(i[0]<<16)+(i[1]<<8)+ +i[2]).toString(16).slice(1)},fastMapToColor:function(t,e,i){if(i=i||[0,0,0,0],!e||!e.length||!(t>=0&&t<=1))return i;var o=t*(e.length-1),r=Math.floor(o),s=Math.ceil(o),l=e[r],c=e[s],h=o-r;return i[0]=n(u(l[0],c[0],h)),i[1]=n(u(l[1],c[1],h)),i[2]=n(u(l[2],c[2],h)),i[3]=a(u(l[3],c[3],h)),i},mapToColor:function(t,e,i){if(e&&e.length&&t>=0&&t<=1){var o=t*(e.length-1),r=Math.floor(o),s=Math.ceil(o),l=f(e[r]),c=f(e[s]),h=o-r,d=m([n(u(l[0],c[0],h)),n(u(l[1],c[1],h)),n(u(l[2],c[2],h)),a(u(l[3],c[3],h))],"rgba");return i?{color:d,leftIndex:r,rightIndex:s,value:o}:d}},modifyHSL:function(t,e,i,n){if(t=f(t))return t=g(t),null!=e&&(t[0]=o(e)),null!=i&&(t[1]=s(i)),null!=n&&(t[2]=s(n)),m(p(t),"rgba")},modifyAlpha:function(t,e){if((t=f(t))&&null!=e)return t[3]=a(e),m(t,"rgba")},stringify:m}},function(t,e){var i=function(){this.head=null,this.tail=null,this._len=0},n=i.prototype;n.insert=function(t){var e=new o(t);return this.insertEntry(e),e},n.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},n.remove=function(t){var e=t.prev,i=t.next;e?e.next=i:this.head=i,i?i.prev=e:this.tail=e,t.next=t.prev=null,this._len--},n.len=function(){return this._len},n.clear=function(){this.head=this.tail=null,this._len=0};var o=function(t){this.value=t,this.next,this.prev},a=function(t){this._list=new i,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},r=a.prototype;r.put=function(t,e){var i=this._list,n=this._map,a=null;if(null==n[t]){var r=i.len(),s=this._lastRemovedEntry;if(r>=this._maxSize&&r>0){var l=i.head;i.remove(l),delete n[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=e:s=new o(e),s.key=t,i.insertEntry(s),n[t]=s}return a},r.get=function(t){var e=this._map[t],i=this._list;if(null!=e)return e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value},r.clear=function(){this._list.clear(),this._map={}},t.exports=a},function(t,e,i){var n=i(42);t.exports=function(){if(0!==n.debugMode)if(1==n.debugMode)for(var t in arguments)throw new Error(arguments[t]);else if(n.debugMode>1)for(var t in arguments)console.log(arguments[t])}},function(t,e){var i=1;"undefined"!=typeof window&&(i=Math.max(window.devicePixelRatio||1,1));var n={debugMode:0,devicePixelRatio:i};t.exports=n},function(t,e,i){function n(){this.group=new r,this.uid=s.getUID("viewChart")}function o(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var i=0;i0?e.animateTo(i,s,u||0,l,a):(e.attr(i),a&&a())}else e.attr(i),a&&a()}var m=i(4),v=i(45),y=Math.round,x=i(46),_=i(39),b=i(11),w=i(10),S={};S.Group=i(30),S.Image=i(62),S.Text=i(63),S.Circle=i(64),S.Sector=i(65),S.Ring=i(66),S.Polygon=i(67),S.Polyline=i(71),S.Rect=i(72),S.Line=i(74),S.BezierCurve=i(75),S.Arc=i(76),S.CompoundPath=i(77),S.LinearGradient=i(78),S.RadialGradient=i(80),S.BoundingRect=i(9),S.extendShape=function(t){return x.extend(t)},S.extendPath=function(t,e){return v.extendFromString(t,e)},S.makePath=function(t,e,i,n){var o=v.createFromString(t,e),a=o.getBoundingRect();if(i){var r=a.width/a.height;if("center"===n){var s,l=i.height*r;s=l<=i.width?i.height:(l=i.width)/r;var u=i.x+i.width/2,c=i.y+i.height/2;i.x=u-l/2,i.y=c-s/2,i.width=l,i.height=s}S.resizePath(o,i)}return o},S.mergePath=v.mergePath,S.resizePath=function(t,e){if(t.applyTransform){var i=t.getBoundingRect().calculateTransform(e);t.applyTransform(i)}},S.subPixelOptimizeLine=function(t){var e=S.subPixelOptimize,i=t.shape,n=t.style.lineWidth;return y(2*i.x1)===y(2*i.x2)&&(i.x1=i.x2=e(i.x1,n,!0)),y(2*i.y1)===y(2*i.y2)&&(i.y1=i.y2=e(i.y1,n,!0)),t},S.subPixelOptimizeRect=function(t){var e=S.subPixelOptimize,i=t.shape,n=t.style.lineWidth,o=i.x,a=i.y,r=i.width,s=i.height;return i.x=e(i.x,n,!0),i.y=e(i.y,n,!0),i.width=Math.max(e(o+r,n,!1)-i.x,0===r?0:1),i.height=Math.max(e(a+s,n,!1)-i.y,0===s?0:1),t},S.subPixelOptimize=function(t,e,i){var n=y(2*t);return(n+y(e))%2==0?n/2:(n+(i?1:-1))/2},S.setHoverStyle=function(t,e,i){t.__hoverSilentOnTouch=i&&i.hoverSilentOnTouch,"group"===t.type?t.traverse(function(t){"group"!==t.type&&c(t,e)}):c(t,e),t.on("mouseover",h).on("mouseout",d),t.on("emphasis",f).on("normal",p)},S.setText=function(t,e,i){var n=e.getShallow("position")||"inside",o=e.getShallow("offset"),a=n.indexOf("inside")>=0?"white":i,r=e.getModel("textStyle");m.extend(t,{textDistance:e.getShallow("distance")||5,textFont:r.getFont(),textPosition:n,textOffset:o,textFill:r.getTextColor()||a})},S.updateProps=function(t,e,i,n,o){g(!0,t,e,i,n,o)},S.initProps=function(t,e,i,n,o){g(!1,t,e,i,n,o)},S.getTransform=function(t,e){for(var i=b.identity([]);t&&t!==e;)b.mul(i,t.getLocalTransform(),i),t=t.parent;return i},S.applyTransform=function(t,e,i){return i&&(e=b.invert([],e)),w.applyTransform([],t,e)},S.transformDirection=function(t,e,i){var n=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),o=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),a=["left"===t?-n:"right"===t?n:0,"top"===t?-o:"bottom"===t?o:0];return a=S.applyTransform(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"},S.groupTransition=function(t,e,i,n){function o(t){var e={position:w.clone(t.position),rotation:t.rotation};return t.shape&&(e.shape=m.extend({},t.shape)),e}if(t&&e){var a=function(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=a[t.anid];if(e){var n=o(t);t.attr(o(e)),S.updateProps(t,n,i,t.dataIndex)}}})}},t.exports=S},function(t,e,i){function n(t,e,i,n,o,a,r,s,l,u,c){var g=l*(p/180),y=f(g)*(t-i)/2+d(g)*(e-n)/2,x=-1*d(g)*(t-i)/2+f(g)*(e-n)/2,_=y*y/(r*r)+x*x/(s*s);_>1&&(r*=h(_),s*=h(_));var b=(o===a?-1:1)*h((r*r*(s*s)-r*r*(x*x)-s*s*(y*y))/(r*r*(x*x)+s*s*(y*y)))||0,w=b*r*x/s,S=b*-s*y/r,M=(t+i)/2+f(g)*w-d(g)*S,I=(e+n)/2+d(g)*w+f(g)*S,T=v([1,0],[(y-w)/r,(x-S)/s]),A=[(y-w)/r,(x-S)/s],C=[(-1*y-w)/r,(-1*x-S)/s],L=v(A,C);m(A,C)<=-1&&(L=p),m(A,C)>=1&&(L=0),0===a&&L>0&&(L-=2*p),1===a&&L<0&&(L+=2*p),c.addData(u,M,I,r,s,T,L,g,a)}function o(t){if(!t)return[];var e,i=t.replace(/-/g," -").replace(/ /g," ").replace(/ /g,",").replace(/,,/g,",");for(e=0;e0&&""===m[0]&&m.shift();for(var v=0;v1e-10&&(o.width+=a/r,o.height+=a/r,o.x-=a/r/2,o.y-=a/r/2)}return o}return t},contain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this.getBoundingRect(),o=this.style;if(t=i[0],e=i[1],n.contain(t,e)){var a=this.path.data;if(o.hasStroke()){var r=o.lineWidth,l=o.strokeNoScale?this.getLineScale():1;if(l>1e-10&&(o.hasFill()||(r=Math.max(r,this.strokeContainThreshold)),s.containStroke(a,r/l,t,e)))return!0}if(o.hasFill())return s.contain(a,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(t){return this.animate("shape",t)},attrKV:function(t,e){"shape"===t?(this.setShape(e),this.__dirtyPath=!0,this._rect=null):o.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(a.isObject(t))for(var n in t)t.hasOwnProperty(n)&&(i[n]=t[n]);else i[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this.transform;return t&&u(t[0]-1)>1e-10&&u(t[3]-1)>1e-10?Math.sqrt(u(t[0]*t[3]-t[2]*t[1])):1}},n.extend=function(t){var e=function(e){n.call(this,e),t.style&&this.style.extendFrom(t.style,!1);var i=t.shape;if(i){this.shape=this.shape||{};var o=this.shape;for(var a in i)!o.hasOwnProperty(a)&&i.hasOwnProperty(a)&&(o[a]=i[a])}t.init&&t.init.call(this,e)};a.inherits(e,n);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},a.inherits(n,o),t.exports=n},function(t,e,i){function n(t){t=t||{},r.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new a(t.style),this._rect=null,this.__clipPaths=[]}var o=i(4),a=i(48),r=i(31),s=i(49);n.prototype={constructor:n,type:"displayable",__dirty:!0,invisible:!1,z:0,z2:0,zlevel:0,draggable:!1,dragging:!1,silent:!1,culling:!1,cursor:"pointer",rectHover:!1,progressive:-1,beforeBrush:function(t){},afterBrush:function(t){},brush:function(t,e){},getBoundingRect:function(){},contain:function(t,e){return this.rectContain(t,e)},traverse:function(t,e){t.call(e,this)},rectContain:function(t,e){var i=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(i[0],i[1])},dirty:function(){this.__dirty=!0,this._rect=null,this.__zr&&this.__zr.refresh()},animateStyle:function(t){return this.animate("style",t)},attrKV:function(t,e){"style"!==t?r.prototype.attrKV.call(this,t,e):this.style.set(e)},setStyle:function(t,e){return this.style.set(t,e),this.dirty(!1),this},useStyle:function(t){return this.style=new a(t),this.dirty(!1),this}},o.inherits(n,r),o.mixin(n,s),t.exports=n},function(t,e){function i(t,e,i){var n=e.x,o=e.x2,a=e.y,r=e.y2;return e.global||(n=n*i.width+i.x,o=o*i.width+i.x,a=a*i.height+i.y,r=r*i.height+i.y),t.createLinearGradient(n,a,o,r)}function n(t,e,i){var n=i.width,o=i.height,a=Math.min(n,o),r=e.x,s=e.y,l=e.r;return e.global||(r=r*n+i.x,s=s*o+i.y,l*=a),t.createRadialGradient(r,s,0,r,s,l)}for(var o=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],a=function(t){this.extendFrom(t)},r=a.prototype={constructor:a,fill:"#000000",stroke:null,opacity:1,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,textFill:"#000",textStroke:null,textPosition:"inside",textOffset:null,textBaseline:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textTransform:!1,textRotation:0,blend:null,bind:function(t,e,i){for(var n=this,a=i&&i.style,r=!a,s=0;s0},extendFrom:function(t,e){if(t){var i=this;for(var n in t)!t.hasOwnProperty(n)||!e&&i.hasOwnProperty(n)||(i[n]=t[n])}},set:function(t,e){"string"==typeof t?this[t]=e:this.extendFrom(t,!0)},clone:function(){var t=new this.constructor;return t.extendFrom(this,!0),t},getGradient:function(t,e,o){for(var a=("radial"===e.type?n:i)(t,e,o),r=e.colorStops,s=0;s=0?parseFloat(t)/100*e:parseFloat(t):t}var o=i(8),a=new(i(9)),r=function(){};r.prototype={constructor:r,drawRectText:function(t,e,i){var r=this.style,s=r.text;if(null!=s&&(s+=""),s){t.save();var l,u,c=r.textPosition,h=r.textOffset,d=r.textDistance,f=r.textAlign,p=r.textFont||r.font,g=r.textBaseline,m=r.textVerticalAlign;i=i||o.getBoundingRect(s,p,f,g);var v=this.transform;if(r.textTransform?this.setTransform(t):v&&(a.copy(e),a.applyTransform(v),e=a),c instanceof Array){if(l=e.x+n(c[0],e.width),u=e.y+n(c[1],e.height),f=f||"left",g=g||"top",m){switch(m){case"middle":u-=i.height/2-i.lineHeight/2;break;case"bottom":u-=i.height-i.lineHeight/2;break;default:u+=i.lineHeight/2}g="middle"}}else{var y=o.adjustTextPositionOnRect(c,e,i,d);l=y.x,u=y.y,f=f||y.textAlign,g=g||y.textBaseline}h&&(l+=h[0],u+=h[1]),t.textAlign=f||"left",t.textBaseline=g||"alphabetic";var x=r.textFill,_=r.textStroke;x&&(t.fillStyle=x),_&&(t.strokeStyle=_),t.font=p||"12px sans-serif",t.shadowBlur=r.textShadowBlur,t.shadowColor=r.textShadowColor||"transparent",t.shadowOffsetX=r.textShadowOffsetX,t.shadowOffsetY=r.textShadowOffsetY;var b=s.split("\n");r.textRotation&&(v&&t.translate(v[4],v[5]),t.rotate(r.textRotation),v&&t.translate(-v[4],-v[5]));for(var w=0;wthis._ux||y(e-this._yi)>this._uy||this._len<5;return this.addData(l.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,o,a){return this.addData(l.C,t,e,i,n,o,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,o,a):this._ctx.bezierCurveTo(t,e,i,n,o,a)),this._xi=o,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(l.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,o,a){return this.addData(l.A,t,e,i,i,n,o-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,o,a),this._xi=g(o)*i+t,this._yi=m(o)*i+t,this},arcTo:function(t,e,i,n,o){return this._ctx&&this._ctx.arcTo(t,e,i,n,o),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(l.R,t,e,i,n),this},closePath:function(){this.addData(l.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,i=0;ie.length&&(this._expandData(),e=this.data);for(var i=0;i0&&g<=t||c<0&&g>=t||0==c&&(h>0&&m<=e||h<0&&m>=e);)g+=c*(i=r[n=this._dashIdx]),m+=h*i,this._dashIdx=(n+1)%y,c>0&&gl||h>0&&mu||s[n%2?"moveTo":"lineTo"](c>=0?f(g,t):p(g,t),h>=0?f(m,e):p(m,e));c=g-t,h=m-e,this._dashOffset=-v(c*c+h*h)},_dashedBezierTo:function(t,e,i,o,a,r){var s,l,u,c,h,d=this._dashSum,f=this._dashOffset,p=this._lineDash,g=this._ctx,m=this._xi,y=this._yi,x=n.cubicAt,_=0,b=this._dashIdx,w=p.length,S=0;for(f<0&&(f=d+f),f%=d,s=0;s<1;s+=.1)l=x(m,t,i,a,s+.1)-x(m,t,i,a,s),u=x(y,e,o,r,s+.1)-x(y,e,o,r,s),_+=v(l*l+u*u);for(;bf);b++);for(s=(S-f)/_;s<=1;)c=x(m,t,i,a,s),h=x(y,e,o,r,s),b%2?g.moveTo(c,h):g.lineTo(c,h),s+=p[b]/_,b=(b+1)%w;b%2!=0&&g.lineTo(a,r),l=a-c,u=r-h,this._dashOffset=-v(l*l+u*u)},_dashedQuadraticTo:function(t,e,i,n){var o=i,a=n;i=(i+2*t)/3,n=(n+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,i,n,o,a)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,x&&(this.data=new Float32Array(t)))},getBoundingRect:function(){u[0]=u[1]=h[0]=h[1]=Number.MAX_VALUE,c[0]=c[1]=d[0]=d[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,i=0,n=0,s=0,f=0;fu||y(r-o)>c||d===h-1)&&(t.lineTo(a,r),n=a,o=r);break;case l.C:t.bezierCurveTo(s[d++],s[d++],s[d++],s[d++],s[d++],s[d++]),n=s[d-2],o=s[d-1];break;case l.Q:t.quadraticCurveTo(s[d++],s[d++],s[d++],s[d++]),n=s[d-2],o=s[d-1];break;case l.A:var p=s[d++],v=s[d++],x=s[d++],_=s[d++],b=s[d++],w=s[d++],S=s[d++],M=s[d++],I=x>_?x:_,T=x>_?1:x/_,A=x>_?_/x:1,C=b+w;Math.abs(x-_)>.001?(t.translate(p,v),t.rotate(S),t.scale(T,A),t.arc(0,0,I,b,C,1-M),t.scale(1/T,1/A),t.rotate(-S),t.translate(-p,-v)):t.arc(p,v,I,b,C,1-M),1==d&&(e=g(b)*x+p,i=m(b)*_+v),n=g(C)*x+p,o=m(C)*_+v;break;case l.R:e=n=s[d],i=o=s[d+1],t.rect(s[d++],s[d++],s[d++],s[d++]);break;case l.Z:t.closePath(),n=e,o=i}}}},_.CMD=l,t.exports=_},function(t,e,i){"use strict";function n(t){return t>-d&&td||t<-d}function a(t,e,i,n,o){var a=1-o;return a*a*(a*t+3*o*e)+o*o*(o*n+3*a*i)}function r(t,e,i,n){var o=1-n;return o*(o*t+2*n*e)+n*n*i}var s=i(10),l=s.create,u=s.distSquare,c=Math.pow,h=Math.sqrt,d=1e-8,f=1e-4,p=h(3),g=1/3,m=l(),v=l(),y=l();t.exports={cubicAt:a,cubicDerivativeAt:function(t,e,i,n,o){var a=1-o;return 3*(((e-t)*a+2*(i-e)*o)*a+(n-i)*o*o)},cubicRootAt:function(t,e,i,o,a,r){var s=o+3*(e-i)-t,l=3*(i-2*e+t),u=3*(e-t),d=t-a,f=l*l-3*s*u,m=l*u-9*s*d,v=u*u-3*l*d,y=0;if(n(f)&&n(m))n(l)?r[0]=0:(L=-u/l)>=0&&L<=1&&(r[y++]=L);else{var x=m*m-4*f*v;if(n(x)){var _=m/f,b=-_/2;(L=-l/s+_)>=0&&L<=1&&(r[y++]=L),b>=0&&b<=1&&(r[y++]=b)}else if(x>0){var w=h(x),S=f*l+1.5*s*(-m+w),M=f*l+1.5*s*(-m-w);(L=(-l-((S=S<0?-c(-S,g):c(S,g))+(M=M<0?-c(-M,g):c(M,g))))/(3*s))>=0&&L<=1&&(r[y++]=L)}else{var I=(2*f*l-3*s*m)/(2*h(f*f*f)),T=Math.acos(I)/3,A=h(f),C=Math.cos(T),L=(-l-2*A*C)/(3*s),b=(-l+A*(C+p*Math.sin(T)))/(3*s),D=(-l+A*(C-p*Math.sin(T)))/(3*s);L>=0&&L<=1&&(r[y++]=L),b>=0&&b<=1&&(r[y++]=b),D>=0&&D<=1&&(r[y++]=D)}}return y},cubicExtrema:function(t,e,i,a,r){var s=6*i-12*e+6*t,l=9*e+3*a-3*t-9*i,u=3*e-3*t,c=0;if(n(l))o(s)&&(p=-u/s)>=0&&p<=1&&(r[c++]=p);else{var d=s*s-4*l*u;if(n(d))r[0]=-s/(2*l);else if(d>0){var f=h(d),p=(-s+f)/(2*l),g=(-s-f)/(2*l);p>=0&&p<=1&&(r[c++]=p),g>=0&&g<=1&&(r[c++]=g)}}return c},cubicSubdivide:function(t,e,i,n,o,a){var r=(e-t)*o+t,s=(i-e)*o+e,l=(n-i)*o+i,u=(s-r)*o+r,c=(l-s)*o+s,h=(c-u)*o+u;a[0]=t,a[1]=r,a[2]=u,a[3]=h,a[4]=h,a[5]=c,a[6]=l,a[7]=n},cubicProjectPoint:function(t,e,i,n,o,r,s,l,c,d,p){var g,x,_,b,w,S=.005,M=1/0;m[0]=c,m[1]=d;for(var I=0;I<1;I+=.05)v[0]=a(t,i,o,s,I),v[1]=a(e,n,r,l,I),(b=u(m,v))=0&&b=0&&p<=1&&(r[c++]=p);else{var d=l*l-4*s*u;if(n(d))(p=-l/(2*s))>=0&&p<=1&&(r[c++]=p);else if(d>0){var f=h(d),p=(-l+f)/(2*s),g=(-l-f)/(2*s);p>=0&&p<=1&&(r[c++]=p),g>=0&&g<=1&&(r[c++]=g)}}return c},quadraticExtremum:function(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n},quadraticSubdivide:function(t,e,i,n,o){var a=(e-t)*n+t,r=(i-e)*n+e,s=(r-a)*n+a;o[0]=t,o[1]=a,o[2]=s,o[3]=s,o[4]=r,o[5]=i},quadraticProjectPoint:function(t,e,i,n,o,a,s,l,c){var d,p=.005,g=1/0;m[0]=s,m[1]=l;for(var x=0;x<1;x+=.05)v[0]=r(t,i,o,x),v[1]=r(e,n,a,x),(S=u(m,v))=0&&S1e-4)return p[0]=t-i,p[1]=e-o,g[0]=t+i,void(g[1]=e+o);if(c[0]=u(a)*i+t,c[1]=l(a)*o+e,h[0]=u(r)*i+t,h[1]=l(r)*o+e,m(p,c,h),v(g,c,h),(a%=f)<0&&(a+=f),(r%=f)<0&&(r+=f),a>r&&!s?r+=f:aa&&(d[0]=u(_)*i+t,d[1]=l(_)*o+e,m(p,d,p),v(g,d,g))},t.exports=a},function(t,e,i){"use strict";function n(t,e){return Math.abs(t-e)e&&c>n&&c>r&&c>l||c1&&o(),d=g.cubicAt(e,n,r,l,b[0]),m>1&&(f=g.cubicAt(e,n,r,l,b[1]))),2==m?ye&&s>n&&s>a||s=0&&u<=1){for(var c=0,h=g.quadraticAt(e,n,a,u),d=0;di||s<-i)return 0;u=Math.sqrt(i*i-s*s);_[0]=-u,_[1]=u;var l=Math.abs(n-o);if(l<1e-4)return 0;if(l%y<1e-4){n=0,o=y;g=a?1:-1;return r>=_[0]+t&&r<=_[1]+t?g:0}if(a){var u=n;n=p(o),o=p(u)}else n=p(n),o=p(o);n>o&&(o+=y);for(var c=0,h=0;h<2;h++){var d=_[h];if(d+t>r){var f=Math.atan2(s,d),g=a?1:-1;f<0&&(f=y+f),(f>=n&&f<=o||f+y>=n&&f+y<=o)&&(f>Math.PI/2&&f<1.5*Math.PI&&(g=-g),c+=g)}}return c}function l(t,e,i,o,l){for(var c=0,p=0,g=0,y=0,x=0,_=0;_1&&(i||(c+=m(p,g,y,x,o,l))),1==_&&(y=p=t[_],x=g=t[_+1]),b){case u.M:p=y=t[_++],g=x=t[_++];break;case u.L:if(i){if(v(p,g,t[_],t[_+1],e,o,l))return!0}else c+=m(p,g,t[_],t[_+1],o,l)||0;p=t[_++],g=t[_++];break;case u.C:if(i){if(h.containStroke(p,g,t[_++],t[_++],t[_++],t[_++],t[_],t[_+1],e,o,l))return!0}else c+=a(p,g,t[_++],t[_++],t[_++],t[_++],t[_],t[_+1],o,l)||0;p=t[_++],g=t[_++];break;case u.Q:if(i){if(d.containStroke(p,g,t[_++],t[_++],t[_],t[_+1],e,o,l))return!0}else c+=r(p,g,t[_++],t[_++],t[_],t[_+1],o,l)||0;p=t[_++],g=t[_++];break;case u.A:var w=t[_++],S=t[_++],M=t[_++],I=t[_++],T=t[_++],A=t[_++],C=(t[_++],1-t[_++]),L=Math.cos(T)*M+w,D=Math.sin(T)*I+S;_>1?c+=m(p,g,L,D,o,l):(y=L,x=D);var P=(o-w)*I/M+w;if(i){if(f.containStroke(w,S,I,T,T+A,C,e,P,l))return!0}else c+=s(w,S,I,T,T+A,C,P,l);p=Math.cos(T+A)*M+w,g=Math.sin(T+A)*I+S;break;case u.R:y=p=t[_++],x=g=t[_++];var L=y+t[_++],D=x+t[_++];if(i){if(v(y,x,L,x,e,o,l)||v(L,x,L,D,e,o,l)||v(L,D,y,D,e,o,l)||v(y,D,y,x,e,o,l))return!0}else c+=m(L,x,L,D,o,l),c+=m(y,D,y,x,o,l);break;case u.Z:if(i){if(v(p,g,y,x,e,o,l))return!0}else c+=m(p,g,y,x,o,l);p=y,g=x}}return i||n(g,x)||(c+=m(p,g,y,x,o,l)||0),0!==c}var u=i(50).CMD,c=i(54),h=i(55),d=i(56),f=i(57),p=i(58).normalizeRadian,g=i(51),m=i(59),v=c.containStroke,y=2*Math.PI,x=1e-4,_=[-1,-1,-1],b=[-1,-1];t.exports={contain:function(t,e,i){return l(t,0,!1,e,i)},containStroke:function(t,e,i,n){return l(t,e,!0,i,n)}}},function(t,e){t.exports={containStroke:function(t,e,i,n,o,a,r){if(0===o)return!1;var s=o,l=0,u=t;if(r>e+s&&r>n+s||rt+s&&a>i+s||ae+d&&h>o+d&&h>r+d&&h>l+d||ht+d&&c>i+d&&c>a+d&&c>s+d||ce+c&&u>o+c&&u>r+c||ut+c&&l>i+c&&l>a+c||li||d+hr&&(r+=o);var p=Math.atan2(c,u);return p<0&&(p+=o),p>=a&&p<=r||p+o>=a&&p+o<=r}}},function(t,e){var i=2*Math.PI;t.exports={normalizeRadian:function(t){return(t%=i)<0&&(t+=i),t}}},function(t,e){t.exports=function(t,e,i,n,o,a){if(a>e&&a>n||ao?r:0}},function(t,e){var i=function(t,e){this.image=t,this.repeat=e,this.type="pattern"};i.prototype.getCanvasPattern=function(t){return this._canvasPattern||(this._canvasPattern=t.createPattern(this.image,this.repeat))},t.exports=i},function(t,e,i){var n=i(50).CMD,o=i(10).applyTransform,a=[[],[],[]],r=Math.sqrt,s=Math.atan2;t.exports=function(t,e){var i,l,u,c,h,d,f=t.data,p=n.M,g=n.C,m=n.L,v=n.R,y=n.A,x=n.Q;for(u=0,c=0;u=11?function(){var t,e=this.__clipPaths,i=this.style;if(e)for(var n=0;n=2){if(r&&"spline"!==r){var s=o(a,r,i,e.smoothConstraint);t.moveTo(a[0][0],a[0][1]);for(var l=a.length,u=0;u<(i?l:l-1);u++){var c=s[2*u],h=s[2*u+1],d=a[(u+1)%l];t.bezierCurveTo(c[0],c[1],h[0],h[1],d[0],d[1])}}else{"spline"===r&&(a=n(a,i)),t.moveTo(a[0][0],a[0][1]);for(var u=1,f=a.length;ui-2?i-1:f+1],h=t[f>i-3?i-1:f+2]);var m=p*p,v=p*m;a.push([n(u[0],g[0],c[0],h[0],p,m,v),n(u[1],g[1],c[1],h[1],p,m,v)])}return a}},function(t,e,i){var n=i(10),o=n.min,a=n.max,r=n.scale,s=n.distance,l=n.add;t.exports=function(t,e,i,u){var c,h,d,f,p=[],g=[],m=[],v=[];if(u){d=[1/0,1/0],f=[-1/0,-1/0];for(var y=0,x=t.length;yl&&(i*=l/(h=i+n),n*=l/h),o+a>l&&(o*=l/(h=o+a),a*=l/h),n+o>u&&(n*=u/(h=n+o),o*=u/h),i+a>u&&(i*=u/(h=i+a),a*=u/h),t.moveTo(r+i,s),t.lineTo(r+l-n,s),0!==n&&t.quadraticCurveTo(r+l,s,r+l,s+n),t.lineTo(r+l,s+u-o),0!==o&&t.quadraticCurveTo(r+l,s+u,r+l-o,s+u),t.lineTo(r+a,s+u),0!==a&&t.quadraticCurveTo(r,s+u,r,s+u-a),t.lineTo(r,s+i),0!==i&&t.quadraticCurveTo(r,s,r+i,s)}}},function(t,e,i){t.exports=i(46).extend({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,o=e.x2,a=e.y2,r=e.percent;0!==r&&(t.moveTo(i,n),r<1&&(o=i*(1-r)+o*r,a=n*(1-r)+a*r),t.lineTo(o,a))},pointAt:function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]}})},function(t,e,i){"use strict";function n(t,e,i){var n=t.cpx2,o=t.cpy2;return null===n||null===o?[(i?h:u)(t.x1,t.cpx1,t.cpx2,t.x2,e),(i?h:u)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(i?c:l)(t.x1,t.cpx1,t.x2,e),(i?c:l)(t.y1,t.cpy1,t.y2,e)]}var o=i(51),a=i(10),r=o.quadraticSubdivide,s=o.cubicSubdivide,l=o.quadraticAt,u=o.cubicAt,c=o.quadraticDerivativeAt,h=o.cubicDerivativeAt,d=[];t.exports=i(46).extend({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,o=e.x2,a=e.y2,l=e.cpx1,u=e.cpy1,c=e.cpx2,h=e.cpy2,f=e.percent;0!==f&&(t.moveTo(i,n),null==c||null==h?(f<1&&(r(i,l,o,f,d),l=d[1],o=d[2],r(n,u,a,f,d),u=d[1],a=d[2]),t.quadraticCurveTo(l,u,o,a)):(f<1&&(s(i,l,c,o,f,d),l=d[1],c=d[2],o=d[3],s(n,u,h,a,f,d),u=d[1],h=d[2],a=d[3]),t.bezierCurveTo(l,u,c,h,o,a)))},pointAt:function(t){return n(this.shape,t,!1)},tangentAt:function(t){var e=n(this.shape,t,!0);return a.normalize(e,e)}})},function(t,e,i){t.exports=i(46).extend({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.cx,n=e.cy,o=Math.max(e.r,0),a=e.startAngle,r=e.endAngle,s=e.clockwise,l=Math.cos(a),u=Math.sin(a);t.moveTo(l*o+i,u*o+n),t.arc(i,n,o,a,r,!s)}})},function(t,e,i){var n=i(46);t.exports=n.extend({type:"compound",shape:{paths:null},_updatePathDirty:function(){for(var t=this.__dirtyPath,e=this.shape.paths,i=0;i=0?n():c=setTimeout(n,-a),l=o};return h.clear=function(){c&&(clearTimeout(c),c=null)},h},i.createOrUpdate=function(t,e,a,r){var s=t[e];if(s){var l=s[n]||s,u=s["\0__throttleType"];if(s[o]!==a||u!==r){if(null==a||!r)return t[e]=l;(s=t[e]=i.throttle(l,a,"debounce"===r))[n]=l,s["\0__throttleType"]=r,s[o]=a}return s}},i.clear=function(t,e){var i=t[e];i&&i[n]&&(t[e]=i[n])},t.exports=i},function(t,e,i){function n(t){delete f[t]}var o=i(32),a=i(2),r=i(4),s=i(83),l=i(85),u=i(87),c=i(90),h=!a.canvasSupported,d={canvas:i(92)},f={},p={};p.version="3.4.1",p.init=function(t,e){var i=new g(o(),t,e);return f[i.id]=i,i},p.dispose=function(t){if(t)t.dispose();else{for(var e in f)f.hasOwnProperty(e)&&f[e].dispose();f={}}return p},p.getInstance=function(t){return f[t]},p.registerPainter=function(t,e){d[t]=e};var g=function(t,e,i){i=i||{},this.dom=e,this.id=t;var n=this,o=new l,f=i.renderer;if(h){if(!d.vml)throw new Error("You need to require 'zrender/vml/vml' to support IE8");f="vml"}else f&&d[f]||(f="canvas");var p=new d[f](e,o,i);this.storage=o,this.painter=p;var g=a.node?null:new c(p.getViewportRoot());this.handler=new s(o,p,g,p.root),this.animation=new u({stage:{update:r.bind(this.flush,this)}}),this.animation.start(),this._needsRefresh;var m=o.delFromMap,v=o.addToMap;o.delFromMap=function(t){var e=o.get(t);m.call(o,t),e&&e.removeSelfFromZr(n)},o.addToMap=function(t){v.call(o,t),t.addSelfToZr(n)}};g.prototype={constructor:g,getId:function(){return this.id},add:function(t){this.storage.addRoot(t),this._needsRefresh=!0},remove:function(t){this.storage.delRoot(t),this._needsRefresh=!0},configLayer:function(t,e){this.painter.configLayer(t,e),this._needsRefresh=!0},refreshImmediately:function(){this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},refresh:function(){this._needsRefresh=!0},flush:function(){this._needsRefresh&&this.refreshImmediately(),this._needsRefreshHover&&this.refreshHoverImmediately()},addHover:function(t,e){this.painter.addHover&&(this.painter.addHover(t,e),this.refreshHover())},removeHover:function(t){this.painter.removeHover&&(this.painter.removeHover(t),this.refreshHover())},clearHover:function(){this.painter.clearHover&&(this.painter.clearHover(),this.refreshHover())},refreshHover:function(){this._needsRefreshHover=!0},refreshHoverImmediately:function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.refreshHover()},resize:function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},clearAnimation:function(){this.animation.clear()},getWidth:function(){return this.painter.getWidth()},getHeight:function(){return this.painter.getHeight()},pathToImage:function(t,e){return this.painter.pathToImage(t,e)},setCursorStyle:function(t){this.handler.setCursorStyle(t)},on:function(t,e,i){this.handler.on(t,e,i)},off:function(t,e){this.handler.off(t,e)},trigger:function(t,e){this.handler.trigger(t,e)},clear:function(){this.storage.delRoot(),this.painter.clear()},dispose:function(){this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,n(this.id)}},t.exports=p},function(t,e,i){"use strict";function n(t,e,i){return{type:t,event:i,target:e,cancelBubble:!1,offsetX:i.zrX,offsetY:i.zrY,gestureEvent:i.gestureEvent,pinchX:i.pinchX,pinchY:i.pinchY,pinchScale:i.pinchScale,wheelDelta:i.zrDelta,zrByTouch:i.zrByTouch}}function o(){}function a(t,e,i){if(t[t.rectHover?"rectContain":"contain"](e,i)){for(var n=t;n;){if(n.silent||n.clipPath&&!n.clipPath.contain(e,i))return!1;n=n.parent}return!0}return!1}var r=i(4),s=i(84),l=i(33);o.prototype.dispose=function(){};var u=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],c=function(t,e,i,n){l.call(this),this.storage=t,this.painter=e,this.painterRoot=n,i=i||new o,this.proxy=i,i.handler=this,this._hovered,this._lastTouchMoment,this._lastX,this._lastY,s.call(this),r.each(u,function(t){i.on&&i.on(t,this[t],this)},this)};c.prototype={constructor:c,mousemove:function(t){var e=t.zrX,i=t.zrY,n=this.findHover(e,i,null),o=this._hovered,a=this.proxy;this._hovered=n,a.setCursor&&a.setCursor(n?n.cursor:"default"),o&&n!==o&&o.__zr&&this.dispatchToElement(o,"mouseout",t),this.dispatchToElement(n,"mousemove",t),n&&n!==o&&this.dispatchToElement(n,"mouseover",t)},mouseout:function(t){this.dispatchToElement(this._hovered,"mouseout",t);var e,i=t.toElement||t.relatedTarget;do{i=i&&i.parentNode}while(i&&9!=i.nodeType&&!(e=i===this.painterRoot));!e&&this.trigger("globalout",{event:t})},resize:function(t){this._hovered=null},dispatch:function(t,e){var i=this[t];i&&i.call(this,e)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},dispatchToElement:function(t,e,i){for(var o="on"+e,a=n(e,t,i),r=t;r&&(r[o]&&(a.cancelBubble=r[o].call(r,a)),r.trigger(e,a),r=r.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(e,a),this.painter&&this.painter.eachOtherLayer(function(t){"function"==typeof t[o]&&t[o].call(t,a),t.trigger&&t.trigger(e,a)}))},findHover:function(t,e,i){for(var n=this.storage.getDisplayList(),o=n.length-1;o>=0;o--)if(!n[o].silent&&n[o]!==i&&!n[o].ignore&&a(n[o],t,e))return n[o]}},r.each(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){c.prototype[t]=function(e){var i=this.findHover(e.zrX,e.zrY,null);if("mousedown"===t)this._downel=i,this._upel=i;else if("mosueup"===t)this._upel=i;else if("click"===t&&this._downel!==this._upel)return;this.dispatchToElement(i,t,e)}}),r.mixin(c,l),r.mixin(c,s),t.exports=c},function(t,e){function i(){this.on("mousedown",this._dragStart,this),this.on("mousemove",this._drag,this),this.on("mouseup",this._dragEnd,this),this.on("globalout",this._dragEnd,this)}i.prototype={constructor:i,_dragStart:function(t){var e=t.target;e&&e.draggable&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.dispatchToElement(e,"dragstart",t.event))},_drag:function(t){var e=this._draggingTarget;if(e){var i=t.offsetX,n=t.offsetY,o=i-this._x,a=n-this._y;this._x=i,this._y=n,e.drift(o,a,t),this.dispatchToElement(e,"drag",t.event);var r=this.findHover(i,n,e),s=this._dropTarget;this._dropTarget=r,e!==r&&(s&&r!==s&&this.dispatchToElement(s,"dragleave",t.event),r&&r!==s&&this.dispatchToElement(r,"dragenter",t.event))}},_dragEnd:function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.dispatchToElement(e,"dragend",t.event),this._dropTarget&&this.dispatchToElement(this._dropTarget,"drop",t.event),this._draggingTarget=null,this._dropTarget=null}},t.exports=i},function(t,e,i){"use strict";function n(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var o=i(4),a=i(2),r=i(30),s=i(86),l=function(){this._elements={},this._roots=[],this._displayList=[],this._displayListLen=0};l.prototype={constructor:l,traverse:function(t,e){for(var i=0;i=0&&(this.delFromMap(a.id),this._roots.splice(s,1),a instanceof r&&a.delChildrenFromStorage(this))}},addToMap:function(t){return t instanceof r&&(t.__storage=this),t.dirty(!1),this._elements[t.id]=t,this},get:function(t){return this._elements[t]},delFromMap:function(t){var e=this._elements,i=e[t];return i&&(delete e[t],i instanceof r&&(i.__storage=null)),this},dispose:function(){this._elements=this._renderList=this._roots=null},displayableSortFunc:n},t.exports=l},function(t,e){function i(t){for(var e=0;t>=u;)e|=1&t,t>>=1;return t+e}function n(t,e,i,n){var a=e+1;if(a===i)return 1;if(n(t[a++],t[e])<0){for(;a=0;)a++;return a-e}function o(t,e,i){for(i--;e>>1])<0?l=a:s=a+1;var u=n-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=r}}function r(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])>0){for(s=n-o;l0;)r=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),r+=o,l+=o}else{for(s=o+1;ls&&(l=s);var u=r;r=o-l,l=o-u}for(r++;r>>1);a(t,e[i+c])>0?r=c+1:l=c}return l}function s(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])<0){for(s=o+1;ls&&(l=s);var u=r;r=o-l,l=o-u}else{for(s=n-o;l=0;)r=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),r+=o,l+=o}for(r++;r>>1);a(t,e[i+c])<0?l=c:r=c+1}return l}function l(t,e){function i(i){var u=a[i],c=l[i],h=a[i+1],f=l[i+1];l[i]=c+f,i===d-3&&(a[i+1]=a[i+2],l[i+1]=l[i+2]),d--;var p=s(t[h],t,u,c,0,e);u+=p,0!==(c-=p)&&0!==(f=r(t[u+c-1],t,h,f,f-1,e))&&(c<=f?n(u,c,h,f):o(u,c,h,f))}function n(i,n,o,a){var l=0;for(l=0;l=c||m>=c);if(v)break;y<0&&(y=0),y+=2}if((u=y)<1&&(u=1),1===n){for(l=0;l=0;l--)t[m+l]=t[g+l];if(0===n){_=!0;break}}if(t[p--]=f[d--],1==--a){_=!0;break}if(0!=(x=a-r(t[h],f,0,a,a-1,e))){for(a-=x,m=(p-=x)+1,g=(d-=x)+1,l=0;l=c||x>=c);if(_)break;v<0&&(v=0),v+=2}if((u=v)<1&&(u=1),1===a){for(m=(p-=n)+1,g=(h-=n)+1,l=n-1;l>=0;l--)t[m+l]=t[g+l];t[p]=f[d]}else{if(0===a)throw new Error;for(g=p-(a-1),l=0;l=0;l--)t[m+l]=t[g+l];t[p]=f[d]}else for(g=p-(a-1),l=0;l1;){var t=d-2;if(t>=1&&l[t-1]<=l[t]+l[t+1]||t>=2&&l[t-2]<=l[t]+l[t-1])l[t-1]l[t+1])break;i(t)}},this.forceMergeRuns=function(){for(;d>1;){var t=d-2;t>0&&l[t-1]d&&(f=d),a(t,o,o+f,o+c,e),c=f}h.pushRun(o,c),h.mergeRuns(),s-=c,o+=c}while(0!==s);h.forceMergeRuns()}}},function(t,e,i){"use strict";var n=i(4),o=i(88).Dispatcher,a=i(89),r=i(36),s=function(t){t=t||{},this.stage=t.stage||{},this.onframe=t.onframe||function(){},this._clips=[],this._running=!1,this._time,this._pausedTime,this._pauseStart,this._paused=!1,o.call(this)};s.prototype={constructor:s,addClip:function(t){this._clips.push(t)},addAnimator:function(t){t.animation=this;for(var e=t.getClips(),i=0;i=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;i=0){var a="touchend"!=n?e.targetTouches[0]:e.changedTouches[0];a&&o(t,a,e,i)}else o(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;return e},addEventListener:function(t,e,i){l?t.addEventListener(e,i):t.attachEvent("on"+e,i)},removeEventListener:function(t,e,i){l?t.removeEventListener(e,i):t.detachEvent("on"+e,i)},stop:u,Dispatcher:r}},function(t,e){t.exports="undefined"!=typeof window&&(window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){setTimeout(t,16)}},function(t,e,i){function n(t){return"mousewheel"===t&&d.browser.firefox?"DOMMouseScroll":t}function o(t,e,i){var n=t._gestureMgr;"start"===i&&n.clear();var o=n.recognize(e,t.handler.findHover(e.zrX,e.zrY,null),t.dom);if("end"===i&&n.clear(),o){var a=o.type;e.gestureEvent=a,t.handler.dispatchToElement(o.target,a,o.event)}}function a(t){t._touching=!0,clearTimeout(t._touchTimer),t._touchTimer=setTimeout(function(){t._touching=!1},700)}function r(t){var e=t.pointerType;return"pen"===e||"touch"===e}function s(t){function e(t,e){return function(){if(!e._touching)return t.apply(e,arguments)}}c.each(y,function(e){t._handlers[e]=c.bind(b[e],t)}),c.each(_,function(e){t._handlers[e]=c.bind(b[e],t)}),c.each(v,function(i){t._handlers[i]=e(b[i],t)})}function l(t){function e(e,i){c.each(e,function(e){p(t,n(e),i._handlers[e])},i)}h.call(this),this.dom=t,this._touching=!1,this._touchTimer,this._gestureMgr=new f,this._handlers={},s(this),d.pointerEventsSupported?e(_,this):(d.touchEventsSupported&&e(y,this),e(v,this))}var u=i(88),c=i(4),h=i(33),d=i(2),f=i(91),p=u.addEventListener,g=u.removeEventListener,m=u.normalizeEvent,v=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],y=["touchstart","touchend","touchmove"],x={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},_=c.map(v,function(t){var e=t.replace("mouse","pointer");return x[e]?e:t}),b={mousemove:function(t){t=m(this.dom,t),this.trigger("mousemove",t)},mouseout:function(t){var e=(t=m(this.dom,t)).toElement||t.relatedTarget;if(e!=this.dom)for(;e&&9!=e.nodeType;){if(e===this.dom)return;e=e.parentNode}this.trigger("mouseout",t)},touchstart:function(t){(t=m(this.dom,t)).zrByTouch=!0,this._lastTouchMoment=new Date,o(this,t,"start"),b.mousemove.call(this,t),b.mousedown.call(this,t),a(this)},touchmove:function(t){(t=m(this.dom,t)).zrByTouch=!0,o(this,t,"change"),b.mousemove.call(this,t),a(this)},touchend:function(t){(t=m(this.dom,t)).zrByTouch=!0,o(this,t,"end"),b.mouseup.call(this,t),+new Date-this._lastTouchMoment<300&&b.click.call(this,t),a(this)},pointerdown:function(t){b.mousedown.call(this,t)},pointermove:function(t){r(t)||b.mousemove.call(this,t)},pointerup:function(t){b.mouseup.call(this,t)},pointerout:function(t){r(t)||b.mouseout.call(this,t)}};c.each(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){b[t]=function(e){e=m(this.dom,e),this.trigger(t,e)}});var w=l.prototype;w.dispose=function(){for(var t=v.concat(y),e=0;e1&&a&&a.length>1){var s=n(a)/n(r);!isFinite(s)&&(s=1),e.pinchScale=s;var l=o(a);return e.pinchX=l[0],e.pinchY=l[1],{type:"pinch",target:t[0].target,event:e}}}}};t.exports=r},function(t,e,i){"use strict";function n(t){return parseInt(t,10)}function o(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}function a(t){t.__unusedCount++}function r(t){1==t.__unusedCount&&t.clear()}function s(t,e,i){return y.copy(t.getBoundingRect()),t.transform&&y.applyTransform(t.transform),x.width=e,x.height=i,!y.intersect(x)}function l(t,e){if(t==e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var i=0;i=0&&i.splice(n,1),t.__hoverMir=null},clearHover:function(t){for(var e=this._hoverElements,i=0;i=0){if(!s){if((s=this._progressiveLayers[Math.min(u++,4)]).ctx.save(),s.renderScope={},s&&s.__progress>s.__maxProgress){g=s.__nextIdxNotProg-1;continue}l=s.__progress,s.__dirty||(p=l),s.__progress=p+1}x===p&&this._doPaintEl(v,s,!0,s.renderScope)}else this._doPaintEl(v,n,e,r);v.__dirty=!1}}s&&i(s),a&&a.restore(),this._furtherProgressive=!1,d.each(this._progressiveLayers,function(t){t.__maxProgress>=t.__progress&&(this._furtherProgressive=!0)},this)},_doPaintEl:function(t,e,i,n){var o=e.ctx,a=t.transform;if((e.__dirty||i)&&!t.invisible&&0!==t.style.opacity&&(!a||a[0]||a[3])&&(!t.culling||!s(t,this._width,this._height))){var r=t.__clipPaths;(n.prevClipLayer!==e||l(r,n.prevElClipPaths))&&(n.prevElClipPaths&&(n.prevClipLayer.ctx.restore(),n.prevClipLayer=n.prevElClipPaths=null,n.prevEl=null),r&&(o.save(),u(r,o),n.prevClipLayer=e,n.prevElClipPaths=r)),t.beforeBrush&&t.beforeBrush(o),t.brush(o,n.prevEl||null),n.prevEl=t,t.afterBrush&&t.afterBrush(o)}},getLayer:function(t){if(this._singleCanvas)return this._layers[0];var e=this._layers[t];return e||((e=new m("zr_"+t,this,this.dpr)).__builtin__=!0,this._layerConfig[t]&&d.merge(e,this._layerConfig[t],!0),this.insertLayer(t,e),e.initContext()),e},insertLayer:function(t,e){var i=this._layers,n=this._zlevelList,a=n.length,r=null,s=-1,l=this._domRoot;if(i[t])f("ZLevel "+t+" has been used already");else if(o(e)){if(a>0&&t>n[0]){for(s=0;st);s++);r=i[n[s]]}if(n.splice(s+1,0,t),i[t]=e,!e.virtual)if(r){var u=r.dom;u.nextSibling?l.insertBefore(e.dom,u.nextSibling):l.appendChild(e.dom)}else l.firstChild?l.insertBefore(e.dom,l.firstChild):l.appendChild(e.dom)}else f("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var i,n,o=this._zlevelList;for(n=0;n=0){r!==p&&(r=p,l++);var g=h.__frame=l-1;if(!a){var v=Math.min(s,4);(a=i[v])||(a=i[v]=new m("progressive",this,this.dpr)).initContext(),a.__maxProgress=0}a.__dirty=a.__dirty||h.__dirty,a.elCount++,a.__maxProgress=Math.max(a.__maxProgress,g),a.__maxProgress>=a.__progress&&(f.__dirty=!0)}else h.__frame=-1,a&&(a.__nextIdxNotProg=u,s++,a=null)}a&&(s++,a.__nextIdxNotProg=u),this.eachBuiltinLayer(function(t,e){n[e]!==t.elCount&&(t.__dirty=!0)}),i.length=Math.min(s,5),d.each(i,function(t,e){o[e]!==t.elCount&&(h.__dirty=!0),t.__dirty&&(t.__progress=0)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(t){t.clear()},configLayer:function(t,e){if(e){var i=this._layerConfig;i[t]?d.merge(i[t],e,!0):i[t]=e;var n=this._layers[t];n&&d.merge(n,i[t],!0)}},delLayer:function(t){var e=this._layers,i=this._zlevelList,n=e[t];n&&(n.dom.parentNode.removeChild(n.dom),delete e[t],i.splice(d.indexOf(i,t),1))},resize:function(t,e){var i=this._domRoot;i.style.display="none";var n=this._opts;if(null!=t&&(n.width=t),null!=e&&(n.height=e),t=this._getSize(0),e=this._getSize(1),i.style.display="",this._width!=t||e!=this._height){i.style.width=t+"px",i.style.height=e+"px";for(var o in this._layers)this._layers.hasOwnProperty(o)&&this._layers[o].resize(t,e);d.each(this._progressiveLayers,function(i){i.resize(t,e)}),this.refresh(!0)}return this._width=t,this._height=e,this},clearLayer:function(t){var e=this._layers[t];e&&e.clear()},dispose:function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},getRenderedCanvas:function(t){if(t=t||{},this._singleCanvas)return this._layers[0].dom;var e=new m("image",this,t.pixelRatio||this.dpr);e.initContext(),e.clearColor=t.backgroundColor,e.clear();for(var i=this.storage.getDisplayList(!0),n={},o=0;o=0?o[s]=new l.constructor(a[s].length):o[s]=a[s]}return n}var a="undefined"==typeof window?e:window,r={float:void 0===a.Float64Array?Array:a.Float64Array,int:void 0===a.Int32Array?Array:a.Int32Array,ordinal:Array,number:Array,time:Array},s=i(12),l=i(99),u=i(4),c=i(5),h=u.isObject,d=["stackedOn","hasItemOption","_nameList","_idList","_rawData"],f=function(t,e){u.each(d.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods},p=function(t,e){t=t||["x","y"];for(var i={},n=[],o=0;o0&&(w+="__ec__"+d[b]),d[b]++),w&&(h[_]=w)}this._nameList=e,this._idList=h},g.count=function(){return this.indices.length},g.get=function(t,e,i){var n=this._storage,o=this.indices[e];if(null==o)return NaN;var a=n[t]&&n[t][o];if(i){var r=this._dimensionInfos[t];if(r&&r.stackable)for(var s=this.stackedOn;s;){var l=s.get(t,e);(a>=0&&l>0||a<=0&&l<0)&&(a+=l),s=s.stackedOn}}return a},g.getValues=function(t,e,i){var n=[];u.isArray(t)||(i=e,e=t,t=this.dimensions);for(var o=0,a=t.length;ol&&(l=a));return this._extent[t+!!e]=[s,l]}return[1/0,-1/0]},g.getSum=function(t,e){var i=0;if(this._storage[t])for(var n=0,o=this.count();nt))return a;o=a-1}}return-1},g.indexOfNearest=function(t,e,i,n){var o=[];if(!this._storage[t])return o;null==n&&(n=1/0);for(var a=Number.MAX_VALUE,r=-1,s=0,l=this.count();s=0&&r<0)&&(a=c,r=u,o.length=0),o.push(s))}return o},g.getRawIndex=function(t){var e=this.indices[t];return null==e?-1:e},g.getRawDataItem=function(t){return this._rawData[this.getRawIndex(t)]},g.getName=function(t){return this._nameList[this.indices[t]]||""},g.getId=function(t){return this._idList[this.indices[t]]||this.getRawIndex(t)+""},g.each=function(t,e,i,o){"function"==typeof t&&(o=i,i=e,e=t,t=[]);var a=[],r=(t=u.map(n(t),this.getDimension,this)).length,s=this.indices;o=o||this;for(var l=0;lp-g&&(d=p-g,c.length=d);for(var m=0;m=i&&t<=n},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return o.getPixelPrecision(t||this.scale.getExtent(),this._extent)},setExtent:function(t,e){var i=this._extent;i[0]=t,i[1]=e},dataToCoord:function(t,e){var i=this._extent,o=this.scale;return t=o.normalize(t),this.onBand&&"ordinal"===o.type&&n(i=i.slice(),o.count()),a(t,s,i,e)},coordToData:function(t,e){var i=this._extent,o=this.scale;this.onBand&&"ordinal"===o.type&&n(i=i.slice(),o.count());var r=a(t,i,s,e);return this.scale.scale(r)},pointToData:function(t,e){},getTicksCoords:function(t){if(this.onBand&&!t){for(var e=this.getBands(),i=[],n=0;n1){n=[];for(var s=0;s=0&&o(t)?function(t,e,i,n){return h.isDataItemOption(t)&&(x.hasItemOption=!0),n===y?i:p(f(t),v[n])}:function(t,e,i,n){var o=f(t),a=p(o&&o[n],v[n]);h.isDataItemOption(t)&&(x.hasItemOption=!0);var r=m&&m.categoryAxesModels;return r&&r[e]&&"string"==typeof a&&(b[e]=b[e]||r[e].getCategories(),(a=c.indexOf(b[e],a))<0&&!isNaN(a)&&(a=+a)),a};return x.hasItemOption=!1,x.initData(t,_,w),x}},function(t,e,i){function n(t,e,i){if(!e)return t;var n=(i=i||{}).dimCount;if(null==n){var s=o(e[0]);n=a.isArray(s)&&s.length||1}for(var l=i.defaultNames||[],u=i.extraPrefix||"extra",c=0;c0&&u>0&&!c&&(l=0),l<0&&u<0&&!h&&(u=0)),[l,u]},u.niceScaleExtent=function(t,e){var i=u.getScaleExtent(t,e),n=null!=e.getMin(),o=null!=e.getMax(),a=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase")),t.setExtent(i[0],i[1]),t.niceExtent(a,n,o);var r=e.get("minInterval");if(isFinite(r)&&!n&&!o&&"interval"===t.type){var s=t.getInterval(),l=Math.max(Math.abs(s),r)/s,c=((i=t.getExtent())[1]+i[0])/2;t.setExtent(l*(i[0]-c)+c,l*(i[1]-c)+c),t.niceExtent(a)}null!=(s=e.get("interval"))&&t.setInterval&&t.setInterval(s)},u.createScaleByModel=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new n(t.getCategories(),[1/0,-1/0]);case"value":return new o;default:return(a.getClass(e)||o).create(t)}},u.ifAxisCrossZero=function(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||i<0&&n<0)},u.getAxisLabelInterval=function(t,e,i,n){var o,a=0,r=0,s=1;e.length>40&&(s=Math.floor(e.length/40));for(var u=0;u1?s:(a+1)*s-1},u.getFormattedLabels=function(t,e){var i=t.scale,n=i.getTicksLabels(),o=i.getTicks();return"string"==typeof e?(e=function(t){return function(e){return t.replace("{value}",null!=e?e:"")}}(e),s.map(n,e)):"function"==typeof e?s.map(o,function(i,n){return e(u.getAxisRawValue(t,i),n)},this):n},u.getAxisRawValue=function(t,e){return"category"===t.type?t.scale.getLabel(e):e},t.exports=u},function(t,e,i){var n=i(4),o=i(107),a=o.prototype,r=o.extend({type:"ordinal",init:function(t,e){this._data=t,this._extent=e||[0,t.length-1]},parse:function(t){return"string"==typeof t?n.indexOf(this._data,t):Math.round(t)},contain:function(t){return t=this.parse(t),a.contain.call(this,t)&&null!=this._data[t]},normalize:function(t){return a.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(a.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){return this._data[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getDataExtent(e,!1))},niceTicks:n.noop,niceExtent:n.noop});r.create=function(){return new r},t.exports=r},function(t,e,i){function n(){this._extent=[1/0,-1/0],this._interval=0,this.init&&this.init.apply(this,arguments)}var o=i(13),a=n.prototype;a.parse=function(t){return t},a.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},a.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},a.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},a.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},a.unionExtentFromData=function(t,e){this.unionExtent(t.getDataExtent(e,!0))},a.getExtent=function(){return this._extent.slice()},a.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},a.getTicksLabels=function(){for(var t=[],e=this.getTicks(),i=0;ie[1]&&(e[1]=t[1]),c.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval||this.niceTicks(),this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice()},getTicks:function(){this._interval||this.niceTicks();var t=this._interval,e=this._extent,i=[];if(t){var n=this._niceExtent,o=this._intervalPrecision=l(t);o+=2,e[0]1e4)return[];e[1]>(i.length?i[i.length-1]:n[1])&&i.push(e[1])}return i},getTicksLabels:function(){for(var t=[],e=this.getTicks(),i=0;i>>1;t[o][2]0}))},niceTicks:function(t){t=t||10;var e=this._extent,i=e[1]-e[0];if(!(i===1/0||i<=0)){var n=r.quantity(i);for(t/i*n<=.5&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var o=[r.round(f(e[0]/n)*n),r.round(d(e[1]/n)*n)];this._interval=n,this._niceExtent=o}},niceExtent:function(t,e,i){u.niceExtent.call(this,t,e,i);var n=this._originalScale;n.__fixMin=e,n.__fixMax=i}});o.each(["contain","normalize"],function(t){m.prototype[t]=function(e){return e=g(e)/g(this.base),l[t].call(this,e)}}),m.create=function(){return new m},t.exports=m},function(t,e,i){function n(t){return o.isObject(t)&&null!=t.value?t.value:t}var o=i(4),a=i(105);t.exports={getFormattedLabels:function(){return a.getFormattedLabels(this.axis,this.get("axisLabel.formatter"))},getCategories:function(){return"category"===this.get("type")&&o.map(this.get("data"),n)},getMin:function(t){var e=this.option,i=t||null==e.rangeStart?e.min:e.rangeStart;return this.axis&&null!=i&&"dataMin"!==i&&!o.eqNaN(i)&&(i=this.axis.scale.parse(i)),i},getMax:function(t){var e=this.option,i=t||null==e.rangeEnd?e.max:e.rangeEnd;return this.axis&&null!=i&&"dataMax"!==i&&!o.eqNaN(i)&&(i=this.axis.scale.parse(i)),i},getNeedCrossZero:function(){var t=this.option;return null==t.rangeStart&&null==t.rangeEnd&&!t.scale},getCoordSysModel:o.noop,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}}},function(t,e,i){var n=i(4),o=i(1),a=o.PRIORITY;i(113),i(114),o.registerVisual(n.curry(i(119),"line","circle","line")),o.registerLayout(n.curry(i(120),"line")),o.registerProcessor(a.PROCESSOR.STATISTIC,n.curry(i(121),"line")),i(122)},function(t,e,i){"use strict";var n=i(102),o=i(28);t.exports=o.extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(t,e){var i=t.coordinateSystem;if("polar"!==i&&"cartesian2d"!==i)throw new Error("Line not support coordinateSystem besides cartesian and polar");return n(t.data,this,e)},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,clipOverflow:!0,label:{normal:{position:"top"}},lineStyle:{normal:{width:2,type:"solid"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:!1,connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0}})},function(t,e,i){"use strict";function n(t,e){if(t.length===e.length){for(var i=0;ie[0]?1:-1;e[0]+=n*i,e[1]-=n*i}return e}function r(t){return t>=0?1:-1}function s(t,e){var i=t.getBaseAxis(),n=t.getOtherAxis(i),o=i.onZero?0:n.scale.getExtent()[0],a=n.dim,s="x"===a||"radius"===a?1:0;return e.mapArray([a],function(n,l){for(var u,c=e.stackedOn;c&&r(c.get(a,l))===r(n);){u=c;break}var h=[];return h[s]=e.get(i.dim,l),h[1-s]=u?u.get(a,l,!0):o,t.dataToPoint(h)},!0)}function l(t,e,i){var n=a(t.getAxis("x")),o=a(t.getAxis("y")),r=t.getBaseAxis().isHorizontal(),s=Math.min(n[0],n[1]),l=Math.min(o[0],o[1]),u=Math.max(n[0],n[1])-s,c=Math.max(o[0],o[1])-l,h=i.get("lineStyle.normal.width")||2,d=i.get("clipOverflow")?h/2:Math.max(u,c);r?(l-=d,c+=2*d):(s-=d,u+=2*d);var f=new v.Rect({shape:{x:s,y:l,width:u,height:c}});return e&&(f.shape[r?"width":"height"]=0,v.initProps(f,{shape:{width:u,height:c}},i)),f}function u(t,e,i){var n=t.getAngleAxis(),o=t.getRadiusAxis().getExtent(),a=n.getExtent(),r=Math.PI/180,s=new v.Sector({shape:{cx:t.cx,cy:t.cy,r0:o[0],r:o[1],startAngle:-a[0]*r,endAngle:-a[1]*r,clockwise:n.inverse}});return e&&(s.shape.endAngle=-a[0]*r,v.initProps(s,{shape:{endAngle:-a[1]*r}},i)),s}function c(t,e,i){return"polar"===t.type?u(t,e,i):l(t,e,i)}function h(t,e,i){for(var n=e.getBaseAxis(),o="x"===n.dim||"radius"===n.dim?0:1,a=[],r=0;r=0;o--)if(i[o].dimension<2){n=i[o];break}if(n&&"cartesian2d"===e.type){var a=n.dimension,r=t.dimensions[a],s=e.getAxis(r),l=f.map(n.stops,function(t){return{coord:s.toGlobalCoord(s.dataToCoord(t.value)),color:t.color}}),u=l.length,c=n.outerColors.slice();u&&l[0].coord>l[u-1].coord&&(l.reverse(),c.reverse());var h=l[0].coord-10,d=l[u-1].coord+10,p=d-h;if(p<.001)return"transparent";f.each(l,function(t){t.offset=(t.coord-h)/p}),l.push({offset:u?l[u-1].offset:.5,color:c[1]||"transparent"}),l.unshift({offset:u?l[0].offset:.5,color:c[0]||"transparent"});var g=new v.LinearGradient(0,0,0,0,l,!0);return g[r]=h,g[r+"2"]=d,g}console.warn("Visual map on line style only support x or y dimension.")}}var f=i(4),p=i(115),g=i(116),m=i(117),v=i(44),y=i(5),x=i(118),_=i(43);t.exports=_.extend({type:"line",init:function(){var t=new v.Group,e=new p;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,i){var a=t.coordinateSystem,r=this.group,l=t.getData(),u=t.getModel("lineStyle.normal"),p=t.getModel("areaStyle.normal"),g=l.mapArray(l.getItemLayout,!0),m="polar"===a.type,v=this._coordSys,y=this._symbolDraw,x=this._polyline,_=this._polygon,b=this._lineGroup,w=t.get("animation"),S=!p.isEmpty(),M=s(a,l),I=t.get("showSymbol"),T=I&&!m&&!t.get("showAllSymbol")&&this._getSymbolIgnoreFunc(l,a),A=this._data;A&&A.eachItemGraphicEl(function(t,e){t.__temp&&(r.remove(t),A.setItemGraphicEl(e,null))}),I||y.remove(),r.add(b);var C=!m&&t.get("step");x&&v.type===a.type&&C===this._step?(S&&!_?_=this._newPolygon(g,M,a,w):_&&!S&&(b.remove(_),_=this._polygon=null),b.setClipPath(c(a,!1,t)),I&&y.updateData(l,T),l.eachItemGraphicEl(function(t){t.stopAnimation(!0)}),n(this._stackedOnPoints,M)&&n(this._points,g)||(w?this._updateAnimation(l,M,a,i,C):(C&&(g=h(g,a,C),M=h(M,a,C)),x.setShape({points:g}),_&&_.setShape({points:g,stackedOnPoints:M})))):(I&&y.updateData(l,T),C&&(g=h(g,a,C),M=h(M,a,C)),x=this._newPolyline(g,a,w),S&&(_=this._newPolygon(g,M,a,w)),b.setClipPath(c(a,!0,t)));var L=d(l,a)||l.getVisual("color");x.useStyle(f.defaults(u.getLineStyle(),{fill:"none",stroke:L,lineJoin:"bevel"}));var D=t.get("smooth");if(D=o(t.get("smooth")),x.setShape({smooth:D,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),_){var P=l.stackedOn,k=0;_.useStyle(f.defaults(p.getAreaStyle(),{fill:L,opacity:.7,lineJoin:"bevel"})),P&&(k=o(P.hostModel.get("smooth"))),_.setShape({smooth:D,stackedOnSmooth:k,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=l,this._coordSys=a,this._stackedOnPoints=M,this._points=g,this._step=C},dispose:function(){},highlight:function(t,e,i,n){var o=t.getData(),a=y.queryDataIndex(o,n);if(!(a instanceof Array)&&null!=a&&a>=0){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;(r=new g(o,a)).position=s,r.setZ(t.get("zlevel"),t.get("z")),r.ignore=isNaN(s[0])||isNaN(s[1]),r.__temp=!0,o.setItemGraphicEl(a,r),r.stopSymbolAnimation(!0),this.group.add(r)}r.highlight()}else _.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var o=t.getData(),a=y.queryDataIndex(o,n);if(null!=a&&a>=0){var r=o.getItemGraphicEl(a);r&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay())}else _.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new x.Polyline({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new x.Polygon({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i,i},_getSymbolIgnoreFunc:function(t,e){var i=e.getAxesByScale("ordinal")[0];if(i&&i.isLabelIgnored)return f.bind(i.isLabelIgnored,i)},_updateAnimation:function(t,e,i,n,o){var a=this._polyline,r=this._polygon,s=t.hostModel,l=m(this._data,t,this._stackedOnPoints,e,this._coordSys,i),u=l.current,c=l.stackedOnCurrent,d=l.next,f=l.stackedOnNext;o&&(u=h(l.current,i,o),c=h(l.stackedOnCurrent,i,o),d=h(l.next,i,o),f=h(l.stackedOnNext,i,o)),a.shape.__points=l.current,a.shape.points=u,v.updateProps(a,{shape:{points:d}},s),r&&(r.setShape({points:u,stackedOnPoints:c}),v.updateProps(r,{shape:{points:d,stackedOnPoints:f}},s));for(var p=[],g=l.status,y=0;y=0?1:-1}function n(t,e,n){for(var o,a=t.getBaseAxis(),r=t.getOtherAxis(a),s=a.onZero?0:r.scale.getExtent()[0],l=r.dim,u="x"===l||"radius"===l?1:0,c=e.stackedOn,h=e.get(l,n);c&&i(c.get(l,n))===i(h);){o=c;break}var d=[];return d[u]=e.get(a.dim,n),d[1-u]=o?o.get(l,n,!0):s,t.dataToPoint(d)}function o(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}t.exports=function(t,e,i,a,r,s){for(var l=o(t,e),u=[],c=[],h=[],d=[],f=[],p=[],g=[],m=s.dimensions,v=0;v=a||b<0)break;if(n(S)){if(x){b+=r;continue}break}if(b===i)t[r>0?"moveTo":"lineTo"](S[0],S[1]),h(f,S);else if(v>0){var M=b+r,I=e[M];if(x)for(;I&&n(e[M]);)I=e[M+=r];var T=.5,A=e[_];if(!(I=e[M])||n(I))h(p,S);else{n(I)&&!x&&(I=S),s.sub(d,I,A);var C,L;if("x"===y||"y"===y){var D="x"===y?0:1;C=Math.abs(S[D]-A[D]),L=Math.abs(S[D]-I[D])}else C=s.dist(S,A),L=s.dist(S,I);c(p,S,d,-v*(1-(T=L/(L+C))))}l(f,f,m),u(f,f,g),l(p,p,m),u(p,p,g),t.bezierCurveTo(f[0],f[1],p[0],p[1],S[0],S[1]),c(f,S,d,v*T)}else t.lineTo(S[0],S[1]);_=b,b+=r}return w}function a(t,e){var i=[1/0,1/0],n=[-1/0,-1/0];if(e)for(var o=0;on[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}var r=i(46),s=i(10),l=s.min,u=s.max,c=s.scaleAndAdd,h=s.copy,d=[],f=[],p=[];t.exports={Polyline:r.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},buildPath:function(t,e){var i=e.points,r=0,s=i.length,l=a(i,e.smoothConstraint);if(e.connectNulls){for(;s>0&&n(i[s-1]);s--);for(;r0&&n(i[l-1]);l--);for(;se&&(e=t[i]);return e},min:function(t){for(var e=1/0,i=0;i1){var h;"string"==typeof o?h=i[o]:"function"==typeof o&&(h=o),h&&(e=e.downSample(s.dim,1/c,h,n),t.setData(e))}}},this)}},function(t,e,i){"use strict";var n=i(44),o=i(4),a=i(1);i(123),i(132),a.extendComponentView({type:"grid",render:function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new n.Rect({shape:t.coordinateSystem.getRect(),style:o.defaults({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))}}),a.registerPreprocessor(function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})})},function(t,e,i){function n(t,e,i){return t.getCoordSysModel()===e}function o(t){var e,i=t.model,n=i.getFormattedLabels(),o=i.getModel("axisLabel.textStyle"),a=1,r=n.length;r>40&&(a=Math.ceil(r/40));for(var s=0;se[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},getLabelInterval:function(){var t=this._labelInterval;return t||(t=this._labelInterval=a(this)),t},isLabelIgnored:function(t){if("category"===this.type){var e=this.getLabelInterval();return"function"==typeof e&&!e(t,this.scale.getLabel(t))||t%(e+1)}},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},n.inherits(r,o),t.exports=r},function(t,e,i){"use strict";var n=i(4),o=i(105);t.exports=function(t){var e=t.model,i=e.getModel("axisLabel"),a=i.get("interval");return"category"!==t.type||"auto"!==a?"auto"===a?0:a:o.getAxisLabelInterval(n.map(t.scale.getTicks(),t.dataToCoord,t),e.getFormattedLabels(),i.getModel("textStyle").getFont(),t.isHorizontal())}},function(t,e,i){"use strict";i(129);var n=i(19);t.exports=n.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}})},function(t,e,i){"use strict";function n(t,e){return e.type||(e.data?"category":"value")}var o=i(19),a=i(4),r=i(130),s=o.extend({type:"cartesian2dAxis",axis:null,init:function(){s.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){s.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){s.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});a.merge(s.prototype,i(111));var l={offset:0};r("x",s,n,l),r("y",s,n,l),t.exports=s},function(t,e,i){var n=i(131),o=i(4),a=i(19),r=i(21),s=["value","category","time","log"];t.exports=function(t,e,i,l){o.each(s,function(a){e.extend({type:t+"Axis."+a,mergeDefaultAndTheme:function(e,n){var s=this.layoutMode,l=s?r.getLayoutParams(e):{},u=n.getTheme();o.merge(e,u.get(a+"Axis")),o.merge(e,this.getDefaultOption()),e.type=i(t,e),s&&r.mergeLayoutParam(e,l,s)},defaultOption:o.mergeAll([{},n[a+"Axis"],l],!0)})}),a.registerSubTypeDefaulter(t+"Axis",o.curry(i,t))}},function(t,e,i){var n=i(4),o={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,lineStyle:{color:"#333",width:1,type:"solid"}},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,margin:8,textStyle:{fontSize:12}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},a=n.merge({boundaryGap:!0,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},o),r=n.merge({boundaryGap:[0,0],splitNumber:5},o),s=n.defaults({scale:!0,min:"dataMin",max:"dataMax"},r),l=n.defaults({logBase:10},r);l.scale=!0,t.exports={categoryAxis:a,valueAxis:r,timeAxis:s,logAxis:l}},function(t,e,i){"use strict";i(129),i(133)},function(t,e,i){var n=i(4),o=i(44),a=i(134),r=i(135),s=i(137),l=a.ifIgnoreOnTick,u=a.getInterval,c=["axisLine","axisLabel","axisTick","axisName"],h=["splitArea","splitLine"],d=r.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,i,r){this.group.removeAll();var l=this._axisGroup;if(this._axisGroup=new o.Group,this.group.add(this._axisGroup),t.get("show")){var u=t.getCoordSysModel(),f=s.layout(u,t),p=new a(t,f);n.each(c,p.add,p),this._axisGroup.add(p.getGroup()),n.each(h,function(e){t.get(e+".show")&&this["_"+e](t,u,f.labelInterval)},this),o.groupTransition(l,this._axisGroup,t),d.superCall(this,"render",t,e,i,r)}},_splitLine:function(t,e,i){var a=t.axis;if(!a.scale.isBlank()){var r=t.getModel("splitLine"),s=r.getModel("lineStyle"),c=s.get("color"),h=u(r,i);c=n.isArray(c)?c:[c];for(var d=e.coordinateSystem.getRect(),f=a.isHorizontal(),p=0,g=a.getTicksCoords(),m=a.scale.getTicks(),v=[],y=[],x=s.getLineStyle(),_=0;_n[1],l="start"===e&&!s||"start"!==e&&s;return d(r-g/2)?(a=l?"bottom":"top",o="center"):d(r-1.5*g)?(a=l?"top":"bottom",o="center"):(a="middle",o=r<1.5*g&&r>g/2?l?"left":"right":l?"right":"left"),{rotation:r,textAlign:o,textVerticalAlign:a}}function a(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}var r=i(4),s=i(6),l=i(44),u=i(12),c=i(7),h=c.remRadian,d=c.isRadianAroundZero,f=i(10).applyTransform,p=r.retrieve,g=Math.PI,m=function(t,e){this.opt=e,this.axisModel=t,r.defaults(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0}),this.group=new l.Group;var i=new l.Group({position:e.position.slice(),rotation:e.rotation});i.updateTransform(),this._transform=i.transform,this._dumbGroup=i};m.prototype={constructor:m,hasBuilder:function(t){return!!v[t]},add:function(t){v[t].call(this)},getGroup:function(){return this.group}};var v={axisLine:function(){var t=this.opt,e=this.axisModel;if(e.get("axisLine.show")){var i=this.axisModel.axis.getExtent(),n=this._transform,o=[i[0],0],a=[i[1],0];n&&(f(o,o,n),f(a,a,n)),this.group.add(new l.Line(l.subPixelOptimizeLine({anid:"line",shape:{x1:o[0],y1:o[1],x2:a[0],y2:a[1]},style:r.extend({lineCap:"round"},e.getModel("axisLine.lineStyle").getLineStyle()),strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1})))}},axisTick:function(){var t=this.axisModel,e=t.axis;if(t.get("axisTick.show")&&!e.scale.isBlank())for(var i=t.getModel("axisTick"),n=this.opt,o=i.getModel("lineStyle"),a=i.get("length"),s=_(i,n.labelInterval),u=e.getTicksCoords(i.get("alignWithLabel")),c=e.scale.getTicks(),h=[],d=[],p=this._transform,g=0;gm[1]?-1:1,x=["start"===c?m[0]-v*f:"end"===c?m[1]+v*f:(m[0]+m[1])/2,"middle"===c?t.labelOffset+h*f:0],_=e.get("nameRotate");null!=_&&(_=_*g/180);var b;"middle"===c?u=y(t.rotation,null!=_?_:t.rotation,h):(u=o(t,c,_||0,m),null!=(b=t.axisNameAvailableWidth)&&(b=Math.abs(b/Math.sin(u.rotation)),!isFinite(b)&&(b=null)));var w=d.getFont(),S=e.get("nameTruncate",!0)||{},M=S.ellipsis,I=p(S.maxWidth,b),T=null!=M&&null!=I?s.truncateText(i,I,w,M,{minChar:2,placeholder:S.placeholder}):i,A=e.get("tooltip",!0),C=e.mainType,L={componentType:C,name:i,$vars:["name"]};L[C+"Index"]=e.componentIndex;var D=new l.Text({anid:"name",__fullText:i,__truncatedText:T,style:{text:T,textFont:w,fill:d.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:u.textAlign,textVerticalAlign:u.textVerticalAlign},position:x,rotation:u.rotation,silent:a(e),z2:1,tooltip:A&&A.show?r.extend({content:i,formatter:function(){return i},formatterParams:L},A):null});e.get("triggerEvent")&&(D.eventData=n(e),D.eventData.targetType="axisName",D.eventData.name=i),this._dumbGroup.add(D),D.updateTransform(),this.group.add(D),D.decomposeTransform()}}},y=m.innerTextLayout=function(t,e,i){var n,o,a=h(e-t);return d(a)?(o=i>0?"top":"bottom",n="center"):d(a-g)?(o=i>0?"bottom":"top",n="center"):(o="middle",n=a>0&&a0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,textVerticalAlign:o}},x=m.ifIgnoreOnTick=function(t,e,i){var n,o=t.scale;return"ordinal"===o.type&&("function"==typeof i?(n=o.getTicks()[e],!i(n,o.getLabel(n))):e%(i+1))},_=m.getInterval=function(t,e){var i=t.get("interval");return null!=i&&"auto"!=i||(i=e),i};t.exports=m},function(t,e,i){function n(t,e,i,n,s,l){var u=r.getAxisPointerClass(t.axisPointerClass);if(u){var c=a.getAxisPointerModel(e);c?(t._axisPointer||(t._axisPointer=new u)).render(e,c,n,l):o(t,n)}}function o(t,e,i){var n=t._axisPointer;n&&n.dispose(e,i),t._axisPointer=null}var a=i(136),r=i(1).extendComponentView({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,o){this.axisPointerClass&&a.fixValue(t),r.superApply(this,"render",arguments),n(this,t,e,i,o,!0)},updateAxisPointer:function(t,e,i,o,a){n(this,t,e,i,o,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),r.superApply(this,"remove",arguments)},dispose:function(t,e){o(this,e),r.superApply(this,"dispose",arguments)}}),s=[];r.registerAxisPointerClass=function(t,e){if(s[t])throw new Error("axisPointer "+t+" exists");s[t]=e},r.getAxisPointerClass=function(t){return t&&s[t]},t.exports=r},function(t,e,i){function n(t,e,i){var n=e.getComponent("tooltip"),a=e.getComponent("axisPointer"),s=a.get("link",!0)||[],u=[];h(i.getCoordinateSystems(),function(i){function c(n,c,h){var d=h.model.getModel("axisPointer",a),f=d.get("show");if(f&&("auto"!==f||n||l(d))){null==c&&(c=d.get("triggerTooltip"));var v=(d=n?o(h,m,a,e,n,c):d).get("snap"),y=p(h.model),x=c||v||"category"===h.type,_=t.axesInfo[y]={key:y,axis:h,coordSys:i,axisPointerModel:d,triggerTooltip:c,involveSeries:x,snap:v,useHandle:l(d),seriesModels:[]};g[y]=_,t.seriesInvolved|=x;var b=r(s,h);if(null!=b){var w=u[b]||(u[b]={axesInfo:{}});w.axesInfo[y]=_,w.mapper=s[b].mapper,_.linkGroup=w}}}if(i.axisPointerEnabled){var f=p(i.model),g=t.coordSysAxesInfo[f]={};t.coordSysMap[f]=i;var m=i.model.getModel("tooltip",n);if(h(i.getAxes(),d(c,!1,null)),i.getTooltipAxes&&n&&m.get("show")){var v="axis"===m.get("trigger"),y="cross"===m.get("axisPointer.type"),x=i.getTooltipAxes(m.get("axisPointer.axis"));(v||y)&&h(x.baseAxes,d(c,!y||"cross",v)),y&&h(x.otherAxes,d(c,"cross",!1))}}})}function o(t,e,i,n,o,a){var r=e.getModel("axisPointer"),s={};h(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],function(t){s[t]=u.clone(r.get(t))}),s.snap="category"!==t.type&&!!a,"cross"===r.get("type")&&(s.type="line");var l=s.label||(s.label={});if(null==l.show&&(l.show=!1),"cross"===o&&(l.show=!0,!a)){var d=s.lineStyle=r.get("crossStyle");d&&u.defaults(l.textStyle||(l.textStyle={}),d.textStyle)}return t.model.getModel("axisPointer",new c(s,i,n))}function a(t,e){e.eachSeries(function(e){var i=e.coordinateSystem,n=e.get("tooltip.trigger",!0);i&&"none"!==n&&!1!==n&&"item"!==n&&!1!==e.get("axisPointer.show",!0)&&h(t.coordSysAxesInfo[p(i.model)],function(t){var n=t.axis;i.getAxis(n.dim)===n&&(t.seriesModels.push(e),null==t.seriesDataCount&&(t.seriesDataCount=0),t.seriesDataCount+=e.getData().count())})},this)}function r(t,e){for(var i=e.model,n=e.dim,o=0;o=0||t===e}function l(t){return!!t.get("handle.show")}var u=i(4),c=i(12),h=u.each,d=u.curry,f={};f.collect=function(t,e){var i={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return n(i,t,e),i.seriesInvolved&&a(i,t),i},f.fixValue=function(t){var e=f.getAxisInfo(t);if(e){var i=e.axisPointerModel,n=e.axis.scale,o=i.option,a=i.get("status"),r=i.get("value");null!=r&&(r=n.parse(r));var s=l(i);null==a&&(o.status=s?"show":"hide");var u=n.getExtent().slice();u[0]>u[1]&&u.reverse(),(null==r||r>u[1])&&(r=u[1]),r0?1:-1,r=n.height>0?1:-1;return{x:n.x+a*o/2,y:n.y+r*o/2,width:n.width-a*o,height:n.height-r*o}}function r(t,e,i,n,o,a,r){var s=e.getItemVisual(i,"color"),h=e.getItemVisual(i,"opacity"),d=n.getModel("itemStyle.normal"),f=n.getModel("itemStyle.emphasis").getBarItemStyle();t.setShape("r",d.get("barBorderRadius")||0),t.useStyle(l.defaults({fill:s,opacity:h},d.getBarItemStyle()));var p=r?o.height>0?"bottom":"top":o.width>0?"left":"right";c.setLabel(t.style,f,n,s,a,i,p),u.setHoverStyle(t,f)}function s(t,e){var i=t.get(h)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}var l=i(4),u=i(44),c=i(142),h=["itemStyle","normal","barBorderWidth"];l.extend(i(12).prototype,i(143));var d=i(1).extendChartView({type:"bar",render:function(t,e,i){return"cartesian2d"===t.get("coordinateSystem")&&this._renderOnCartesian(t,e,i),this.group},dispose:l.noop,_renderOnCartesian:function(t,e,i){var s=this.group,l=t.getData(),c=this._data,h=t.coordinateSystem.getBaseAxis().isHorizontal(),d=t.isAnimationEnabled()?t:null;l.diff(c).add(function(e){if(l.hasValue(e)){var i=l.getItemModel(e),o=a(l,e,i),u=n(l,e,i,o,h,d);l.setItemGraphicEl(e,u),s.add(u),r(u,l,e,i,o,t,h)}}).update(function(e,i){var o=c.getItemGraphicEl(i);if(l.hasValue(e)){var f=l.getItemModel(e),p=a(l,e,f);o?u.updateProps(o,{shape:p},d,e):o=n(l,e,f,p,h,d,!0),l.setItemGraphicEl(e,o),s.add(o),r(o,l,e,f,p,t,h)}else s.remove(o)}).remove(function(t){var e=c.getItemGraphicEl(t);e&&o(t,d,e)}).execute(),this._data=l},remove:function(t,e){var i=this.group,n=this._data;t.get("animation")?n&&n.eachItemGraphicEl(function(e){o(e.dataIndex,t,e)}):i.removeAll()}});t.exports=d},function(t,e,i){function n(t,e,i,n,o){a.setText(t,e,i),t.text=n,"outside"===t.textPosition&&(t.textPosition=o)}var o=i(4),a=i(44),r={};r.setLabel=function(t,e,i,a,r,s,l){var u=i.getModel("label.normal"),c=i.getModel("label.emphasis");u.get("show")?n(t,u,a,o.retrieve(r.getFormattedLabel(s,"normal"),r.getRawValue(s)),l):t.text="",c.get("show")?n(e,c,a,o.retrieve(r.getFormattedLabel(s,"emphasis"),r.getRawValue(s)),l):e.text=""},t.exports=r},function(t,e,i){var n=i(15)([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]);t.exports={getBarItemStyle:function(t){var e=n.call(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}}},function(t,e,i){"use strict";function n(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function o(t){return t.dim+t.index}function a(t,e){var i={};r.each(t,function(t,e){var a=t.getData(),r=t.coordinateSystem.getBaseAxis(),l=r.getExtent(),u="category"===r.type?r.getBandWidth():Math.abs(l[1]-l[0])/a.count(),c=i[o(r)]||{bandWidth:u,remainedWidth:u,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},h=c.stacks;i[o(r)]=c;var d=n(t);h[d]||c.autoWidthCount++,h[d]=h[d]||{width:0,maxWidth:0};var f=s(t.get("barWidth"),u),p=s(t.get("barMaxWidth"),u),g=t.get("barGap"),m=t.get("barCategoryGap");f&&!h[d].width&&(f=Math.min(c.remainedWidth,f),h[d].width=f,c.remainedWidth-=f),p&&(h[d].maxWidth=p),null!=g&&(c.gap=g),null!=m&&(c.categoryGap=m)});var a={};return r.each(i,function(t,e){a[e]={};var i=t.stacks,n=t.bandWidth,o=s(t.categoryGap,n),l=s(t.gap,1),u=t.remainedWidth,c=t.autoWidthCount,h=(u-o)/(c+(c-1)*l);h=Math.max(h,0),r.each(i,function(t,e){var i=t.maxWidth;!t.width&&i&&i=0?"p":"n",v=m[i],y=l[r][i][c],x=u[r][i][c];f.isHorizontal()?(n=y,o=v[1]+h,a=v[0]-x,s=d,u[r][i][c]+=a,Math.abs(a)0&&"scale"!==d){var g=r.getItemLayout(0),m=Math.max(i.getWidth(),i.getHeight())/2,v=l.bind(u.removeClipPath,u);u.setClipPath(this._createClipPath(g.cx,g.cy,m,g.startAngle,g.clockwise,v,t))}this._data=r}},dispose:function(){},_createClipPath:function(t,e,i,n,o,a,r){var l=new s.Sector({shape:{cx:t,cy:e,r0:0,r:i,startAngle:n,endAngle:n,clockwise:o}});return s.initProps(l,{shape:{endAngle:n+(o?1:-1)*Math.PI*2}},r,a),l},containPoint:function(t,e){var i=e.getData().getItemLayout(0);if(i){var n=t[0]-i.cx,o=t[1]-i.cy,a=Math.sqrt(n*n+o*o);return a<=i.r&&a>=i.r0}}});t.exports=c},function(t,e,i){var n=i(1),o=i(4);t.exports=function(t,e){o.each(e,function(e){e.update="updateView",n.registerAction(e,function(i,n){var o={};return n.eachComponent({mainType:"series",subType:t,query:i},function(t){t[e.method]&&t[e.method](i.name);var n=t.getData();n.each(function(e){var i=n.getName(e);o[i]=t.isSelected(i)||!1})}),{name:i.name,selected:o}})})}},function(t,e){t.exports=function(t,e){var i={};e.eachRawSeriesByType(t,function(t){var n=t.getRawData(),o={};if(!e.isSeriesFiltered(t)){var a=t.getData();a.each(function(t){var e=a.getRawIndex(t);o[e]=t}),n.each(function(e){var r=o[e],s=null!=r&&a.getItemVisual(r,"color",!0);if(s)n.setItemVisual(e,"color",s);else{var l=n.getItemModel(e).get("itemStyle.normal.color")||t.getColorFromPalette(n.getName(e),i);n.setItemVisual(e,"color",l),null!=r&&a.setItemVisual(r,"color",l)}})}})}},function(t,e,i){var n=i(7),o=n.parsePercent,a=i(152),r=i(4),s=2*Math.PI,l=Math.PI/180;t.exports=function(t,e,i,u){e.eachSeriesByType(t,function(t){var e=t.get("center"),u=t.get("radius");r.isArray(u)||(u=[0,u]),r.isArray(e)||(e=[e,e]);var c=i.getWidth(),h=i.getHeight(),d=Math.min(c,h),f=o(e[0],c),p=o(e[1],h),g=o(u[0],d/2),m=o(u[1],d/2),v=t.getData(),y=-t.get("startAngle")*l,x=t.get("minAngle")*l,_=v.getSum("value"),b=Math.PI/(_||v.count())*2,w=t.get("clockwise"),S=t.get("roseType"),M=t.get("stillShowZeroSum"),I=v.getDataExtent("value");I[0]=0;var T=s,A=0,C=y,L=w?1:-1;if(v.each("value",function(t,e){var i;if(isNaN(t))v.setItemLayout(e,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:w,cx:f,cy:p,r0:g,r:S?NaN:m});else{(i="area"!==S?0===_&&M?b:t*b:s/(v.count()||1))=0&&(t[n].y-=i,!(n>0&&t[n].y>t[n-1].y+t[n-1].height));n--);}function l(t,e,i,n,o,a){for(var r=e?Number.MAX_VALUE:0,s=0,l=t.length;s=r&&(d=r-10),!e&&d<=r&&(d=r+10),t[s].x=i+d*a,r=d}}t.sort(function(t,e){return t.y-e.y});for(var u,c=0,h=t.length,d=[],f=[],p=0;pe&&a+1t[a].y+t[a].height)return void s(a,n/2);s(i-1,n/2)}(p,h,-u),c=t[p].y+t[p].height;r-c<0&&s(h-1,c-r);for(p=0;p=i?f.push(t[p]):d.push(t[p]);l(d,!1,e,i,n,o),l(f,!0,e,i,n,o)}function o(t,e,i,o,a,r){for(var s=[],l=[],u=0;u0?"left":"right"}var D=g.getModel("textStyle").getFont(),P=g.get("rotate")?b<0?-_+Math.PI:-_:0,k=t.getFormattedLabel(i,"normal")||l.getName(i),O=a.getBoundingRect(k,D,d,"top");c=!!P,f.label={x:n,y:o,position:m,height:O.height,len:y,len2:x,linePoints:h,textAlign:d,verticalAlign:"middle",font:D,rotation:P},S||u.push(f.label)}),!c&&t.get("avoidLabelOverlap")&&o(u,r,s,e,i,n)}},function(t,e){t.exports=function(t,e){var i=e.findComponents({mainType:"legend"});i&&i.length&&e.eachSeriesByType(t,function(t){var e=t.getData();e.filterSelf(function(t){for(var n=e.getName(t),o=0;ot.get("largeThreshold")?o:a;this._symbolDraw=s,s.updateData(n),r.add(s.group),r.remove(s===o?a.group:o.group)},updateLayout:function(t){this._symbolDraw.updateLayout(t)},remove:function(t,e){this._symbolDraw&&this._symbolDraw.remove(e,!0)},dispose:function(){}})},function(t,e,i){function n(){this.group=new o.Group,this._symbolEl=new r({})}var o=i(44),a=i(104),r=o.extendShape({shape:{points:null,sizes:null},symbolProxy:null,buildPath:function(t,e){for(var i=e.points,n=e.sizes,o=this.symbolProxy,a=o.shape,r=0;r=0;a--){var r=n[a],s=o[a],l=r[0]-s[0]/2,u=r[1]-s[1]/2;if(t>=l&&e>=u&&t<=l+s[0]&&e<=u+s[1])return a}return-1}}),s=n.prototype;s.updateData=function(t){this.group.removeAll();var e=this._symbolEl,i=t.hostModel;e.setShape({points:t.mapArray(t.getItemLayout),sizes:t.mapArray(function(e){var i=t.getItemVisual(e,"symbolSize");return i instanceof Array||(i=[i,i]),i})}),e.symbolProxy=a.createSymbol(t.getVisual("symbol"),0,0,0,0),e.setColor=e.symbolProxy.setColor,e.useStyle(i.getModel("itemStyle.normal").getItemStyle(["color"]));var n=t.getVisual("color");n&&e.setColor(n),e.seriesIndex=i.seriesIndex,e.on("mousemove",function(t){e.dataIndex=null;var i=e.findDataIndex(t.offsetX,t.offsetY);i>0&&(e.dataIndex=i)}),this.group.add(e)},s.updateLayout=function(t){var e=t.getData();this._symbolEl.setShape({points:e.mapArray(e.getItemLayout)})},s.remove=function(){this.group.removeAll()},t.exports=n},function(t,e,i){var n=i(4),o=i(1);i(159),i(164),i(165),o.registerVisual(n.curry(i(150),"radar")),o.registerVisual(n.curry(i(119),"radar","circle",null)),o.registerLayout(i(166)),o.registerProcessor(n.curry(i(153),"radar")),o.registerPreprocessor(i(167))},function(t,e,i){i(160),i(162),i(163)},function(t,e,i){function n(t,e,i){this._model=t,this.dimensions=[],this._indicatorAxes=o.map(t.getIndicatorModels(),function(t,e){var i="indicator_"+e,n=new a(i,new r);return n.name=t.get("name"),n.model=t,t.axis=n,this.dimensions.push(i),n},this),this.resize(t,i),this.cx,this.cy,this.r,this.startAngle}var o=i(4),a=i(161),r=i(108),s=i(7),l=i(105);n.prototype.getIndicatorAxes=function(){return this._indicatorAxes},n.prototype.dataToPoint=function(t,e){var i=this._indicatorAxes[e];return this.coordToPoint(i.dataToCoord(t),e)},n.prototype.coordToPoint=function(t,e){var i=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(i),this.cy-t*Math.sin(i)]},n.prototype.pointToData=function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=Math.sqrt(e*e+i*i);e/=n,i/=n;for(var o,a=Math.atan2(-i,e),r=1/0,s=-1,l=0;ln[0]&&isFinite(f)&&isFinite(n[0]))}else{a.getTicks().length-1>r&&(h=i(h));var p=Math.round((n[0]+n[1])/2/h)*h,g=Math.round(r/2);a.setExtent(s.round(p-g*h),s.round(p+(r-g)*h)),a.setInterval(h)}})},n.dimensions=[],n.create=function(t,e){var i=[];return t.eachComponent("radar",function(o){var a=new n(o,t,e);i.push(a),o.coordinateSystem=a}),t.eachSeriesByType("radar",function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])}),i},i(26).register("radar",n),t.exports=n},function(t,e,i){function n(t,e,i){a.call(this,t,e,i),this.type="value",this.angle=0,this.name="",this.model}var o=i(4),a=i(100);o.inherits(n,a),t.exports=n},function(t,e,i){function n(t,e){return r.defaults({show:e},t)}var o=i(131).valueAxis,a=i(12),r=i(4),s=i(111),l=i(1).extendComponentModel({type:"radar",optionUpdated:function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),i=this.get("scale"),n=this.get("axisLine"),o=this.get("axisTick"),l=this.get("axisLabel"),u=this.get("name.textStyle"),c=this.get("name.show"),h=this.get("name.formatter"),d=this.get("nameGap"),f=this.get("triggerEvent"),p=r.map(this.get("indicator")||[],function(p){if(null!=p.max&&p.max>0&&!p.min?p.min=0:null!=p.min&&p.min<0&&!p.max&&(p.max=0),p=r.merge(r.clone(p),{boundaryGap:t,splitNumber:e,scale:i,axisLine:n,axisTick:o,axisLabel:l,name:p.text,nameLocation:"end",nameGap:d,nameTextStyle:u,triggerEvent:f},!1),c||(p.name=""),"string"==typeof h){var g=p.name;p.name=h.replace("{value}",null!=g?g:"")}else"function"==typeof h&&(p.name=h(p.name,p));var m=r.extend(new a(p,null,this.ecModel),s);return m.mainType="radar",m.componentIndex=this.componentIndex,m},this);this.getIndicatorModels=function(){return p}},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,name:{show:!0},boundaryGap:[0,0],splitNumber:5,nameGap:15,scale:!1,shape:"polygon",axisLine:r.merge({lineStyle:{color:"#bbb"}},o.axisLine),axisLabel:n(o.axisLabel,!1),axisTick:n(o.axisTick,!1),splitLine:n(o.splitLine,!0),splitArea:n(o.splitArea,!0),indicator:[]}});t.exports=l},function(t,e,i){var n=i(134),o=i(4),a=i(44),r=["axisLine","axisLabel","axisTick","axisName"];t.exports=i(1).extendComponentView({type:"radar",render:function(t,e,i){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},_buildAxes:function(t){var e=t.coordinateSystem,i=e.getIndicatorAxes(),a=o.map(i,function(t){return new n(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})});o.each(a,function(t){o.each(r,t.add,t),this.group.add(t.getGroup())},this)},_buildSplitLineAndArea:function(t){function e(t,e,i){var n=i%e.length;return t[n]=t[n]||[],n}var i=t.coordinateSystem,n=i.getIndicatorAxes();if(n.length){var r=t.get("shape"),s=t.getModel("splitLine"),l=t.getModel("splitArea"),u=s.getModel("lineStyle"),c=l.getModel("areaStyle"),h=s.get("show"),d=l.get("show"),f=u.get("color"),p=c.get("color");f=o.isArray(f)?f:[f],p=o.isArray(p)?p:[p];var g=[],m=[];if("circle"===r)for(var v=n[0].getTicksCoords(),y=i.cx,x=i.cy,_=0;_"+r.map(i,function(t,i){return s(t.name+" : "+e[i])}).join("
")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{normal:{width:2,type:"solid"}},label:{normal:{position:"top"}},symbol:"emptyCircle",symbolSize:4}});t.exports=l},function(t,e,i){function n(t){return a.isArray(t)||(t=[+t,+t]),t}var o=i(44),a=i(4),r=i(104);t.exports=i(1).extendChartView({type:"radar",render:function(t,e,i){function s(t,e){var i=t.getItemVisual(e,"symbol")||"circle",o=t.getItemVisual(e,"color");if("none"!==i){var a=r.createSymbol(i,-.5,-.5,1,1,o);return a.attr({style:{strokeNoScale:!0},z2:100,scale:n(t.getItemVisual(e,"symbolSize"))}),a}}function l(e,i,n,a,r,l){n.removeAll();for(var u=0;u"+l(n+" : "+i)},getTooltipPosition:function(t){if(null!=t){var e=this.getData().getName(t),i=this.coordinateSystem,n=i.getRegion(e);return n&&i.dataToPoint(n.center)}},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{normal:{show:!1,textStyle:{color:"#000"}},emphasis:{show:!0,textStyle:{color:"rgb(100,0,0)"}}},itemStyle:{normal:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{areaColor:"rgba(255,215,0,0.8)"}}}});a.mixin(d,c),t.exports=d},function(t,e,i){function n(t,e){var i=t.get("boundingCoords");if(null!=i){var n=i[0],o=i[1];isNaN(n[0])||isNaN(n[1])||isNaN(o[0])||isNaN(o[1])?console.error("Invalid boundingCoords"):this.setBoundingRect(n[0],n[1],o[0]-n[0],o[1]-n[1])}var a,s=this.getBoundingRect(),u=t.get("layoutCenter"),c=t.get("layoutSize"),h=e.getWidth(),d=e.getHeight(),f=t.get("aspectScale")||.75,p=s.width/s.height*f,g=!1;u&&c&&(u=[l.parsePercent(u[0],h),l.parsePercent(u[1],d)],c=l.parsePercent(c,Math.min(h,d)),isNaN(u[0])||isNaN(u[1])||isNaN(c)?console.warn("Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead."):g=!0);if(g){var m={};p>1?(m.width=c,m.height=c/p):(m.height=c,m.width=c*p),m.y=u[1]-m.height/2,m.x=u[0]-m.width/2}else(a=t.getBoxLayoutParams()).aspect=p,m=r.getLayoutRect(a,{width:h,height:d});this.setViewRect(m.x,m.y,m.width,m.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}function o(t,e){s.each(e.get("geoCoord"),function(e,i){t.addGeoCoord(i,e)})}var a=i(171),r=i(21),s=i(4),l=i(7),u={},c=function(t){console.error("Map "+t+" not exists. You can download map file on http://echarts.baidu.com/download-map.html")},h={dimensions:a.prototype.dimensions,create:function(t,e){var i=[];t.eachComponent("geo",function(t,r){var s=t.get("map"),l=u[s];l||c(s);var h=new a(s+r,s,l&&l.geoJson,l&&l.specialAreas,t.get("nameMap"));h.zoomLimit=t.get("scaleLimit"),i.push(h),o(h,t),t.coordinateSystem=h,h.model=t,h.resize=n,h.resize(t,e)}),t.eachSeries(function(t){if("geo"===t.get("coordinateSystem")){var e=t.get("geoIndex")||0;t.coordinateSystem=i[e]}});var r={};return t.eachSeriesByType("map",function(t){if(!t.getHostGeoModel()){var e=t.getMapType();r[e]=r[e]||[],r[e].push(t)}}),s.each(r,function(t,r){var l=u[r];l||c(t[0].get("map"));var h=s.map(t,function(t){return t.get("nameMap")}),d=new a(r,r,l&&l.geoJson,l&&l.specialAreas,s.mergeAll(h));d.zoomLimit=s.retrieve.apply(null,s.map(t,function(t){return t.get("scaleLimit")})),i.push(d),d.resize=n,d.resize(t[0],e),s.each(t,function(t){t.coordinateSystem=d,o(d,t)})}),i},registerMap:function(t,e,i){e.geoJson&&!e.features&&(i=e.specialAreas,e=e.geoJson),"string"==typeof e&&(e="undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")()),u[t]={geoJson:e,specialAreas:i}},getMap:function(t){return u[t]},getFilledRegions:function(t,e){var i=(t||[]).slice(),n=h.getMap(e),o=n&&n.geoJson;if(!o)return c(e),t;for(var a={},r=o.features,s=0;s>1^-(1&r),s=s>>1^-(1&s),n=r+=n,o=s+=o,i.push([r/1024,s/1024])}return i}var a=i(4),r=i(173);t.exports=function(t){return n(t),a.map(a.filter(t.features,function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0}),function(t){var e=t.properties,i=t.geometry,n=i.coordinates,o=[];"Polygon"===i.type&&o.push({type:"polygon",exterior:n[0],interiors:n.slice(1)}),"MultiPolygon"===i.type&&a.each(n,function(t){t[0]&&o.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var s=new r(e.name,o,e.cp);return s.properties=e,s})}},function(t,e,i){function n(t,e,i){if(this.name=t,this.geometries=e,i)i=[i[0],i[1]];else{var n=this.getBoundingRect();i=[n.x+n.width/2,n.y+n.height/2]}this.center=i}var o=i(174),a=i(9),r=i(52),s=i(10);n.prototype={constructor:n,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],o=[],l=[],u=this.geometries,c=0;c0?1.1:1/1.1;l.call(this,t,e,t.offsetX,t.offsetY)}}function s(t){if(!f.isTaken(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;l.call(this,t,e,t.pinchX,t.pinchY)}}function l(t,e,i,n){if(this.containsPoint&&this.containsPoint(i,n)){d.stop(t.event);var o=this.target,a=this.zoomLimit;if(o){var r=o.position,s=o.scale,l=this.zoom=this.zoom||1;if(l*=e,a){var u=a.min||0,c=a.max||1/0;l=Math.max(Math.min(c,l),u)}var h=l/this.zoom;this.zoom=l,r[0]-=(i-r[0])*(h-1),r[1]-=(n-r[1])*(h-1),s[0]*=h,s[1]*=h,o.dirty()}this.trigger("zoom",e,i,n)}}function u(t,e){this.target=e,this.containsPoint,this.zoomLimit,this.zoom,this._zr=t;var i=h.bind,l=i(n,this),u=i(o,this),d=i(a,this),f=i(r,this),p=i(s,this);c.call(this),this.setContainsPoint=function(t){this.containsPoint=t},this.enable=function(e){this.disable(),null==e&&(e=!0),!0!==e&&"move"!==e&&"pan"!==e||(t.on("mousedown",l),t.on("mousemove",u),t.on("mouseup",d)),!0!==e&&"scale"!==e&&"zoom"!==e||(t.on("mousewheel",f),t.on("pinch",p))},this.disable=function(){t.off("mousedown",l),t.off("mousemove",u),t.off("mouseup",d),t.off("mousewheel",f),t.off("pinch",p)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}var c=i(33),h=i(4),d=i(88),f=i(182);h.mixin(u,c),t.exports=u},function(t,e,i){function n(t){return t[o]||(t[o]={})}var o="\0_ec_interaction_mutex",a={take:function(t,e,i){n(t)[e]=i},release:function(t,e,i){var o=n(t);o[e]===i&&(o[e]=null)},isTaken:function(t,e){return!!n(t)[e]}};i(1).registerAction({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),t.exports=a},function(t,e,i){var n=i(4),o=i(184);i(1).registerAction({type:"geoRoam",event:"geoRoam",update:"updateLayout"},function(t,e){var i=t.componentType||"series";e.eachComponent({mainType:i,query:t},function(e){var a=e.coordinateSystem;if("geo"===a.type){var r=o.updateCenterAndZoom(a,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(r.center),e.setZoom&&e.setZoom(r.zoom),"series"===i&&n.each(e.seriesGroup,function(t){t.setCenter(r.center),t.setZoom(r.zoom)})}})})},function(t,e){var i={};i.updateCenterAndZoom=function(t,e,i){var n=t.getZoom(),o=t.getCenter(),a=e.zoom,r=t.dataToPoint(o);if(null!=e.dx&&null!=e.dy){r[0]-=e.dx,r[1]-=e.dy;o=t.pointToData(r);t.setCenter(o)}if(null!=a){if(i){var s=i.min||0,l=i.max||1/0;a=Math.max(Math.min(n*a,l),s)/n}t.scale[0]*=a,t.scale[1]*=a;var u=t.position,c=(e.originX-u[0])*(a-1),h=(e.originY-u[1])*(a-1);u[0]-=c,u[1]-=h,t.updateTransform();o=t.pointToData(r);t.setCenter(o),t.setZoom(a*n)}return{center:t.getCenter(),zoom:t.getZoom()}},t.exports=i},function(t,e,i){var n=i(4);t.exports=function(t){var e={};t.eachSeriesByType("map",function(i){var o=i.getMapType();if(!i.getHostGeoModel()&&!e[o]){var a={};n.each(i.seriesGroup,function(e){var i=e.coordinateSystem,n=e.originalData;e.get("showLegendSymbol")&&t.getComponent("legend")&&n.each("value",function(t,e){var o=n.getName(e),r=i.getRegion(o);if(r&&!isNaN(t)){var s=a[o]||0,l=i.dataToPoint(r.center);a[o]=s+1,n.setItemLayout(e,{point:l,offset:s})}})});var r=i.getData();r.each(function(t){var e=r.getName(t),i=r.getItemLayout(t)||{};i.showLabel=!a[e],r.setItemLayout(t,i)}),e[o]=!0}})}},function(t,e){t.exports=function(t){t.eachSeriesByType("map",function(t){var e=t.get("color"),i=t.getModel("itemStyle.normal"),n=i.get("areaColor"),o=i.get("color")||e[t.seriesIndex%e.length];t.getData().setVisual({areaColor:n,color:o})})}},function(t,e,i){function n(t,e){var i={},n=["value"];return o.each(t,function(t){t.each(n,function(e,n){var o=t.getName(n);i[o]=i[o]||[],isNaN(e)||i[o].push(e)})}),t[0].map(n,function(n,o){for(var a=t[0].getName(o),r=0,s=1/0,l=-1/0,u=i[a].length,c=0;ce&&(e=n.height)}this.height=e+1},getNodeById:function(t){if(this.getId()===t)return this;for(var e=0,i=this.children,n=i.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},getLayout:function(){return this.hostTree.data.getItemLayout(this.dataIndex)},getModel:function(t){if(!(this.dataIndex<0)){var e=this.hostTree,i=e.data.getItemModel(this.dataIndex),n=this.getLevelModel();return i.getModel(t,(n||e.hostModel).getModel(t))}},getLevelModel:function(){return(this.hostTree.levelModels||[])[this.depth]},setVisual:function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},getVisual:function(t,e){return this.hostTree.data.getItemVisual(this.dataIndex,t,e)},getRawIndex:function(){return this.hostTree.data.getRawIndex(this.dataIndex)},getId:function(){return this.hostTree.data.getId(this.dataIndex)}},n.prototype={constructor:n,type:"tree",eachNode:function(t,e,i){this.root.eachNode(t,e,i)},getNodeByDataIndex:function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},getNodeByName:function(t){return this.root.getNodeByName(t)},update:function(){for(var t=this.data,e=this._nodes,i=0,n=e.length;i=0},wrapTreePathInfo:function(t,e){for(var i=[];t;){var n=t.dataIndex;i.push({name:t.name,dataIndex:n,value:e.getRawValue(n)}),t=t.parentNode}return i.reverse(),i}};t.exports=o},function(t,e,i){function n(t,e,i,n,s,l,u,c,h,d){function f(t,e){C?!t.invisible&&l.push(t):(e(),t.__tmWillVisible||(t.invisible=!1))}function p(e,i,n,o,a){var r=u.getModel(),s=r.get("name");if(I.isLeafRoot){var l=t.get("drillDownIcon",!0);s=l?l+" "+s:s}v(s,e,r,y,n,o,a),v(s,i,r,x,n,o,a)}function v(t,e,i,n,o,a,s){var l=i.getModel(n),u=l.getModel("textStyle");r.setText(e,l,o),e.textAlign=u.get("align"),e.textVerticalAlign=u.get("baseline");var c=u.getTextRect(t);!l.getShallow("show")||c.height>s?e.text="":c.width>a?e.text=u.get("ellipsis")?u.truncateText(t,a,null,{minChar:2}):"":e.text=t}function _(t,n,a,r){var l=null!=D&&i[t][D],u=s[t];return l?(i[t][D]=null,S(u,l,t)):C||((l=new n({z:o(a,r)})).__tmDepth=a,l.__tmStorageName=t,M(u,l,t)),e[t][L]=l}function S(t,e,i){(t[L]={}).old="nodeGroup"===i?e.position.slice():a.extend({},e.shape)}function M(t,e,i){var o=t[L]={},a=u.parentNode;if(a&&(!n||"drillDown"===n.direction)){var r=0,l=0,c=s.background[a.getRawIndex()];!n&&c&&c.old&&(r=c.old.width,l=c.old.height),o.old="nodeGroup"===i?[0,l]:{x:r,y:l,width:0,height:0}}o.fadein="nodeGroup"!==i}if(u){var I=u.getLayout();if(I&&I.isInView){var T=I.width,A=I.height,C=I.invisible,L=u.getRawIndex(),D=c&&c.getRawIndex(),P=_("nodeGroup",g);if(P){if(h.add(P),P.attr("position",[I.x||0,I.y||0]),P.__tmNodeWidth=T,P.__tmNodeHeight=A,I.isAboveViewRoot)return P;var k=_("background",m,d,b);k&&(k.setShape({x:0,y:0,width:T,height:A}),f(k,function(){k.setStyle("fill",u.getVisual("borderColor",!0))}),P.add(k));var O=u.viewChildren;if(!O||!O.length){var z=_("content",m,d,w);z&&function(e){z.dataIndex=u.dataIndex,z.seriesIndex=t.seriesIndex;var i=I.borderWidth,n=Math.max(T-2*i,0),o=Math.max(A-2*i,0);z.culling=!0,z.setShape({x:i,y:i,width:n,height:o});var a=u.getVisual("color",!0);f(z,function(){var t={fill:a},e=u.getModel("itemStyle.emphasis").getItemStyle();p(t,e,a,n,o),z.setStyle(t),r.setHoverStyle(z,e)}),e.add(z)}(P)}return P}}}}function o(t,e){var i=t*_+e;return(i-1)/i}var a=i(4),r=i(44),s=i(99),l=i(193),u=i(195),c=i(181),h=i(9),d=i(11),f=i(196),p=a.bind,g=r.Group,m=r.Rect,v=a.each,y=["label","normal"],x=["label","emphasis"],_=10,b=1,w=2;t.exports=i(1).extendChartView({type:"treemap",init:function(t,e){this._containerGroup,this._storage={nodeGroup:[],background:[],content:[]},this._oldTree,this._breadcrumb,this._controller,this._state="ready",this._mayClick},render:function(t,e,i,n){var o=e.findComponents({mainType:"series",subType:"treemap",query:n});if(!(a.indexOf(o,t)<0)){this.seriesModel=t,this.api=i,this.ecModel=e;var r=l.retrieveTargetInfo(n,t),s=n&&n.type,u=t.layoutInfo,c=!this._oldTree,h=this._storage,d="treemapRootToNode"===s&&r&&h?{rootNodeGroup:h.nodeGroup[r.node.getRawIndex()],direction:n.direction}:null,f=this._giveContainerGroup(u),p=this._doRender(f,t,d);c||s&&"treemapZoomToNode"!==s&&"treemapRootToNode"!==s?p.renderFinally():this._doAnimation(f,p,t,d),this._resetController(i),this._renderBreadcrumb(t,i,r)}},_giveContainerGroup:function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new g,this._initEvents(e),this.group.add(e)),e.attr("position",[t.x,t.y]),e},_doRender:function(t,e,i){function o(t,e,i,n,r){function l(t){return t.getId()}function u(a,s){var l=null!=a?t[a]:null,u=null!=s?e[s]:null,c=f(l,u,i,r);c&&o(l&&l.viewChildren||[],u&&u.viewChildren||[],c,n,r+1)}n?(e=t,v(t,function(t,e){!t.isRemoved()&&u(e,e)})):new s(e,t,l,l).add(u).update(u).remove(a.curry(u,null)).execute()}var r=e.getData().tree,l=this._oldTree,u={nodeGroup:[],background:[],content:[]},c={nodeGroup:[],background:[],content:[]},h=this._storage,d=[],f=a.curry(n,e,c,h,i,u,d);o(r.root?[r.root]:[],l&&l.root?[l.root]:[],t,r===l||!l,0);var p=function(t){var e={nodeGroup:[],background:[],content:[]};return t&&v(t,function(t,i){var n=e[i];v(t,function(t){t&&(n.push(t),t.__tmWillDelete=1)})}),e}(h);return this._oldTree=r,this._storage=c,{lastsForAnimation:u,willDeleteEls:p,renderFinally:function(){v(p,function(t){v(t,function(t){t.parent&&t.parent.remove(t)})}),v(d,function(t){t.invisible=!0,t.dirty()})}}},_doAnimation:function(t,e,i,n){if(i.get("animation")){var o=i.get("animationDurationUpdate"),r=i.get("animationEasing"),s=f.createWrap();v(e.willDeleteEls,function(t,e){v(t,function(t,i){if(!t.invisible){var a,l=t.parent;if(n&&"drillDown"===n.direction)a=l===n.rootNodeGroup?{shape:{x:0,y:0,width:l.__tmNodeWidth,height:l.__tmNodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var u=0,c=0;l.__tmWillDelete||(u=l.__tmNodeWidth/2,c=l.__tmNodeHeight/2),a="nodeGroup"===e?{position:[u,c],style:{opacity:0}}:{shape:{x:u,y:c,width:0,height:0},style:{opacity:0}}}a&&s.add(t,a,o,r)}})}),v(this._storage,function(t,i){v(t,function(t,n){var l=e.lastsForAnimation[i][n],u={};l&&("nodeGroup"===i?l.old&&(u.position=t.position.slice(),t.attr("position",l.old)):(l.old&&(u.shape=a.extend({},t.shape),t.setShape(l.old)),l.fadein?(t.setStyle("opacity",0),u.style={opacity:1}):1!==t.style.opacity&&(u.style={opacity:1})),s.add(t,u,o,r))})},this),this._state="animating",s.done(p(function(){this._state="ready",e.renderFinally()},this)).start()}},_resetController:function(t){var e=this._controller;e||((e=this._controller=new c(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",p(this._onPan,this)),e.on("zoom",p(this._onZoom,this)));var i=new h(0,0,t.getWidth(),t.getHeight());e.setContainsPoint(function(t,e){return i.contain(t,e)})},_clearController:function(){var t=this._controller;t&&(t.dispose(),t=null)},_onPan:function(t,e){if(this._mayClick=!1,"animating"!==this._state&&(Math.abs(t)>3||Math.abs(e)>3)){var i=this.seriesModel.getData().tree.root;if(!i)return;var n=i.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t,y:n.y+e,width:n.width,height:n.height}})}},_onZoom:function(t,e,i){if(this._mayClick=!1,"animating"!==this._state){var n=this.seriesModel.getData().tree.root;if(!n)return;var o=n.getLayout();if(!o)return;var a=new h(o.x,o.y,o.width,o.height),r=this.seriesModel.layoutInfo;e-=r.x,i-=r.y;var s=d.create();d.translate(s,s,[-e,-i]),d.scale(s,s,[t,t]),d.translate(s,s,[e,i]),a.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:a.x,y:a.y,width:a.width,height:a.height}})}},_initEvents:function(t){function e(t){var e=this.seriesModel.get("nodeClick",!0);if(e){var i=this.findTarget(t.offsetX,t.offsetY);if(i){var n=i.node;if(n.getLayout().isLeafRoot)this._rootToNode(i);else if("zoomToNode"===e)this._zoomToNode(i);else if("link"===e){var o=n.hostTree.data.getItemModel(n.dataIndex),a=o.get("link",!0),r=o.get("target",!0)||"blank";a&&window.open(a,r)}}}}t.on("mousedown",function(t){"ready"===this._state&&(this._mayClick=!0)},this),t.on("mouseup",function(t){this._mayClick&&(this._mayClick=!1,"ready"===this._state&&e.call(this,t))},this)},_renderBreadcrumb:function(t,e,i){i||(i=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(i={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new u(this.group))).render(t,e,i.node,p(function(e){"animating"!==this._state&&(l.aboveViewRoot(t.getViewRoot(),e)?this._rootToNode({node:e}):this._zoomToNode({node:e}))},this))},remove:function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},dispose:function(){this._clearController()},_zoomToNode:function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},_rootToNode:function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},findTarget:function(t,e){var i;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},function(n){var o=this._storage.background[n.getRawIndex()];if(o){var a=o.transformCoordToLocal(t,e),r=o.shape;if(!(r.x<=a[0]&&a[0]<=r.x+r.width&&r.y<=a[1]&&a[1]<=r.y+r.height))return!1;i={node:n,offsetX:a[0],offsetY:a[1]}}},this),i}})},function(t,e,i){function n(t){this.group=new r.Group,t.add(this.group)}function o(t,e,i,n,o,a){var r=[[o?t:t-c,e],[t+i,e],[t+i,e+n],[o?t:t-c,e+n]];return!a&&r.splice(2,0,[t+i+c,e+n/2]),!o&&r.push([t,e+n/2]),r}function a(t,e,i){t.eventData={componentType:"series",componentSubType:"treemap",seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:i&&i.dataIndex,name:i&&i.name},treePathInfo:i&&u.wrapTreePathInfo(i,e)}}var r=i(44),s=i(21),l=i(4),u=i(193),c=5;n.prototype={constructor:n,render:function(t,e,i,n){var o=t.getModel("breadcrumb"),a=this.group;if(a.removeAll(),o.get("show")&&i){var r=o.getModel("itemStyle.normal"),l=r.getModel("textStyle"),u={pos:{left:o.get("left"),right:o.get("right"),top:o.get("top"),bottom:o.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:o.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(i,u,l),this._renderContent(t,u,r,l,n),s.positionElement(a,u.pos,u.box)}},_prepare:function(t,e,i){for(var n=t;n;n=n.parentNode){var o=n.getModel().get("name"),a=i.getTextRect(o),r=Math.max(a.width+16,e.emptyItemWidth);e.totalWidth+=r+8,e.renderList.push({node:n,text:o,width:r})}},_renderContent:function(t,e,i,n,u){for(var c=0,h=e.emptyItemWidth,d=t.get("breadcrumb.height"),f=s.getAvailableSize(e.pos,e.box),p=e.totalWidth,g=e.renderList,m=g.length-1;m>=0;m--){var v=g[m],y=v.node,x=v.width,_=v.text;p>f.width&&(p-=x-h,x=h,_="");var b=new r.Polygon({shape:{points:o(c,0,x,d,m===g.length-1,0===m)},style:l.defaults(i.getItemStyle(),{lineJoin:"bevel",text:_,textFill:n.getTextColor(),textFont:n.getFont()}),z:10,onclick:l.curry(u,y)});this.group.add(b),a(b,t,y),c+=x+8}},remove:function(){this.group.removeAll()}},t.exports=n},function(t,e,i){var n=i(4);t.exports={createWrap:function(){var t,e=[],i={};return{add:function(t,o,a,r,s){return n.isString(r)&&(s=r,r=0),!i[t.id]&&(i[t.id]=1,e.push({el:t,target:o,time:a,delay:r,easing:s}),!0)},done:function(e){return t=e,this},start:function(){for(var n=e.length,o=0,a=e.length;o=u.length||t===u[t.depth])&&n(t,c(d,y,t,e,w,h),i,s,u,h)})}else m=a(y),t.setVisual("color",m)}}function o(t,e,i,n){var o=f.extend({},e);return f.each(["color","colorAlpha","colorSaturation"],function(a){var r=t.get(a,!0);null==r&&i&&(r=i[a]),null==r&&(r=e[a]),null==r&&(r=n.get(a)),null!=r&&(o[a]=r)}),o}function a(t){var e=s(t,"color");if(e){var i=s(t,"colorAlpha"),n=s(t,"colorSaturation");return n&&(e=d.modifyHSL(e,null,null,n)),i&&(e=d.modifyAlpha(e,i)),e}}function r(t,e){return null!=e?d.modifyHSL(e,null,null,t):null}function s(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function l(t,e,i,n,o,a){if(a&&a.length){var r=u(e,"color")||null!=o.color&&"none"!==o.color&&(u(e,"colorAlpha")||u(e,"colorSaturation"));if(r){var s=e.get("visualMin"),l=e.get("visualMax"),c=i.dataExtent.slice();null!=s&&sc[1]&&(c[1]=l);var d=e.get("colorMappingBy"),f={type:r.name,dataExtent:c,visual:r.range};"color"!==f.type||"index"!==d&&"id"!==d?f.mappingMethod="linear":(f.mappingMethod="category",f.loop=!0);var p=new h(f);return p.__drColorMappingBy=d,p}}}function u(t,e){var i=t.get(e);return p(i)&&i.length?{name:e,range:i}:null}function c(t,e,i,n,o,a){var r=f.extend({},e);if(o){var s=o.type,l="color"===s&&o.__drColorMappingBy,u="index"===l?n:"id"===l?a.mapIdToIndex(i.getId()):i.getValue(t.get("visualDimension"));r[s]=o.mapValueToVisual(u)}return r}var h=i(199),d=i(39),f=i(4),p=f.isArray,g="itemStyle.normal";t.exports=function(t,e,i){var o={mainType:"series",subType:"treemap",query:i};t.eachComponent(o,function(t){var e=t.getData().tree,i=e.root,o=t.getModel(g);i.isRemoved()||n(i,{},f.map(e.levelModels,function(t){return t?t.get(g):null}),o,t.getViewRoot().getAncestors(),t)})}},function(t,e,i){function n(t){var e=t.pieceList;t.hasSpecialVisual=!1,g.each(e,function(e,i){e.originIndex=i,null!=e.visual&&(t.hasSpecialVisual=!0)})}function o(t){var e=t.categories,i=t.visual,n=t.categoryMap={};if(y(e,function(t,e){n[t]=e}),!g.isArray(i)){var o=[];g.isObject(i)?y(i,function(t,e){var i=n[e];o[null!=i?i:_]=t}):o[_]=i,i=f(t,o)}for(var a=e.length-1;a>=0;a--)null==i[a]&&(delete n[e[a]],e.pop())}function a(t,e){var i=t.visual,n=[];g.isObject(i)?y(i,function(t){n.push(t)}):null!=i&&n.push(i);var o={color:1,symbol:1};e||1!==n.length||o.hasOwnProperty(t.type)||(n[1]=n[0]),f(t,n)}function r(t){return{applyVisual:function(e,i,n){e=this.mapValueToVisual(e),n("color",t(i("color"),e))},_doMap:h([0,1])}}function s(t){var e=this.option.visual;return e[Math.round(v(t,[0,1],[0,e.length-1],!0))]||{}}function l(t){return function(e,i,n){n(t,this.mapValueToVisual(e))}}function u(t){var e=this.option.visual;return e[this.option.loop&&t!==_?t%e.length:t]}function c(){return this.option.visual[0]}function h(t){return{linear:function(e){return v(e,t,this.option.visual,!0)},category:u,piecewise:function(e,i){var n=d.call(this,i);return null==n&&(n=v(e,t,this.option.visual,!0)),n},fixed:c}}function d(t){var e=this.option,i=e.pieceList;if(e.hasSpecialVisual){var n=i[b.findPieceIndex(t,i)];if(n&&n.visual)return n.visual[this.type]}}function f(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=g.map(e,function(t){return m.parse(t)})),e}function p(t,e,i){return t?e<=i:e=0;l--){var u=o["asc"===n?r-l-1:l].getValue();u/i*es[1]&&(s[1]=e)})}else s=[NaN,NaN];return{sum:n,dataExtent:s}}function l(t,e,i){for(var n,o=0,a=1/0,r=0,s=t.length;ro&&(o=n));var l=t.area*t.area,u=e*e*i;return l?y(u*o/l,l/(u*a)):1/0}function u(t,e,i,n,o){var a=e===i.width?0:1,r=1-a,s=["x","y"],l=["width","height"],u=i[s[a]],c=e?t.area/e:0;(o||c>i[l[r]])&&(c=i[l[r]]);for(var h=0,d=t.length;hp.MAX_SAFE_INTEGER&&(u=p.MAX_SAFE_INTEGER),a=s}u ")),o.value&&(c+=" : "+s.encodeHTML(o.value)),c}return u.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var t=o.map(this.option.categories||[],function(t){return null!=t.value?t:o.extend({value:0},t)}),e=new n(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t,!0)})},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},isAnimationEnabled:function(){return u.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{normal:{position:"middle"},emphasis:{}},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{normal:{show:!1,formatter:"{b}"},emphasis:{show:!0}},itemStyle:{normal:{},emphasis:{}},lineStyle:{normal:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{}}}});t.exports=u},function(t,e,i){var n=i(98),o=i(204),a=i(192),r=i(103),s=i(26),l=i(4),u=i(102);t.exports=function(t,e,i,c,h){for(var d=new o(c),f=0;f "+x)),m++)}var _,b=i.get("coordinateSystem");if("cartesian2d"===b||"polar"===b)_=u(t,i,i.ecModel);else{var w=s.get(b),S=r((w&&"view"!==w.type?w.dimensions||[]:[]).concat(["value"]),t);(_=new n(S,i)).initData(t)}var M=new n(["value"],i);return M.initData(g,p),h&&h(_,M),a({mainData:_,struct:d,structAttr:"graph",datas:{node:_,edge:M},datasAttr:{node:"data",edge:"edgeData"}}),d.update(),d}},function(t,e,i){"use strict";function n(t,e){this.id=null==t?"":t,this.inEdges=[],this.outEdges=[],this.edges=[],this.hostGraph,this.dataIndex=null==e?-1:e}function o(t,e,i){this.node1=t,this.node2=e,this.dataIndex=null==i?-1:i}var a=i(4),r=function(t){this._directed=t||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this.data,this.edgeData},s=r.prototype;s.type="graph",s.isDirected=function(){return this._directed},s.addNode=function(t,e){t=t||""+e;var i=this._nodesMap;if(!i[t]){var o=new n(t,e);return o.hostGraph=this,this.nodes.push(o),i[t]=o,o}},s.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},s.getNodeById=function(t){return this._nodesMap[t]},s.addEdge=function(t,e,i){var a=this._nodesMap,r=this._edgesMap;if("number"==typeof t&&(t=this.nodes[t]),"number"==typeof e&&(e=this.nodes[e]),t instanceof n||(t=a[t]),e instanceof n||(e=a[e]),t&&e){var s=t.id+"-"+e.id;if(!r[s]){var l=new o(t,e,i);return l.hostGraph=this,this._directed&&(t.outEdges.push(l),e.inEdges.push(l)),t.edges.push(l),t!==e&&e.edges.push(l),this.edges.push(l),r[s]=l,l}}},s.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},s.getEdge=function(t,e){t instanceof n&&(t=t.id),e instanceof n&&(e=e.id);var i=this._edgesMap;return this._directed?i[t+"-"+e]:i[t+"-"+e]||i[e+"-"+t]},s.eachNode=function(t,e){for(var i=this.nodes,n=i.length,o=0;o=0&&t.call(e,i[o],o)},s.eachEdge=function(t,e){for(var i=this.edges,n=i.length,o=0;o=0&&i[o].node1.dataIndex>=0&&i[o].node2.dataIndex>=0&&t.call(e,i[o],o)},s.breadthFirstTraverse=function(t,e,i,o){if(e instanceof n||(e=this._nodesMap[e]),e){for(var a="out"===i?"outEdges":"in"===i?"inEdges":"edges",r=0;r=0&&i.node2.dataIndex>=0});for(var o=0,a=n.length;o=0&&this[t][e].setItemVisual(this.dataIndex,i,n)},getVisual:function(i,n){return this[t][e].getItemVisual(this.dataIndex,i,n)},setLayout:function(i,n){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,i,n)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}};a.mixin(n,l("hostGraph","data")),a.mixin(o,l("hostGraph","edgeData")),r.Node=n,r.Edge=o,t.exports=r},function(t,e,i){function n(t,e){return t.getVisual("opacity")||t.getModel().get(e)}var o=i(115),a=i(206),r=i(181),s=i(44),l=i(209),u=i(4),c=["itemStyle","normal","opacity"],h=["lineStyle","normal","opacity"];i(1).extendChartView({type:"graph",init:function(t,e){var i=new o,n=new a,s=this.group,l=new r(e.getZr(),s);s.add(i.group),s.add(n.group),this._symbolDraw=i,this._lineDraw=n,this._controller=l,this._firstRender=!0},render:function(t,e,i){var n=t.coordinateSystem;this._model=t,this._nodeScaleRatio=t.get("nodeScaleRatio");var o=this._symbolDraw,a=this._lineDraw,r=this.group;if("view"===n.type){var u={position:n.position,scale:n.scale};this._firstRender?r.attr(u):s.updateProps(r,u,t)}l(t.getGraph(),this._getNodeGlobalScale(t));var c=t.getData();o.updateData(c);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,i),clearTimeout(this._layoutTimeout);var d=t.forceLayout,f=t.get("force.layoutAnimation");d&&this._startForceLayoutIteration(d,f),c.eachItemGraphicEl(function(e,n){var o=c.getItemModel(n);e.off("drag").off("dragend");var a=c.getItemModel(n).get("draggable");a&&e.on("drag",function(){d&&(d.warmUp(),!this._layouting&&this._startForceLayoutIteration(d,f),d.setFixed(n),c.setItemLayout(n,e.position))},this).on("dragend",function(){d&&d.setUnfixed(n)},this),e.setDraggable(a&&d),e.off("mouseover",e.__focusNodeAdjacency),e.off("mouseout",e.__unfocusNodeAdjacency),o.get("focusNodeAdjacency")&&(e.on("mouseover",e.__focusNodeAdjacency=function(){i.dispatchAction({type:"focusNodeAdjacency",seriesId:t.id,dataIndex:e.dataIndex})}),e.on("mouseout",e.__unfocusNodeAdjacency=function(){i.dispatchAction({type:"unfocusNodeAdjacency",seriesId:t.id})}))},this);var p="circular"===t.get("layout")&&t.get("circular.rotateLabel"),g=c.getLayout("cx"),m=c.getLayout("cy");c.eachItemGraphicEl(function(t,e){var i=t.getSymbolPath();if(p){var n=c.getItemLayout(e),o=Math.atan2(n[1]-m,n[0]-g);o<0&&(o=2*Math.PI+o);var a=n[0].8?"left":h[0]<-.8?"right":"center",g=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";else if("middle"===n.__position){var v=s/2,y=[(d=r.tangentAt(v))[1],-d[0]],x=r.pointAt(v);y[1]>0&&(y[0]=-y[0],y[1]=-y[1]),f=[x[0]+y[0]*m,x[1]+y[1]*m],p="center",g="bottom";var _=-Math.atan2(d[1],d[0]);c[0].8?"right":h[0]<-.8?"left":"center",g=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";n.attr({style:{textVerticalAlign:n.__verticalAlign||g,textAlign:n.__textAlign||p},position:f,scale:[o,o]})}}}},g._createLine=function(t,e,i){var r=t.hostModel,s=a(t.getItemLayout(e));s.shape.percent=0,h.initProps(s,{shape:{percent:1}},r,e),this.add(s);var l=new h.Text({name:"label"});this.add(l),d.each(p,function(i){var a=o(i,t,e);this.add(a),this[n(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},g.updateData=function(t,e,i){var a=t.hostModel,s=this.childOfName("line"),l=t.getItemLayout(e),u={shape:{}};r(u.shape,l),h.updateProps(s,u,a,e),d.each(p,function(i){var a=t.getItemVisual(e,i),r=n(i);if(this[r]!==a){this.remove(this.childOfName(i));var s=o(i,t,e);this.add(s)}this[r]=a},this),this._updateCommonStl(t,e,i)},g._updateCommonStl=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=i&&i.lineStyle,r=i&&i.hoverLineStyle,s=i&&i.labelModel,l=i&&i.hoverLabelModel;if(!i||t.hasItemOption){var u=t.getItemModel(e);a=u.getModel("lineStyle.normal").getLineStyle(),r=u.getModel("lineStyle.emphasis").getLineStyle(),s=u.getModel("label.normal"),l=u.getModel("label.emphasis")}var c=t.getItemVisual(e,"color"),g=d.retrieve(t.getItemVisual(e,"opacity"),a.opacity,1);o.useStyle(d.defaults({strokeNoScale:!0,fill:"none",stroke:c,opacity:g},a)),o.hoverStyle=r,d.each(p,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:g}))},this);var m,v,y=s.getShallow("show"),x=l.getShallow("show"),_=this.childOfName("label");if(y||x){var b=n.getRawValue(e);v=null==b?v=t.getName(e):isFinite(b)?f.round(b):b,m=c||"#000"}if(y){var w=s.getModel("textStyle");_.setStyle({text:d.retrieve(n.getFormattedLabel(e,"normal",t.dataType),v),textFont:w.getFont(),fill:w.getTextColor()||m}),_.__textAlign=w.get("align"),_.__verticalAlign=w.get("baseline"),_.__position=s.get("position")}else _.setStyle("text","");if(x){var S=l.getModel("textStyle");_.hoverStyle={text:d.retrieve(n.getFormattedLabel(e,"emphasis",t.dataType),v),textFont:S.getFont(),fill:S.getTextColor()||m}}else _.hoverStyle={text:""};_.ignore=!y&&!x,h.setHoverStyle(this)},g.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},g.setLinePoints=function(t){var e=this.childOfName("line");r(e.shape,t),e.dirty()},d.inherits(s,h.Group),t.exports=s},function(t,e,i){function n(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var o=i(44),a=i(10),r=o.Line.prototype,s=o.BezierCurve.prototype;t.exports=o.extendShape({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){(n(e)?r:s).buildPath(t,e)},pointAt:function(t){return n(this.shape)?r.pointAt.call(this,t):s.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=n(e)?[e.x2-e.x1,e.y2-e.y1]:s.tangentAt.call(this,t);return a.normalize(i,i)}})},function(t,e,i){function n(t,e,i){for(var n,o=t[0],a=t[1],d=t[2],f=1/0,p=i*i,g=.1,m=.1;m<=.9;m+=.1)r[0]=u(o[0],a[0],d[0],m),r[1]=u(o[1],a[1],d[1],m),(x=h(c(r,e)-p))=0?n+=g:n-=g:_>=0?n-=g:n+=g}return n}var o=i(51),a=i(10),r=[],s=[],l=[],u=o.quadraticAt,c=a.distSquare,h=Math.abs;t.exports=function(t,e){function i(t){var e=t.getVisual("symbolSize");return e instanceof Array&&(e=(e[0]+e[1])/2),e}var r=[],s=o.quadraticSubdivide,l=[[],[],[]],u=[[],[]],c=[];e/=2,t.eachEdge(function(t,o){var h=t.getLayout(),d=t.getVisual("fromSymbol"),f=t.getVisual("toSymbol");h.__original||(h.__original=[a.clone(h[0]),a.clone(h[1])],h[2]&&h.__original.push(a.clone(h[2])));var p=h.__original;if(null!=h[2]){if(a.copy(l[0],p[0]),a.copy(l[1],p[2]),a.copy(l[2],p[1]),d&&"none"!=d){var g=i(t.node1),m=n(l,p[0],g*e);s(l[0][0],l[1][0],l[2][0],m,r),l[0][0]=r[3],l[1][0]=r[4],s(l[0][1],l[1][1],l[2][1],m,r),l[0][1]=r[3],l[1][1]=r[4]}if(f&&"none"!=f){var g=i(t.node2),m=n(l,p[1],g*e);s(l[0][0],l[1][0],l[2][0],m,r),l[1][0]=r[1],l[2][0]=r[2],s(l[0][1],l[1][1],l[2][1],m,r),l[1][1]=r[1],l[2][1]=r[2]}a.copy(h[0],l[0]),a.copy(h[1],l[2]),a.copy(h[2],l[1])}else{if(a.copy(u[0],p[0]),a.copy(u[1],p[1]),a.sub(c,u[1],u[0]),a.normalize(c,c),d&&"none"!=d){g=i(t.node1);a.scaleAndAdd(u[0],u[0],c,g*e)}if(f&&"none"!=f){g=i(t.node2);a.scaleAndAdd(u[1],u[1],c,-g*e)}a.copy(h[0],u[0]),a.copy(h[1],u[1])}})}},function(t,e,i){var n=i(1),o=i(184),a={type:"graphRoam",event:"graphRoam",update:"none"};n.registerAction(a,function(t,e){e.eachComponent({mainType:"series",query:t},function(e){var i=e.coordinateSystem,n=o.updateCenterAndZoom(i,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)})}),n.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series.graph:focusNodeAdjacency"},function(){}),n.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series.graph:unfocusNodeAdjacency"},function(){})},function(t,e){t.exports=function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.eachSeriesByType("graph",function(t){var i=t.getCategoriesData(),n=t.getGraph().data,o=i.mapArray(i.getName);n.filterSelf(function(t){var i=n.getItemModel(t).getShallow("category");if(null!=i){"number"==typeof i&&(i=o[i]);for(var a=0;a=t&&(0===e?0:n[e-1][0]).4?"bottom":"middle",textAlign:k<-.4?"left":k>.4?"right":"center"},silent:!0});"auto"===N.style.fill&&N.setStyle({fill:n(P/b)}),d.add(N)}if(x.get("show")&&P!==b){for(var V=0;V<=w;V++){var k=Math.cos(I),O=Math.sin(I),B=new r.Line({shape:{x1:k*g+f,y1:O*g+p,x2:k*(g-M)+f,y2:O*(g-M)+p},silent:!0,style:L});"auto"===L.stroke&&B.setStyle({stroke:n((P+V/w)/b)}),d.add(B),I+=A}I-=A}else I+=T}},_renderPointer:function(t,e,i,n,o,u,c,h){var d=this.group,f=this._data;if(t.get("pointer.show")){var p=[+t.get("min"),+t.get("max")],g=[u,c],m=t.getData();m.diff(f).add(function(e){var i=new a({shape:{angle:u}});r.updateProps(i,{shape:{angle:s.linearMap(m.get("value",e),p,g,!0)}},t),d.add(i),m.setItemGraphicEl(e,i)}).update(function(e,i){var n=f.getItemGraphicEl(i);r.updateProps(n,{shape:{angle:s.linearMap(m.get("value",e),p,g,!0)}},t),d.add(n),m.setItemGraphicEl(e,n)}).remove(function(t){var e=f.getItemGraphicEl(t);d.remove(e)}).execute(),m.eachItemGraphicEl(function(t,e){var i=m.getItemModel(e),a=i.getModel("pointer");t.setShape({x:o.cx,y:o.cy,width:l(a.get("width"),o.r),r:l(a.get("length"),o.r)}),t.useStyle(i.getModel("itemStyle.normal").getItemStyle()),"auto"===t.style.fill&&t.setStyle("fill",n(s.linearMap(m.get("value",e),p,[0,1],!0))),r.setHoverStyle(t,i.getModel("itemStyle.emphasis").getItemStyle())}),this._data=m}else f&&f.eachItemGraphicEl(function(t){d.remove(t)})},_renderTitle:function(t,e,i,n,o){var a=t.getModel("title");if(a.get("show")){var u=a.getModel("textStyle"),c=a.get("offsetCenter"),h=o.cx+l(c[0],o.r),d=o.cy+l(c[1],o.r),f=new r.Text({style:{x:h,y:d,text:t.getData().getName(0),fill:u.getTextColor(),textFont:u.getFont(),textAlign:"center",textVerticalAlign:"middle"}});if("auto"===f.style.fill){var p=+t.get("min"),g=+t.get("max"),m=t.getData().get("value",0);f.setStyle("fill",n(s.linearMap(m,[p,g],[0,1],!0)))}this.group.add(f)}},_renderDetail:function(t,e,i,n,a){var u=t.getModel("detail"),c=+t.get("min"),h=+t.get("max");if(u.get("show")){var d=u.getModel("textStyle"),f=u.get("offsetCenter"),p=a.cx+l(f[0],a.r),g=a.cy+l(f[1],a.r),m=l(u.get("width"),a.r),v=l(u.get("height"),a.r),y=t.getData().get("value",0),x=new r.Rect({shape:{x:p-m/2,y:g-v/2,width:m,height:v},style:{text:o(y,u.get("formatter")),fill:u.get("backgroundColor"),textFill:d.getTextColor(),textFont:d.getFont()}});"auto"===x.style.textFill&&x.setStyle("textFill",n(s.linearMap(y,[c,h],[0,1],!0))),x.setStyle(u.getItemStyle(["color"])),this.group.add(x)}}});t.exports=c},function(t,e,i){t.exports=i(46).extend({type:"echartsGaugePointer",shape:{angle:0,width:10,r:10,x:0,y:0},buildPath:function(t,e){var i=Math.cos,n=Math.sin,o=e.r,a=e.width,r=e.angle,s=e.x-i(r)*a*(a>=o/3?1:2),l=e.y-n(r)*a*(a>=o/3?1:2);r=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+i(r)*a,e.y+n(r)*a),t.lineTo(e.x+i(e.angle)*o,e.y+n(e.angle)*o),t.lineTo(e.x-i(r)*a,e.y-n(r)*a),t.lineTo(s,l)}})},function(t,e,i){var n=i(4),o=i(1);i(227),i(228),o.registerVisual(n.curry(i(150),"funnel")),o.registerLayout(i(229)),o.registerProcessor(n.curry(i(153),"funnel"))},function(t,e,i){"use strict";var n=i(98),o=i(5),a=i(103),r=i(1).extendSeriesModel({type:"series.funnel",init:function(t){r.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this._defaultLabelLine(t)},getInitialData:function(t,e){var i=a(["value"],t.data),o=new n(i,this);return o.initData(t.data),o},_defaultLabelLine:function(t){o.defaultEmphasis(t.labelLine,["show"]);var e=t.labelLine.normal,i=t.labelLine.emphasis;e.show=e.show&&t.label.normal.show,i.show=i.show&&t.label.emphasis.show},getDataParams:function(t){var e=this.getData(),i=r.superCall(this,"getDataParams",t),n=e.getSum("value");return i.percent=n?+(e.get("value",t)/n*100).toFixed(2):0,i.$vars.push("percent"),i},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",label:{normal:{show:!0,position:"outer"},emphasis:{show:!0}},labelLine:{normal:{show:!0,length:20,lineStyle:{width:1,type:"solid"}},emphasis:{}},itemStyle:{normal:{borderColor:"#fff",borderWidth:1},emphasis:{}}}});t.exports=r},function(t,e,i){function n(t,e){function i(){r.ignore=r.hoverIgnore,s.ignore=s.hoverIgnore}function n(){r.ignore=r.normalIgnore,s.ignore=s.normalIgnore}a.Group.call(this);var o=new a.Polygon,r=new a.Polyline,s=new a.Text;this.add(o),this.add(r),this.add(s),this.updateData(t,e,!0),this.on("emphasis",i).on("normal",n).on("mouseover",i).on("mouseout",n)}function o(t,e,i,n){var o=n.getModel("textStyle"),a=n.get("position"),s="inside"===a||"inner"===a||"center"===a;return{fill:o.getTextColor()||(s?"#fff":t.getItemVisual(e,"color")),textFont:o.getFont(),text:r.retrieve(t.hostModel.getFormattedLabel(e,i),t.getName(e))}}var a=i(44),r=i(4),s=n.prototype,l=["itemStyle","normal","opacity"];s.updateData=function(t,e,i){var n=this.childAt(0),o=t.hostModel,s=t.getItemModel(e),u=t.getItemLayout(e),c=t.getItemModel(e).get(l);c=null==c?1:c,n.useStyle({}),i?(n.setShape({points:u.points}),n.setStyle({opacity:0}),a.initProps(n,{style:{opacity:c}},o,e)):a.updateProps(n,{style:{opacity:c},shape:{points:u.points}},o,e);var h=s.getModel("itemStyle"),d=t.getItemVisual(e,"color");n.setStyle(r.defaults({lineJoin:"round",fill:d},h.getModel("normal").getItemStyle(["opacity"]))),n.hoverStyle=h.getModel("emphasis").getItemStyle(),this._updateLabel(t,e),a.setHoverStyle(this)},s._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),r=t.hostModel,s=t.getItemModel(e),l=t.getItemLayout(e).label,u=t.getItemVisual(e,"color");a.updateProps(i,{shape:{points:l.linePoints||l.linePoints}},r,e),a.updateProps(n,{style:{x:l.x,y:l.y}},r,e),n.attr({style:{textAlign:l.textAlign,textVerticalAlign:l.verticalAlign,textFont:l.font},rotation:l.rotation,origin:[l.x,l.y],z2:10});var c=s.getModel("label.normal"),h=s.getModel("label.emphasis"),d=s.getModel("labelLine.normal"),f=s.getModel("labelLine.emphasis");n.setStyle(o(t,e,"normal",c)),n.ignore=n.normalIgnore=!c.get("show"),n.hoverIgnore=!h.get("show"),i.ignore=i.normalIgnore=!d.get("show"),i.hoverIgnore=!f.get("show"),i.setStyle({stroke:u}),i.setStyle(d.getModel("lineStyle").getLineStyle()),n.hoverStyle=o(t,e,"emphasis",h),i.hoverStyle=f.getModel("lineStyle").getLineStyle()},r.inherits(n,a.Group);var u=i(43).extend({type:"funnel",render:function(t,e,i){var o=t.getData(),a=this._data,r=this.group;o.diff(a).add(function(t){var e=new n(o,t);o.setItemGraphicEl(t,e),r.add(e)}).update(function(t,e){var i=a.getItemGraphicEl(e);i.updateData(o,t),r.add(i),o.setItemGraphicEl(t,i)}).remove(function(t){var e=a.getItemGraphicEl(t);r.remove(e)}).execute(),this._data=o},remove:function(){this.group.removeAll(),this._data=null},dispose:function(){}});t.exports=u},function(t,e,i){function n(t,e){return r.getLayoutRect(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function o(t,e){for(var i=t.mapArray("value",function(t){return t}),n=[],o="ascending"===e,a=0,r=t.count();a5)){var s=t.coordinateSystem,l=s.findClosestAxisDim(n);if(l){var u=o.indexOf(s.dimensions,l);i.dispatchAction({type:"parallelAxisExpand",axisExpandCenter:u})}}})}},dispose:function(t,e){e.getZr().off(this.__onMouseDown),e.getZr().off(this.__onMouseUp)}}),n.registerPreprocessor(i(241))},function(t,e,i){var n=i(233);i(26).register("parallel",{create:function(t,e){var i=[];return t.eachComponent("parallel",function(o,a){var r=new n(o,t,e);r.name="parallel_"+a,r.resize(o,e),o.coordinateSystem=r,r.model=o,i.push(r)}),t.eachSeries(function(e){if("parallel"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"parallel",index:e.get("parallelIndex"),id:e.get("parallelId")})[0];e.coordinateSystem=i.coordinateSystem}}),i}})},function(t,e,i){function n(t,e,i){this._axesMap={},this._axesLayout={},this.dimensions=t.dimensions,this._rect,this._model=t,this._init(t,e,i)}var o=i(21),a=i(105),r=i(4),s=i(234),l=i(44),u=i(11),c=r.each,h=Math.PI;n.prototype={type:"parallel",constructor:n,_init:function(t,e,i){var n=t.dimensions,o=t.parallelAxisIndex;c(n,function(t,i){var n=o[i],r=e.getComponent("parallelAxis",n),l=this._axesMap[t]=new s(t,a.createScaleByModel(r),[0,0],r.get("type"),n),u="category"===l.type;l.onBand=u&&r.get("boundaryGap"),l.inverse=r.get("inverse"),r.axis=l,l.model=r},this)},update:function(t,e){this._updateAxesFromSeries(this._model,t)},_updateAxesFromSeries:function(t,e){e.eachSeries(function(i){if(t.contains(i,e)){var n=i.getData();c(this.dimensions,function(t){var e=this._axesMap[t];e.scale.unionExtentFromData(n,t),a.niceScaleExtent(e.scale,e.model)},this)}},this)},resize:function(t,e){this._rect=o.getLayoutRect(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes(t)},getRect:function(){return this._rect},_layoutAxes:function(t){var e=this._rect,i=t.get("layout"),n=this._axesMap,o=this.dimensions,a=[e.width,e.height],r="horizontal"===i?0:1,s=a[r],l=a[1-r],d=[0,l];c(n,function(t){var e=t.inverse?1:0;t.setExtent(d[e],d[1-e])});var f,p=t.get("axisExpandable"),g=t.get("axisExpandWidth"),m=t.get("axisExpandCenter"),v=t.get("axisExpandCount")||0;if(null!=m){var y=Math.max(0,Math.floor(m-(v-1)/2)),x=y+v-1;x>=o.length&&(x=o.length-1,y=Math.max(0,Math.floor(x-v+1))),f=[y,x]}var _=p&&f&&g?function(t,e,i){var n,o=f[1]-f[0],a=(e-g*o)/(i-1-o);return n=tr[1])){var s=Math.abs(a[1]);s=0;i--)s.asc(e[i])},getActiveState:function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t)return"inactive";for(var i=0,n=e.length;i=v[1])&&(c=!1);var y=o.extend({axisLabelShow:c,strokeContainThreshold:f},g),x=new a(t,y);o.each(l,x.add,x),this._axisGroup.add(x.getGroup()),this._refreshBrushController(y,d,t,f),s.groupTransition(u,this._axisGroup,t)}}},_refreshBrushController:function(t,e,i,n){var a=i.axis,r=o.map(i.activeIntervals,function(t){return{brushType:"lineX",panelId:"pl",range:[a.dataToCoord(t[0],!0),a.dataToCoord(t[1],!0)]}}),l=a.getExtent(),u=l[1]-l[0],c=Math.min(30,.1*Math.abs(u)),h=s.BoundingRect.create({x:l[0],y:-n/2,width:u,height:n});h.x-=c,h.width+=2*c,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,position:t.position}).setPanels([{panelId:"pl",rect:h}]).enableBrush({brushType:"lineX",brushStyle:e,removeOnClick:!0}).updateCovers(r)},_onBrush:function(t,e){var i=this.axisModel,n=i.axis,a=o.map(t,function(t){return[n.coordToData(t.range[0],!0),n.coordToData(t.range[1],!0)]});(!i.option.realtime===e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:i.id,intervals:a})},dispose:function(){this._brushController.dispose()}});t.exports=u},function(t,e,i){function n(t){B.assert(t),V.call(this),this._zr=t,this.group=new F.Group,this._brushType,this._brushOption,this._panels,this._track=[],this._dragging,this._covers=[],this._creatingCover,this._creatingPanel,this._enableGlobalPan,this._mounted,this._uid="brushController_"+nt++,this._handlers={},q(ot,function(t,e){this._handlers[e]=B.bind(t,this)},this)}function o(t,e){var i=t._zr;t._enableGlobalPan||H.take(i,Q,t._uid),q(t._handlers,function(t,e){i.on(e,t)}),t._brushType=e.brushType,t._brushOption=B.merge(B.clone(it),e,!0)}function a(t){var e=t._zr;H.release(e,Q,t._uid),q(t._handlers,function(t,i){e.off(i,t)}),t._brushType=t._brushOption=null}function r(t,e){var i=at[e.brushType].createCover(t,e);return u(i),i.__brushOption=e,t.group.add(i),i}function s(t,e){var i=h(e);return i.endCreating&&(i.endCreating(t,e),u(e)),e}function l(t,e){var i=e.__brushOption;h(e).updateCoverShape(t,e,i.range,i)}function u(t){t.traverse(function(t){t.z=$,t.z2=$})}function c(t,e){h(e).updateCommon(t,e),l(t,e)}function h(t){return at[t.__brushOption.brushType]}function d(t,e,i){var n=t._panels;if(!n)return!0;var o;return q(n,function(t){t.contain(e,i)&&(o=t)}),o}function f(t,e){var i=t._panels;if(!i)return!0;var n=e.__brushOption.panelId;return null==n||i[n]}function p(t){var e=t._covers,i=e.length;return q(e,function(e){t.group.remove(e)},t),e.length=0,!!i}function g(t,e){var i=j(t._covers,function(t){var e=t.__brushOption,i=B.clone(e.range);return{brushType:e.brushType,panelId:e.panelId,range:i}});t.trigger("brush",i,{isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function m(t){var e=t._track;if(!e.length)return!1;var i=e[e.length-1],n=e[0],o=i[0]-n[0],a=i[1]-n[1];return Y(o*o+a*a,.5)>K}function v(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function y(t,e,i,n){var o=new F.Group;return o.add(new F.Rect({name:"main",style:w(i),silent:!0,draggable:!0,cursor:"move",drift:Z(t,e,o,"nswe"),ondragend:Z(g,e,{isEnd:!0})})),q(n,function(i){o.add(new F.Rect({name:i,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:Z(t,e,o,i),ondragend:Z(g,e,{isEnd:!0})}))}),o}function x(t,e,i,n){var o=n.brushStyle.lineWidth||0,a=X(o,J),r=i[0][0],s=i[1][0],l=r-o/2,u=s-o/2,c=i[0][1],h=i[1][1],d=c-a+o/2,f=h-a+o/2,p=c-r,g=h-s,m=p+o,v=g+o;b(t,e,"main",r,s,p,g),n.transformable&&(b(t,e,"w",l,u,a,v),b(t,e,"e",d,u,a,v),b(t,e,"n",l,u,m,a),b(t,e,"s",l,f,m,a),b(t,e,"nw",l,u,a,a),b(t,e,"ne",d,u,a,a),b(t,e,"sw",l,f,a,a),b(t,e,"se",d,f,a,a))}function _(t,e){var i=e.__brushOption,n=i.transformable,o=e.childAt(0);o.useStyle(w(i)),o.attr({silent:!n,cursor:n?"move":"default"}),q(["w","e","n","s","se","sw","ne","nw"],function(i){var o=e.childOfName(i),a=I(t,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?et[a]+"-resize":null})})}function b(t,e,i,n,o,a,r){var s=e.childOfName(i);s&&s.setShape(D(L(t,e,[[n,o],[n+a,o+r]])))}function w(t){return B.defaults({strokeNoScale:!0},t.brushStyle)}function S(t,e,i,n){var o=[U(t,i),U(e,n)],a=[X(t,i),X(e,n)];return[[o[0],a[0]],[o[1],a[1]]]}function M(t){return F.getTransform(t.group)}function I(t,e){if(e.length>1)return("e"===(o=[I(t,(e=e.split(""))[0]),I(t,e[1])])[0]||"w"===o[0])&&o.reverse(),o.join("");var i={w:"left",e:"right",n:"top",s:"bottom"},n={left:"w",right:"e",top:"n",bottom:"s"},o=F.transformDirection(i[e],M(t));return n[o]}function T(t,e,i,n,o,a,r,s){var l=n.__brushOption,u=t(l.range),h=C(i,a,r);q(o.split(""),function(t){var e=tt[t];u[e[0]][e[1]]+=h[e[0]]}),l.range=e(S(u[0][0],u[1][0],u[0][1],u[1][1])),c(i,n),g(i,{isEnd:!1})}function A(t,e,i,n,o){var a=e.__brushOption.range,r=C(t,i,n);q(a,function(t){t[0]+=r[0],t[1]+=r[1]}),c(t,e),g(t,{isEnd:!1})}function C(t,e,i){var n=t.group,o=n.transformCoordToLocal(e,i),a=n.transformCoordToLocal(0,0);return[o[0]-a[0],o[1]-a[1]]}function L(t,e,i){var n=f(t,e);if(!0===n)return B.clone(i);var o=n.getBoundingRect();return B.map(i,function(t){var e=t[0];e=X(e,o.x),e=U(e,o.x+o.width);var i=t[1];return i=X(i,o.y),i=U(i,o.y+o.height),[e,i]})}function D(t){var e=U(t[0][0],t[1][0]),i=U(t[0][1],t[1][1]);return{x:e,y:i,width:X(t[0][0],t[1][0])-e,height:X(t[0][1],t[1][1])-i}}function P(t,e){var i=e.offsetX,n=e.offsetY,o=t._zr;if(t._brushType){for(var a,r=t._panels,s=t._covers,l=0;l=0?e:NaN}})}function o(t){return+t.replace("dim","")}function a(t,e){var i=0;s.each(t,function(t){var e=o(t);e>i&&(i=e)});var n=e[0];n&&n.length-1>i&&(i=n.length-1);for(var a=[],r=0;r<=i;r++)a.push("dim"+r);return a}var r=i(98),s=i(4),l=i(28),u=i(103);t.exports=l.extend({type:"series.parallel",dependencies:["parallel"],getInitialData:function(t,e){var i=e.getComponent("parallel",this.get("parallelIndex")),o=i.parallelAxisIndex,l=t.data,c=i.dimensions,h=a(c,l),d=s.map(h,function(t,i){var a=s.indexOf(c,t),r=a>=0&&e.getComponent("parallelAxis",o[a]);return r&&"category"===r.get("type")?(n(r,t,l),{name:t,type:"ordinal"}):a<0&&u.guessOrdinal(l,i)?{name:t,type:"ordinal"}:t}),f=new r(d,this);return f.initData(l),this.option.progressive&&(this.option.animation=!1),f},getRawIndicesByActiveState:function(t){var e=this.coordinateSystem,i=this.getData(),n=[];return e.eachActiveState(i,function(e,o){t===e&&n.push(i.getRawIndex(o))}),n},defaultOption:{zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{normal:{show:!1},emphasis:{show:!1}},inactiveOpacity:.05,activeOpacity:1,lineStyle:{normal:{width:1,opacity:.45,type:"solid"}},progressive:!1,smooth:!1,animationEasing:"linear"}})},function(t,e,i){function n(t,e,i){var n=t.model,o=t.getRect(),a=new l.Rect({shape:{x:o.x,y:o.y,width:o.width,height:o.height}}),r="horizontal"===n.get("layout")?"width":"height";return a.setShape(r,0),l.initProps(a,{shape:{width:o.width,height:o.height}},e,i),a}function o(t,e,i,n){for(var o=[],a=0;a0;o--)d(a,r*=.99),h(a,n,i),p(a,r),h(a,n,i)}function c(t,e,i,n,o){var a=[];T.each(e,function(t){var e=t.length,i=0;T.each(t,function(t){i+=t.getLayout().value});var r=(n-(e-1)*o)/i;a.push(r)}),a.sort(function(t,e){return t-e});var r=a[0];T.each(e,function(t){T.each(t,function(t,e){t.setLayout({y:e},!0);var i=t.getLayout().value*r;t.setLayout({dy:i},!0)})}),T.each(i,function(t){var e=+t.getValue()*r;t.setLayout({dy:e},!0)})}function h(t,e,i){T.each(t,function(t){var n,o,a,r=0,s=t.length;for(t.sort(b),a=0;a0){l=n.getLayout().y+o;n.setLayout({y:l},!0)}r=n.getLayout().y+n.getLayout().dy+e}if((o=r-e-i)>0){var l=n.getLayout().y-o;for(n.setLayout({y:l},!0),r=n.getLayout().y,a=s-2;a>=0;--a)(o=(n=t[a]).getLayout().y+n.getLayout().dy+e-r)>0&&(l=n.getLayout().y-o,n.setLayout({y:l},!0)),r=n.getLayout().y}})}function d(t,e){T.each(t.slice().reverse(),function(t){T.each(t,function(t){if(t.outEdges.length){var i=x(t.outEdges,f)/x(t.outEdges,S),n=t.getLayout().y+(i-_(t))*e;t.setLayout({y:n},!0)}})})}function f(t){return _(t.node2)*t.getValue()}function p(t,e){T.each(t,function(t){T.each(t,function(t){if(t.inEdges.length){var i=x(t.inEdges,g)/x(t.inEdges,S),n=t.getLayout().y+(i-_(t))*e;t.setLayout({y:n},!0)}})})}function g(t){return _(t.node1)*t.getValue()}function m(t){T.each(t,function(t){t.outEdges.sort(v),t.inEdges.sort(y)}),T.each(t,function(t){var e=0,i=0;T.each(t.outEdges,function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy}),T.each(t.inEdges,function(t){t.setLayout({ty:i},!0),i+=t.getLayout().dy})})}function v(t,e){return t.node2.getLayout().y-e.node2.getLayout().y}function y(t,e){return t.node1.getLayout().y-e.node1.getLayout().y}function x(t,e){for(var i=0,n=t.length,o=-1;++oe?1:t===e?0:NaN}function S(t){return t.getValue()}var M=i(21),I=i(249),T=i(4);t.exports=function(t,e,i){t.eachSeriesByType("sankey",function(t){var i=t.get("nodeWidth"),r=t.get("nodeGap"),s=n(t,e);t.layoutInfo=s;var l=s.width,u=s.height,c=t.getGraph(),h=c.nodes,d=c.edges;a(h),o(h,d,i,r,l,u,0!==h.filter(function(t){return 0===t.getLayout().value}).length?0:t.get("layoutIterations"))})}},function(t,e,i){var n=i(4);t.exports=function(){function t(e,o){if(o>=i.length)return e;for(var a=-1,r=e.length,s=i[o++],l={},u={};++a=i.length)return t;var r=[],s=o[a++];return n.each(t,function(t,i){r.push({key:i,values:e(t,a)})}),s?r.sort(function(t,e){return s(t.key,e.key)}):r}var i=[],o=[];return{key:function(t){return i.push(t),this},sortKeys:function(t){return o[i.length-1]=t,this},entries:function(i){return e(t(i,0),0)}}}},function(t,e,i){var n=i(199),o=i(4);t.exports=function(t,e){t.eachSeriesByType("sankey",function(t){var e=t.getGraph().nodes;e.sort(function(t,e){return t.getLayout().value-e.getLayout().value});var i=e[0].getLayout().value,a=e[e.length-1].getLayout().value;o.each(e,function(e){var o=new n({type:"color",mappingMethod:"linear",dataExtent:[i,a],visual:t.get("color")}).mapValueToVisual(e.getLayout().value);e.setVisual("color",o);var r=e.getModel().get("itemStyle.normal.color");null!=r&&e.setVisual("color",r)})})}},function(t,e,i){var n=i(1);i(252),i(255),n.registerVisual(i(256)),n.registerLayout(i(257))},function(t,e,i){"use strict";var n=i(4),o=i(28),a=i(253),r=o.extend({type:"series.boxplot",dependencies:["xAxis","yAxis","grid"],valueDimensions:["min","Q1","median","Q3","max"],dimensions:null,defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,layout:null,boxWidth:[7,50],itemStyle:{normal:{color:"#fff",borderWidth:1},emphasis:{borderWidth:2,shadowBlur:5,shadowOffsetX:2,shadowOffsetY:2,shadowColor:"rgba(0,0,0,0.4)"}},animationEasing:"elasticOut",animationDuration:800}});n.mixin(r,a.seriesModelMixin,!0),t.exports=r},function(t,e,i){"use strict";function n(t){return null==t.value?t:t.value}var o=i(98),a=i(103),r=i(254),s=i(4),l={_baseAxisDim:null,getInitialData:function(t,e){var i,r,s=e.getComponent("xAxis",this.get("xAxisIndex")),l=e.getComponent("yAxis",this.get("yAxisIndex")),u=s.get("type"),c=l.get("type");"category"===u?(t.layout="horizontal",i=s.getCategories(),r=!0):"category"===c?(t.layout="vertical",i=l.getCategories(),r=!0):t.layout=t.layout||"horizontal",this._baseAxisDim="horizontal"===t.layout?"x":"y";var h=t.data,d=this.dimensions=["base"].concat(this.valueDimensions);a(d,h);var f=new o(d,this);return f.initData(h,i?i.slice():null,function(t,e,i,o){var a=n(t);return r?"base"===e?i:a[o-1]:a[o]}),f},coordDimToDataDim:function(t){var e=this.valueDimensions.slice(),i=["base"];return{horizontal:{x:i,y:e},vertical:{x:e,y:i}}[this.get("layout")][t]},dataDimToCoordDim:function(t){var e;return s.each(["x","y"],function(i,n){var o=this.coordDimToDataDim(i);s.indexOf(o,t)>=0&&(e=i)},this),e},getBaseAxis:function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis}},u={init:function(){var t=this._whiskerBoxDraw=new r(this.getStyleUpdater());this.group.add(t.group)},render:function(t,e,i){this._whiskerBoxDraw.updateData(t.getData())},remove:function(t){this._whiskerBoxDraw.remove()}};t.exports={seriesModelMixin:l,viewMixin:u}},function(t,e,i){function n(t,e,i,n){l.Group.call(this),this.bodyIndex,this.whiskerIndex,this.styleUpdater=i,this._createContent(t,e,n),this.updateData(t,e,n),this._seriesModel}function o(t,e,i){return s.map(t,function(t){return t=t.slice(),t[e]=i.initBaseline,t})}function a(t){var e={};return s.each(t,function(t,i){e["ends"+i]=t}),e}function r(t){this.group=new l.Group,this.styleUpdater=t}var s=i(4),l=i(44),u=i(46).extend({type:"whiskerInBox",shape:{},buildPath:function(t,e){for(var i in e)if(e.hasOwnProperty(i)&&0===i.indexOf("ends")){var n=e[i];t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1])}}}),c=n.prototype;c._createContent=function(t,e,i){var n=t.getItemLayout(e),r="horizontal"===n.chartLayout?1:0,c=0;this.add(new l.Polygon({shape:{points:i?o(n.bodyEnds,r,n):n.bodyEnds},style:{strokeNoScale:!0},z2:100})),this.bodyIndex=c++;var h=s.map(n.whiskerEnds,function(t){return i?o(t,r,n):t});this.add(new u({shape:a(h),style:{strokeNoScale:!0},z2:100})),this.whiskerIndex=c++},c.updateData=function(t,e,i){var n=this._seriesModel=t.hostModel,o=t.getItemLayout(e),r=l[i?"initProps":"updateProps"];r(this.childAt(this.bodyIndex),{shape:{points:o.bodyEnds}},n,e),r(this.childAt(this.whiskerIndex),{shape:a(o.whiskerEnds)},n,e),this.styleUpdater.call(null,this,t,e)},s.inherits(n,l.Group);var h=r.prototype;h.updateData=function(t){var e=this.group,i=this._data,o=this.styleUpdater;t.diff(i).add(function(i){if(t.hasValue(i)){var a=new n(t,i,o,!0);t.setItemGraphicEl(i,a),e.add(a)}}).update(function(a,r){var s=i.getItemGraphicEl(r);t.hasValue(a)?(s?s.updateData(t,a):s=new n(t,a,o),e.add(s),t.setItemGraphicEl(a,s)):e.remove(s)}).remove(function(t){var n=i.getItemGraphicEl(t);n&&e.remove(n)}).execute(),this._data=t},h.remove=function(){var t=this.group,e=this._data;this._data=null,e&&e.eachItemGraphicEl(function(e){e&&t.remove(e)})},t.exports=r},function(t,e,i){"use strict";function n(t,e,i){var n=e.getItemModel(i),o=n.getModel(u),a=e.getItemVisual(i,"color"),s=o.getItemStyle(["borderColor"]),l=t.childAt(t.whiskerIndex);l.style.set(s),l.style.stroke=a,l.dirty();var h=t.childAt(t.bodyIndex);h.style.set(s),h.style.stroke=a,h.dirty();var d=n.getModel(c).getItemStyle();r.setHoverStyle(t,d)}var o=i(4),a=i(43),r=i(44),s=i(253),l=a.extend({type:"boxplot",getStyleUpdater:function(){return n},dispose:o.noop});o.mixin(l,s.viewMixin,!0);var u=["itemStyle","normal"],c=["itemStyle","emphasis"];t.exports=l},function(t,e){var i=["itemStyle","normal","borderColor"];t.exports=function(t,e){var n=t.get("color");t.eachRawSeriesByType("boxplot",function(e){var o=n[e.seriesIndex%n.length],a=e.getData();a.setVisual({legendSymbol:"roundRect",color:e.get(i)||o}),t.isSeriesFiltered(e)||a.each(function(t){var e=a.getItemModel(t);a.setItemVisual(t,{color:e.get(i,!0)})})})}},function(t,e,i){function n(t){var e=[],i=[];return t.eachSeriesByType("boxplot",function(t){var n=t.getBaseAxis(),o=r.indexOf(i,n);o<0&&(o=i.length,i[o]=n,e[o]={axis:n,seriesModels:[]}),e[o].seriesModels.push(t)}),e}function o(t){var e,i,n=t.axis,o=t.seriesModels,a=o.length,u=t.boxWidthList=[],c=t.boxOffsetList=[],h=[];if("category"===n.type)i=n.getBandWidth();else{var d=0;l(o,function(t){d=Math.max(d,t.getData().count())}),e=n.getExtent(),Math.abs(e[1]-e[0])}l(o,function(t){var e=t.get("boxWidth");r.isArray(e)||(e=[e,e]),h.push([s(e[0],i)||0,s(e[1],i)||0])});var f=.8*i-2,p=f/a*.3,g=(f-p*(a-1))/a,m=g/2-f/2;l(o,function(t,e){c.push(m),m+=p+g,u.push(Math.min(Math.max(g,h[e][0]),h[e][1]))})}function a(t,e,i){var n=t.coordinateSystem,o=t.getData(),a=t.dimensions,r=t.get("layout"),s=i/2;o.each(a,function(){function t(t){var i=[];i[f]=h,i[p]=t;var o;return isNaN(h)||isNaN(t)?o=[NaN,NaN]:(o=n.dataToPoint(i))[f]+=e,o}function i(t,e){var i=t.slice(),n=t.slice();i[f]+=s,n[f]-=s,e?x.push(i,n):x.push(n,i)}function l(t){var e=[t.slice(),t.slice()];e[0][f]-=s,e[1][f]+=s,y.push(e)}var u=arguments,c=a.length,h=u[0],d=u[c],f="horizontal"===r?0:1,p=1-f,g=t(u[3]),m=t(u[1]),v=t(u[5]),y=[[m,t(u[2])],[v,t(u[4])]];l(m),l(v),l(g);var x=[];i(y[0][1],0),i(y[1][1],1),o.setItemLayout(d,{chartLayout:r,initBaseline:g[p],median:g,bodyEnds:x,whiskerEnds:y})})}var r=i(4),s=i(7).parsePercent,l=r.each;t.exports=function(t){var e=n(t);l(e,function(t){var e=t.seriesModels;e.length&&(o(t),l(e,function(e,i){a(e,t.boxOffsetList[i],t.boxWidthList[i])}))})}},function(t,e,i){var n=i(1);i(259),i(260),n.registerPreprocessor(i(261)),n.registerVisual(i(262)),n.registerLayout(i(263))},function(t,e,i){"use strict";var n=i(4),o=i(28),a=i(253),r=i(6),s=r.encodeHTML,l=r.addCommas,u=o.extend({type:"series.candlestick",dependencies:["xAxis","yAxis","grid"],valueDimensions:["open","close","lowest","highest"],dimensions:null,defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,layout:null,itemStyle:{normal:{color:"#c23531",color0:"#314656",borderWidth:1,borderColor:"#c23531",borderColor0:"#314656"},emphasis:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,animationUpdate:!1,animationEasing:"linear",animationDuration:300},getShadowDim:function(){return"open"},formatTooltip:function(t,e){var i=n.map(this.valueDimensions,function(e){return s(e+": "+l(this.getData().get(e,t)))},this).join("
"),o=[];return null!=this.name&&o.push(s(this.name)),null!=i&&o.push(i),o.join("
")},brushSelector:function(t,e){return e.rect(t.brushRect)}});n.mixin(u,a.seriesModelMixin,!0),t.exports=u},function(t,e,i){"use strict";function n(t,e,i){var n=e.getItemModel(i),o=n.getModel(u),a=e.getItemVisual(i,"color"),s=e.getItemVisual(i,"borderColor")||a,l=o.getItemStyle(["color","color0","borderColor","borderColor0"]),h=t.childAt(t.whiskerIndex);h.useStyle(l),h.style.stroke=s;var d=t.childAt(t.bodyIndex);d.useStyle(l),d.style.fill=a,d.style.stroke=s;var f=n.getModel(c).getItemStyle();r.setHoverStyle(t,f)}var o=i(4),a=i(43),r=i(44),s=i(253),l=a.extend({type:"candlestick",getStyleUpdater:function(){return n},dispose:o.noop});o.mixin(l,s.viewMixin,!0);var u=["itemStyle","normal"],c=["itemStyle","emphasis"];t.exports=l},function(t,e,i){var n=i(4);t.exports=function(t){t&&n.isArray(t.series)&&n.each(t.series,function(t){n.isObject(t)&&"k"===t.type&&(t.type="candlestick")})}},function(t,e){var i=["itemStyle","normal","borderColor"],n=["itemStyle","normal","borderColor0"],o=["itemStyle","normal","color"],a=["itemStyle","normal","color0"];t.exports=function(t,e){t.eachRawSeriesByType("candlestick",function(e){var r=e.getData();r.setVisual({legendSymbol:"roundRect"}),t.isSeriesFiltered(e)||r.each(function(t){var e=r.getItemModel(t),s=r.getItemLayout(t).sign;r.setItemVisual(t,{color:e.get(s>0?o:a),borderColor:e.get(s>0?i:n)})})})}},function(t,e,i){function n(t,e){var i,n=t.getBaseAxis(),r="category"===n.type?n.getBandWidth():(i=n.getExtent(),Math.abs(i[1]-i[0])/e.count()),s=a(o(t.get("barMaxWidth"),r),r),l=a(o(t.get("barMinWidth"),1),r),u=t.get("barWidth");return null!=u?a(u,r):Math.max(Math.min(r/2,s),l)}var o=i(4).retrieve,a=i(7).parsePercent;t.exports=function(t){t.eachSeriesByType("candlestick",function(t){var e=t.coordinateSystem,i=t.getData(),o=t.dimensions,a=t.get("layout"),r=n(t,i);i.each(o,function(){function t(t){var i=[];return i[h]=u,i[d]=t,isNaN(u)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function n(t,e){var i=t.slice(),n=t.slice();i[h]+=r/2,n[h]-=r/2,e?S.push(i,n):S.push(n,i)}var s=arguments,l=o.length,u=s[0],c=s[l],h="horizontal"===a?0:1,d=1-h,f=s[1],p=s[2],g=s[3],m=s[4],v=Math.min(f,p),y=Math.max(f,p),x=t(v),_=t(y),b=t(g),w=[[t(m),_],[b,x]],S=[];n(_,0),n(x,1),i.setItemLayout(c,{chartLayout:a,sign:f>p?-1:fp?_[d]:x[d],bodyEnds:S,whiskerEnds:w,brushRect:function(){var e=t(Math.min(f,p,g,m)),i=t(Math.max(f,p,g,m));return e[h]-=r/2,i[h]-=r/2,{x:e[0],y:e[1],width:d?r:i[0]-e[0],height:d?i[1]-e[1]:r}}()})},!0)})}},function(t,e,i){var n=i(4),o=i(1);i(265),i(266),o.registerVisual(n.curry(i(119),"effectScatter","circle",null)),o.registerLayout(n.curry(i(120),"effectScatter"))},function(t,e,i){"use strict";var n=i(102),o=i(28);t.exports=o.extend({type:"series.effectScatter",dependencies:["grid","polar"],getInitialData:function(t,e){return n(t.data,this,e)},brushSelector:"point",defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10}})},function(t,e,i){var n=i(115),o=i(267);i(1).extendChartView({type:"effectScatter",init:function(){this._symbolDraw=new n(o)},render:function(t,e,i){var n=t.getData(),o=this._symbolDraw;o.updateData(n),this.group.add(o.group)},updateLayout:function(){this._symbolDraw.updateLayout()},remove:function(t,e){this._symbolDraw&&this._symbolDraw.remove(e)},dispose:function(){}})},function(t,e,i){function n(t){return r.isArray(t)||(t=[+t,+t]),t}function o(t,e){t.eachChild(function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?e.color:null,fill:"fill"===e.brushType?e.color:null}})})}function a(t,e){h.call(this);var i=new c(t,e),n=new h;this.add(i),this.add(n),n.beforeUpdate=function(){this.attr(i.getScale())},this.updateData(t,e)}var r=i(4),s=i(104),l=i(44),u=i(7),c=i(116),h=l.Group,d=a.prototype;d.stopEffectAnimation=function(){this.childAt(1).removeAll()},d.startEffectAnimation=function(t){for(var e=t.symbolType,i=t.color,n=this.childAt(1),a=0;a<3;a++){var r=s.createSymbol(e,-1,-1,2,2,i);r.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scale:[.5,.5]});var l=-a/3*t.period+t.effectOffset;r.animate("",!0).when(t.period,{scale:[t.rippleScale/2,t.rippleScale/2]}).delay(l).start(),r.animateStyle(!0).when(t.period,{opacity:0}).delay(l).start(),n.add(r)}o(n,t)},d.updateEffectAnimation=function(t){for(var e=this._effectCfg,i=this.childAt(1),n=["symbolType","period","rippleScale"],a=0;a "))},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,label:{normal:{show:!1,position:"end"}},lineStyle:{normal:{opacity:.5}}}})},function(t,e,i){var n=i(206),o=i(271),a=i(207),r=i(272),s=i(273),l=i(274);i(1).extendChartView({type:"lines",init:function(){},render:function(t,e,i){var u=t.getData(),c=this._lineDraw,h=t.get("effect.show"),d=t.get("polyline"),f=t.get("large")&&u.count()>=t.get("largeThreshold");h&&f&&console.warn("Large lines not support effect"),h===this._hasEffet&&d===this._isPolyline&&f===this._isLarge||(c&&c.remove(),c=this._lineDraw=f?new l:new n(d?h?s:r:h?o:a),this._hasEffet=h,this._isPolyline=d,this._isLarge=f);var p=t.get("zlevel"),g=t.get("effect.trailLength"),m=i.getZr();if(m.painter.getLayer(p).clear(!0),null!=this._lastZlevel&&m.configLayer(this._lastZlevel,{motionBlur:!1}),h&&g){var v=!1;e.eachSeries(function(e){e!==t&&e.get("zlevel")===p&&(v=!0)}),v&&console.warn("Lines with trail effect should have an individual zlevel"),m.configLayer(p,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(g/10+.9,1),0)})}this.group.add(c.group),c.updateData(u),this._lastZlevel=p},updateLayout:function(t,e,i){this._lineDraw.updateLayout(t),i.getZr().painter.getLayer(this._lastZlevel).clear(!0)},remove:function(t,e){this._lineDraw&&this._lineDraw.remove(e,!0)},dispose:function(){}})},function(t,e,i){function n(t,e,i){o.Group.call(this),this.add(this.createLine(t,e,i)),this._updateEffectSymbol(t,e)}var o=i(44),a=i(207),r=i(4),s=i(104),l=i(10),u=i(51),c=n.prototype;c.createLine=function(t,e,i){return new a(t,e,i)},c._updateEffectSymbol=function(t,e){var i=t.getItemModel(e).getModel("effect"),n=i.get("symbolSize"),o=i.get("symbol");r.isArray(n)||(n=[n,n]);var a=i.get("color")||t.getItemVisual(e,"color"),l=this.childAt(1);this._symbolType!==o&&(this.remove(l),(l=s.createSymbol(o,-.5,-.5,1,1,a)).z2=100,l.culling=!0,this.add(l)),l&&(l.setStyle("shadowColor",a),l.setStyle(i.getItemStyle(["color"])),l.attr("scale",n),l.setColor(a),l.attr("scale",n),this._symbolType=o,this._updateEffectAnimation(t,i,e))},c._updateEffectAnimation=function(t,e,i){var n=this.childAt(1);if(n){var o=this,a=t.getItemLayout(i),s=1e3*e.get("period"),l=e.get("loop"),u=e.get("constantSpeed"),c=r.retrieve(e.get("delay"),function(e){return e/t.count()*s/3}),h="function"==typeof c;if(n.ignore=!0,this.updateAnimationPoints(n,a),u>0&&(s=this.getLineLength(n)/u*1e3),s!==this._period||l!==this._loop){n.stopAnimation();var d=c;h&&(d=c(i)),n.__t>0&&(d=-s*n.__t),n.__t=0;var f=n.animate("",l).when(s,{__t:1}).delay(d).during(function(){o.updateSymbolPosition(n)});l||f.done(function(){o.remove(n)}),f.start()}this._period=s,this._loop=l}},c.getLineLength=function(t){return l.dist(t.__p1,t.__cp1)+l.dist(t.__cp1,t.__p2)},c.updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},c.updateData=function(t,e,i){this.childAt(0).updateData(t,e,i),this._updateEffectSymbol(t,e)},c.updateSymbolPosition=function(t){var e=t.__p1,i=t.__p2,n=t.__cp1,o=t.__t,a=t.position,r=u.quadraticAt,s=u.quadraticDerivativeAt;a[0]=r(e[0],n[0],i[0],o),a[1]=r(e[1],n[1],i[1],o);var l=s(e[0],n[0],i[0],o),c=s(e[1],n[1],i[1],o);t.rotation=-Math.atan2(c,l)-Math.PI/2,t.ignore=!1},c.updateLayout=function(t,e){this.childAt(0).updateLayout(t,e);var i=t.getItemModel(e).getModel("effect");this._updateEffectAnimation(t,i,e)},r.inherits(n,o.Group),t.exports=n},function(t,e,i){function n(t,e,i){o.Group.call(this),this._createPolyline(t,e,i)}var o=i(44),a=i(4),r=n.prototype;r._createPolyline=function(t,e,i){var n=t.getItemLayout(e),a=new o.Polyline({shape:{points:n}});this.add(a),this._updateCommonStl(t,e,i)},r.updateData=function(t,e,i){var n=t.hostModel,a=this.childAt(0),r={shape:{points:t.getItemLayout(e)}};o.updateProps(a,r,n,e),this._updateCommonStl(t,e,i)},r._updateCommonStl=function(t,e,i){var n=this.childAt(0),r=t.getItemModel(e),s=t.getItemVisual(e,"color"),l=i&&i.lineStyle,u=i&&i.hoverLineStyle;i&&!t.hasItemOption||(l=r.getModel("lineStyle.normal").getLineStyle(),u=r.getModel("lineStyle.emphasis").getLineStyle()),n.useStyle(a.defaults({strokeNoScale:!0,fill:"none",stroke:s},l)),n.hoverStyle=u,o.setHoverStyle(this)},r.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},a.inherits(n,o.Group),t.exports=n},function(t,e,i){function n(t,e,i){r.call(this,t,e,i),this._lastFrame=0,this._lastFramePercent=0}var o=i(272),a=i(4),r=i(271),s=i(10),l=n.prototype;l.createLine=function(t,e,i){return new o(t,e,i)},l.updateAnimationPoints=function(t,e){this._points=e;for(var i=[0],n=0,o=1;o=0&&!(n[r]<=e);r--);r=Math.min(r,o-2)}else{for(var r=a;re);r++);r=Math.min(r-1,o-2)}s.lerp(t.position,i[r],i[r+1],(e-n[r])/(n[r+1]-n[r]));var l=i[r+1][0]-i[r][0],u=i[r+1][1]-i[r][1];t.rotation=-Math.atan2(u,l)-Math.PI/2,this._lastFrame=r,this._lastFramePercent=e,t.ignore=!1}},a.inherits(n,r),t.exports=n},function(t,e,i){function n(){this.group=new o.Group,this._lineEl=new s}var o=i(44),a=i(56),r=i(54),s=o.extendShape({shape:{polyline:!1,segs:[]},buildPath:function(t,e){for(var i=e.segs,n=e.polyline,o=0;o2?t.quadraticCurveTo(a[2][0],a[2][1],a[1][0],a[1][1]):t.lineTo(a[1][0],a[1][1])}},findDataIndex:function(t,e){for(var i=this.shape,n=i.segs,o=i.polyline,s=Math.max(this.style.lineWidth,1),l=0;l2){if(a.containStroke(u[0][0],u[0][1],u[2][0],u[2][1],u[1][0],u[1][1],s,t,e))return l}else if(r.containStroke(u[0][0],u[0][1],u[1][0],u[1][1],s,t,e))return l}return-1}}),l=n.prototype;l.updateData=function(t){this.group.removeAll();var e=this._lineEl,i=t.hostModel;e.setShape({segs:t.mapArray(t.getItemLayout),polyline:i.get("polyline")}),e.useStyle(i.getModel("lineStyle.normal").getLineStyle());var n=t.getVisual("color");n&&e.setStyle("stroke",n),e.setStyle("fill"),e.seriesIndex=i.seriesIndex,e.on("mousemove",function(t){e.dataIndex=null;var i=e.findDataIndex(t.offsetX,t.offsetY);i>0&&(e.dataIndex=i)}),this.group.add(e)},l.updateLayout=function(t){var e=t.getData();this._lineEl.setShape({segs:e.mapArray(e.getItemLayout)})},l.remove=function(){this.group.removeAll()},t.exports=n},function(t,e,i){t.exports=function(t){t.eachSeriesByType("lines",function(t){var e=t.coordinateSystem,i=t.getData();i.each(function(n){var o=i.getItemModel(n),a=o.option instanceof Array?o.option:o.get("coords");if(!(a instanceof Array&&a.length>0&&a[0]instanceof Array))throw new Error("Invalid coords "+JSON.stringify(a)+". Lines must have 2d coords array in data item.");var r=[];if(t.get("polyline"))for(var s=0;s=0;n--){var r=e[n].interval;if(r[0]<=t&&t<=r[1]){a=n;break}}return n>=0&&n=e[0]&&t<=e[1]}}function a(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var r=i(44),s=i(280),l=i(4);t.exports=i(1).extendChartView({type:"heatmap",render:function(t,e,i){var n;if(e.eachComponent("visualMap",function(e){e.eachTargetSeries(function(i){i===t&&(n=e)})}),!n)throw new Error("Heatmap must use with visualMap");this.group.removeAll();var o=t.coordinateSystem;"cartesian2d"===o.type||"calendar"===o.type?this._renderOnCartesianAndCalendar(o,t,i):a(o)&&this._renderOnGeo(o,t,n,i)},dispose:function(){},_renderOnCartesianAndCalendar:function(t,e,i){if("cartesian2d"===t.type){var n=t.getAxis("x"),o=t.getAxis("y");if("category"!==n.type||"category"!==o.type)throw new Error("Heatmap on cartesian must have two category axes");if(!n.onBand||!o.onBand)throw new Error("Heatmap on cartesian must have two axes with boundaryGap true");var a=n.getBandWidth(),s=o.getBandWidth()}var u=this.group,c=e.getData(),h=e.getModel("itemStyle.normal").getItemStyle(["color"]),d=e.getModel("itemStyle.emphasis").getItemStyle(),f=e.getModel("label.normal"),p=e.getModel("label.emphasis");c.each("cartesian2d"===t.type?["x","y","z"]:["time","value"],function(i,n,o,g){var m;if("cartesian2d"===t.type){if(isNaN(o))return;var v=t.dataToPoint([i,n]);m=new r.Rect({shape:{x:v[0]-a/2,y:v[1]-s/2,width:a,height:s},style:{fill:c.getItemVisual(g,"color"),opacity:c.getItemVisual(g,"opacity")}})}else{if(isNaN(n))return;g=o,m=new r.Rect({z2:1,shape:t.dataToRect([i,n]).contentShape,style:{fill:c.getItemVisual(g,"color"),opacity:c.getItemVisual(g,"opacity")}})}var y=c.getItemModel(g);c.hasItemOption&&(h=y.getModel("itemStyle.normal").getItemStyle(["color"]),d=y.getModel("itemStyle.emphasis").getItemStyle(),f=y.getModel("label.normal"),p=y.getModel("label.emphasis"));var x=e.getRawValue(g),_="-";x&&null!=x[2]&&(_=x[2]),f.getShallow("show")&&(r.setText(h,f),h.text=e.getFormattedLabel(g,"normal")||_),p.getShallow("show")&&(r.setText(d,p),d.text=e.getFormattedLabel(g,"emphasis")||_),m.setStyle(h),r.setHoverStyle(m,c.hasItemOption?d:l.extend({},d)),u.add(m),c.setItemGraphicEl(g,m)})},_renderOnGeo:function(t,e,i,a){var l=i.targetVisuals.inRange,u=i.targetVisuals.outOfRange,c=e.getData(),h=this._hmLayer||this._hmLayer||new s;h.blurSize=e.get("blurSize"),h.pointSize=e.get("pointSize"),h.minOpacity=e.get("minOpacity"),h.maxOpacity=e.get("maxOpacity");var d=t.getViewRect().clone(),f=t.getRoamTransform().transform;d.applyTransform(f);var p=Math.max(d.x,0),g=Math.max(d.y,0),m=Math.min(d.width+d.x,a.getWidth()),v=Math.min(d.height+d.y,a.getHeight()),y=m-p,x=v-g,_=c.mapArray(["lng","lat","value"],function(e,i,n){var o=t.dataToPoint([e,i]);return o[0]-=p,o[1]-=g,o.push(n),o}),b=i.getExtent(),w="visualMap.continuous"===i.type?o(b,i.option.range):n(b,i.getPieceList(),i.option.selected);h.update(_,y,x,l.color.getNormalizer(),{inRange:l.color.getColorMapper(),outOfRange:u.color.getColorMapper()},w);var S=new r.Image({style:{width:y,height:x,x:p,y:g,image:h.canvas},silent:!0});this.group.add(S)}})},function(t,e,i){function n(){var t=o.createCanvas();this.canvas=t,this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={}}var o=i(4);n.prototype={update:function(t,e,i,n,o,a){var r=this._getBrush(),s=this._getGradient(t,o,"inRange"),l=this._getGradient(t,o,"outOfRange"),u=this.pointSize+this.blurSize,c=this.canvas,h=c.getContext("2d"),d=t.length;c.width=e,c.height=i;for(var f=0;f0){var I=a(v)?s:l;v>0&&(v=v*S+w),x[_++]=I[M],x[_++]=I[M+1],x[_++]=I[M+2],x[_++]=I[M+3]*v*256}else _+=4}return h.putImageData(y,0,0),c},_getBrush:function(){var t=this._brushCanvas||(this._brushCanvas=o.createCanvas()),e=this.pointSize+this.blurSize,i=2*e;t.width=i,t.height=i;var n=t.getContext("2d");return n.clearRect(0,0,i,i),n.shadowOffsetX=i,n.shadowBlur=this.blurSize,n.shadowColor="#000",n.beginPath(),n.arc(-e,e,this.pointSize,0,2*Math.PI,!0),n.closePath(),n.fill(),t},_getGradient:function(t,e,i){for(var n=this._gradientPixels,o=n[i]||(n[i]=new Uint8ClampedArray(1024)),a=[],r=0,s=0;s<256;s++)e[i](s/255,!0,a),o[r++]=a[0],o[r++]=a[1],o[r++]=a[2],o[r++]=a[3];return o}},t.exports=n},function(t,e,i){var n=i(4);i(123),i(282),i(283);var o=i(144),a=i(1);a.registerLayout(n.curry(o,"pictorialBar")),a.registerVisual(n.curry(i(119),"pictorialBar","roundRect",null)),i(122)},function(t,e,i){var n=i(140).extend({type:"series.pictorialBar",dependencies:["grid"],defaultOption:{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,hoverAnimation:!1},getInitialData:function(t){return t.stack=null,n.superApply(this,"getInitialData",arguments)}});t.exports=n},function(t,e,i){function n(t,e,i,n){var l=t.getItemLayout(e),u=i.get("symbolRepeat"),c=i.get("symbolClip"),h=i.get("symbolPosition")||"start",d=(i.get("symbolRotate")||0)*Math.PI/180||0,f=i.get("symbolPatternSize")||2,p=i.isAnimationEnabled(),g={dataIndex:e,layout:l,itemModel:i,symbolType:t.getItemVisual(e,"symbol")||"circle",color:t.getItemVisual(e,"color"),symbolClip:c,symbolRepeat:u,symbolRepeatDirection:i.get("symbolRepeatDirection"),symbolPatternSize:f,rotation:d,animationModel:p?i:null,hoverAnimation:p&&i.get("hoverAnimation"),z2:i.getShallow("z",!0)||0};o(i,u,l,n,g),a(t,e,l,u,c,g.boundingLength,g.pxSign,f,n,g),r(i,g.symbolScale,d,n,g);var m=g.symbolSize,v=i.get("symbolOffset");return I.isArray(v)&&(v=[D(v[0],m[0]),D(v[1],m[1])]),s(i,m,l,u,c,v,h,g.valueLineWidth,g.boundingLength,g.repeatCutLength,n,g),g}function o(t,e,i,n,o){var a=n.valueDim,r=t.get("symbolBoundingData"),s=n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()),l=s.toGlobalCoord(s.dataToCoord(0)),u=o.boundingLength=null!=r?s.toGlobalCoord(s.dataToCoord(s.scale.parse(r)))-l:e?n.coordSysExtent[a.index][1-+(i[a.wh]<=0)]-l:i[a.wh];e&&(o.repeatCutLength=i[a.wh]),o.pxSign=u>0?1:u<0?-1:0}function a(t,e,i,n,o,a,r,s,l,u){var c=l.valueDim,h=l.categoryDim,d=Math.abs(i[h.wh]),f=t.getItemVisual(e,"symbolSize");I.isArray(f)?f=f.slice():(null==f&&(f="100%"),f=[f,f]),f[h.index]=D(f[h.index],d),f[c.index]=D(f[c.index],n?d:Math.abs(a)),u.symbolSize=f,(u.symbolScale=[f[0]/s,f[1]/s])[c.index]*=(l.isHorizontal?-1:1)*r}function r(t,e,i,n,o){var a=t.get(P)||0;a&&(O.attr({scale:e.slice(),rotation:i}),O.updateTransform(),a/=O.getLineScale(),a*=e[n.valueDim.index]),o.valueLineWidth=a}function s(t,e,i,n,o,a,r,s,l,u,c,h){var d=c.categoryDim,f=c.valueDim,p=h.pxSign,g=Math.max(e[f.index]+s,0),m=g;if(n){var v=Math.abs(l),y=I.retrieve(t.get("symbolMargin"),"15%")+"",x=!1;y.lastIndexOf("!")===y.length-1&&(x=!0,y=y.slice(0,y.length-1)),y=D(y,e[f.index]);var _=Math.max(g+2*y,0),b=x?0:2*y,w=C.isNumeric(n),S=w?n:M((v+b)/_);_=g+2*(y=(v-S*g)/2/(x?S:S-1)),b=x?0:2*y,w||"fixed"===n||(S=u?M((Math.abs(u)+b)/_):0),m=S*_-b,h.repeatTimes=S,h.symbolMargin=y}var T=p*(m/2),A=h.pathPosition=[];A[d.index]=i[d.wh]/2,A[f.index]="start"===r?T:"end"===r?l-T:l/2,a&&(A[0]+=a[0],A[1]+=a[1]);var L=h.bundlePosition=[];L[d.index]=i[d.xy],L[f.index]=i[f.xy];var P=h.barRectShape=I.extend({},i);P[f.wh]=p*Math.max(Math.abs(i[f.wh]),Math.abs(A[f.index]+T)),P[d.wh]=i[d.wh];var k=h.clipShape={};k[d.xy]=-i[d.xy],k[d.wh]=c.ecSize[d.wh],k[f.xy]=0,k[f.wh]=i[f.wh]}function l(t){var e=t.symbolPatternSize,i=A.createSymbol(t.symbolType,-e/2,-e/2,e,e,t.color);return i.attr({culling:!0}),"image"!==i.type&&i.setStyle({strokeNoScale:!0}),i}function u(t,e,i,n){function o(t){var e=u.slice(),n=i.pxSign,o=t;return("start"===i.symbolRepeatDirection?n>0:n<0)&&(o=h-1-t),e[c.index]=f*(o-h/2+.5)+u[c.index],{position:e,scale:i.symbolScale.slice(),rotation:i.rotation}}var a=t.__pictorialBundle,r=i.symbolSize,s=i.valueLineWidth,u=i.pathPosition,c=e.valueDim,h=i.repeatTimes||0,d=0,f=r[e.valueDim.index]+s+2*i.symbolMargin;for(b(t,function(t){t.__pictorialAnimationIndex=d,t.__pictorialRepeatTimes=h,d0)],c=t.__pictorialBarRect;L.setLabel(c.style,l,a,n,e.seriesModel,o,u),T.setHoverStyle(c,l)}function M(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var I=i(4),T=i(44),A=i(104),C=i(7),L=i(142),D=C.parsePercent,P=["itemStyle","normal","borderWidth"],k=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],O=new T.Circle,z=i(1).extendChartView({type:"pictorialBar",render:function(t,e,i){var o=this.group,a=t.getData(),r=this._data,s=t.coordinateSystem,l=!!s.getBaseAxis().isHorizontal(),u=s.grid.getRect(),c={ecSize:{width:i.getWidth(),height:i.getHeight()},seriesModel:t,coordSys:s,coordSysExtent:[[u.x,u.x+u.width],[u.y,u.y+u.height]],isHorizontal:l,valueDim:k[+l],categoryDim:k[1-l]};return a.diff(r).add(function(t){if(a.hasValue(t)){var e=f(a,t),i=n(a,t,e,c),r=v(a,c,i);a.setItemGraphicEl(t,r),o.add(r),S(r,c,i)}}).update(function(t,e){var i=r.getItemGraphicEl(e);if(a.hasValue(t)){var s=f(a,t),l=n(a,t,s,c),u=_(a,l);i&&u!==i.__pictorialShapeStr&&(o.remove(i),a.setItemGraphicEl(t,null),i=null),i?y(i,c,l):i=v(a,c,l,!0),a.setItemGraphicEl(t,i),i.__pictorialSymbolMeta=l,o.add(i),S(i,c,l)}else o.remove(i)}).remove(function(t){var e=r.getItemGraphicEl(t);e&&x(r,t,e.__pictorialSymbolMeta.animationModel,e)}).execute(),this._data=a,this.group},dispose:I.noop,remove:function(t,e){var i=this.group,n=this._data;t.get("animation")?n&&n.eachItemGraphicEl(function(e){x(n,e.dataIndex,t,e)}):i.removeAll()}});t.exports=z},function(t,e,i){var n=i(1),o=i(4);i(285),i(302),i(303),n.registerLayout(i(305)),n.registerVisual(i(306)),n.registerProcessor(o.curry(i(153),"themeRiver"))},function(t,e,i){i(286),i(289),i(291),i(292),i(301),i(1).extendComponentView({type:"single"})},function(t,e,i){var n=i(287);i(26).register("single",{create:function(t,e){var i=[];return t.eachComponent("singleAxis",function(o,a){var r=new n(o,t,e);r.name="single_"+a,r.resize(o,e),o.coordinateSystem=r,i.push(r)}),t.eachSeries(function(e){if("singleAxis"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"singleAxis",index:e.get("singleAxisIndex"),id:e.get("singleAxisId")})[0];e.coordinateSystem=i&&i.coordinateSystem}}),i},dimensions:n.prototype.dimensions})},function(t,e,i){function n(t,e,i){this.dimension="single",this.dimensions=["single"],this._axis=null,this._rect,this._init(t,e,i),this.model=t}var o=i(288),a=i(105),r=i(21);n.prototype={type:"singleAxis",axisPointerEnabled:!0,constructor:n,_init:function(t,e,i){var n=this.dimension,r=new o(n,a.createScaleByModel(t),[0,0],t.get("type"),t.get("position")),s="category"===r.type;r.onBand=s&&t.get("boundaryGap"),r.inverse=t.get("inverse"),r.orient=t.get("orient"),t.axis=r,r.model=t,r.coordinateSystem=this,this._axis=r},update:function(t,e){t.eachSeries(function(t){if(t.coordinateSystem===this){var e=t.getData(),i=this.dimension;this._axis.scale.unionExtentFromData(e,t.coordDimToDataDim(i)),a.niceScaleExtent(this._axis.scale,this._axis.model)}},this)},resize:function(t,e){this._rect=r.getLayoutRect({left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")},{width:e.getWidth(),height:e.getHeight()}),this._adjustAxis()},getRect:function(){return this._rect},_adjustAxis:function(){var t=this._rect,e=this._axis,i=e.isHorizontal(),n=i?[0,t.width]:[0,t.height],o=e.reverse?1:0;e.setExtent(n[o],n[1-o]),this._updateAxisTransform(e,i?t.x:t.y)},_updateAxisTransform:function(t,e){var i=t.getExtent(),n=i[0]+i[1],o=t.isHorizontal();t.toGlobalCoord=o?function(t){return t+e}:function(t){return n-t+e},t.toLocalCoord=o?function(t){return t-e}:function(t){return n-t+e}},getAxis:function(){return this._axis},getBaseAxis:function(){return this._axis},getAxes:function(){return[this._axis]},getTooltipAxes:function(){return{baseAxes:[this.getAxis()]}},containPoint:function(t){var e=this.getRect(),i=this.getAxis();return"horizontal"===i.orient?i.contain(i.toLocalCoord(t[0]))&&t[1]>=e.y&&t[1]<=e.y+e.height:i.contain(i.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},pointToData:function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},dataToPoint:function(t){var e=this.getAxis(),i=this.getRect(),n=[],o="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),n[o]=e.toGlobalCoord(e.dataToCoord(+t)),n[1-o]=0===o?i.y+i.height/2:i.x+i.width/2,n}},t.exports=n},function(t,e,i){var n=i(4),o=i(100),a=i(105),r=function(t,e,i,n,a){o.call(this,t,e,i),this.type=n||"value",this.position=a||"bottom",this.orient=null,this._labelInterval=null};r.prototype={constructor:r,model:null,isHorizontal:function(){var t=this.position;return"top"===t||"bottom"===t},getLabelInterval:function(){var t=this._labelInterval;if(!t){var e=this.model,i=e.getModel("axisLabel"),o=i.get("interval");if("category"!==this.type||"auto"!==o)return t=this._labelInterval="auto"===o?0:o;t=this._labelInterval=a.getAxisLabelInterval(n.map(this.scale.getTicks(),this.dataToCoord,this),e.getFormattedLabels(),i.getModel("textStyle").getFont(),this.isHorizontal())}return t},pointToData:function(t,e){return this.coordinateSystem.pointToData(t,e)[0]},toGlobalCoord:null,toLocalCoord:null},n.inherits(r,o),t.exports=r},function(t,e,i){var n=i(134),o=i(4),a=i(44),r=i(290),s=n.getInterval,l=n.ifIgnoreOnTick,u=["axisLine","axisLabel","axisTick","axisName"],c=i(135).extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,a){var s=this.group;s.removeAll();var l=r.layout(t),h=new n(t,l);o.each(u,h.add,h),s.add(h.getGroup()),t.get("splitLine.show")&&this._splitLine(t,l.labelInterval),c.superCall(this,"render",t,e,i,a)},_splitLine:function(t,e){var i=t.axis;if(!i.scale.isBlank()){var n=t.getModel("splitLine"),o=n.getModel("lineStyle"),r=o.get("width"),u=o.get("color"),c=s(n,e);u=u instanceof Array?u:[u];for(var h=t.coordinateSystem.getRect(),d=i.isHorizontal(),f=[],p=0,g=i.getTicksCoords(),m=[],v=[],y=0;y=0&&s<0)&&(r=p,s=f,o=u,a.length=0),y(c,function(t){a.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:a,snapToValue:o}}function a(t,e,i,n){t[e.key]={value:i,payloadBatch:n}}function r(t,e,i,n){var o=i.payloadBatch,a=e.axis,r=a.model,s=e.axisPointerModel;if(e.triggerTooltip&&o.length){var l=e.coordSys.model,u=m.makeKey(l),c=t.map[u];c||(c=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(c)),c.dataByAxis.push({axisDim:a.dim,axisIndex:r.componentIndex,axisType:r.type,axisId:r.id,value:n,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:o.slice()})}}function s(t,e,i){t.push.apply(t,i)}function l(t,e){y(e,function(e,i){var n=e.axisPointerModel.option,o=t[i];o?(!e.useHandle&&(n.status="show"),n.value=o.value,n.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(n.status="hide")})}function u(t,e,i,n){if(!f(e)&&t.list.length){var o=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i,dataIndexInside:o.dataIndexInside,dataIndex:o.dataIndex,seriesIndex:o.seriesIndex,dataByCoordSys:t.list})}else n({type:"hideTip"})}function c(t,e,i,n){var o=i.getZr();n="lastHighlights"+(n||"");var a=_(o)[n]||{},r=_(o)[n]={};p.each(t,function(t){var e=t.seriesIndex+" | "+t.dataIndex;r[e]=t});var s=[],l=[];p.each(a,function(t,e){!r[e]&&l.push(t)}),p.each(r,function(t,e){!a[e]&&s.push(t)}),l.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),s.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:s})}function h(t,e){var i=1;return y(t,function(t,e){i&=!/^.+(AxisId|AxisName|AxisIndex)$/.test(e)}),!i&&y([["AxisId","id"],["AxisIndex","componentIndex"],["AxisName","name"]],function(n){var o=g.normalizeToArray(t[e.dim+n[0]]);i|=p.indexOf(o,e.model[n[1]])>=0}),!i}function d(t){var e=t.axis.model,i={},n=i.axisDim=t.axis.dim;return i.axisIndex=i[n+"AxisIndex"]=e.componentIndex,i.axisName=i[n+"AxisName"]=e.name,i.axisId=i[n+"AxisId"]=e.id,i}function f(t){return null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}var p=i(4),g=i(5),m=i(136),v=i(294),y=p.each,x=p.curry,_=g.makeGetter();t.exports=function(t,e,i,o,p,g,m,_){var b=[];b=null!=i.x&&null!=i.y?[i.x,i.y]:v({seriesIndex:i.seriesIndex,dataIndex:i.dataIndex},p).point;var w=t.axesInfo,S="leave"===e||f(b),M={},I={},T={list:[],map:{}},A=[],C={showPointer:x(a,I),showTooltip:x(r,T),highlight:x(s,A)};return y(t.coordSysMap,function(e,o){var a=e.containPoint(b);y(t.coordSysAxesInfo[o],function(t,e){var o=t.axis;S||!a||h(i,o)||n(t,o.pointToData(b),C,!1,M)})}),y(w,function(t,e){var i=t.linkGroup;i&&!I[e]&&y(i.axesInfo,function(e,o){var a=I[o];if(e!==t&&a){var r=a.value;i.mapper&&(r=t.axis.scale.parse(i.mapper(r,d(e),d(t)))),n(t,r,C,!0,M)}})}),l(I,w),u(T,b,m,o),c(A,o,g,_),M}},function(t,e,i){var n=i(4),o=i(5);t.exports=function(t,e){var i,a=[],r=t.seriesIndex;if(null==r||!(i=e.getSeriesByIndex(r)))return{point:[]};var s=i.getData(),l=o.queryDataIndex(s,t);if(null==l||n.isArray(l))return{point:[]};var u=s.getItemGraphicEl(l),c=i.coordinateSystem;if(i.getTooltipPosition)a=i.getTooltipPosition(l)||[];else if(c&&c.dataToPoint)a=c.dataToPoint(s.getValues(n.map(c.dimensions,function(t){return i.coordDimToDataDim(t)[0]}),l,!0))||[];else if(u){var h=u.getBoundingRect().clone();h.applyTransform(u.transform),a=[h.x+h.width/2,h.y+h.height/2]}return{point:a,el:u}}},function(t,e,i){var n=i(1).extendComponentModel({type:"axisPointer",coordSysAxesInfo:null,defaultOption:{show:"auto",triggerOn:null,zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#aaa",width:1,type:"solid"},shadowStyle:{color:"rgba(150,150,150,0.3)"},label:{show:!0,formatter:null,precision:"auto",margin:3,textStyle:{color:"#fff"},padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,shadowBlur:3,shadowColor:"#aaa"},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}}});t.exports=n},function(t,e,i){var n=i(297),o=i(1).extendComponentView({type:"axisPointer",render:function(t,e,i){var o=e.getComponent("tooltip"),a=t.get("triggerOn")||o&&o.get("triggerOn")||"mousemove|click";n.register("axisPointer",i,function(t,e,i){"none"!==a&&("leave"===t||a.indexOf(t)>=0)&&i({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){n.disopse(e.getZr(),"axisPointer"),o.superApply(this._model,"remove",arguments)},dispose:function(t,e){n.unregister("axisPointer",e),o.superApply(this._model,"dispose",arguments)}})},function(t,e,i){function n(t,e){function i(i,n){t.on(i,function(i){var a=s(e);h(c(t).records,function(t){t&&n(t,i,a.dispatchAction)}),o(a.pendings,e)})}c(t).initialized||(c(t).initialized=!0,i("click",u.curry(r,"click")),i("mousemove",u.curry(r,"mousemove")),i("globalout",a))}function o(t,e){var i,n=t.showTip.length,o=t.hideTip.length;n?i=t.showTip[n-1]:o&&(i=t.hideTip[o-1]),i&&(i.dispatchAction=null,e.dispatchAction(i))}function a(t,e,i){t.handler("leave",null,i)}function r(t,e,i,n){e.handler(t,i,n)}function s(t){var e={showTip:[],hideTip:[]},i=function(n){var o=e[n.type];o?o.push(n):(n.dispatchAction=i,t.dispatchAction(n))};return{dispatchAction:i,pendings:e}}var l=i(2),u=i(4),c=i(5).makeGetter(),h=u.each,d={};d.register=function(t,e,i){if(!l.node){var o=e.getZr();c(o).records||(c(o).records={}),n(o,e),(c(o).records[t]||(c(o).records[t]={})).handler=i}},d.unregister=function(t,e){if(!l.node){var i=e.getZr();(c(i).records||{})[t]&&(c(i).records[t]=null)}},t.exports=d},function(t,e,i){"use strict";function n(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}function o(t){return"x"===t.dim?0:1}var a=i(44),r=i(299),s=i(300),l=i(137),u=i(135),c=r.extend({makeElOption:function(t,e,i,o,a){var r=i.axis,u=r.grid,c=o.get("type"),d=n(u,r).getOtherAxis(r).getGlobalExtent(),f=r.toGlobalCoord(r.dataToCoord(e,!0)),p=s.buildElStyle(o),g=h[c](r,f,d,p);g.style=p,t.graphicKey=g.type,t.pointer=g;var m=l.layout(u.model,i);s.buildCartesianSingleLabelElOption(e,t,m,i,o,a)},getHandleTransform:function(t,e,i){var n=l.layout(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:s.getTransformedPosition(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,o){var a=i.axis,r=a.grid,s=a.getGlobalExtent(!0),l=n(r,a).getOtherAxis(a).getGlobalExtent(),u="x"===a.dim?0:1,c=t.position;c[u]+=e[u],c[u]=Math.min(s[1],c[u]),c[u]=Math.max(s[0],c[u]);var h=(l[1]+l[0])/2,d=[h,h];d[u]=c[u];var f=[{verticalAlign:"middle"},{align:"center"}];return{position:c,rotation:t.rotation,cursorPoint:d,tooltipOption:f[u]}}}),h={line:function(t,e,i,n){var r=s.makeLineShape([e,i[0]],[e,i[1]],o(t));return a.subPixelOptimizeLine({shape:r,style:n}),{type:"Line",shape:r}},shadow:function(t,e,i,n){var a=t.getBandWidth(),r=i[1]-i[0];return{type:"Rect",shape:s.makeRectShape([e-a/2,i[0]],[a,r],o(t))}}};u.registerAxisPointerClass("CartesianAxisPointer",c),t.exports=c},function(t,e,i){"use strict";function n(){}function o(t,e,i,n){a(f(i).lastProp,n)||(f(i).lastProp=n,e?d.updateProps(i,n,t):(i.stopAnimation(),i.attr(n)))}function a(t,e){if(c.isObject(t)&&c.isObject(e)){var i=!0;return c.each(e,function(e,n){i&=a(t[n],e)}),!!i}return t===e}function r(t,e){t[e.get("label.show")?"show":"hide"]()}function s(t){return{position:t.position.slice(),rotation:t.rotation||0}}function l(t,e){var i=t.get("icon"),n={x:-1,y:-1,width:2,height:2},o=c.extend({style:{strokeNoScale:!0},rectHover:!0,cursor:"move",draggable:!0},e);return 0===i.indexOf("image://")?(n.image=i.slice(8),o.style=n,new d.Image(o)):d.makePath(i.replace("path://",""),o,n,"center")}function u(t,e,i){var n=e.get("z"),o=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=o&&(t.zlevel=o),t.silent=i)})}var c=i(4),h=i(13),d=i(44),f=i(5).makeGetter(),p=i(136),g=i(88),m=i(81),v=c.clone,y=c.bind;(n.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,i,n){var a=e.get("value"),r=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=i,n||this._lastValue!==a||this._lastStatus!==r){this._lastValue=a,this._lastStatus=r;var s=this._group,l=this._handle;if(!r||"hide"===r)return s&&s.hide(),void(l&&l.hide());s&&s.show(),l&&l.show();var h={};this.makeElOption(h,a,t,e,i);var f=h.graphicKey;f!==this._lastGraphicKey&&this.clear(i),this._lastGraphicKey=f;var p=this._moveAnimation=this.determineAnimation(t,e);if(s){var g=c.curry(o,e,p);this.updatePointerEl(s,h,g,e),this.updateLabelEl(s,h,g,e)}else s=this._group=new d.Group,this.createPointerEl(s,h,t,e),this.createLabelEl(s,h,t,e),i.getZr().add(s);u(s,e,!0),this._renderHandle(a)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var i=e.get("animation"),n=t.axis,o="category"===n.type,a=e.get("snap");if(!a&&!o)return!1;if("auto"===i||null==i){var r=this.animationThreshold;if(o&&n.getBandWidth()>r)return!0;if(a){var s=p.getAxisInfo(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>r}return!1}return!0===i},makeElOption:function(t,e,i,n,o){},createPointerEl:function(t,e,i,n){var o=e.pointer,a=f(t).pointerEl=new d[o.type](v(e.pointer));t.add(a)},createLabelEl:function(t,e,i,n){var o=f(t).labelEl=new d.Rect(v(e.label));t.add(o),r(o,n)},updatePointerEl:function(t,e,i){var n=f(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=f(t).labelEl;o&&(o.setStyle(e.label.style),i(o,{shape:e.label.shape,position:e.label.position}),r(o,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,i=this._api.getZr(),n=this._handle,o=e.getModel("handle"),a=e.get("status");if(!o.get("show")||!a||"hide"===a)return n&&i.remove(n),void(this._handle=null);var r;this._handle||(r=!0,n=this._handle=l(o,{onmousemove:function(t){g.stop(t.event)},onmousedown:y(this._onHandleDragMove,this,0,0),drift:y(this._onHandleDragMove,this),ondragend:y(this._onHandleDragEnd,this)}),i.add(n)),u(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(o.getItemStyle(null,s));var h=o.get("size");c.isArray(h)||(h=[h,h]),n.attr("scale",[h[0]/2,h[1]/2]),m.createOrUpdate(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,r)}},_moveHandleToValue:function(t,e){o(this._axisPointerModel,!e&&this._moveAnimation,this._handle,s(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(s(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(s(n)),f(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e={type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,highDownKey:"axisPointerHandle"};e[this._axisModel.axis.dim+"AxisId"]=this._axisModel.id,this._api.dispatchAction(e)}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}}).constructor=n,h.enableClassExtend(n),t.exports=n},function(t,e,i){"use strict";function n(t,e,i,n){var o=n.getWidth(),a=n.getHeight();t[0]=Math.min(t[0]+e,o)-e,t[1]=Math.min(t[1]+i,a)-i,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}var o=i(4),a=i(44),r=i(8),s=i(6),l=i(11),u=i(105),c=i(134),h={};h.buildElStyle=function(t){var e,i=t.get("type"),n=t.getModel(i+"Style");return"line"===i?(e=n.getLineStyle()).fill=null:"shadow"===i&&((e=n.getAreaStyle()).stroke=null),e},h.buildLabelElOption=function(t,e,i,o,a){var l=i.get("value"),u=h.getValueLabel(l,e.axis,e.ecModel,i.get("seriesDataIndices"),{precision:i.get("label.precision"),formatter:i.get("label.formatter")}),c=i.getModel("label"),d=c.getModel("textStyle"),f=s.normalizeCssArray(c.get("padding")||0),p=d.getFont(),g=r.getBoundingRect(u,p,a.textAlign,a.textBaseline),m=a.position,v=g.width+f[1]+f[3],y=g.height+f[0]+f[2],x=a.align;"right"===x&&(m[0]-=v),"center"===x&&(m[0]-=v/2);var _=a.verticalAlign;"bottom"===_&&(m[1]-=y),"middle"===_&&(m[1]-=y/2),n(m,v,y,o);var b=c.get("backgroundColor");b&&"auto"!==b||(b=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:v,height:y,r:c.get("borderRadius")},position:m.slice(),style:{text:u,textFont:p,textFill:d.getTextColor(),textPosition:"inside",fill:b,stroke:c.get("borderColor")||"transparent",lineWidth:c.get("borderWidth")||0,shadowBlur:c.get("shadowBlur"),shadowColor:c.get("shadowColor"),shadowOffsetX:c.get("shadowOffsetX"),shadowOffsetY:c.get("shadowOffsetY")}}},h.getValueLabel=function(t,e,i,n,a){var r=e.scale.getLabel(t,{precision:a.precision,pad:!0}),s=a.formatter;if(s){var l={value:u.getAxisRawValue(e,t),seriesData:[]};o.each(n,function(t){var e=i.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,o=e&&e.getDataParams(n);o&&l.seriesData.push(o)}),o.isString(s)?r=s.replace("{value}",r):o.isFunction(s)&&(r=s(l))}return r},h.getTransformedPosition=function(t,e,i){var n=l.create();return l.rotate(n,n,i.rotation),l.translate(n,n,i.position),a.applyTransform([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)},h.buildCartesianSingleLabelElOption=function(t,e,i,n,o,a){var r=c.innerTextLayout(i.rotation,0,i.labelDirection);i.labelMargin=o.get("label.margin"),h.buildLabelElOption(e,n,o,a,{position:h.getTransformedPosition(n.axis,t,i),align:r.textAlign,verticalAlign:r.textVerticalAlign})},h.makeLineShape=function(t,e,i){return i=i||0,{x1:t[i],y1:t[1-i],x2:e[i],y2:e[1-i]}},h.makeRectShape=function(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}},h.makeSectorShape=function(t,e,i,n,o,a){return{cx:t,cy:e,r0:i,r:n,startAngle:o,endAngle:a,clockwise:!0}},t.exports=h},function(t,e,i){"use strict";function n(t){return t.isHorizontal()?0:1}function o(t,e){var i=t.getRect();return[i[c[e]],i[c[e]]+i[h[e]]]}var a=i(44),r=i(299),s=i(300),l=i(290),u=i(135),c=["x","y"],h=["width","height"],d=r.extend({makeElOption:function(t,e,i,a,r){var u=i.axis,c=u.coordinateSystem,h=o(c,1-n(u)),d=c.dataToPoint(e)[0],p=s.buildElStyle(a),g=f[a.get("type")](u,d,h,p);g.style=p,t.graphicKey=g.type,t.pointer=g;var m=l.layout(i);s.buildCartesianSingleLabelElOption(e,t,m,i,a,r)},getHandleTransform:function(t,e,i){var n=l.layout(e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:s.getTransformedPosition(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,a){var r=i.axis,s=r.coordinateSystem,l=n(r),u=o(s,l),c=t.position;c[l]+=e[l],c[l]=Math.min(u[1],c[l]),c[l]=Math.max(u[0],c[l]);var h=o(s,1-l),d=(h[1]+h[0])/2,f=[d,d];return f[l]=c[l],{position:c,rotation:t.rotation,cursorPoint:f,tooltipOption:{verticalAlign:"middle"}}}}),f={line:function(t,e,i,o){var r=s.makeLineShape([e,i[0]],[e,i[1]],n(t));return a.subPixelOptimizeLine({shape:r,style:o}),{type:"Line",shape:r}},shadow:function(t,e,i,o){var a=t.getBandWidth(),r=i[1]-i[0];return{type:"Rect",shape:s.makeRectShape([e-a/2,i[0]],[a,r],n(t))}}};u.registerAxisPointerClass("SingleAxisPointer",d),t.exports=d},function(t,e,i){"use strict";var n=i(103),o=i(28),a=i(98),r=i(4),s=i(6).encodeHTML,l=i(249),u=o.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){u.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(t){for(var e=t.length,i=l().key(function(t){return t[2]}).entries(t),n=r.map(i,function(t){return{name:t.key,dataList:t.values}}),o=n.length,a=-1,s=-1,u=0;ua&&(a=c,s=u)}for(var h=0;h1)for(var i=1;ia&&(a=u),n.push(u)}for(var c=0;ca&&(a=d)}return r.y0=o,r.max=a,r}var a=i(4),r=i(7);t.exports=function(t,e){t.eachSeriesByType("themeRiver",function(t){var e=t.getData(),i=t.coordinateSystem,o={},a=i.getRect();o.rect=a;var s=t.get("boundaryGap"),l=i.getAxis();o.boundaryGap=s,"horizontal"===l.orient?(s[0]=r.parsePercent(s[0],a.height),s[1]=r.parsePercent(s[1],a.height),n(e,t,a.height-s[0]-s[1])):(s[0]=r.parsePercent(s[0],a.width),s[1]=r.parsePercent(s[1],a.width),n(e,t,a.width-s[0]-s[1])),e.setLayout("layoutInfo",o)})}},function(t,e){t.exports=function(t){t.eachSeriesByType("themeRiver",function(t){var e=t.getData(),i=t.getRawData(),n=t.get("color");e.each(function(o){var a=e.getName(o),r=n[(t.nameMap[a]-1)%n.length];i.setItemVisual(o,"color",r)})})}},function(t,e,i){function n(t,e,i,n){var o=i.type;h.assert(o,"graphic type MUST be set");var a=f[o.charAt(0).toUpperCase()+o.slice(1)];h.assert(a,"graphic type can not be found");var r=new a(i);e.add(r),n[t]=r,r.__ecGraphicId=t}function o(t,e){var i=t&&t.parent;i&&("group"===t.type&&t.traverse(function(t){o(t,e)}),delete e[t.__ecGraphicId],i.remove(t))}function a(t){return t=h.extend({},t),h.each(["id","parentId","$action","hv","bounding"].concat(p.LOCATION_PARAMS),function(e){delete t[e]}),t}function r(t,e){var i;return h.each(e,function(e){null!=t[e]&&"auto"!==t[e]&&(i=!0)}),i}function s(t,e){var i=t.exist;if(e.id=t.keyInfo.id,!e.type&&i&&(e.type=i.type),null==e.parentId){var n=e.parentOption;n?e.parentId=n.id:i&&(e.parentId=i.parentId)}e.parentOption=null}function l(t,e,i){var n=h.extend({},i),o=t[e],a=i.$action||"merge";if("merge"===a)if(o){var r=i.type;h.assert(!r||o.type===r,'Please set $action: "replace" to change `type`'),h.merge(o,n,!0),p.mergeLayoutParam(o,n,{ignoreSize:!0}),p.copyLayoutParams(i,o)}else t[e]=n;else"replace"===a?t[e]=n:"remove"===a&&o&&(t[e]=null)}function u(t,e){t&&(t.hv=e.hv=[r(e,["left","right"]),r(e,["top","bottom"])],"group"===t.type&&(null==t.width&&(t.width=e.width=0),null==t.height&&(t.height=e.height=0)))}var c=i(1),h=i(4),d=i(5),f=i(44),p=i(21);c.registerPreprocessor(function(t){var e=t.graphic;h.isArray(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])});var g=c.extendComponentModel({type:"graphic",defaultOption:{elements:[],parentId:null},_elOptionsToUpdate:null,mergeOption:function(t){var e=this.option.elements;this.option.elements=null,g.superApply(this,"mergeOption",arguments),this.option.elements=e},optionUpdated:function(t,e){var i=this.option,n=(e?i:t).elements,o=i.elements=e?[]:i.elements,a=[];this._flatten(n,a);var r=d.mappingToExists(o,a);d.makeIdAndName(r);var c=this._elOptionsToUpdate=[];h.each(r,function(t,e){var i=t.option;h.assert(h.isObject(i)||t.exist,"Empty graphic option definition"),i&&(c.push(i),s(t,i),l(o,e,i),u(o[e],i))},this);for(var f=o.length-1;f>=0;f--)null==o[f]?o.splice(f,1):delete o[f].$action},_flatten:function(t,e,i){h.each(t,function(t){if(t){i&&(t.parentOption=i),e.push(t);var n=t.children;"group"===t.type&&n&&this._flatten(n,e,t),delete t.children}},this)},useElOptionsToUpdate:function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t}});c.extendComponentView({type:"graphic",init:function(t,e){this._elMap={},this._lastGraphicModel},render:function(t,e,i){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t,i),this._relocate(t,i)},_updateElements:function(t,e){var i=t.useElOptionsToUpdate();if(i){var r=this._elMap,s=this.group;h.each(i,function(t){var e=t.$action,i=t.id,l=r[i],u=t.parentId,c=null!=u?r[u]:s;t.hv&&t.hv[1]&&"text"===t.type&&(t.style=h.defaults({textBaseline:"middle"},t.style),t.style.textVerticalAlign=null);var d=a(t);l&&h.assert(c===l.parent,"Changing parent is not supported."),e&&"merge"!==e?"replace"===e?(o(l,r),n(i,c,d,r)):"remove"===e&&o(l,r):l?l.attr(d):n(i,c,d,r),r[i]&&(r[i].__ecGraphicWidth=t.width,r[i].__ecGraphicHeight=t.height)})}},_relocate:function(t,e){for(var i=t.option.elements,n=this.group,o=this._elMap,a=i.length-1;a>=0;a--){var r=i[a],s=o[r.id];if(s){var l=s.parent,u=l===n?{width:e.getWidth(),height:e.getHeight()}:{width:l.__ecGraphicWidth||0,height:l.__ecGraphicHeight||0};p.positionElement(s,r,u,null,{hv:r.hv,boundingMode:r.bounding})}}},_clear:function(){var t=this._elMap;h.each(t,function(e){o(e,t)}),this._elMap={}},dispose:function(){this._clear()}})},function(t,e,i){i(122),i(298),i(292)},function(t,e,i){i(310),i(311),i(312),i(1).registerProcessor(i(314))},function(t,e,i){"use strict";var n=i(4),o=i(12),a=i(1).extendComponentModel({type:"legend",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(t,e,i){this.mergeDefaultAndTheme(t,i),t.selected=t.selected||{}},mergeOption:function(t){a.superCall(this,"mergeOption",t)},optionUpdated:function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,i=0;i=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:"top",align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}});t.exports=a},function(t,e,i){function n(t,e,i){var n,o={},r="toggleSelected"===t;return i.eachComponent("legend",function(i){r&&null!=n?i[n?"select":"unSelect"](e.name):(i[t](e.name),n=i.isSelected(e.name));var s=i.getData();a.each(s,function(t){var e=t.get("name");if("\n"!==e&&""!==e){var n=i.isSelected(e);o[e]=e in o?o[e]&&n:n}})}),{name:e.name,selected:o}}var o=i(1),a=i(4);o.registerAction("legendToggleSelect","legendselectchanged",a.curry(n,"toggleSelected")),o.registerAction("legendSelect","legendselected",a.curry(n,"select")),o.registerAction("legendUnSelect","legendunselected",a.curry(n,"unSelect"))},function(t,e,i){function n(t,e){e.dispatchAction({type:"legendToggleSelect",name:t})}function o(t,e,i){var n=i.getZr().storage.getDisplayList()[0];n&&n.useHoverLayer||t.get("legendHoverLink")&&i.dispatchAction({type:"highlight",seriesName:t.name,name:e})}function a(t,e,i){var n=i.getZr().storage.getDisplayList()[0];n&&n.useHoverLayer||t.get("legendHoverLink")&&i.dispatchAction({type:"downplay",seriesName:t.name,name:e})}var r=i(4),s=i(104),l=i(44),u=i(313),c=r.curry;t.exports=i(1).extendComponentView({type:"legend",init:function(){this._symbolTypeStore={}},render:function(t,e,i){var s=this.group;if(s.removeAll(),t.get("show")){var h=t.get("selectedMode"),d=t.get("align");"auto"===d&&(d="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left");var f={};r.each(t.getData(),function(r){var u=r.get("name");if(""!==u&&"\n"!==u){var p=e.getSeriesByName(u)[0];if(!f[u]){if(p){var g=p.getData(),m=g.getVisual("color");"function"==typeof m&&(m=m(p.getDataParams(0)));var v=g.getVisual("legendSymbol")||"roundRect",y=g.getVisual("symbol");this._createItem(u,r,t,v,y,d,m,h).on("click",c(n,u,i)).on("mouseover",c(o,p,null,i)).on("mouseout",c(a,p,null,i)),f[u]=!0}else e.eachRawSeries(function(e){if(!f[u]&&e.legendDataProvider){var s=e.legendDataProvider(),l=s.indexOfName(u);if(l<0)return;var p=s.getItemVisual(l,"color");this._createItem(u,r,t,"roundRect",null,d,p,h).on("click",c(n,u,i)).on("mouseover",c(o,e,u,i)).on("mouseout",c(a,e,u,i)),f[u]=!0}},this);f[u]||console.warn(u+" series not exists. Legend data should be same with series name or data name.")}}else s.add(new l.Group({newline:!0}))},this),u.layout(s,t,i),u.addBackground(s,t)}},_createItem:function(t,e,i,n,o,a,u,c){var h=i.get("itemWidth"),d=i.get("itemHeight"),f=i.get("inactiveColor"),p=i.isSelected(t),g=new l.Group,m=e.getModel("textStyle"),v=e.get("icon"),y=e.getModel("tooltip"),x=y.parentModel;if(n=v||n,g.add(s.createSymbol(n,0,0,h,d,p?u:f)),!v&&o&&(o!==n||"none"==o)){var _=.8*d;"none"===o&&(o="circle"),g.add(s.createSymbol(o,(h-_)/2,(d-_)/2,_,_,p?u:f))}var b="left"===a?h+5:-5,w=a,S=i.get("formatter"),M=t;"string"==typeof S&&S?M=S.replace("{name}",null!=t?t:""):"function"==typeof S&&(M=S(t));var I=new l.Text({style:{text:M,x:b,y:d/2,fill:p?m.getTextColor():f,textFont:m.getFont(),textAlign:w,textVerticalAlign:"middle"}});g.add(I);var T=new l.Rect({shape:g.getBoundingRect(),invisible:!0,tooltip:y.get("show")?r.extend({content:t,formatter:x.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]}},y.option):null});return g.add(T),g.eachChild(function(t){t.silent=!0}),T.silent=!c,this.group.add(g),l.setHoverStyle(g),g}})},function(t,e,i){function n(t,e,i){o.positionElement(t,e.getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()},e.get("padding"))}var o=i(21),a=i(6),r=i(44);t.exports={layout:function(t,e,i){var a=o.getLayoutRect(e.getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()},e.get("padding"));o.box(e.get("orient"),t,e.get("itemGap"),a.width,a.height),n(t,e,i)},addBackground:function(t,e){var i=a.normalizeCssArray(e.get("padding")),n=t.getBoundingRect(),o=e.getItemStyle(["color","opacity"]);o.fill=e.get("backgroundColor");var s=new r.Rect({shape:{x:n.x-i[3],y:n.y-i[0],width:n.width+i[1]+i[3],height:n.height+i[0]+i[2]},style:o,silent:!0,z2:-1});r.subPixelOptimizeRect(s),t.add(s)}}},function(t,e){t.exports=function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var i=0;in?t-=s+a:t+=a,e+l+r>o?e-=l+r:e+=r,[t,e]}function r(t,e,i,n,o){var a=i.clientWidth,r=i.clientHeight;return t=Math.min(t+a,n)-a,e=Math.min(e+r,o)-r,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function s(t,e,i){var n=i[0],o=i[1],a=0,r=0,s=e.width,l=e.height;switch(t){case"inside":a=e.x+s/2-n/2,r=e.y+l/2-o/2;break;case"top":a=e.x+s/2-n/2,r=e.y-o-5;break;case"bottom":a=e.x+s/2-n/2,r=e.y+l+5;break;case"left":a=e.x-n-5,r=e.y+l/2-o/2;break;case"right":a=e.x+s+5,r=e.y+l/2-o/2}return[a,r]}function l(t){return"center"===t||"middle"===t}var u=i(318),c=i(4),h=i(6),d=i(7),f=i(294),p=i(21),g=i(2),m=i(12),v=i(297),y=i(105),x=i(300),_=c.bind,b=c.each,w=d.parsePercent;i(1).extendComponentView({type:"tooltip",init:function(t,e){if(!g.node){var i=new u(e.getDom(),e);this._tooltipContent=i}},render:function(t,e,i){if(!g.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastDataByCoordSys,this._alwaysShowContent=t.get("alwaysShowContent");var n=this._tooltipContent;n.update(),n.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel.get("triggerOn");v.register("itemTooltip",this._api,_(function(e,i,n){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(i,n):"leave"===e&&this._hide(n))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,i=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var n=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){n.manuallyShowTip(t,e,i,{x:n._lastX,y:n._lastY})})}},manuallyShowTip:function(t,e,i,n){if(n.from!==this.uid&&!g.node){var a=o(n,i);this._ticket="";var r=n.seriesIndex;if(n.dataByCoordSys)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,event:{},dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},a);else if(null!=r){var s=f(n,e),l=s.point[0],u=s.point[1];null!=l&&null!=u&&this._tryShow({offsetX:l,offsetY:u,position:n.position,target:s.el,event:{}},a)}else null!=n.x&&null!=n.y&&this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:i.getZr().handler.findHover(n.x,n.y),event:{}},a)}},manuallyHideTip:function(t,e,i,n){var a=this._tooltipContent;this._alwaysShowContent||a.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,n.from!==this.uid&&this._hide(o(n,i))},_tryShow:function(t,e){var i=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var n=t.dataByCoordSys;n&&n.length?this._showAxisTooltip(n,t):i&&null!=i.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,i,e)):i&&i.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,i,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var i=t.get("showDelay");e=c.bind(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,o=this._tooltipModel,a=[e.offsetX,e.offsetY],r=[],s=[],l=n([e.tooltipOption,o]);b(t,function(t){b(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),n=t.value,o=[];if(e&&null!=n){var a=x.getValueLabel(n,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);c.each(t.seriesDataIndices,function(r){var l=i.getSeriesByIndex(r.seriesIndex),u=r.dataIndexInside,c=l&&l.getDataParams(u);c.axisDim=t.axisDim,c.axisIndex=t.axisIndex,c.axisType=t.axisType,c.axisId=t.axisId,c.axisValue=y.getAxisRawValue(e.axis,n),c.axisValueLabel=a,c&&(s.push(c),o.push(l.formatTooltip(u,!0)))});var l=a;r.push((l?h.encodeHTML(l)+"
":"")+o.join("
"))}})},this),r.reverse(),r=r.join("

");var u=e.position;this._showOrMove(l,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(l,u,a[0],a[1],this._tooltipContent,s):this._showTooltipContent(l,r,s,Math.random(),a[0],a[1],u)})},_showSeriesItemTooltip:function(t,e,i){var o=this._ecModel,a=e.seriesIndex,r=o.getSeriesByIndex(a),s=e.dataModel||r,l=e.dataIndex,u=e.dataType,c=s.getData(),h=n([c.getItemModel(l),s,r&&(r.coordinateSystem||{}).model,this._tooltipModel]),d=h.get("trigger");if(null==d||"item"===d){var f=s.getDataParams(l,u),p=s.formatTooltip(l,!1,u),g="item_"+s.name+"_"+l;this._showOrMove(h,function(){this._showTooltipContent(h,p,f,g,t.offsetX,t.offsetY,t.position,t.target)}),i({type:"showTip",dataIndexInside:l,dataIndex:c.getRawIndex(l),seriesIndex:a,from:this.uid})}},_showComponentItemTooltip:function(t,e,i){var n=e.tooltip;if("string"==typeof n){var o=n;n={content:o,formatter:o}}var a=new m(n,this._tooltipModel,this._ecModel),r=a.get("content"),s=Math.random();this._showOrMove(a,function(){this._showTooltipContent(a,r,a.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),i({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,i,n,o,a,r,s){if(this._ticket="",t.get("showContent")&&t.get("show")){var l=this._tooltipContent,u=t.get("formatter");r=r||t.get("position");var c=e;if(u&&"string"==typeof u)c=h.formatTpl(u,i,!0);else if("function"==typeof u){var d=_(function(e,n){e===this._ticket&&(l.setContent(n),this._updatePosition(t,r,o,a,l,i,s))},this);this._ticket=n,c=u(i,n,d)}l.setContent(c),l.show(t),this._updatePosition(t,r,o,a,l,i,s)}},_updatePosition:function(t,e,i,n,o,u,h){var d=this._api.getWidth(),f=this._api.getHeight();e=e||t.get("position");var g=o.getSize(),m=t.get("align"),v=t.get("verticalAlign"),y=h&&h.getBoundingRect().clone();if(h&&y.applyTransform(h.transform),"function"==typeof e&&(e=e([i,n],u,o.el,y,{viewSize:[d,f],contentSize:g.slice()})),c.isArray(e))i=w(e[0],d),n=w(e[1],f);else if(c.isObject(e)){e.width=g[0],e.height=g[1];var x=p.getLayoutRect(e,{width:d,height:f});i=x.x,n=x.y,m=null,v=null}else"string"==typeof e&&h?(i=(_=s(e,y,g))[0],n=_[1]):(i=(_=a(i,n,o.el,d,f,m?0:20,v?0:20))[0],n=_[1]);if(m&&(i-=l(m)?g[0]/2:"right"===m?g[0]:0),v&&(n-=l(v)?g[1]/2:"bottom"===v?g[1]:0),t.get("confine")){var _=r(i,n,o.el,d,f);i=_[0],n=_[1]}o.moveTo(i,n)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,i=!!e&&e.length===t.length;return b(e,function(e,n){var o=e.dataByAxis||{},a=(t[n]||{}).dataByAxis||[];i&=o.length===a.length,b(o,function(t,e){var n=a[e]||{},o=t.seriesDataIndices||[],r=n.seriesDataIndices||[];i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&o.length===r.length,b(o,function(t,e){var n=r[e];i&=t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})})}),this._lastDataByCoordSys=t,!!i},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){g.node||(this._tooltipContent.hide(),v.unregister("itemTooltip",e))}})},function(t,e,i){function n(t){var e="left "+t+"s cubic-bezier(0.23, 1, 0.32, 1),top "+t+"s cubic-bezier(0.23, 1, 0.32, 1)";return s.map(p,function(t){return t+"transition:"+e}).join(";")}function o(t){var e=[],i=t.get("fontSize"),n=t.getTextColor();return n&&e.push("color:"+n),e.push("font:"+t.getFont()),i&&e.push("line-height:"+Math.round(3*i/2)+"px"),h(["decoration","align"],function(i){var n=t.get(i);n&&e.push("text-"+i+":"+n)}),e.join(";")}function a(t){var e=[],i=t.get("transitionDuration"),a=t.get("backgroundColor"),r=t.getModel("textStyle"),s=t.get("padding");return i&&e.push(n(i)),a&&(f.canvasSupported?e.push("background-Color:"+a):(e.push("background-Color:#"+l.toHex(a)),e.push("filter:alpha(opacity=70)"))),h(["width","color","radius"],function(i){var n="border-"+i,o=d(n),a=t.get(o);null!=a&&e.push(n+":"+a+("color"===i?"":"px"))}),e.push(o(r)),null!=s&&e.push("padding:"+c.normalizeCssArray(s).join("px ")+"px"),e.join(";")+";"}function r(t,e){var i=document.createElement("div"),n=this._zr=e.getZr();this.el=i,this._x=e.getWidth()/2,this._y=e.getHeight()/2,t.appendChild(i),this._container=t,this._show=!1,this._hideTimeout;var o=this;i.onmouseenter=function(){o._enterable&&(clearTimeout(o._hideTimeout),o._show=!0),o._inContent=!0},i.onmousemove=function(e){if(e=e||window.event,!o._enterable){var i=n.handler;u.normalizeEvent(t,e,!0),i.dispatch("mousemove",e)}},i.onmouseleave=function(){o._enterable&&o._show&&o.hideLater(o._hideDelay),o._inContent=!1}}var s=i(4),l=i(39),u=i(88),c=i(6),h=s.each,d=c.toCamelCase,f=i(2),p=["","-webkit-","-moz-","-o-"];r.prototype={constructor:r,_enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),i=t.style;"absolute"!==i.position&&"absolute"!==e.position&&(i.position="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+a(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"none",this._show=!0},setContent:function(t){this.el.innerHTML=null==t?"":t},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el;return[t.clientWidth,t.clientHeight]},moveTo:function(t,e){var i,n=this._zr;n&&n.painter&&(i=n.painter.getViewportRoot())&&(t+=i.offsetLeft||0,e+=i.offsetTop||0);var o=this.el.style;o.left=t+"px",o.top=e+"px",this._x=t,this._y=e},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(s.bind(this.hide,this),t)):this.hide())},isShow:function(){return this._show}},t.exports=r},function(t,e,i){"use strict";i(320),i(326),i(328),i(292),i(330),i(1).extendComponentView({type:"polar"})},function(t,e,i){function n(t,e){var i=t.get("center"),n=t.get("radius"),o=e.getWidth(),a=e.getHeight(),r=s.parsePercent;this.cx=r(i[0],o),this.cy=r(i[1],a);var l=this.getRadiusAxis(),u=Math.min(o,a)/2;l.setExtent(0,r(n,u))}function o(t,e){var i=this,n=i.getAngleAxis(),o=i.getRadiusAxis();if(n.scale.setExtent(1/0,-1/0),o.scale.setExtent(1/0,-1/0),t.eachSeries(function(t){if(t.coordinateSystem===i){var e=t.getData();o.scale.unionExtentFromData(e,"radius"),n.scale.unionExtentFromData(e,"angle")}}),c(n.scale,n.model),c(o.scale,o.model),"category"===n.type&&!n.onBand){var a=n.getExtent(),r=360/n.scale.count();n.inverse?a[1]+=r:a[1]-=r,n.setExtent(a[0],a[1])}}function a(t,e){if(t.type=e.get("type"),t.scale=u.createScaleByModel(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,"angleAxis"===e.mainType){var i=e.get("startAngle");t.inverse=e.get("inverse")^e.get("clockwise"),t.setExtent(i,i+(t.inverse?-360:360))}e.axis=t,t.model=e}var r=i(321),s=i(7),l=i(4),u=i(105),c=u.niceScaleExtent;i(324);var h={dimensions:r.prototype.dimensions,create:function(t,e){var i=[];return t.eachComponent("polar",function(t,s){var l=new r(s);l.resize=n,l.update=o;var u=l.getRadiusAxis(),c=l.getAngleAxis(),h=t.findAxisModel("radiusAxis"),d=t.findAxisModel("angleAxis");a(u,h),a(c,d),l.resize(t,e),i.push(l),t.coordinateSystem=l,l.model=t}),t.eachSeries(function(e){if("polar"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"polar",index:e.get("polarIndex"),id:e.get("polarId")})[0];if(!i)throw new Error('Polar "'+l.retrieve(e.get("polarIndex"),e.get("polarId"),0)+'" not found');e.coordinateSystem=i.coordinateSystem}}),i}};i(26).register("polar",h)},function(t,e,i){"use strict";var n=i(322),o=i(323),a=function(t){this.name=t||"",this.cx=0,this.cy=0,this._radiusAxis=new n,this._angleAxis=new o,this._radiusAxis.polar=this._angleAxis.polar=this};a.prototype={type:"polar",axisPointerEnabled:!0,constructor:a,dimensions:["radius","angle"],model:null,containPoint:function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},containData:function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},getAxis:function(t){return this["_"+t+"Axis"]},getAxes:function(){return[this._radiusAxis,this._angleAxis]},getAxesByScale:function(t){var e=[],i=this._angleAxis,n=this._radiusAxis;return i.scale.type===t&&e.push(i),n.scale.type===t&&e.push(n),e},getAngleAxis:function(){return this._angleAxis},getRadiusAxis:function(){return this._radiusAxis},getOtherAxis:function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},getTooltipAxes:function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},dataToPoints:function(t){return t.mapArray(this.dimensions,function(t,e){return this.dataToPoint([t,e])},this)},dataToPoint:function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},pointToData:function(t,e){var i=this.pointToCoord(t);return[this._radiusAxis.radiusToData(i[0],e),this._angleAxis.angleToData(i[1],e)]},pointToCoord:function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=this.getAngleAxis(),o=n.getExtent(),a=Math.min(o[0],o[1]),r=Math.max(o[0],o[1]);n.inverse?a=r-360:r=a+360;var s=Math.sqrt(e*e+i*i);e/=s,i/=s;for(var l=Math.atan2(-i,e)/Math.PI*180,u=lr;)l+=360*u;return[s,l]},coordToPoint:function(t){var e=t[0],i=t[1]/180*Math.PI;return[Math.cos(i)*e+this.cx,-Math.sin(i)*e+this.cy]}},t.exports=a},function(t,e,i){"use strict";function n(t,e){a.call(this,"radius",t,e),this.type="category"}var o=i(4),a=i(100);n.prototype={constructor:n,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToRadius:a.prototype.dataToCoord,radiusToData:a.prototype.coordToData},o.inherits(n,a),t.exports=n},function(t,e,i){"use strict";function n(t,e){e=e||[0,360],a.call(this,"angle",t,e),this.type="category"}var o=i(4),a=i(100);n.prototype={constructor:n,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToAngle:a.prototype.dataToCoord,angleToData:a.prototype.coordToData},o.inherits(n,a),t.exports=n},function(t,e,i){"use strict";i(325),i(1).extendComponentModel({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e;return this.ecModel.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}})},function(t,e,i){"use strict";function n(t,e){return e.type||(e.data?"category":"value")}var o=i(4),a=i(19),r=i(130),s=a.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});o.merge(s.prototype,i(111));var l={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};r("angle",s,n,l.angle),r("radius",s,n,l.radius)},function(t,e,i){"use strict";i(320),i(327)},function(t,e,i){"use strict";function n(t,e,i,n){var o=t.coordToPoint([e,n]),a=t.coordToPoint([i,n]);return{x1:o[0],y1:o[1],x2:a[0],y2:a[1]}}var o=i(4),a=i(44),r=i(12),s=["axisLine","axisLabel","axisTick","splitLine","splitArea"];i(135).extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(t,e){if(this.group.removeAll(),t.get("show")){var i=t.axis,n=i.polar,a=n.getRadiusAxis().getExtent(),r=i.getTicksCoords();"category"!==i.type&&r.pop(),o.each(s,function(e){!t.get(e+".show")||i.scale.isBlank()&&"axisLine"!==e||this["_"+e](t,n,r,a)},this)}},_axisLine:function(t,e,i,n){var o=t.getModel("axisLine.lineStyle"),r=new a.Circle({shape:{cx:e.cx,cy:e.cy,r:n[1]},style:o.getLineStyle(),z2:1,silent:!0});r.style.fill=null,this.group.add(r)},_axisTick:function(t,e,i,r){var s=t.getModel("axisTick"),l=(s.get("inside")?-1:1)*s.get("length"),u=o.map(i,function(t){return new a.Line({shape:n(e,r[1],r[1]+l,t)})});this.group.add(a.mergePath(u,{style:o.defaults(s.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_axisLabel:function(t,e,i,n){for(var o=t.axis,s=t.get("data"),l=t.getModel("axisLabel"),u=l.getModel("textStyle"),c=t.getFormattedLabels(),h=l.get("margin"),d=o.getLabelsCoords(),f=0;fm?"left":"right",x=Math.abs(g[1]-v)/p<.3?"middle":g[1]>v?"top":"bottom",_=u;s&&s[f]&&s[f].textStyle&&(_=new r(s[f].textStyle,u)),this.group.add(new a.Text({style:{x:g[0],y:g[1],fill:_.getTextColor()||t.get("axisLine.lineStyle.color"),text:c[f],textAlign:y,textVerticalAlign:x,textFont:_.getFont()},silent:!0}))}},_splitLine:function(t,e,i,r){var s=t.getModel("splitLine").getModel("lineStyle"),l=s.get("color"),u=0;l=l instanceof Array?l:[l];for(var c=[],h=0;hx?"left":"right",f=Math.abs(h[1]-_)/y<.3?"middle":h[1]>_?"top":"bottom"}return{position:h,align:d,verticalAlign:f}}var o=i(6),a=i(299),r=i(44),s=i(300),l=i(11),u=i(134),c=i(135),h=a.extend({makeElOption:function(t,e,i,a,r){var l=i.axis;"angle"===l.dim&&(this.animationThreshold=Math.PI/18);var u,c=l.polar,h=c.getOtherAxis(l).getExtent();u=l["dataTo"+o.capitalFirst(l.dim)](e);var f=s.buildElStyle(a),p=d[a.get("type")](l,c,u,h,f);p.style=f,t.graphicKey=p.type,t.pointer=p;var g=n(e,i,a,c,a.get("label.margin"));s.buildLabelElOption(t,i,a,r,g)}}),d={line:function(t,e,i,n,o){return"angle"===t.dim?{type:"Line",shape:s.makeLineShape(e.coordToPoint([n[0],i]),e.coordToPoint([n[1],i]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:i}}},shadow:function(t,e,i,n,o){var a=t.getBandWidth(),r=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:s.makeSectorShape(e.cx,e.cy,n[0],n[1],(-i-a/2)*r,(a/2-i)*r)}:{type:"Sector",shape:s.makeSectorShape(e.cx,e.cy,i-a/2,i+a/2,0,2*Math.PI)}}};c.registerAxisPointerClass("PolarAxisPointer",h),t.exports=h},function(t,e,i){function n(t,e){e.update="updateView",o.registerAction(e,function(e,i){var n={};return i.eachComponent({mainType:"geo",query:e},function(i){i[t](e.name);var o=i.coordinateSystem;a.each(o.regions,function(t){n[t.name]=i.isSelected(t.name)||!1})}),{selected:n,name:e.name}})}i(332),i(170),i(333),i(183);var o=i(1),a=i(4);n("toggleSelected",{type:"geoToggleSelect",event:"geoselectchanged"}),n("select",{type:"geoSelect",event:"geoselected"}),n("unSelect",{type:"geoUnSelect",event:"geounselected"})},function(t,e,i){"use strict";var n=i(5),o=i(19),a=i(12),r=i(4),s=i(147),l=i(170),u=o.extend({type:"geo",coordinateSystem:null,layoutMode:"box",init:function(t){o.prototype.init.apply(this,arguments),n.defaultEmphasis(t.label,["position","show","textStyle","distance","formatter"])},optionUpdated:function(){var t=this.option,e=this;t.regions=l.getFilledRegions(t.regions,t.map),this._optionModelMap=r.reduce(t.regions||[],function(t,i){return i.name&&(t[i.name]=new a(i,e)),t},{}),this.updateSelectedMap(t.regions)},defaultOption:{zlevel:0,z:0,show:!0,left:"center",top:"center",aspectScale:.75,silent:!1,map:"",boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{normal:{show:!1,textStyle:{color:"#000"}},emphasis:{show:!0,textStyle:{color:"rgb(100,0,0)"}}},itemStyle:{normal:{borderWidth:.5,borderColor:"#444",color:"#eee"},emphasis:{color:"rgba(255,215,0,0.8)"}},regions:[]},getRegionModel:function(t){return this._optionModelMap[t]||new a(null,this,this.ecModel)},getFormattedLabel:function(t,e){var i=this.getRegionModel(t).get("label."+e+".formatter"),n={name:t};if("function"==typeof i)return n.status=e,i(n);if("string"==typeof i){var o=n.seriesName;return i.replace("{a}",null!=o?o:"")}},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t}});r.mixin(u,s),t.exports=u},function(t,e,i){"use strict";var n=i(180);t.exports=i(1).extendComponentView({type:"geo",init:function(t,e){var i=new n(e,!0);this._mapDraw=i,this.group.add(i.group)},render:function(t,e,i,n){if(!n||"geoToggleSelect"!==n.type||n.from!==this.uid){var o=this._mapDraw;t.get("show")?o.draw(t,e,i,this,n):this._mapDraw.group.removeAll(),this.group.silent=t.get("silent")}},dispose:function(){this._mapDraw&&this._mapDraw.remove()}})},function(t,e,i){i(1).registerPreprocessor(i(335)),i(336),i(340),i(341),i(342),i(343)},function(t,e,i){function n(t){var e={};o.each(t,function(t){e[t]=1}),t.length=0,o.each(e,function(e,i){t.push(i)})}var o=i(4),a=["rect","polygon","keep","clear"];t.exports=function(t,e){var i=t&&t.brush;if(o.isArray(i)||(i=i?[i]:[]),i.length){var r=[];o.each(i,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(r=r.concat(e))});var s=t&&t.toolbox;o.isArray(s)&&(s=s[0]),s||(s={feature:{}},t.toolbox=[s]);var l=s.feature||(s.feature={}),u=l.brush||(l.brush={}),c=u.type||(u.type=[]);c.push.apply(c,r),n(c),e&&!c.length&&c.push.apply(c,a)}}},function(t,e,i){function n(t,e,i,n,a){if(a){var r=t.getZr();r[x]||(r[y]||(r[y]=o),g.createOrUpdate(r,y,i,e)(t,n))}}function o(t,e){if(!t.isDisposed()){var i=t.getZr();i[x]=!0,t.dispatchAction({type:"brushSelect",batch:e}),i[x]=!1}}function a(t,e,i,n){for(var o=i.getItemLayout(n),a=0,r=e.length;ae[0][1]&&(e[0][1]=a[0]),a[1]e[1][1]&&(e[1][1]=a[1])}return e&&u(e)}}},function(t,e,i){function n(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}var o=i(4),a=i(199),r=o.each,s={createVisualMappings:function(t,e,i){function n(){var t=function(){};return t.prototype.__hidden=t.prototype,new t}var s={};return r(e,function(e){var l=s[e]=n();r(t[e],function(t,n){if(a.isValidType(n)){var r={type:n,visual:t};i&&i(r,e),l[n]=new a(r),"opacity"===n&&((r=o.clone(r)).type="colorAlpha",l.__hidden.__alphaForOpacity=new a(r))}})}),s},replaceVisualOption:function(t,e,i){var a;o.each(i,function(t){e.hasOwnProperty(t)&&n(e[t])&&(a=!0)}),a&&o.each(i,function(i){e.hasOwnProperty(i)&&n(e[i])?t[i]=o.clone(e[i]):delete t[i]})},applyVisual:function(t,e,i,n,r,s){function l(t){return i.getItemVisual(d,t)}function u(t,e){i.setItemVisual(d,t,e)}function c(t,o){d=null==s?t:o;var a=i.getRawDataItem(d);if(!a||!1!==a.visualMap)for(var c=n.call(r,t),f=e[c],p=h[c],g=0,m=p.length;g1)return!1;var d=l(i-t,o-t,n-e,a-e)/c;return!(d<0||d>1)}function s(t){return t<=1e-6&&t>=-1e-6}function l(t,e,i,n){return t*n-e*i}var u=i(174).contain,c=i(9),h={lineX:n(0),lineY:n(1),rect:{point:function(t,e,i){return i.boundingRect.contain(t[0],t[1])},rect:function(t,e,i){return i.boundingRect.intersect(t)}},polygon:{point:function(t,e,i){return i.boundingRect.contain(t[0],t[1])&&u(i.range,t[0],t[1])},rect:function(t,e,i){var n=i.range;if(n.length<=1)return!1;var o=t.x,r=t.y,s=t.width,l=t.height,h=n[0];return!!(u(n,o,r)||u(n,o+s,r)||u(n,o,r+l)||u(n,o+s,r+l)||c.create(t).contain(h[0],h[1])||a(o,r,o+s,r,n)||a(o,r,o,r+l,n)||a(o+s,r,o+s,r+l,n)||a(o,r+l,o+s,r+l,n))||void 0}}};t.exports=h},function(t,e,i){function n(t,e,i){var n=this._targetInfoList=[],o={},r=a(e,t);f(x,function(t,e){(!i||!i.include||p(i.include,e)>=0)&&t(r,n,o)})}function o(t){return t[0]>t[1]&&t.reverse(),t}function a(t,e){return d.parseFinder(t,e,{includeMainTypes:v})}function r(t,e,i,n){c.assert("cartesian2d"===i.type,"lineX/lineY brush is available only in cartesian2d.");var a=i.getAxis(["x","y"][t]),r=o(c.map([0,1],function(t){return e?a.coordToData(a.toLocalCoord(n[t])):a.toGlobalCoord(a.dataToCoord(n[t]))})),s=[];return s[t]=r,s[1-t]=[NaN,NaN],{values:r,xyMinMax:s}}function s(t,e,i,n){return[e[0]-n[t]*i[0],e[1]-n[t]*i[1]]}function l(t,e){var i=u(t),n=u(e),o=[i[0]/n[0],i[1]/n[1]];return isNaN(o[0])&&(o[0]=1),isNaN(o[1])&&(o[1]=1),o}function u(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var c=i(4),h=i(44),d=i(5),f=c.each,p=c.indexOf,g=c.curry,m=["dataToPoint","pointToData"],v=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],y=n.prototype;y.setOutputRanges=function(t,e){this.matchOutputRanges(t,e,function(t,e,i){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var n=w[t.brushType](0,i,e);t.__rangeOffset={offset:S[t.brushType](n.values,t.range,[1,1]),xyMinMax:n.xyMinMax}}})},y.matchOutputRanges=function(t,e,i){f(t,function(t){var n=this.findTargetInfo(t,e);n&&!0!==n&&c.each(n.coordSyses,function(n){var o=w[t.brushType](1,n,t.range);i(t,o.values,n,e)})},this)},y.setInputRanges=function(t,e){f(t,function(t){var i=this.findTargetInfo(t,e);if(c.assert(!i||!0===i||t.coordRange,"coordRange must be specified when coord index specified."),c.assert(!i||!0!==i||t.range,"range must be specified in global brush."),t.range=t.range||[],i&&!0!==i){t.panelId=i.panelId;var n=w[t.brushType](0,i.coordSys,t.coordRange),o=t.__rangeOffset;t.range=o?S[t.brushType](n.values,o.offset,l(n.xyMinMax,o.xyMinMax)):n.values}},this)},y.makePanelOpts=function(t){return c.map(this._targetInfoList,function(e){return{panelId:e.panelId,rect:e.getPanelRect(),defaultBrushType:t&&t(e)}})},y.controlSeries=function(t,e,i){var n=this.findTargetInfo(t,i);return!0===n||n&&p(n.coordSyses,e.coordinateSystem)>=0},y.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=a(e,t),o=0;o=0||p(n,t.getAxis("y").model)>=0)&&a.push(t)}),e.push({panelId:"grid--"+t.id,gridModel:t,coordSys:a[0],coordSyses:a,getPanelRect:b.grid,xAxisDeclared:r[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){f(t.geoModels,function(t){var i=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSys:i,coordSyses:[i],getPanelRect:b.geo})})}},_=[function(t,e){var i=t.xAxisModel,n=t.yAxisModel,o=t.gridModel;return!o&&i&&(o=i.axis.grid.model),!o&&n&&(o=n.axis.grid.model),o&&o===e.gridModel},function(t,e){var i=t.geoModel;return i&&i===e.geoModel}],b={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(h.getTransform(t)),e}},w={lineX:g(r,0),lineY:g(r,1),rect:function(t,e,i){var n=e[m[t]]([i[0][0],i[1][0]]),a=e[m[t]]([i[0][1],i[1][1]]),r=[o([n[0],a[0]]),o([n[1],a[1]])];return{values:r,xyMinMax:r}},polygon:function(t,e,i){var n=[[1/0,-1/0],[1/0,-1/0]];return{values:c.map(i,function(i){var o=e[m[t]](i);return n[0][0]=Math.min(n[0][0],o[0]),n[1][0]=Math.min(n[1][0],o[1]),n[0][1]=Math.max(n[0][1],o[0]),n[1][1]=Math.max(n[1][1],o[1]),o}),xyMinMax:n}}},S={lineX:g(s,0),lineY:g(s,1),rect:function(t,e,i){return[[t[0][0]-i[0]*e[0][0],t[0][1]-i[0]*e[0][1]],[t[1][0]-i[1]*e[1][0],t[1][1]-i[1]*e[1][1]]]},polygon:function(t,e,i){return c.map(t,function(t,n){return[t[0]-i[0]*e[n][0],t[1]-i[1]*e[n][1]]})}};t.exports=n},function(t,e,i){function n(t,e){return a.merge({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new s(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick},e,!0)}var o=i(1),a=i(4),r=i(337),s=i(12),l=["#ddd"],u=o.extendComponentModel({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)",width:null},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(t,e){var i=this.option;!e&&r.replaceVisualOption(i,t,["inBrush","outOfBrush"]),i.inBrush=i.inBrush||{},i.outOfBrush=i.outOfBrush||{color:l}},setAreas:function(t){a.assert(a.isArray(t)),a.each(t,function(t){a.assert(t.brushType,"Illegal areas")}),t&&(this.areas=a.map(t,function(t){return n(this.option,t)},this))},setBrushOption:function(t){this.brushOption=n(this.option,t),this.brushType=this.brushOption.brushType}});t.exports=u},function(t,e,i){function n(t,e,i,n){(!n||n.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts()).enableBrush(t.brushOption).updateCovers(t.areas.slice())}var o=i(4),a=i(240),r=i(1);t.exports=r.extendComponentView({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new a(e.getZr())).on("brush",o.bind(this._onBrush,this)).mount()},render:function(t){return this.model=t,n.apply(this,arguments)},updateView:n,updateLayout:n,updateVisual:n,dispose:function(){this._brushController.dispose()},_onBrush:function(t,e){var i=this.model.id;this.model.brushTargetManager.setOutputRanges(t,this.ecModel),(!e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:i,areas:o.clone(t),$from:i})}})},function(t,e,i){var n=i(1);n.registerAction({type:"brush",event:"brush",update:"updateView"},function(t,e){e.eachComponent({mainType:"brush",query:t},function(e){e.setAreas(t.areas)})}),n.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},function(){})},function(t,e,i){"use strict";function n(t,e,i){this.model=t,this.ecModel=e,this.api=i,this._brushType,this._brushMode}var o=i(344),a=i(4);n.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}};var r=n.prototype;r.render=r.updateView=r.updateLayout=function(t,e,i){var n,o,r;e.eachComponent({mainType:"brush"},function(t){n=t.brushType,o=t.brushOption.brushMode||"single",r|=t.areas.length}),this._brushType=n,this._brushMode=o,a.each(t.get("type",!0),function(e){t.setIconStatus(e,("keep"===e?"multiple"===o:"clear"===e?r:e===n)?"emphasis":"normal")})},r.getIcons=function(){var t=this.model,e=t.get("icon",!0),i={};return a.each(t.get("type",!0),function(t){e[t]&&(i[t]=e[t])}),i},r.onclick=function(t,e,i){var e=this.api,n=this._brushType,o=this._brushMode;"clear"===i?e.dispatchAction({type:"brush",areas:[]}):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===i?n:n!==i&&i,brushMode:"keep"===i?"multiple"===o?"single":"multiple":o}})},o.register("brush",n),t.exports=n},function(t,e){"use strict";var i={};t.exports={register:function(t,e){i[t]=e},get:function(t){return i[t]}}},function(t,e,i){"use strict";i(346),i(347),i(348)},function(t,e,i){"use strict";function n(t,e,i){this._model=t}function o(t,e,i,n){var o=i.calendarModel,a=i.seriesModel,r=o?o.coordinateSystem:a?a.coordinateSystem:null;return r===this?r[t](n):null}var a=i(21),r=i(7),s=i(4);n.prototype={constructor:n,type:"calendar",dimensions:["time","value"],getDimensionsInfo:function(){return[{name:"time",type:"time"}]},getHandledRangeInfo:function(){return this._rangeInfo},getModel:function(){return this._model},getRect:function(){return this._rect},getCellWidth:function(){return this._sw},getCellHeight:function(){return this._sh},getOrient:function(){return this._orient},getFirstDayOfWeek:function(){return this._firstDayOfWeek},getDateInfo:function(t){var e=(t=r.parseDate(t)).getFullYear(),i=t.getMonth()+1;i=i<10?"0"+i:i;var n=t.getDate();n=n<10?"0"+n:n;var o=t.getDay();return o=Math.abs((o+7-this.getFirstDayOfWeek())%7),{y:e,m:i,d:n,day:o,time:t.getTime(),formatedDate:e+"-"+i+"-"+n,date:t}},getNextNDay:function(t,e){if(0===(e=e||0))return this.getDateInfo(t);var i=this.getDateInfo(t).time;return this.getDateInfo(i+864e5*e)},update:function(t,e){function i(t,e){return null!=t[e]&&"auto"!==t[e]}this._firstDayOfWeek=this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle.normal").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,o=["width","height"],r=this._model.get("cellSize").slice(),l=this._model.getBoxLayoutParams(),u="horizontal"===this._orient?[n,7]:[7,n];s.each([0,1],function(t){i(r,t)&&(l[o[t]]=r[t]*u[t])});var c={width:e.getWidth(),height:e.getHeight()},h=this._rect=a.getLayoutRect(l,c);s.each([0,1],function(t){i(r,t)||(r[t]=h[o[t]]/u[t])}),this._sw=r[0],this._sh=r[1]},dataToPoint:function(t,e){var i=this.getDateInfo(t[0]),n=this._rangeInfo,o=i.formatedDate;if(!(e||i.time>=n.start.time&&i.time<=n.end.time))return[NaN,NaN];var a=i.day,r=this._getRangeInfo([n.start.time,o]).weeks;return"vertical"===this._orient?[this._rect.x+a*this._sw+this._sw/2,this._rect.y+(r-1)*this._sh+this._sh/2]:[this._rect.x+(r-1)*this._sw+this._sw/2,this._rect.y+a*this._sh+this._sh/2]},pointToData:function(t){var e=this.pointToDate(t);return e&&e.time},dataToRect:function(t,e){var i=this.dataToPoint(t,e);return{contentShape:{x:i[0]-(this._sw-this._lineWidth)/2,y:i[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:i,tl:[i[0]-this._sw/2,i[1]-this._sh/2],tr:[i[0]+this._sw/2,i[1]-this._sh/2],br:[i[0]+this._sw/2,i[1]+this._sh/2],bl:[i[0]-this._sw/2,i[1]+this._sh/2]}},pointToDate:function(t){var e=Math.floor((t[0]-this._rect.x)/this._sw)+1,i=Math.floor((t[1]-this._rect.y)/this._sh)+1,n=this._rangeInfo.range;return"vertical"===this._orient?this._getDateByWeeksAndDay(i,e-1,n):this._getDateByWeeksAndDay(e,i-1,n)},convertToPixel:s.curry(o,"dataToPoint"),convertFromPixel:s.curry(o,"pointToData"),_initRangeOption:function(){var t=this._model.get("range"),e=t;if(s.isArray(e)&&1===e.length&&(e=e[0]),/^\d{4}$/.test(e)&&(t=[e+"-01-01",e+"-12-31"]),/^\d{4}[\/|-]\d{1,2}$/.test(e)){var i=this.getDateInfo(e),n=i.date;n.setMonth(n.getMonth()+1);var o=this.getNextNDay(n,-1);t=[i.formatedDate,o.formatedDate]}/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(e)&&(t=[e,e]);var a=this._getRangeInfo(t);return a.start.time>a.end.time&&t.reverse(),t},_getRangeInfo:function(t){var e=this.getDateInfo(t[0]),i=this.getDateInfo(t[1]),n=Math.floor(i.time/864e5)-Math.floor(e.time/864e5)+1,o=Math.floor((n+e.day+6)/7);return{range:[e.formatedDate,i.formatedDate],start:e,end:i,allDay:n,weeks:o,fweek:e.day,lweek:i.day}},_getDateByWeeksAndDay:function(t,e,i){var n=this._getRangeInfo(i);if(t>n.weeks||0===t&&en.lweek)return!1;var o=7*(t-1)-n.fweek+e,a=n.start.time+864e5*o;return this.getDateInfo(a)}},n.dimensions=n.prototype.dimensions,n.getDimensionsInfo=n.prototype.getDimensionsInfo,n.create=function(t,e){var i=[];return t.eachComponent("calendar",function(o){var a=new n(o,t,e);i.push(a),o.coordinateSystem=a}),t.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])}),i},i(26).register("calendar",n),t.exports=n},function(t,e,i){"use strict";function n(t,e){var i=t.cellSize;a.isArray(i)?1===i.length&&(i[1]=i[0]):i=t.cellSize=[i,i];var n=a.map([0,1],function(t){return r.sizeCalculable(e,t)&&(i[t]="auto"),null!=i[t]&&"auto"!==i[t]});r.mergeLayoutParam(t,e,{type:"box",ignoreSize:n})}var o=i(19),a=i(4),r=i(21),s=o.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{normal:{color:"#fff",borderWidth:1,borderColor:"#ccc"}},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",textStyle:{color:"#000"}},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,textStyle:{color:"#000"}},yearLabel:{show:!0,position:null,margin:30,formatter:null,textStyle:{color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}}},init:function(t,e,i,o){var a=r.getLayoutParams(t);s.superApply(this,"init",arguments),n(t,a)},mergeOption:function(t,e){s.superApply(this,"mergeOption",arguments),n(this.option,t)}});t.exports=s},function(t,e,i){"use strict";var n=i(4),o=i(44),a=i(6),r=i(7),s={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},l={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};t.exports=i(1).extendComponentView({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(t,e,i){var n=this.group;n.removeAll();var o=t.coordinateSystem,a=o.getHandledRangeInfo(),r=o.getOrient();this._renderDayRect(t,a,n),this._renderLines(t,a,r,n),this._renderYearText(t,a,r,n),this._renderMonthText(t,r,n),this._renderWeekText(t,a,r,n)},_renderDayRect:function(t,e,i){for(var n=t.coordinateSystem,a=t.getModel("itemStyle.normal").getItemStyle(),r=n.getCellWidth(),s=n.getCellHeight(),l=e.start.time;l<=e.end.time;l=n.getNextNDay(l,1).time){var u=n.dataToRect([l],!0).tl,c=new o.Rect({shape:{x:u[0],y:u[1],width:r,height:s},style:a});i.add(c)}},_renderLines:function(t,e,i,n){function o(e){a._firstDayOfMonth.push(r.getDateInfo(e)),a._firstDayPoints.push(r.dataToRect([e],!0).tl);var o=a._getLinePointsOfOneWeek(t,e,i);a._tlpoints.push(o[0]),a._blpoints.push(o[o.length-1]),l&&a._drawSplitline(o,s,n)}var a=this,r=t.coordinateSystem,s=t.getModel("splitLine.lineStyle").getLineStyle(),l=t.get("splitLine.show"),u=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var c=e.start,h=0;c.time<=e.end.time;h++){o(c.formatedDate),0===h&&(c=r.getDateInfo(e.start.y+"-"+e.start.m));var d=c.date;d.setMonth(d.getMonth()+1),c=r.getDateInfo(d)}o(r.getNextNDay(e.end.time,1).formatedDate),l&&this._drawSplitline(a._getEdgesPoints(a._tlpoints,u,i),s,n),l&&this._drawSplitline(a._getEdgesPoints(a._blpoints,u,i),s,n)},_getEdgesPoints:function(t,e,i){var n=[t[0].slice(),t[t.length-1].slice()],o="horizontal"===i?0:1;return n[0][o]=n[0][o]-e/2,n[1][o]=n[1][o]+e/2,n},_drawSplitline:function(t,e,i){var n=new o.Polyline({z2:20,shape:{points:t},style:e});i.add(n)},_getLinePointsOfOneWeek:function(t,e,i){var n=t.coordinateSystem;e=n.getDateInfo(e);for(var o=[],a=0;a<7;a++){var r=n.getNextNDay(e.time,a),s=n.dataToRect([r.time],!0);o[2*r.day]=s.tl,o[2*r.day+1]=s["horizontal"===i?"bl":"tr"]}return o},_formatterLabel:function(t,e){return"string"==typeof t&&t?a.formatTplSimple(t,e):"function"==typeof t?t(e):e.nameMap},_yearTextPositionControl:function(t,e,i,n){t=t.slice();var o=["center","bottom"];"top"===i&&(t[1]-=n),"bottom"===i&&(t[1]+=n,o=["center","top"]),"left"===i&&(t[0]-=n),"right"===i&&(t[0]+=n,o=["center","top"]);var a=0;return"left"!==i&&"right"!==i||(a=Math.PI/2),{rotation:a,origin:t,style:{x:t[0],y:t[1],textAlign:o[0],textVerticalAlign:o[1]}}},_renderYearText:function(t,e,i,a){var r=t.getModel("yearLabel");if(r.get("show")){var s=t.getModel("yearLabel.textStyle"),l=r.get("margin"),u=r.get("position");u||(u="horizontal"!==i?"top":"left");var c=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],h=(c[0][0]+c[1][0])/2,d=(c[0][1]+c[1][1])/2,f="horizontal"===i?0:1,p={top:[h,c[f][1]],bottom:[h,c[1-f][1]],left:[c[1-f][0],d],right:[c[f][0],d]},g=e.start.y;+e.end.y>+e.start.y&&(g=g+"-"+e.end.y);var m=r.get("formatter"),v={start:e.start.y,end:e.end.y,nameMap:g},y=this._formatterLabel(m,v),x=new o.Text(n.merge({z2:30,style:{text:y,font:s.getFont(),fill:s.getTextColor()}},this._yearTextPositionControl(p[u],i,u,l)));a.add(x)}},_monthTextPositionControl:function(t,e,i,n,o){var a="left",r="top",s=t[0],l=t[1];return"horizontal"===i?(l+=o,e&&(a="center"),"start"===n&&(r="bottom")):(s+=o,e&&(r="middle"),"start"===n&&(a="right")),{x:s,y:l,textAlign:a,textVerticalAlign:r}},_renderMonthText:function(t,e,i){var a=t.getModel("monthLabel");if(a.get("show")){var r=t.getModel("monthLabel.textStyle"),l=a.get("nameMap"),u=a.get("margin"),c=a.get("position"),h=a.get("align"),d=[this._tlpoints,this._blpoints];n.isString(l)&&(l=s[l.toUpperCase()]||[]);var f="start"===c?0:1,p="horizontal"===e?0:1;u="start"===c?-u:u;for(var g="center"===h,m=0;m0?100:20}},getFirstTargetAxisModel:function(){var t;return d(function(e){if(null==t){var i=this.get(e.axisIndex);i.length&&(t=this.dependentModels[e.axis][i[0]])}},this),t},eachTargetAxis:function(t,e){var i=this.ecModel;d(function(n){h(this.get(n.axisIndex),function(o){t.call(e,n,o,this,i)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},getAxisModel:function(t,e){var i=this.getAxisProxy(t,e);return i&&i.getAxisModel()},setRawRange:function(t,e){h(["start","end","startValue","endValue"],function(e){this.option[e]=t[e]},this),!e&&o(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var i=this.findRepresentativeAxisProxy();return i?i.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(){var t=this._axisProxies;for(var e in t)if(t.hasOwnProperty(e)&&t[e].hostedBy(this))return t[e];for(var e in t)if(t.hasOwnProperty(e)&&!t[e].hostedBy(this))return t[e]},getRangePropMode:function(){return this._rangePropMode.slice()}});t.exports=f},function(t,e,i){var n=i(6),o=i(4),a={},r=["x","y","z","radius","angle","single"],s=["cartesian2d","polar","singleAxis"];a.isCoordSupported=function(t){return o.indexOf(s,t)>=0},a.createNameEach=function(t,e){t=t.slice();var i=o.map(t,n.capitalFirst);e=(e||[]).slice();var a=o.map(e,n.capitalFirst);return function(n,r){o.each(t,function(t,o){for(var s={name:t,capital:i[o]},l=0;l=0}function a(t,n){var a=!1;return e(function(e){o.each(i(t,e)||[],function(t){n.records[e.name][t]&&(a=!0)})}),a}function r(t,n){n.nodes.push(t),e(function(e){o.each(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){var o={nodes:[],records:{}};if(e(function(t){o.records[t.name]={}}),!i)return o;r(i,o);var s;do{s=!1,t(function(t){!n(t,o)&&a(t,o)&&(r(t,o),s=!0)})}while(s);return o}},t.exports=a},function(t,e,i){function n(t,e,i){var n=[1/0,-1/0];return u(i,function(t){var i=t.getData();i&&u(t.coordDimToDataDim(e),function(t){var e=i.getDataExtent(t);e[0]n[1]&&(n[1]=e[1])})}),n[1]0?0:NaN);var r=i.getMax(!0);return null!=r&&"dataMax"!==r?e[1]=r:o&&(e[1]=a>0?a-1:NaN),i.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function a(t,e){var i=t.getAxisModel(),n=t._percentWindow,o=t._valueWindow;if(n){var a=s.getPixelPrecision(o,[0,500]),r=e||0===n[0]&&100===n[1];i.setRange(r?null:+o[0].toFixed(a),r?null:+o[1].toFixed(a))}}var r=i(4),s=i(7),l=i(353),u=r.each,c=s.asc,h=function(t,e,i,n){this._dimName=t,this._axisIndex=e,this._valueWindow,this._percentWindow,this._dataExtent,this.ecModel=n,this._dataZoomModel=i};h.prototype={constructor:h,hostedBy:function(t){return this._dataZoomModel===t},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var t=[],e=this.ecModel;return e.eachSeries(function(i){if(l.isCoordSupported(i.get("coordinateSystem"))){var n=this._dimName,o=e.queryComponents({mainType:n+"Axis",index:i.get(n+"AxisIndex"),id:i.get(n+"AxisId")})[0];this._axisIndex===(o&&o.componentIndex)&&t.push(i)}},this),t},getAxisModel:function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var t,e,i=this._dimName,n=this.ecModel,o=this.getAxisModel();"x"===i||"y"===i?(e="gridIndex",t="x"===i?"y":"x"):(e="polarIndex",t="angle"===i?"radius":"angle");var a;return n.eachComponent(t+"Axis",function(t){(t.get(e)||0)===(o.get(e)||0)&&(a=t)}),a},calculateDataWindow:function(t){var e=this._dataExtent,i=this.getAxisModel().axis.scale,n=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[t.start,t.end],r=[];return u(["startValue","endValue"],function(e){r.push(null!=t[e]?i.parse(t[e]):null)}),u([0,1],function(t){var l=r[t],u=a[t];"percent"===n[t]?(null==u&&(u=o[t]),l=i.parse(s.linearMap(u,o,e,!0))):u=s.linearMap(l,e,o,!0),r[t]=l,a[t]=u}),{valueWindow:c(r),percentWindow:c(a)}},reset:function(t){if(t===this._dataZoomModel){this._dataExtent=n(this,this._dimName,this.getTargetSeriesModels());var e=this.calculateDataWindow(t.option);this._valueWindow=e.valueWindow,this._percentWindow=e.percentWindow,a(this)}},restore:function(t){t===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,a(this,!0))},filterData:function(t){function e(t){return t>=a[0]&&t<=a[1]}if(t===this._dataZoomModel){var i=this._dimName,n=this.getTargetSeriesModels(),o=t.get("filterMode"),a=this._valueWindow,r=this.getOtherAxisModel();t.get("$fromToolbox")&&r&&"category"===r.get("type")&&(o="empty"),u(n,function(t){var n=t.getData();n&&u(t.coordDimToDataDim(i),function(i){"empty"===o?t.setData(n.map(i,function(t){return e(t)?t:NaN})):n.filterSelf(i,e)})})}}},t.exports=h},function(t,e,i){var n=i(29);t.exports=n.extend({type:"dataZoom",render:function(t,e,i,n){this.dataZoomModel=t,this.ecModel=e,this.api=i},getTargetCoordInfo:function(){function t(t,e,i,n){for(var o,a=0;a0&&e%v)m+=g;else{var i=null==t||isNaN(t)||""===t,n=i?0:c(t,s,h,!0);i&&!u&&e?(f.push([f[f.length-1][0],0]),p.push([p[p.length-1][0],0])):!i&&u&&(f.push([m,0]),p.push([m,0])),f.push([m,n]),p.push([m,n]),m+=g,u=i}});var y=this.dataZoomModel;this._displayables.barGroup.add(new a.Polygon({shape:{points:f},style:o.defaults({fill:y.get("dataBackgroundColor")},y.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new a.Polyline({shape:{points:p},style:y.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var i,a=this.ecModel;return t.eachTargetAxis(function(r,s){var l=t.getAxisProxy(r.name,s).getTargetSeriesModels();o.each(l,function(t){if(!(i||!0!==e&&o.indexOf(x,t.get("type"))<0)){var l,u=a.getComponent(r.axis,s).axis,c=n(r.name),h=t.coordinateSystem;null!=c&&h.getOtherAxis&&(l=h.getOtherAxis(u).inverse),i={thisAxis:u,series:t,thisDim:r.name,otherDim:c,otherAxisInverse:l}}},this)},this),i}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],i=t.handleLabels=[],n=this._displayables.barGroup,o=this._size,r=this.dataZoomModel;n.add(t.filler=new l({draggable:!0,cursor:"move",drift:g(this._onDragMove,this,"all"),onmousemove:function(t){f.stop(t.event)},ondragstart:g(this._showDataInfo,this,!0),ondragend:g(this._onDragEnd,this),onmouseover:g(this._showDataInfo,this,!0),onmouseout:g(this._showDataInfo,this,!1),style:{fill:r.get("fillerColor"),textPosition:"inside"}})),n.add(new l(a.subPixelOptimizeRect({silent:!0,shape:{x:0,y:0,width:o[0],height:o[1]},style:{stroke:r.get("dataBackgroundColor")||r.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})));var s=r.get("handleIcon");m([0,1],function(t){var o=a.makePath(s,{style:{strokeNoScale:!0},rectHover:!0,cursor:"vertical"===this._orient?"ns-resize":"ew-resize",draggable:!0,drift:g(this._onDragMove,this,t),onmousemove:function(t){f.stop(t.event)},ondragend:g(this._onDragEnd,this),onmouseover:g(this._showDataInfo,this,!0),onmouseout:g(this._showDataInfo,this,!1)},{x:-.5,y:0,width:1,height:1},"center"),l=o.getBoundingRect();this._handleHeight=u.parsePercent(r.get("handleSize"),this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,o.setStyle(r.getModel("handleStyle").getItemStyle());var c=r.get("handleColor");null!=c&&(o.style.fill=c),n.add(e[t]=o);var h=r.textStyleModel;this.group.add(i[t]=new a.Text({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",fill:h.getTextColor(),textFont:h.getFont()},z2:10}))},this)},_resetInterval:function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[c(t[0],[0,100],e,!0),c(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var i=this._handleEnds,n=this._getViewExtent();d(e,i,n,"all"===t||this.dataZoomModel.get("zoomLock")?"rigid":"cross",t),this._range=p([c(i[0],n,[0,100],!0),c(i[1],n,[0,100],!0)])},_updateView:function(t){var e=this._displayables,i=this._handleEnds,n=p(i.slice()),o=this._size;m([0,1],function(t){var n=e.handles[t],a=this._handleHeight;n.attr({scale:[a,a],position:[i[t],o[1]/2-a/2]})},this),e.filler.setShape({x:n[0],y:0,width:n[1]-n[0],height:o[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=a.getTransform(n.handles[t].parent,this.group),i=a.transformDirection(0===t?"right":"left",e),l=this._handleWidth/2+y,u=a.applyTransform([d[t]+(0===t?-l:l),this._size[1]/2],e);o[t].setStyle({x:u[0],y:u[1],textVerticalAlign:r===v?"middle":i,textAlign:r===v?i:"center",text:s[t]})}var i=this.dataZoomModel,n=this._displayables,o=n.handleLabels,r=this._orient,s=["",""];if(i.get("showDetail")){var l=i.findRepresentativeAxisProxy();if(l){var u=l.getAxisModel().axis,c=this._range,h=t?l.calculateDataWindow({start:c[0],end:c[1]}).valueWindow:l.getDataValueWindow();s=[this._formatLabel(h[0],u),this._formatLabel(h[1],u)]}}var d=p(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var i=this.dataZoomModel,n=i.get("labelFormatter"),a=i.get("labelPrecision");null!=a&&"auto"!==a||(a=e.getPixelPrecision());var r=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(a,20));return o.isFunction(n)?n(t,r):o.isString(n)?n.replace("{value}",r):r},_showDataInfo:function(t){t=this._dragging||t;var e=this._displayables.handleLabels;e[0].attr("invisible",!t),e[1].attr("invisible",!t)},_onDragMove:function(t,e,i){this._dragging=!0;var n=this._applyBarTransform([e,i],!0);this._updateInterval(t,n[0]);var o=this.dataZoomModel.get("realtime");this._updateView(!o),o&&o&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),this._dispatchZoomAction()},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_applyBarTransform:function(t,e){var i=this._displayables.barGroup.getLocalTransform();return a.applyTransform(t,i,e)},_findCoordRect:function(){var t;if(m(this.getTargetCoordInfo(),function(e){if(!t&&e.length){var i=e[0].model.coordinateSystem;t=i.getRect&&i.getRect()}}),!t){var e=this.api.getWidth(),i=this.api.getHeight();t={x:.2*e,y:.2*i,width:.6*e,height:.6*i}}return t}});t.exports=_},function(t,e){t.exports=function(t,e,i,n,o){function a(t,e,i){var n=e.length?e.slice():[e,e];return e[0]>e[1]&&n.reverse(),t<0&&n[0]+t0&&n[1]+t>i[1]&&(t=i[1]-n[1]),t}return t?("rigid"===n?(t=a(t,e,i),e[0]+=t,e[1]+=t):(t=a(t,e[o],i),e[o]+=t,"push"===n&&e[0]>e[1]&&(e[1-o]=e[o])),e):e}},function(t,e,i){t.exports=i(352).extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1}})},function(t,e,i){function n(t){var e=[0,100];return!(t[0]<=e[1])&&(t[0]=e[1]),!(t[1]<=e[1])&&(t[1]=e[1]),!(t[0]>=e[0])&&(t[0]=e[0]),!(t[1]>=e[0])&&(t[1]=e[0]),t}var o=i(355),a=i(4),r=i(358),s=i(361),l=a.bind,u=o.extend({type:"dataZoom.inside",init:function(t,e){this._range},render:function(t,e,i,n){u.superApply(this,"render",arguments),s.shouldRecordRange(n,t.id)&&(this._range=t.getPercentRange()),a.each(this.getTargetCoordInfo(),function(e,n){var o=a.map(e,function(t){return s.generateCoordId(t.model)});a.each(e,function(e){var a=e.model;s.register(i,{coordId:s.generateCoordId(a),allCoordIds:o,containsPoint:function(t,e){return a.coordinateSystem.containPoint([t,e])},dataZoomId:t.id,throttleRate:t.get("throttle",!0),panGetRange:l(this._onPan,this,e,n),zoomGetRange:l(this._onZoom,this,e,n)})},this)},this)},dispose:function(){s.unregister(this.api,this.dataZoomModel.id),u.superApply(this,"dispose",arguments),this._range=null},_onPan:function(t,e,i,n,o,a,s,l,u){if(this.dataZoomModel.option.disabled)return this._range;var h=this._range.slice(),d=t.axisModels[0];if(d){var f=c[e]([a,s],[l,u],d,i,t),p=f.signal*(h[1]-h[0])*f.pixel/f.pixelLength;return r(p,h,[0,100],"rigid"),this._range=h}},_onZoom:function(t,e,i,o,a,r){var s=this.dataZoomModel.option;if(s.disabled||s.zoomLock)return this._range;var l=this._range.slice(),u=t.axisModels[0];if(u){var h=c[e](null,[a,r],u,i,t),d=(h.pixel-h.pixelStart)/h.pixelLength*(l[1]-l[0])+l[0];return o=Math.max(1/o,0),l[0]=(l[0]-d)*o+d,l[1]=(l[1]-d)*o+d,this._range=n(l)}}}),c={grid:function(t,e,i,n,o){var a=i.axis,r={},s=o.model.coordinateSystem.getRect();return t=t||[0,0],"x"===a.dim?(r.pixel=e[0]-t[0],r.pixelLength=s.width,r.pixelStart=s.x,r.signal=a.inverse?1:-1):(r.pixel=e[1]-t[1],r.pixelLength=s.height,r.pixelStart=s.y,r.signal=a.inverse?-1:1),r},polar:function(t,e,i,n,o){var a=i.axis,r={},s=o.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===i.mainType?(r.pixel=e[0]-t[0],r.pixelLength=l[1]-l[0],r.pixelStart=l[0],r.signal=a.inverse?1:-1):(r.pixel=e[1]-t[1],r.pixelLength=u[1]-u[0],r.pixelStart=u[0],r.signal=a.inverse?-1:1),r},singleAxis:function(t,e,i,n,o){var a=i.axis,r=o.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===a.orient?(s.pixel=e[0]-t[0],s.pixelLength=r.width,s.pixelStart=r.x,s.signal=a.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=r.height,s.pixelStart=r.y,s.signal=a.inverse?-1:1),s}};t.exports=u},function(t,e,i){function n(t){var e=t.getZr();return e[p]||(e[p]={})}function o(t,e,i){var n=new h(t.getZr());return n.enable(),n.on("pan",f(r,i)),n.on("zoom",f(s,i)),n}function a(t){c.each(t,function(e,i){e.count||(e.controller.dispose(),delete t[i])})}function r(t,e,i,n,o,a,r){l(t,function(s){return s.panGetRange(t.controller,e,i,n,o,a,r)})}function s(t,e,i,n){l(t,function(o){return o.zoomGetRange(t.controller,e,i,n)})}function l(t,e){var i=[];c.each(t.dataZoomInfos,function(t){var n=e(t);n&&i.push({dataZoomId:t.dataZoomId,start:n[0],end:n[1]})}),t.dispatchAction(i)}function u(t,e){t.dispatchAction({type:"dataZoom",batch:e})}var c=i(4),h=i(181),d=i(81),f=c.curry,p="\0_ec_dataZoom_roams",g={register:function(t,e){var i=n(t),r=e.dataZoomId,s=e.coordId;c.each(i,function(t,i){var n=t.dataZoomInfos;n[r]&&c.indexOf(e.allCoordIds,s)<0&&(delete n[r],t.count--)}),a(i);var l=i[s];l||((l=i[s]={coordId:s,dataZoomInfos:{},count:0}).controller=o(t,e,l),l.dispatchAction=c.curry(u,t)),l.controller.setContainsPoint(e.containsPoint),d.createOrUpdate(l,"dispatchAction",e.throttleRate,"fixRate"),!l.dataZoomInfos[r]&&l.count++,l.dataZoomInfos[r]=e},unregister:function(t,e){var i=n(t);c.each(i,function(t){t.controller.dispose();var i=t.dataZoomInfos;i[e]&&(delete i[e],t.count--)}),a(i)},shouldRecordRange:function(t,e){if(t&&"dataZoom"===t.type&&t.batch)for(var i=0,n=t.batch.length;i0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})},function(t,e,i){function n(t,e){t.eachTargetSeries(function(e){var i=e.getData();s.applyVisual(t.stateList,t.targetVisuals,i,t.getValueState,t,t.getDataDimension(i))})}function o(t){t.eachSeries(function(e){var i=e.getData(),n=[];t.eachComponent("visualMap",function(t){if(t.isTargetSeries(e)){var o=t.getVisualMeta(u.bind(a,null,e,t))||{stops:[],outerColors:[]};o.dimension=t.getDataDimension(i),n.push(o)}}),e.getData().setVisual("visualMeta",n)})}function a(t,e,i,n){for(var o=e.targetVisuals[n],a=l.prepareVisualTypes(o),r={color:t.getData().getVisual("color")},s=0,u=a.length;se[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){o.prototype.completeVisualOption.apply(this,arguments),a.each(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this.option.range=t.slice(),this._resetRange()},getSelected:function(){var t=this.getExtent(),e=r.asc((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],o=i.getData();o.each(this.getDataDimension(o),function(e,i){t[0]<=e&&e<=t[1]&&n.push(i)},!0,this),e.push({seriesId:i.id,dataIndex:n})},this),e},getVisualMeta:function(t){function e(e,i){a.push({value:e,color:t(e,i)})}for(var i=n(this,"outOfRange",this.getExtent()),o=n(this,"inRange",this.option.range.slice()),a=[],r=0,s=0,l=o.length,u=i.length;s"],o.isArray(t)&&(t=t.slice(),a=!0),r=e?t:a?[n(t[0]),n(t[1])]:n(t),o.isString(c)?c.replace("{value}",a?r[0]:r).replace("{value2}",a?r[1]:r):o.isFunction(c)?a?c(t[0],t[1]):c(t):a?t[0]===u[0]?i[0]+" "+r[1]:t[1]===u[1]?i[1]+" "+r[0]:r[0]+" - "+r[1]:r},resetExtent:function(){var t=this.option,e=g([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this.option.dimension;return null!=e?e:t.dimensions.length-1},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){function t(t){f(e.color)&&!t.inRange&&(t.inRange={color:e.color.slice().reverse()}),t.inRange=t.inRange||{color:y},p(this.stateList,function(e){var i=t[e];if(o.isString(i)){var n=r.get(i,"active",l);n?(t[e]={},t[e][i]=n):delete t[e]}},this)}var e=this.option,i={inRange:e.inRange,outOfRange:e.outOfRange},n=e.target||(e.target={}),a=e.controller||(e.controller={});o.merge(n,i),o.merge(a,i);var l=this.isCategory();t.call(this,n),t.call(this,a),function(t,e,i){var n=t[e],o=t[i];n&&!o&&(o=t[i]={},p(n,function(t,e){if(s.isValidType(e)){var i=r.get(e,"inactive",l);null!=i&&(o[e]=i,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}}))}.call(this,n,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,i=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,n=this.get("inactiveColor");p(this.stateList,function(a){var r=this.itemSize,s=t[a];s||(s=t[a]={color:l?n:[n]}),null==s.symbol&&(s.symbol=e&&o.clone(e)||(l?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=i&&o.clone(i)||(l?r[0]:[r[0],r[0]])),s.symbol=u(s.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var c=s.symbolSize;if(null!=c){var d=-1/0;h(c,function(t){t>d&&(d=t)}),s.symbolSize=u(c,function(t){return m(t,[0,d],[0,r[0]],!0)})}},this)}.call(this,a)},resetItemSize:function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},isCategory:function(){return!!this.option.categories},setSelected:v,getValueState:v,getVisualMeta:v});t.exports=x},function(t,e,i){var n=i(4),o={get:function(t,e,i){var o=n.clone((a[t]||{})[e]);return i&&n.isArray(o)?o[o.length-1]:o}},a={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}};t.exports=o},function(t,e,i){function n(t,e,i,n){return new u.Polygon({shape:{points:t},draggable:!!i,cursor:e,drift:i,onmousemove:function(t){m.stop(t.event)},ondragend:n})}function o(t,e){return 0===t?[[0,0],[e,0],[e,-e]]:[[0,0],[e,0],[e,e]]}function a(t,e,i,n){return t?[[0,-x(e,_(i,0))],[w,0],[0,x(e,_(n-i,0))]]:[[0,0],[5,-5],[5,5]]}function r(t,e,i){var n=b/2,o=t.get("hoverLinkDataSize");return o&&(n=v(o,e,i,!0)/2),n}function s(t){return!t.get("realtime")&&t.get("hoverLinkOnHandle")}var l=i(373),u=i(44),c=i(4),h=i(7),d=i(358),f=i(78),p=i(374),g=i(5),m=i(88),v=h.linearMap,y=c.each,x=Math.min,_=Math.max,b=12,w=6,S=l.extend({type:"visualMap.continuous",init:function(){S.superApply(this,"init",arguments),this._shapes={},this._dataInterval=[],this._handleEnds=[],this._orient,this._useHandle,this._hoverLinkDataIndices=[],this._dragging,this._hovering},doRender:function(t,e,i,n){n&&"selectDataRange"===n.type&&n.from===this.uid||this._buildView()},_buildView:function(){this.group.removeAll();var t=this.visualMapModel,e=this.group;this._orient=t.get("orient"),this._useHandle=t.get("calculable"),this._resetInterval(),this._renderBar(e);var i=t.get("text");this._renderEndsText(e,i,0),this._renderEndsText(e,i,1),this._updateView(!0),this.renderBackground(e),this._updateView(),this._enableHoverLinkToSeries(),this._enableHoverLinkFromSeries(),this.positionGroup(e)},_renderEndsText:function(t,e,i){if(e){var n=e[1-i];n=null!=n?n+"":"";var o=this.visualMapModel,a=o.get("textGap"),r=o.itemSize,s=this._shapes.barGroup,l=this._applyTransform([r[0]/2,0===i?-a:r[1]+a],s),c=this._applyTransform(0===i?"bottom":"top",s),h=this._orient,d=this.visualMapModel.textStyleModel;this.group.add(new u.Text({style:{x:l[0],y:l[1],textVerticalAlign:"horizontal"===h?"middle":c,textAlign:"horizontal"===h?c:"center",text:n,textFont:d.getFont(),fill:d.getTextColor()}}))}},_renderBar:function(t){var e=this.visualMapModel,i=this._shapes,o=e.itemSize,a=this._orient,r=this._useHandle,s=p.getItemAlign(e,this.api,o),l=i.barGroup=this._createBarGroup(s);l.add(i.outOfRange=n()),l.add(i.inRange=n(null,r?"move":null,c.bind(this._dragHandle,this,"all",!1),c.bind(this._dragHandle,this,"all",!0)));var u=e.textStyleModel.getTextRect("国"),h=_(u.width,u.height);r&&(i.handleThumbs=[],i.handleLabels=[],i.handleLabelPoints=[],this._createHandle(l,0,o,h,a,s),this._createHandle(l,1,o,h,a,s)),this._createIndicator(l,o,h,a),t.add(l)},_createHandle:function(t,e,i,a,r){var s=c.bind(this._dragHandle,this,e,!1),l=c.bind(this._dragHandle,this,e,!0),h=n(o(e,a),"move",s,l);h.position[0]=i[0],t.add(h);var d=this.visualMapModel.textStyleModel,f=new u.Text({draggable:!0,drift:s,onmousemove:function(t){m.stop(t.event)},ondragend:l,style:{x:0,y:0,text:"",textFont:d.getFont(),fill:d.getTextColor()}});this.group.add(f);var p=["horizontal"===r?a/2:1.5*a,"horizontal"===r?0===e?-1.5*a:1.5*a:0===e?-a/2:a/2],g=this._shapes;g.handleThumbs[e]=h,g.handleLabelPoints[e]=p,g.handleLabels[e]=f},_createIndicator:function(t,e,i,o){var a=n([[0,0]],"move");a.position[0]=e[0],a.attr({invisible:!0,silent:!0}),t.add(a);var r=this.visualMapModel.textStyleModel,s=new u.Text({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textFont:r.getFont(),fill:r.getTextColor()}});this.group.add(s);var l=["horizontal"===o?i/2:w+3,0],c=this._shapes;c.indicator=a,c.indicatorLabel=s,c.indicatorLabelPoint=l},_dragHandle:function(t,e,i,n){if(this._useHandle){if(this._dragging=!e,!e){var o=this._applyTransform([i,n],this._shapes.barGroup,!0);this._updateInterval(t,o[1]),this._updateView()}e===!this.visualMapModel.get("realtime")&&this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:this._dataInterval.slice()}),e?!this._hovering&&this._clearHoverLinkToSeries():s(this.visualMapModel)&&this._doHoverLinkToSeries(this._handleEnds[t],!1)}},_resetInterval:function(){var t=this.visualMapModel,e=this._dataInterval=t.getSelected(),i=t.getExtent(),n=[0,t.itemSize[1]];this._handleEnds=[v(e[0],i,n,!0),v(e[1],i,n,!0)]},_updateInterval:function(t,e){e=e||0;var i=this.visualMapModel,n=this._handleEnds;d(e,n,[0,i.itemSize[1]],"all"===t?"rigid":"push",t);var o=i.getExtent(),a=[0,i.itemSize[1]];this._dataInterval=[v(n[0],a,o,!0),v(n[1],a,o,!0)]},_updateView:function(t){var e=this.visualMapModel,i=e.getExtent(),n=this._shapes,o=[0,e.itemSize[1]],a=t?o:this._handleEnds,r=this._createBarVisual(this._dataInterval,i,a,"inRange"),s=this._createBarVisual(i,i,o,"outOfRange");n.inRange.setStyle({fill:r.barColor,opacity:r.opacity}).setShape("points",r.barPoints),n.outOfRange.setStyle({fill:s.barColor,opacity:s.opacity}).setShape("points",s.barPoints),this._updateHandle(a,r)},_createBarVisual:function(t,e,i,n){var o={forceState:n,convertOpacityToAlpha:!0},a=this._makeColorGradient(t,o),r=[this.getControllerVisual(t[0],"symbolSize",o),this.getControllerVisual(t[1],"symbolSize",o)],s=this._createBarPoints(i,r);return{barColor:new f(0,0,0,1,a),barPoints:s,handlesColor:[a[0].color,a[a.length-1].color]}},_makeColorGradient:function(t,e){var i=[],n=(t[1]-t[0])/100;i.push({color:this.getControllerVisual(t[0],"color",e),offset:0});for(var o=1;o<100;o++){var a=t[0]+n*o;if(a>t[1])break;i.push({color:this.getControllerVisual(a,"color",e),offset:o/100})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new u.Group("horizontal"!==e||i?"horizontal"===e&&i?{scale:"bottom"===t?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:"bottom"===t?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(t,e){if(this._useHandle){var i=this._shapes,n=this.visualMapModel,o=i.handleThumbs,a=i.handleLabels;y([0,1],function(r){var s=o[r];s.setStyle("fill",e.handlesColor[r]),s.position[1]=t[r];var l=u.applyTransform(i.handleLabelPoints[r],u.getTransform(s,this.group));a[r].setStyle({x:l[0],y:l[1],text:n.formatValueText(this._dataInterval[r]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===r?"bottom":"top":"left",i.barGroup)})},this)}},_showIndicator:function(t,e,i,n){var o=this.visualMapModel,r=o.getExtent(),s=o.itemSize,l=[0,s[1]],c=v(t,r,l,!0),h=this._shapes,d=h.indicator;if(d){d.position[1]=c,d.attr("invisible",!1),d.setShape("points",a(!!i,n,c,s[1]));var f={convertOpacityToAlpha:!0},p=this.getControllerVisual(t,"color",f);d.setStyle("fill",p);var g=u.applyTransform(h.indicatorLabelPoint,u.getTransform(d,this.group)),m=h.indicatorLabel;m.attr("invisible",!1);var y=this._applyTransform("left",h.barGroup),x=this._orient;m.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===x?y:"middle",textAlign:"horizontal"===x?"center":y,x:g[0],y:g[1]})}},_enableHoverLinkToSeries:function(){var t=this;this._shapes.barGroup.on("mousemove",function(e){if(t._hovering=!0,!t._dragging){var i=t.visualMapModel.itemSize,n=t._applyTransform([e.offsetX,e.offsetY],t._shapes.barGroup,!0,!0);n[1]=x(_(0,n[1]),i[1]),t._doHoverLinkToSeries(n[1],0<=n[0]&&n[0]<=i[0])}}).on("mouseout",function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i.option.hoverLink){var o=[0,n[1]],a=i.getExtent();t=x(_(o[0],t),o[1]);var l=r(i,a,o),u=[t-l,t+l],c=v(t,o,a,!0),h=[v(u[0],o,a,!0),v(u[1],o,a,!0)];u[0]o[1]&&(h[1]=1/0),e&&(h[0]===-1/0?this._showIndicator(c,h[1],"< ",l):h[1]===1/0?this._showIndicator(c,h[0],"> ",l):this._showIndicator(c,c,"≈ ",l));var d=this._hoverLinkDataIndices,f=[];(e||s(i))&&(f=this._hoverLinkDataIndices=i.findTargetDataIndices(h));var m=g.compressBatches(d,f);this._dispatchHighDown("downplay",p.convertDataIndex(m[0])),this._dispatchHighDown("highlight",p.convertDataIndex(m[1]))}},_hoverLinkFromSeriesMouseOver:function(t){var e=t.target,i=this.visualMapModel;if(e&&null!=e.dataIndex){var n=this.ecModel.getSeriesByIndex(e.seriesIndex);if(i.isTargetSeries(n)){var o=n.getData(e.dataType),a=o.getDimension(i.getDataDimension(o)),r=o.get(a,e.dataIndex,!0);isNaN(r)||this._showIndicator(r,r)}}},_hideIndicator:function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0)},_clearHoverLinkToSeries:function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",p.convertDataIndex(t)),t.length=0},_clearHoverLinkFromSeries:function(){this._hideIndicator();var t=this.api.getZr();t.off("mouseover",this._hoverLinkFromSeriesMouseOver),t.off("mouseout",this._hideIndicator)},_applyTransform:function(t,e,i,n){var o=u.getTransform(e,n?null:this.group);return u[c.isArray(t)?"applyTransform":"transformDirection"](t,o,i)},_dispatchHighDown:function(t,e){e&&e.length&&this.api.dispatchAction({type:t,batch:e})},dispose:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},remove:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()}});t.exports=S},function(t,e,i){var n=i(4),o=i(44),a=i(6),r=i(21),s=i(1),l=i(199);t.exports=s.extendComponentView({type:"visualMap",autoPositionValues:{left:1,right:1,top:1,bottom:1},init:function(t,e){this.ecModel=t,this.api=e,this.visualMapModel},render:function(t,e,i,n){this.visualMapModel=t,!1!==t.get("show")?this.doRender.apply(this,arguments):this.group.removeAll()},renderBackground:function(t){var e=this.visualMapModel,i=a.normalizeCssArray(e.get("padding")||0),n=t.getBoundingRect();t.add(new o.Rect({z2:-1,silent:!0,shape:{x:n.x-i[3],y:n.y-i[0],width:n.width+i[3]+i[1],height:n.height+i[0]+i[2]},style:{fill:e.get("backgroundColor"),stroke:e.get("borderColor"),lineWidth:e.get("borderWidth")}}))},getControllerVisual:function(t,e,i){function o(t){return u[t]}function a(t,e){u[t]=e}var r=(i=i||{}).forceState,s=this.visualMapModel,u={};if("symbol"===e&&(u.symbol=s.get("itemSymbol")),"color"===e){var c=s.get("contentColor");u.color=c}var h=s.controllerVisuals[r||s.getValueState(t)],d=l.prepareVisualTypes(h);return n.each(d,function(n){var r=h[n];i.convertOpacityToAlpha&&"opacity"===n&&(n="colorAlpha",r=h.__alphaForOpacity),l.dependsOn(n,e)&&r&&r.applyVisual(t,o,a)}),u[e]},positionGroup:function(t){var e=this.visualMapModel,i=this.api;r.positionElement(t,e.getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()})},doRender:n.noop})},function(t,e,i){var n=i(4),o=i(21),a={getItemAlign:function(t,e,i){var n=t.option,a=n.align;if(null!=a&&"auto"!==a)return a;for(var r={width:e.getWidth(),height:e.getHeight()},s="horizontal"===n.orient?1:0,l=[["left","right","width"],["top","bottom","height"]],u=l[s],c=[0,null,10],h={},d=0;d<3;d++)h[l[1-s][d]]=c[d],h[u[d]]=2===d?i[0]:n[u[d]];var f=[["x","width",3],["y","height",0]][s],p=o.getLayoutRect(h,r,n.padding);return u[(p.margin[f[2]]||0)+p[f[0]]+.5*p[f[1]]<.5*r[f[1]]?0:1]},convertDataIndex:function(t){return n.each(t||[],function(e){null!=t.dataIndex&&(t.dataIndexInside=t.dataIndex,t.dataIndex=null)}),t}};t.exports=a},function(t,e,i){var n={type:"selectDataRange",event:"dataRangeSelected",update:"update"};i(1).registerAction(n,function(t,e){e.eachComponent({mainType:"visualMap",query:t},function(e){e.setSelected(t.selected)})})},function(t,e,i){i(1).registerPreprocessor(i(366)),i(367),i(368),i(377),i(378),i(375)},function(t,e,i){function n(t,e){var i=t.inverse;("vertical"===t.orient?!i:i)&&e.reverse()}var o=i(370),a=i(4),r=i(199),s=i(371),l=i(7).reformIntervals,u=o.extend({type:"visualMap.piecewise",defaultOption:{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieceList:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0,showLabel:null},optionUpdated:function(t,e){u.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetTargetSeries(),this.resetExtent();var i=this._mode=this._determineMode();c[this._mode].call(this),this._resetSelected(t,e);var n=this.option.categories;this.resetVisual(function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=a.clone(n)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=a.map(this._pieceList,function(t){var t=a.clone(t);return"inRange"!==e&&(t.visual=null),t}))})},completeVisualOption:function(){function t(t,e,i){return t&&t[e]&&(a.isObject(t[e])?t[e].hasOwnProperty(i):t[e]===i)}var e=this.option,i={},n=r.listVisualTypes(),l=this.isCategory();a.each(e.pieces,function(t){a.each(n,function(e){t.hasOwnProperty(e)&&(i[e]=1)})}),a.each(i,function(i,n){var o=0;a.each(this.stateList,function(i){o|=t(e,i,n)||t(e.target,i,n)},this),!o&&a.each(this.stateList,function(t){(e[t]||(e[t]={}))[n]=s.get(n,"inRange"===t?"active":"inactive",l)})},this),o.prototype.completeVisualOption.apply(this,arguments)},_resetSelected:function(t,e){var i=this.option,n=this._pieceList,o=(e?i:t).selected||{};if(i.selected=o,a.each(n,function(t,e){var i=this.getSelectedMapKey(t);o.hasOwnProperty(i)||(o[i]=!0)},this),"single"===i.selectedMode){var r=!1;a.each(n,function(t,e){var i=this.getSelectedMapKey(t);o[i]&&(r?o[i]=!1:r=!0)},this)}},getSelectedMapKey:function(t){return"categories"===this._mode?t.value+"":t.index+""},getPieceList:function(){return this._pieceList},_determineMode:function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},setSelected:function(t){this.option.selected=a.clone(t)},getValueState:function(t){var e=r.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],o=i.getData();o.each(this.getDataDimension(o),function(e,i){r.findPieceIndex(e,this._pieceList)===t&&n.push(i)},!0,this),e.push({seriesId:i.id,dataIndex:n})},this),e},getRepresentValue:function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var i=t.interval||[];e=i[0]===-1/0&&i[1]===1/0?0:(i[0]+i[1])/2}return e},getVisualMeta:function(t){function e(e,a){var r=o.getRepresentValue({interval:e});a||(a=o.getValueState(r));var s=t(r,a);e[0]===-1/0?n[0]=s:e[1]===1/0?n[1]=s:i.push({value:e[0],color:s},{value:e[1],color:s})}if(!this.isCategory()){var i=[],n=[],o=this,r=this._pieceList.slice();if(r.length){var s=r[0].interval[0];s!==-1/0&&r.unshift({interval:[-1/0,s]}),(s=r[r.length-1].interval[1])!==1/0&&r.push({interval:[s,1/0]})}else r.push({interval:[-1/0,1/0]});var l=-1/0;return a.each(r,function(t){var i=t.interval;i&&(i[0]>l&&e([l,i[0]],"outOfRange"),e(i.slice()),l=i[1])},this),{stops:i,outerColors:n}}}}),c={splitNumber:function(){var t=this.option,e=this._pieceList,i=t.precision,n=this.getExtent(),o=t.splitNumber;o=Math.max(parseInt(o,10),1),t.splitNumber=o;for(var r=(n[1]-n[0])/o;+r.toFixed(i)!==r&&i<5;)i++;t.precision=i,r=+r.toFixed(i);var s=0;t.minOpen&&e.push({index:s++,interval:[-1/0,n[0]],close:[0,0]});for(var u=n[0],c=s+o;ss[1]&&console.warn("Piece "+i+"is illegal: "+s+" lower bound should not greater then uppper bound."),s[0]===s[1]&&l[0]&&l[1]&&(n.value=s[0])}n.visual=r.retrieveVisuals(t),e.push(n)},this),n(t,e),l(e),a.each(e,function(t){var e=t.close,i=[["<","≤"][e[1]],[">","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};t.exports=u},function(t,e,i){var n=i(373),o=i(4),a=i(44),r=i(104),s=i(21),l=i(374),u=n.extend({type:"visualMap.piecewise",doRender:function(){var t=this.group;t.removeAll();var e=this.visualMapModel,i=e.get("textGap"),n=e.textStyleModel,r=n.getFont(),l=n.getTextColor(),u=this._getItemAlign(),c=e.itemSize,h=this._getViewData(),d=h.endsText,f=o.retrieve(e.get("showLabel",!0),!d);d&&this._renderEndsText(t,d[0],c,f,u),o.each(h.viewPieceList,function(n){var s=n.piece,h=new a.Group;h.onclick=o.bind(this._onItemClick,this,s),this._enableHoverLink(h,n.indexInModelPieceList);var d=e.getRepresentValue(s);if(this._createItemSymbol(h,d,[0,0,c[0],c[1]]),f){var p=this.visualMapModel.getValueState(d);h.add(new a.Text({style:{x:"right"===u?-i:c[0]+i,y:c[1]/2,text:s.text,textVerticalAlign:"middle",textAlign:u,textFont:r,fill:l,opacity:"outOfRange"===p?.5:1}}))}t.add(h)},this),d&&this._renderEndsText(t,d[1],c,f,u),s.box(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},_enableHoverLink:function(t,e){function i(t){var i=this.visualMapModel;i.option.hoverLink&&this.api.dispatchAction({type:t,batch:l.convertDataIndex(i.findTargetDataIndices(e))})}t.on("mouseover",o.bind(i,this,"highlight")).on("mouseout",o.bind(i,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return l.getItemAlign(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i,n,o){if(e){var r=new a.Group,s=this.visualMapModel.textStyleModel;r.add(new a.Text({style:{x:n?"right"===o?i[0]:0:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:n?o:"center",text:e,textFont:s.getFont(),fill:s.getTextColor()}})),t.add(r)}},_getViewData:function(){var t=this.visualMapModel,e=o.map(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),i=t.get("text"),n=t.get("orient"),a=t.get("inverse");return("horizontal"===n?a:!a)?e.reverse():i&&(i=i.slice().reverse()),{viewPieceList:e,endsText:i}},_createItemSymbol:function(t,e,i){t.add(r.createSymbol(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,i=e.option,n=o.clone(i.selected),a=e.getSelectedMapKey(t);"single"===i.selectedMode?(n[a]=!0,o.each(n,function(t,e){n[e]=e===a})):n[a]=!n[a],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:n})}});t.exports=u},function(t,e,i){i(380),i(382),i(1).registerPreprocessor(function(t){t.markPoint=t.markPoint||{}})},function(t,e,i){t.exports=i(381).extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{normal:{show:!0,position:"inside"},emphasis:{show:!0}},itemStyle:{normal:{borderWidth:2}}}})},function(t,e,i){function n(t){o.defaultEmphasis(t.label,o.LABEL_OPTIONS)}var o=i(5),a=i(4),r=i(2),s=i(6),l=s.addCommas,u=s.encodeHTML,c=i(1).extendComponentModel({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,i,n){if("marker"===this.type)throw new Error("Marker component is abstract component. Use markLine, markPoint, markArea instead.");this.mergeDefaultAndTheme(t,i),this.mergeOption(t,i,n.createdBySelf,!0)},isAnimationEnabled:function(){if(r.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,i,o){var r=this.constructor,s=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType),l=t[s];i&&i.data?(l?l.mergeOption(i,e,!0):(o&&n(i),a.each(i.data,function(t){t instanceof Array?(n(t[0]),n(t[1])):n(t)}),l=new r(i,this,e),a.extend(l,{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),l.__hostSeries=t),t[s]=l):t[s]=null},this)},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=a.isArray(i)?a.map(i,l).join(", "):l(i),o=e.getName(t),r=u(this.name);return(null!=i||o)&&(r+="
"),o&&(r+=u(o),null!=i&&(r+=" : ")),null!=i&&(r+=u(n)),r},getData:function(){return this._data},setData:function(t){this._data=t}});a.mixin(c,o.dataFormatMixin),t.exports=c},function(t,e,i){function n(t,e,i){var n=e.coordinateSystem;t.each(function(o){var a,r=t.getItemModel(o),l=s.parsePercent(r.get("x"),i.getWidth()),u=s.parsePercent(r.get("y"),i.getHeight());if(isNaN(l)||isNaN(u)){if(e.getMarkerPosition)a=e.getMarkerPosition(t.getValues(t.dimensions,o));else if(n){var c=t.get(n.dimensions[0],o),h=t.get(n.dimensions[1],o);a=n.dataToPoint([c,h])}}else a=[l,u];isNaN(l)||(a[0]=l),isNaN(u)||(a[1]=u),t.setItemLayout(o,a)})}function o(t,e,i){var n;n=t?r.map(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.coordDimToDataDim(t)[0])||{};return i.name=t,i}):[{name:"value",type:"float"}];var o=new l(n,i),a=r.map(i.get("data"),r.curry(u.dataTransform,e));return t&&(a=r.filter(a,r.curry(u.dataFilter,t))),o.initData(a,null,t?u.dimValueGetter:function(t){return t.value}),o}var a=i(115),r=i(4),s=i(7),l=i(98),u=i(383);i(384).extend({type:"markPoint",updateLayout:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&(n(e.getData(),t,i),this.markerGroupMap[t.name].updateLayout(e))},this)},renderSeries:function(t,e,i,r){var s=t.coordinateSystem,l=t.name,u=t.getData(),c=this.markerGroupMap,h=c[l];h||(h=c[l]=new a);var d=o(s,t,e);e.setData(d),n(e.getData(),t,r),d.each(function(t){var i=d.getItemModel(t),n=i.getShallow("symbolSize");"function"==typeof n&&(n=n(e.getRawValue(t),e.getDataParams(t))),d.setItemVisual(t,{symbolSize:n,color:i.get("itemStyle.normal.color")||u.getVisual("color"),symbol:i.getShallow("symbol")})}),h.updateData(d),this.group.add(h.group),d.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),h.__keep=!0,h.group.silent=e.get("silent")||t.get("silent")}})},function(t,e,i){function n(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function o(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function a(t,e,i){var n=-1;do{n=Math.max(l.getPrecision(t.get(e,i)),n),t=t.stackedOn}while(t);return n}function r(t,e,i,n,o,r){var s=[],l=f(e,n,t),u=e.indexOfNearest(n,l,!0)[0];s[o]=e.get(i,u,!0),s[r]=e.get(n,u,!0);var c=a(e,n,u);return c>=0&&(s[r]=+s[r].toFixed(c)),s}var s=i(4),l=i(7),u=s.indexOf,c=s.curry,h={min:c(r,"min"),max:c(r,"max"),average:c(r,"average")},d=function(t,e,i,n){var o={};return null!=t.valueIndex||null!=t.valueDim?(o.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,o.valueAxis=i.getAxis(n.dataDimToCoordDim(o.valueDataDim)),o.baseAxis=i.getOtherAxis(o.valueAxis),o.baseDataDim=n.coordDimToDataDim(o.baseAxis.dim)[0]):(o.baseAxis=n.getBaseAxis(),o.valueAxis=i.getOtherAxis(o.baseAxis),o.baseDataDim=n.coordDimToDataDim(o.baseAxis.dim)[0],o.valueDataDim=n.coordDimToDataDim(o.valueAxis.dim)[0]),o},f=function(t,e,i){if("average"===i){var n=0,o=0;return t.each(e,function(t,e){isNaN(t)||(n+=t,o++)},!0),n/o}return t.getDataExtent(e,!0)["max"===i?1:0]};t.exports={dataTransform:function(t,e){var i=t.getData(),n=t.coordinateSystem;if(e&&!o(e)&&!s.isArray(e.coord)&&n){var a=n.dimensions,r=d(e,i,n,t);if((e=s.clone(e)).type&&h[e.type]&&r.baseAxis&&r.valueAxis){var l=u(a,r.baseAxis.dim),c=u(a,r.valueAxis.dim);e.coord=h[e.type](i,r.baseDataDim,r.valueDataDim,l,c),e.value=e.coord[c]}else{for(var p=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],g=0;g<2;g++)if(h[p[g]]){var m=t.coordDimToDataDim(a[g])[0];p[g]=f(i,m,p[g])}e.coord=p}}return e},dataFilter:function(t,e){return!(t&&t.containData&&e.coord&&!n(e))||t.containData(e.coord)},dimValueGetter:function(t,e,i,n){return n<2?t.coord&&t.coord[n]:t.value},getAxisInfo:d,numCalculate:f}},function(t,e,i){t.exports=i(1).extendComponentView({type:"marker",init:function(){this.markerGroupMap={}},render:function(t,e,i){var n=this.markerGroupMap;for(var o in n)n.hasOwnProperty(o)&&(n[o].__keep=!1);var a=this.type+"Model";e.eachSeries(function(t){var n=t[a];n&&this.renderSeries(t,n,e,i)},this);for(var o in n)n.hasOwnProperty(o)&&!n[o].__keep&&this.group.remove(n[o].group)},renderSeries:function(){}})},function(t,e,i){i(386),i(387),i(1).registerPreprocessor(function(t){t.markLine=t.markLine||{}})},function(t,e,i){t.exports=i(381).extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{normal:{show:!0,position:"end"},emphasis:{show:!0}},lineStyle:{normal:{type:"dashed"},emphasis:{width:3}},animationEasing:"linear"}})},function(t,e,i){function n(t){return!isNaN(t)&&!isFinite(t)}function o(t,e,i,o){var a=1-t,r=o.dimensions[t];return n(e[a])&&n(i[a])&&e[t]===i[t]&&o.getAxis(r).containData(e[t])}function a(t,e){if("cartesian2d"===t.type){var i=e[0].coord,n=e[1].coord;if(i&&n&&(o(1,i,n,t)||o(0,i,n,t)))return!0}return h.dataFilter(t,e[0])&&h.dataFilter(t,e[1])}function r(t,e,i,o,a){var r,s=o.coordinateSystem,l=t.getItemModel(e),u=c.parsePercent(l.get("x"),a.getWidth()),h=c.parsePercent(l.get("y"),a.getHeight());if(isNaN(u)||isNaN(h)){if(o.getMarkerPosition)r=o.getMarkerPosition(t.getValues(t.dimensions,e));else{var d=s.dimensions,f=t.get(d[0],e),p=t.get(d[1],e);r=s.dataToPoint([f,p])}if("cartesian2d"===s.type){var g=s.getAxis("x"),m=s.getAxis("y"),d=s.dimensions;n(t.get(d[0],e))?r[0]=g.toGlobalCoord(g.getExtent()[i?0:1]):n(t.get(d[1],e))&&(r[1]=m.toGlobalCoord(m.getExtent()[i?0:1]))}isNaN(u)||(r[0]=u),isNaN(h)||(r[1]=h)}else r=[u,h];t.setItemLayout(e,r)}function s(t,e,i){var n;n=t?l.map(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.coordDimToDataDim(t)[0])||{};return i.name=t,i}):[{name:"value",type:"float"}];var o=new u(n,i),r=new u(n,i),s=new u([],i),c=l.map(i.get("data"),l.curry(f,e,t,i));t&&(c=l.filter(c,l.curry(a,t)));var d=t?h.dimValueGetter:function(t){return t.value};return o.initData(l.map(c,function(t){return t[0]}),null,d),r.initData(l.map(c,function(t){return t[1]}),null,d),s.initData(l.map(c,function(t){return t[2]})),s.hasItemOption=!0,{from:o,to:r,line:s}}var l=i(4),u=i(98),c=i(7),h=i(383),d=i(206),f=function(t,e,i,n){var o=t.getData(),a=n.type;if(!l.isArray(n)&&("min"===a||"max"===a||"average"===a||null!=n.xAxis||null!=n.yAxis)){var r,s;if(null!=n.yAxis||null!=n.xAxis)r=null!=n.yAxis?"y":"x",e.getAxis(r),s=l.retrieve(n.yAxis,n.xAxis);else{var u=h.getAxisInfo(n,o,e,t);r=u.valueDataDim,u.valueAxis,s=h.numCalculate(o,r,a)}var c="x"===r?0:1,d=1-c,f=l.clone(n),p={};f.type=null,f.coord=[],p.coord=[],f.coord[d]=-1/0,p.coord[d]=1/0;var g=i.get("precision");g>=0&&"number"==typeof s&&(s=+s.toFixed(g)),f.coord[c]=p.coord[c]=s,n=[f,p,{type:a,valueIndex:n.valueIndex,value:s}]}return n=[h.dataTransform(t,n[0]),h.dataTransform(t,n[1]),l.extend({},n[2])],n[2].type=n[2].type||"",l.merge(n[2],n[0]),l.merge(n[2],n[1]),n};i(384).extend({type:"markLine",updateLayout:function(t,e,i){e.eachSeries(function(t){var e=t.markLineModel;if(e){var n=e.getData(),o=e.__from,a=e.__to;o.each(function(e){r(o,e,!0,t,i),r(a,e,!1,t,i)}),n.each(function(t){n.setItemLayout(t,[o.getItemLayout(t),a.getItemLayout(t)])}),this.markerGroupMap[t.name].updateLayout()}},this)},renderSeries:function(t,e,i,n){function o(e,i,o){var a=e.getItemModel(i);r(e,i,o,t,n),e.setItemVisual(i,{symbolSize:a.get("symbolSize")||x[o?0:1],symbol:a.get("symbol",!0)||y[o?0:1],color:a.get("itemStyle.normal.color")||c.getVisual("color")})}var a=t.coordinateSystem,u=t.name,c=t.getData(),h=this.markerGroupMap,f=h[u];f||(f=h[u]=new d),this.group.add(f.group);var p=s(a,t,e),g=p.from,m=p.to,v=p.line;e.__from=g,e.__to=m,e.setData(v);var y=e.get("symbol"),x=e.get("symbolSize");l.isArray(y)||(y=[y,y]),"number"==typeof x&&(x=[x,x]),p.from.each(function(t){o(g,t,!0),o(m,t,!1)}),v.each(function(t){var e=v.getItemModel(t).get("lineStyle.normal.color");v.setItemVisual(t,{color:e||g.getItemVisual(t,"color")}),v.setItemLayout(t,[g.getItemLayout(t),m.getItemLayout(t)]),v.setItemVisual(t,{fromSymbolSize:g.getItemVisual(t,"symbolSize"),fromSymbol:g.getItemVisual(t,"symbol"),toSymbolSize:m.getItemVisual(t,"symbolSize"),toSymbol:m.getItemVisual(t,"symbol")})}),f.updateData(v),p.line.eachItemGraphicEl(function(t,i){t.traverse(function(t){t.dataModel=e})}),f.__keep=!0,f.group.silent=e.get("silent")||t.get("silent")}})},function(t,e,i){i(389),i(390),i(1).registerPreprocessor(function(t){t.markArea=t.markArea||{}})},function(t,e,i){t.exports=i(381).extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{normal:{show:!0,position:"top"},emphasis:{show:!0,position:"top"}},itemStyle:{normal:{borderWidth:0}}}})},function(t,e,i){function n(t){return!isNaN(t)&&!isFinite(t)}function o(t,e,i,o){var a=1-t;return n(e[a])&&n(i[a])}function a(t,e){var i=e.coord[0],n=e.coord[1];return!("cartesian2d"!==t.type||!i||!n||!o(1,i,n,t)&&!o(0,i,n,t))||(f.dataFilter(t,{coord:i,x:e.x0,y:e.y0})||f.dataFilter(t,{coord:n,x:e.x1,y:e.y1}))}function r(t,e,i,o,a){var r,s=o.coordinateSystem,l=t.getItemModel(e),u=c.parsePercent(l.get(i[0]),a.getWidth()),h=c.parsePercent(l.get(i[1]),a.getHeight());if(isNaN(u)||isNaN(h)){if(o.getMarkerPosition)r=o.getMarkerPosition(t.getValues(i,e));else{var d=t.get(i[0],e),f=t.get(i[1],e);r=s.dataToPoint([d,f],!0)}if("cartesian2d"===s.type){var p=s.getAxis("x"),g=s.getAxis("y"),d=t.get(i[0],e),f=t.get(i[1],e);n(d)?r[0]=p.toGlobalCoord(p.getExtent()["x0"===i[0]?0:1]):n(f)&&(r[1]=g.toGlobalCoord(g.getExtent()["y0"===i[1]?0:1]))}isNaN(u)||(r[0]=u),isNaN(h)||(r[1]=h)}else r=[u,h];return r}function s(t,e,i){var n,o,r=["x0","y0","x1","y1"];t?(n=l.map(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.coordDimToDataDim(t)[0])||{};return i.name=t,i}),o=new u(l.map(r,function(t,e){return{name:t,type:n[e%2].type}}),i)):o=new u(n=[{name:"value",type:"float"}],i);var s=l.map(i.get("data"),l.curry(p,e,t,i));t&&(s=l.filter(s,l.curry(a,t)));var c=t?function(t,e,i,n){return t.coord[Math.floor(n/2)][n%2]}:function(t){return t.value};return o.initData(s,null,c),o.hasItemOption=!0,o}var l=i(4),u=i(98),c=i(7),h=i(44),d=i(39),f=i(383),p=function(t,e,i,n){var o=f.dataTransform(t,n[0]),a=f.dataTransform(t,n[1]),r=l.retrieve,s=o.coord,u=a.coord;s[0]=r(s[0],-1/0),s[1]=r(s[1],-1/0),u[0]=r(u[0],1/0),u[1]=r(u[1],1/0);var c=l.mergeAll([{},o,a]);return c.coord=[o.coord,a.coord],c.x0=o.x,c.y0=o.y,c.x1=a.x,c.y1=a.y,c},g=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];i(384).extend({type:"markArea",updateLayout:function(t,e,i){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var n=e.getData();n.each(function(e){var o=l.map(g,function(o){return r(n,e,o,t,i)});n.setItemLayout(e,o),n.getItemGraphicEl(e).setShape("points",o)})}},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.name,u=t.getData(),c=this.markerGroupMap,f=c[a];f||(f=c[a]={group:new h.Group}),this.group.add(f.group),f.__keep=!0;var p=s(o,t,e);e.setData(p),p.each(function(e){p.setItemLayout(e,l.map(g,function(i){return r(p,e,i,t,n)})),p.setItemVisual(e,{color:u.getVisual("color")})}),p.diff(f.__data).add(function(t){var e=new h.Polygon({shape:{points:p.getItemLayout(t)}});p.setItemGraphicEl(t,e),f.group.add(e)}).update(function(t,i){var n=f.__data.getItemGraphicEl(i);h.updateProps(n,{shape:{points:p.getItemLayout(t)}},e,t),f.group.add(n),p.setItemGraphicEl(t,n)}).remove(function(t){var e=f.__data.getItemGraphicEl(t);f.group.remove(e)}).execute(),p.eachItemGraphicEl(function(t,i){var n=p.getItemModel(i),o=n.getModel("label.normal"),a=n.getModel("label.emphasis"),r=p.getItemVisual(i,"color");t.useStyle(l.defaults(n.getModel("itemStyle.normal").getItemStyle(),{fill:d.modifyAlpha(r,.4),stroke:r})),t.hoverStyle=n.getModel("itemStyle.normal").getItemStyle();var s=p.getName(i)||"",u=r||t.style.fill;o.getShallow("show")?(h.setText(t.style,o,u),t.style.text=l.retrieve(e.getFormattedLabel(i,"normal"),s)):t.style.text="",a.getShallow("show")?(h.setText(t.hoverStyle,a,u),t.hoverStyle.text=l.retrieve(e.getFormattedLabel(i,"emphasis"),s)):t.hoverStyle.text="",h.setHoverStyle(t,{}),t.dataModel=e}),f.__data=p,f.group.silent=e.get("silent")||t.get("silent")}})},function(t,e,i){i(1).registerPreprocessor(i(392)),i(393),i(394),i(395),i(397)},function(t,e,i){function n(t){var e=t.type,i={number:"value",time:"time"};if(i[e]&&(t.axisType=i[e],delete t.type),o(t),a(t,"controlPosition")){var n=t.controlStyle||(t.controlStyle={});a(n,"position")||(n.position=t.controlPosition),"none"!==n.position||a(n,"show")||(n.show=!1,delete n.position),delete t.controlPosition}r.each(t.data||[],function(t){r.isObject(t)&&!r.isArray(t)&&(!a(t,"value")&&a(t,"name")&&(t.value=t.name),o(t))})}function o(t){var e=t.itemStyle||(t.itemStyle={}),i=e.emphasis||(e.emphasis={}),n=t.label||t.label||{},o=n.normal||(n.normal={}),s={normal:1,emphasis:1};r.each(n,function(t,e){s[e]||a(o,e)||(o[e]=t)}),i.label&&!a(n,"emphasis")&&(n.emphasis=i.label,delete i.label)}function a(t,e){return t.hasOwnProperty(e)}var r=i(4);t.exports=function(t){var e=t&&t.timeline;r.isArray(e)||(e=e?[e]:[]),r.each(e,function(t){t&&n(t)})}},function(t,e,i){i(19).registerSubTypeDefaulter("timeline",function(){return"slider"})},function(t,e,i){var n=i(1),o=i(4);n.registerAction({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),o.defaults({currentIndex:i.option.currentIndex},t)}),n.registerAction({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)})},function(t,e,i){var n=i(396),o=i(4),a=i(5),r=n.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",normal:{show:!0,interval:"auto",rotate:0,textStyle:{color:"#304654"}},emphasis:{show:!0,textStyle:{color:"#c23531"}}},itemStyle:{normal:{color:"#304654",borderWidth:1},emphasis:{color:"#c23531"}},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",normal:{color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}});o.mixin(r,a.dataFormatMixin),t.exports=r},function(t,e,i){var n=i(19),o=i(98),a=i(4),r=i(5),s=n.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{normal:{},emphasis:{}},label:{normal:{textStyle:{color:"#000"}},emphasis:{}},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(t){s.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],i=t.axisType,n=this._names=[];if("category"===i){var s=[];a.each(e,function(t,e){var i,o=r.getDataItemValue(t);a.isObject(t)?(i=a.clone(t)).value=e:i=e,s.push(i),a.isString(o)||null!=o&&!isNaN(o)||(o=""),n.push(o+"")}),e=s}var l={category:"ordinal",time:"time"}[i]||"number";(this._data=new o([{name:"value",type:l}],this)).initData(e,n)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}});t.exports=s},function(t,e,i){function n(t,e){return u.getLayoutRect(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}function o(t,e,i,n){return l.makePath(t.get(e).replace(/^path:\/\//,""),s.clone(n||{}),new p(i[0],i[1],i[2],i[3]),"center")}function a(t,e,i,n,o,a){var r=e.get("color");if(o)o.setColor(r),i.add(o),a&&a.onUpdate(o);else{var l=t.get("symbol");(o=d.createSymbol(l,-1,-1,2,2,r)).setStyle("strokeNoScale",!0),i.add(o),a&&a.onCreate(o)}var u=e.getItemStyle(["color","symbol","symbolSize"]);o.setStyle(u),n=s.merge({rectHover:!0,z2:100},n,!0);var c=t.get("symbolSize");(c=c instanceof Array?c.slice():[+c,+c])[0]/=2,c[1]/=2,n.scale=c;var h=t.get("symbolOffset");if(h){var f=n.position=n.position||[0,0];f[0]+=m.parsePercent(h[0],c[0]),f[1]+=m.parsePercent(h[1],c[1])}var p=t.get("symbolRotate");return n.rotation=(p||0)*Math.PI/180||0,o.attr(n),o.updateTransform(),o}function r(t,e,i,n,o){if(!t.dragging){var a=n.getModel("checkpointStyle"),r=i.dataToCoord(n.getData().get(["value"],e));o||!a.get("animation",!0)?t.attr({position:[r,0]}):(t.stopAnimation(!0),t.animateTo({position:[r,0]},a.get("animationDuration",!0),a.get("animationEasing",!0)))}}var s=i(4),l=i(44),u=i(21),c=i(398),h=i(399),d=i(104),f=i(105),p=i(9),g=i(11),m=i(7),v=i(6).encodeHTML,y=s.bind,x=s.each,_=Math.PI;t.exports=c.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(t,e,i,n){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var o=this._layout(t,i),a=this._createGroup("mainGroup"),r=this._createGroup("labelGroup"),s=this._axis=this._createAxis(o,t);t.formatTooltip=function(t){return v(s.scale.getLabel(t))},x(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](o,a,s,t)},this),this._renderAxisLabel(o,r,s,t),this._position(o,t)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.normal.position"),o=t.get("orient"),a=n(t,e);null==i||"auto"===i?i="horizontal"===o?a.y+a.height/2=0||"+"===i?"left":"right"},s={horizontal:i>=0||"+"===i?"top":"bottom",vertical:"middle"},l={horizontal:0,vertical:_/2},u="vertical"===o?a.height:a.width,c=t.getModel("controlStyle"),h=c.get("show"),d=h?c.get("itemSize"):0,f=h?c.get("itemGap"):0,p=d+f,g=t.get("label.normal.rotate")||0;g=g*_/180;var m,v,y,x,b=c.get("position",!0),w=(h=c.get("show",!0))&&c.get("showPlayBtn",!0),S=h&&c.get("showPrevBtn",!0),M=h&&c.get("showNextBtn",!0),I=0,T=u;return"left"===b||"bottom"===b?(w&&(m=[0,0],I+=p),S&&(v=[I,0],I+=p),M&&(y=[T-d,0],T-=p)):(w&&(m=[T-d,0],T-=p),S&&(v=[0,0],I+=p),M&&(y=[T-d,0],T-=p)),x=[I,T],t.get("inverse")&&x.reverse(),{viewRect:a,mainLength:u,orient:o,rotation:l[o],labelRotation:g,labelPosOpt:i,labelAlign:r[o],labelBaseline:s[o],playPosition:m,prevBtnPosition:v,nextBtnPosition:y,axisExtent:x,controlSize:d,controlGap:f}},_position:function(t,e){function i(t){var e=t.position;t.origin=[h[0][0]-e[0],h[1][0]-e[1]]}function n(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function o(t,e,i,n,o){t[n]+=i[n][o]-e[n][o]}var a=this._mainGroup,r=this._labelGroup,s=t.viewRect;if("vertical"===t.orient){var l=g.create(),u=s.x,c=s.y+s.height;g.translate(l,l,[-u,-c]),g.rotate(l,l,-_/2),g.translate(l,l,[u,c]),(s=s.clone()).applyTransform(l)}var h=n(s),d=n(a.getBoundingRect()),f=n(r.getBoundingRect()),p=a.position,m=r.position;m[0]=p[0]=h[0][0];var v=t.labelPosOpt;if(isNaN(v))o(p,d,h,1,y="+"===v?0:1),o(m,f,h,1,1-y);else{var y=v>=0?0:1;o(p,d,h,1,y),m[1]=p[1]+v}a.attr("position",p),r.attr("position",m),a.rotation=r.rotation=t.rotation,i(a),i(r)},_createAxis:function(t,e){var i=e.getData(),n=e.get("axisType"),o=f.createScaleByModel(e,n),a=i.getDataExtent("value");o.setExtent(a[0],a[1]),this._customizeScale(o,i),o.niceTicks();var r=new h("value",o,t.axisExtent,n);return r.model=e,r},_customizeScale:function(t,e){t.getTicks=function(){return e.mapArray(["value"],function(t){return t})},t.getTicksLabels=function(){return s.map(this.getTicks(),t.getLabel,t)}},_createGroup:function(t){var e=this["_"+t]=new l.Group;return this.group.add(e),e},_renderAxisLine:function(t,e,i,n){var o=i.getExtent();n.get("lineStyle.show")&&e.add(new l.Line({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:s.extend({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(t,e,i,n){var o=n.getData(),r=i.scale.getTicks();x(r,function(t,r){var s=i.dataToCoord(t),u=o.getItemModel(r),c=u.getModel("itemStyle.normal"),h=u.getModel("itemStyle.emphasis"),d={position:[s,0],onclick:y(this._changeTimeline,this,r)},f=a(u,c,e,d);l.setHoverStyle(f,h.getItemStyle()),u.get("tooltip")?(f.dataIndex=r,f.dataModel=n):f.dataIndex=f.dataModel=null},this)},_renderAxisLabel:function(t,e,i,n){var o=n.getModel("label.normal");if(o.get("show")){var a=n.getData(),r=i.scale.getTicks(),s=f.getFormattedLabels(i,o.get("formatter")),u=i.getLabelInterval();x(r,function(n,o){if(!i.isLabelIgnored(o,u)){var r=a.getItemModel(o),c=r.getModel("label.normal.textStyle"),h=r.getModel("label.emphasis.textStyle"),d=i.dataToCoord(n),f=new l.Text({style:{text:s[o],textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline,textFont:c.getFont(),fill:c.getTextColor()},position:[d,0],rotation:t.labelRotation-t.rotation,onclick:y(this._changeTimeline,this,o),silent:!1});e.add(f),l.setHoverStyle(f,h.getItemStyle())}},this)}},_renderControl:function(t,e,i,n){function a(t,i,a,d){if(t){var f=o(n,i,h,{position:t,origin:[r/2,0],rotation:d?-s:0,rectHover:!0,style:u,onclick:a});e.add(f),l.setHoverStyle(f,c)}}var r=t.controlSize,s=t.rotation,u=n.getModel("controlStyle.normal").getItemStyle(),c=n.getModel("controlStyle.emphasis").getItemStyle(),h=[0,-r/2,r,r],d=n.getPlayState(),f=n.get("inverse",!0);a(t.nextBtnPosition,"controlStyle.nextIcon",y(this._changeTimeline,this,f?"-":"+")),a(t.prevBtnPosition,"controlStyle.prevIcon",y(this._changeTimeline,this,f?"+":"-")),a(t.playPosition,"controlStyle."+(d?"stopIcon":"playIcon"),y(this._handlePlayClick,this,!d),!0)},_renderCurrentPointer:function(t,e,i,n){var o=n.getData(),s=n.getCurrentIndex(),l=o.getItemModel(s).getModel("checkpointStyle"),u=this,c={onCreate:function(t){t.draggable=!0,t.drift=y(u._handlePointerDrag,u),t.ondragend=y(u._handlePointerDragend,u),r(t,s,i,n,!0)},onUpdate:function(t){r(t,s,i,n)}};this._currentPointer=a(l,l,this._mainGroup,{},this._currentPointer,c)},_handlePlayClick:function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},_handlePointerDrag:function(t,e,i){this._clearTimer(),this._pointerChangeTimeline([i.offsetX,i.offsetY])},_handlePointerDragend:function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},_pointerChangeTimeline:function(t,e){var i=this._toAxisCoord(t)[0],n=this._axis,o=m.asc(n.getExtent().slice());i>o[1]&&(i=o[1]),ii.getHeight()&&(n.textPosition="top",r=!0);var s=r?-5-o.height:g+8;a+o.width/2>i.getWidth()?(n.textPosition=["100%",s],n.textAlign="right"):a-o.width/2<0&&(n.textPosition=[0,s],n.textAlign="left")}})}},updateView:function(t,e,i,n){a.each(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},updateLayout:function(t,e,i,n){a.each(this._features,function(t){t.updateLayout&&t.updateLayout(t.model,e,i,n)})},remove:function(t,e){a.each(this._features,function(i){i.remove&&i.remove(t,e)}),this.group.removeAll()},dispose:function(t,e){a.each(this._features,function(i){i.dispose&&i.dispose(t,e)})}})}).call(e,i(304))},function(t,e,i){function n(t){this.model=t}var o=i(2);n.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:"保存为图片",type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:["右键另存为图片"]},n.prototype.unusable=!o.canvasSupported,n.prototype.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",a=document.createElement("a"),r=i.get("type",!0)||"png";a.download=n+"."+r,a.target="_blank";var s=e.getConnectedDataURL({type:r,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if(a.href=s,"function"!=typeof MouseEvent||o.browser.ie||o.browser.edge){var l=i.get("lang"),u='';window.open().document.write(u)}else{var c=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});a.dispatchEvent(c)}},i(344).register("saveAsImage",n),t.exports=n},function(t,e,i){"use strict";function n(t){this.model=t}var o=i(4);n.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"},option:{},seriesIndex:{}};var a=n.prototype;a.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return o.each(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var r={line:function(t,e,i,n){if("bar"===t)return o.merge({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.line")||{},!0)},bar:function(t,e,i,n){if("line"===t)return o.merge({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.bar")||{},!0)},stack:function(t,e,i,n){if("line"===t||"bar"===t)return o.merge({id:e,stack:"__ec_magicType_stack__"},n.get("option.stack")||{},!0)},tiled:function(t,e,i,n){if("line"===t||"bar"===t)return o.merge({id:e,stack:""},n.get("option.tiled")||{},!0)}},s=[["line","bar"],["stack","tiled"]];a.onclick=function(t,e,i){var n=this.model,a=n.get("seriesIndex."+i);if(r[i]){var l={series:[]};o.each(s,function(t){o.indexOf(t,i)>=0&&o.each(t,function(t){n.setIconStatus(t,"normal")})}),n.setIconStatus(i,"emphasis"),t.eachComponent({mainType:"series",query:null==a?null:{seriesIndex:a}},function(e){var a=e.subType,s=e.id,u=r[i](a,s,e,n);u&&(o.defaults(u,e.option),l.series.push(u));var c=e.coordinateSystem;if(c&&"cartesian2d"===c.type&&("line"===i||"bar"===i)){var h=c.getAxesByScale("ordinal")[0];if(h){var d=h.dim+"Axis",f=t.queryComponents({mainType:d,index:e.get(name+"Index"),id:e.get(name+"Id")})[0].componentIndex;l[d]=l[d]||[];for(var p=0;p<=f;p++)l[d][f]=l[d][f]||{};l[d][f].boundaryGap="bar"===i}}}),e.dispatchAction({type:"changeMagicType",currentType:i,newOption:l})}},i(1).registerAction({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),i(344).register("magicType",n),t.exports=n},function(t,e,i){function n(t){var e={},i=[],n=[];return t.eachRawSeries(function(t){var o=t.coordinateSystem;if(!o||"cartesian2d"!==o.type&&"polar"!==o.type)i.push(t);else{var a=o.getBaseAxis();if("category"===a.type){var r=a.dim+"_"+a.index;e[r]||(e[r]={categoryAxis:a,valueAxis:o.getOtherAxis(a),series:[]},n.push({axisDim:a.dim,axisIndex:a.index})),e[r].series.push(t)}else i.push(t)}}),{seriesGroupByCategoryAxis:e,other:i,meta:n}}function o(t){var e=[];return p.each(t,function(t,i){var n=t.categoryAxis,o=t.valueAxis.dim,a=[" "].concat(p.map(t.series,function(t){return t.name})),r=[n.model.getCategories()];p.each(t.series,function(t){r.push(t.getRawData().mapArray(o,function(t){return t}))});for(var s=[a.join(v)],l=0;l=0)return!0}function u(t){for(var e=t.split(/\n+/g),i=s(e.shift()).split(y),n=[],o=p.map(i,function(t){return{name:t,data:[]}}),a=0;a1?"emphasis":"normal")}function r(t,e,i,n){var a=i._isZoomActive;n&&"takeGlobalCursor"===n.type&&(a="dataZoomSelect"===n.key&&n.dataZoomSelectActive),i._isZoomActive=a,t.setIconStatus("zoom",a?"emphasis":"normal");var r=new u(o(t.option),e,{include:["grid"]});i._brushController.setPanels(r.makePanelOpts(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"})).enableBrush(!!a&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}var s=i(4),l=i(240),u=i(339),c=i(407),h=s.each;i(408);var d="\0_ec_\0toolbox-dataZoom_";n.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:{zoom:"区域缩放",back:"区域缩放还原"}};var f=n.prototype;f.render=function(t,e,i,n){this.model=t,this.ecModel=e,this.api=i,r(t,e,this,n),a(t,e)},f.onclick=function(t,e,i){p[i].call(this)},f.remove=function(t,e){this._brushController.unmount()},f.dispose=function(t,e){this._brushController.dispose()};var p={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(c.pop(this.ecModel))}};f._onBrush=function(t,e){function i(t,e,i){var o=n(t,e.getAxis(t).model,r);o&&(a[o.id]={dataZoomId:o.id,startValue:i[0],endValue:i[1]})}function n(t,e,i){var n;return i.eachComponent({mainType:"dataZoom",subType:"select"},function(i){i.getAxisModel(t,e.componentIndex)&&(n=i)}),n}if(e.isEnd&&t.length){var a={},r=this.ecModel;this._brushController.updateCovers([]),new u(o(this.model.option),r,{include:["grid"]}).matchOutputRanges(t,r,function(t,e,n){if("cartesian2d"===n.type){var o=t.brushType;"rect"===o?(i("x",n,e[0]),i("y",n,e[1])):i({lineX:"x",lineY:"y"}[o],n,e)}}),c.push(r,a),this._dispatchZoomAction(a)}},f._dispatchZoomAction=function(t){var e=[];h(t,function(t,i){e.push(s.clone(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},i(344).register("dataZoom",n),i(1).registerPreprocessor(function(t){function e(t,e){if(e){var o=t+"Index",a=e[o];null==a||"all"==a||s.isArray(a)||(a=!1===a||"none"===a?[]:[a]),i(t,function(e,i){if(null==a||"all"==a||-1!==s.indexOf(a,i)){var r={type:"select",$fromToolbox:!0,id:d+t+i};r[o]=i,n.push(r)}})}}function i(e,i){var n=t[e];s.isArray(n)||(n=n?[n]:[]),h(n,i)}if(t){var n=t.dataZoom||(t.dataZoom=[]);s.isArray(n)||(t.dataZoom=n=[n]);var o=t.toolbox;if(o&&(s.isArray(o)&&(o=o[0]),o&&o.feature)){var a=o.feature.dataZoom;e("xAxis",a),e("yAxis",a)}}}),t.exports=n},function(t,e,i){function n(t){var e=t[a];return e||(e=t[a]=[{}]),e}var o=i(4).each,a="\0_ec_hist_store",r={push:function(t,e){var i=n(t);o(e,function(e,n){for(var o=i.length-1;o>=0&&!i[o][n];o--);if(o<0){var a=t.queryComponents({mainType:"dataZoom",subType:"select",id:n})[0];if(a){var r=a.getPercentRange();i[0][n]={dataZoomId:n,start:r[0],end:r[1]}}}}),i.push(e)},pop:function(t){var e=n(t),i=e[e.length-1];e.length>1&&e.pop();var a={};return o(i,function(t,i){for(var n=e.length-1;n>=0;n--)if(t=e[n][i]){a[i]=t;break}}),a},clear:function(t){t[a]=null},count:function(t){return n(t).length}};t.exports=r},function(t,e,i){i(351),i(352),i(355),i(409),i(410),i(362),i(363)},function(t,e,i){var n=i(352);t.exports=n.extend({type:"dataZoom.select"})},function(t,e,i){t.exports=i(355).extend({type:"dataZoom.select"})},function(t,e,i){"use strict";function n(t){this.model=t}var o=i(407);n.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:"还原"},n.prototype.onclick=function(t,e,i){o.clear(t),e.dispatchAction({type:"restore",from:this.uid})},i(344).register("restore",n),i(1).registerAction({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")}),t.exports=n},function(t,e,i){i(413),i(82).registerPainter("vml",i(415))},function(t,e,i){if(!i(2).canvasSupported){var n=i(10),o=i(9),a=i(50).CMD,r=i(39),s=i(8),l=i(49),u=i(47),c=i(62),h=i(63),d=i(46),f=i(79),p=i(414),g=Math.round,m=Math.sqrt,v=Math.abs,y=Math.cos,x=Math.sin,_=Math.max,b=n.applyTransform,w=21600,S=w/2,M=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=w+","+w,t.coordorigin="0,0"},I=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},T=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},A=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},C=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},L=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},D=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},P=function(t,e,i){var n=r.parse(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=T(n[0],n[1],n[2]),t.opacity=i*n[3])},k=function(t){var e=r.parse(t);return[T(e[0],e[1],e[2]),e[3]]},O=function(t,e,i){var n=e.fill;if(null!=n)if(n instanceof f){var o,a=0,r=[0,0],s=0,l=1,u=i.getBoundingRect(),c=u.width,h=u.height;if("linear"===n.type){o="gradient";var d=i.transform,p=[n.x*c,n.y*h],g=[n.x2*c,n.y2*h];d&&(b(p,p,d),b(g,g,d));var m=g[0]-p[0],v=g[1]-p[1];(a=180*Math.atan2(m,v)/Math.PI)<0&&(a+=360),a<1e-6&&(a=0)}else{o="gradientradial";var p=[n.x*c,n.y*h],d=i.transform,y=i.scale,x=c,S=h;r=[(p[0]-u.x)/x,(p[1]-u.y)/S],d&&b(p,p,d),x/=y[0]*w,S/=y[1]*w;var M=_(x,S);s=0/M,l=2*n.r/M-s}var I=n.colorStops.slice();I.sort(function(t,e){return t.offset-e.offset});for(var T=I.length,A=[],C=[],L=0;L=2){var z=A[0][0],E=A[1][0],R=A[0][1]*e.opacity,N=A[1][1]*e.opacity;t.type=o,t.method="none",t.focus="100%",t.angle=a,t.color=z,t.color2=E,t.colors=C.join(","),t.opacity=N,t.opacity2=R}"radial"===o&&(t.focusposition=r.join(","))}else P(t,n,e.opacity)},z=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof f||P(t,e.stroke,e.opacity)},E=function(t,e,i,n){var o="fill"==e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(o||!o&&i.lineWidth)?(t[o?"filled":"stroked"]="true",i[e]instanceof f&&C(t,a),a||(a=p.createNode(e)),o?O(a,i,n):z(a,i),A(t,a)):(t[o?"filled":"stroked"]="false",C(t,a))},R=[[],[],[]],N=function(t,e){var i,n,o,r,s,l,u=a.M,c=a.C,h=a.L,d=a.A,f=a.Q,p=[];for(r=0;r.01?G&&(F+=.0125):Math.abs(H-z)<1e-4?G&&FO?I-=.0125:I+=.0125:G&&Hz?M+=.0125:M-=.0125),p.push(W,g(((O-E)*D+C)*w-S),",",g(((z-N)*P+L)*w-S),",",g(((O+E)*D+C)*w-S),",",g(((z+N)*P+L)*w-S),",",g((F*D+C)*w-S),",",g((H*P+L)*w-S),",",g((M*D+C)*w-S),",",g((I*P+L)*w-S)),s=M,l=I;break;case a.R:var Z=R[0],q=R[1];Z[0]=t[r++],Z[1]=t[r++],q[0]=Z[0]+t[r++],q[1]=Z[1]+t[r++],e&&(b(Z,Z,e),b(q,q,e)),Z[0]=g(Z[0]*w-S),q[0]=g(q[0]*w-S),Z[1]=g(Z[1]*w-S),q[1]=g(q[1]*w-S),p.push(" m ",Z[0],",",Z[1]," l ",q[0],",",Z[1]," l ",q[0],",",q[1]," l ",Z[0],",",q[1]);break;case a.Z:p.push(" x ")}if(i>0){p.push(n);for(var j=0;j100&&(F=0,G={});var i,n=H.style;try{n.font=t,i=n.fontFamily.split(",")[0]}catch(t){}e={style:n.fontStyle||"normal",variant:n.fontVariant||"normal",weight:n.fontWeight||"normal",size:0|parseFloat(n.fontSize||12),family:i||"Microsoft YaHei"},G[t]=e,F++}return e};s.measureText=function(t,e){var i=p.doc;B||((B=i.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",p.doc.body.appendChild(B));try{B.style.font=e}catch(t){}return B.innerHTML="",B.appendChild(i.createTextNode(t)),{width:B.offsetWidth}};for(var Z=new o,q=[l,u,c,d,h],j=0;j')}}catch(t){n=function(t){return a.createElement("<"+t+' xmlns="'+o+'" class="zrvml">')}}t.exports={doc:a,initVML:function(){if(!r){r=!0;var t=a.styleSheets;t.length<31?a.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}},createNode:n}}},function(t,e,i){function n(t){return parseInt(t,10)}function o(t,e){r.initVML(),this.root=t,this.storage=e;var i=document.createElement("div"),n=document.createElement("div");i.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",n.style.cssText="position:absolute;left:0;top:0;",t.appendChild(i),this._vmlRoot=n,this._vmlViewport=i,this.resize();var o=e.delFromMap,a=e.addToMap;e.delFromMap=function(t){var i=e.get(t);o.call(e,t),i&&i.onRemove&&i.onRemove(n)},e.addToMap=function(t){t.onAdd&&t.onAdd(n),a.call(e,t)},this._firstPaint=!0}var a=i(41),r=i(414);o.prototype={constructor:o,getViewportRoot:function(){return this._vmlViewport},refresh:function(){var t=this.storage.getDisplayList(!0,!0);this._paintList(t)},_paintList:function(t){for(var e=this._vmlRoot,i=0;i0&&t-1 in e)))}function r(e){var t=Ne[e]={};return ue.each(e.match(fe)||[],function(e,n){t[n]=!0}),t}function i(e,n,r,i){if(ue.acceptData(e)){var o,a,s=ue.expando,l=e.nodeType,u=l?ue.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=ee.pop()||ue.guid++:s),u[c]||(u[c]=l?{}:{toJSON:ue.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=ue.extend(u[c],n):u[c].data=ue.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[ue.camelCase(n)]=r),"string"==typeof n?null==(o=a[n])&&(o=a[ue.camelCase(n)]):o=a,o}}function o(e,t,n){if(ue.acceptData(e)){var r,i,o=e.nodeType,a=o?ue.cache:e,l=o?e[ue.expando]:ue.expando;if(a[l]){if(t&&(r=n?a[l]:a[l].data)){ue.isArray(t)?t=t.concat(ue.map(t,ue.camelCase)):t in r?t=[t]:(t=ue.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!s(r):!ue.isEmptyObject(r))return}(n||(delete a[l].data,s(a[l])))&&(o?ue.cleanData([e],!0):ue.support.deleteExpando||a!=a.window?delete a[l]:a[l]=null)}}}function a(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(Ee,"-$1").toLowerCase();if("string"==typeof(r=e.getAttribute(i))){try{r="true"===r||"false"!==r&&("null"===r?null:+r+""===r?+r:ke.test(r)?ue.parseJSON(r):r)}catch(e){}ue.data(e,n,r)}else r=t}return r}function s(e){var t;for(t in e)if(("data"!==t||!ue.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function l(){return!0}function u(){return!1}function c(){try{return J.activeElement}catch(e){}}function f(e,t){do{e=e[t]}while(e&&1!==e.nodeType);return e}function p(e,t,n){if(ue.isFunction(t))return ue.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ue.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(We.test(t))return ue.filter(t,e,n);t=ue.filter(t,e)}return ue.grep(e,function(e){return ue.inArray(e,t)>=0!==n})}function d(e){var t=Xe.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){return ue.nodeName(e,"table")&&ue.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function g(e){return e.type=(null!==ue.find.attr(e,"type"))+"/"+e.type,e}function m(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function y(e,t){for(var n,r=0;null!=(n=e[r]);r++)ue._data(n,"globalEval",!t||ue._data(t[r],"globalEval"))}function v(e,t){if(1===t.nodeType&&ue.hasData(e)){var n,r,i,o=ue._data(e),a=ue._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)ue.event.add(t,n,s[n][r])}a.data&&(a.data=ue.extend({},a.data))}}function b(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!ue.support.noCloneEvent&&t[ue.expando]){i=ue._data(t);for(r in i.events)ue.removeEvent(t,r,i.handle);t.removeAttribute(ue.expando)}"script"===n&&t.text!==e.text?(g(t).text=e.text,m(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),ue.support.html5Clone&&e.innerHTML&&!ue.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function x(e,n){var r,i,o=0,a=typeof e.getElementsByTagName!==V?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==V?e.querySelectorAll(n||"*"):t;if(!a)for(a=[],r=e.childNodes||e;null!=(i=r[o]);o++)!n||ue.nodeName(i,n)?a.push(i):ue.merge(a,x(i,n));return n===t||n&&ue.nodeName(e,n)?ue.merge([e],a):a}function T(e){et.test(e.type)&&(e.defaultChecked=e.checked)}function w(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=wt.length;i--;)if((t=wt[i]+n)in e)return t;return r}function C(e,t){return e=t||e,"none"===ue.css(e,"display")||!ue.contains(e.ownerDocument,e)}function N(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)(r=e[a]).style&&(o[a]=ue._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&C(r)&&(o[a]=ue._data(r,"olddisplay",A(r.nodeName)))):o[a]||(i=C(r),(n&&"none"!==n||!i)&&ue._data(r,"olddisplay",i?n:ue.css(r,"display"))));for(a=0;s>a;a++)(r=e[a]).style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function k(e,t,n){var r=gt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function E(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=ue.css(e,n+Tt[o],!0,i)),r?("content"===n&&(a-=ue.css(e,"padding"+Tt[o],!0,i)),"margin"!==n&&(a-=ue.css(e,"border"+Tt[o]+"Width",!0,i))):(a+=ue.css(e,"padding"+Tt[o],!0,i),"padding"!==n&&(a+=ue.css(e,"border"+Tt[o]+"Width",!0,i)));return a}function S(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=lt(e),a=ue.support.boxSizing&&"border-box"===ue.css(e,"boxSizing",!1,o);if(0>=i||null==i){if((0>(i=ut(e,t,o))||null==i)&&(i=e.style[t]),mt.test(i))return i;r=a&&(ue.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+E(e,t,n||(a?"border":"content"),r,o)+"px"}function A(e){var t=J,n=vt[e];return n||("none"!==(n=j(e,t))&&n||(st=(st||ue("